香港 2019-2020

香港人も熱心に動向を見守っていた台灣總統立委選舉ですが、取り敢えず今後4年間は大きな混乱もなさそうで一安心です。

趣味の話と無関係なので記述しませんでしたが、じつは私は最近まで台湾に出張に行っており、國民黨(KMT)の議席が減るのは良いことだが民進黨(DPP)一強は良くないという意見も少なからず耳にしていたので「もしかしたら」という危惧を抱いてはいました。

時力黨が思ったほど伸びなかったと肩を落としている知人友人が多いですが、台湾が MNNA に残って政情安定していれば、私個人としては言うことはありません。武陵にも行けますし、これまで通りに自転車や電子部品(とくにPCパーツ)も購入し続けることができます。

台湾に一安心したところで香港です。日本語圏の情報では一向に混乱が収まらないかのように見えます。

外務省の危険情報も正しいですし、もっと言えば元から治安が怪しい地域も少なからず存在したわけで、今の香港が誰にとっても安全というわけではありません。

しかしながら、常時、抗議活動が行われていて都市機能が麻痺しているかと言うと、それもまた事実とは異なります。




公共交通(主に地下鉄やバス)の遅延や運行停止によって通勤や通学に影響が出ることはありますが、営業活動も通常通りに行われていますし、一般市民の大半が抗議活動の参加者または賛同者なので抗議活動に対する理解もあります。

抗議者側に賛同する飲食店などは「黃色圈」と呼ばれ、積極的に利用するように情報共有まで行われています。

日本語情報では突発的な暴動発生や暴力的な抗議活動に巻き込まれる危険性が強調されているように見えますが、現地の香港人の多くは不審死の多発や警察の捜査姿勢、暴力行為に不信感を抱いており認識の齟齬を感じます。

それでも共通しているのは、今の香港は危険だという意見です。

実際のところ、繁華街を出歩く人が減ったというメディアの文言にかかわらず、相変わらず繁華街や飲食店は(少なくとも私が見ている範囲では)賑わっていますし、観光名所で記念撮影している人もたくさんいます。したがって「滞在に当たって危険を避けるように十分注意してください」という外務省の情報は妥当だと思われるわけです。

それよりも目に見える変化としては、空港の警備が強化されて出入口検査が行われるようになり、航空券を持っていなければ入場すらできなくなりました。

ただでさえ迷路のように行きにくかった中環のプロムナードも龍和道(Lung Wo Rd)にバリケードが設けられて、さらに行きづらくなりました。

そして分かりにくい変化では、香港で開催される会議(conferences)に中国企業が参加しないことが見られるようになりました。

最初は気のせいかと思われましたが、参加リストには名前があるのに会場では見かけないことが数カ月間に何度かあり、どうも私の勘違いでは無さそうな気がします。

私も一年中ここにいるわけではないですし、市民権を有しているわけでもありませんので見てきた範囲を超えた部分に関しては存じ上げませんが、まだまだ収束する見込みは無さそうに感じます。

香港島 自転車紀行

香港と言えば、西は堅尼地城 (Kennedy Town) 、東は柴灣(Chai Wan)、北は維港を跨いで九龍の太子(Prince Edward)あたりまでの範囲が一般的によく知られています。

海と山に囲まれた細長い市街地に高層建築物が隙間なく林立する光景は、きわめて特徴的で象徴的ですらあります。

それでは活気に溢れた中心市街地を少し離れると何があるのでしょう。

人によっては「何もない」が答えかもしれませんし、また別の人は「坂がある」と回答されるかもしれません。

いずれにせよ、市街地を少し離れた場所には定住者のいない(そして大抵は傾斜のきつい)緑地帯が広がっています。

国際金融中心として名高い中環(Central)から、わずか 5km ほど離れただけで別世界のような光景が広がります。

まるで高原リゾート地帯にでもやって来たかのような山岳風景に驚くばかりですが、これでも急峻な山道や非日常的な絶景という意味では、ほんの序の口に過ぎません。

高度に都市化されているように見える港島(Hong Kong Island)でも南に向かうほど、緑地や自然海岸線の割合が増え、それに比例するかのように道路もアップダウンを増していきます。

それでも港島は九龍や離島に比べれば傾斜の緩やかな坂(斜度 6-9% 程度)が多いので、ロードバイクやマウンテンバイクで走り慣れている人であれば半周することは難しくはありません。

中環から赤柱 (Stanley) や石澳(Shek O)まで西回りで訪れても距離は片道 26 – 33 km 程度にしかなりませんので、私のように始業前や終業後に走りに出かけて港鐵(MTR)で輪行しながら帰ってくることも不可能ではありません。

ただし Gap Road と名前の付いている道路だけは例外で、どこも斜度 15% を超える急勾配が当たり前のように出てきますので注意が必要です。




話を戻しまして、西岸の摩星嶺(Mount Davis)や薄扶林(Pok Fu Lam)といった山岳地帯を超えていくと、港島の南岸へと向かう長いダウンヒルが始まります。

遠くに海を見渡しながら坂を駆け下りたさきには、対岸とよく似た高層建築物の建ち並ぶ市街地が広がっています。香港仔(Aberdeen)と呼ばれる南部の代表的な市街地です。

この辺りの1號幹線(Route 1)は通行車両の平均速度が異様に高く、自転車進入禁止の高架入口が複数ヶ所あり、概して道幅も狭いので注意が必要です。その一方で港鐵(MTR)の駅が近くにありますので、知っておくと輪行に便利でもあります。

香港仔を通り抜けて、海洋公園から香島道(Island Rd)に入ると再び景色が大きく変わります。いよいよ海洋に浮かぶ島らしくなってきました。

片側1車線は維持し続けているものの、歩道は部分的にしか存在せず、道幅も狭くて見通しも良くない道路が続きます。豊富なアップダウンに、切土に、崖道に、落石注意と、おおよそ亞洲國際都會が出して良いような雰囲気ではない険しい山道の連続です。

その反面、周辺の光景は息を呑むほどの美しさです。

ほどなくして、大潭道と赤柱村道の分岐点へと到着します。ここを直進すれば石澳、右折すれば赤柱が見えてきます。

石澳と赤柱。どちらも良い場所ですが、初めて訪れるのであれば赤柱のほうが良いかもしれません。

赤柱は雰囲気の明るい観光地でセブンイレブンやマクドナルドを始めとした補給地点が豊富にあります。ちょうど疲れてきた頃に、冷たい飲み物が頂けるのはありがたいものです。

ここまででも刺激的で変化に富んだライドを楽しめましたが、香港の名物でもある豊富なフェリー航路と港鐵路線を組み合わせると、およそ 200 もの島嶼と新界を組み合わせた「ちょっとした冒険」を気軽に楽しめるようになります。

その内容も南国のビーチリゾートから野生の牛が暮らす山林、数十kmにも及ぶ長大なサイクリングロードまでと多様性と意外性に満ちています。

自転車に乗って香港を走ってみると、この都市がいかにさまざまな顔を持っているか、徒歩で行ける範囲だけでは分からない全容が見えてくるのでオススメです。

Raspberry Pi にカメラを接続して画像を NAS に転送

画像認識のための Raspberry Pi セットアップもいよいよカメラ設置段階まで進みました。今回の目標は Raspi でデジタルカメラを動作させて、得られた画像データをネットワークHDD (NAS) に転送することです。

ストレージも USB ポート数も何もかもが不足している Raspi の弱点はネットワーク接続機器を使って補います。

カメラモジュール
一般的に Raspi でカメラと言えば、カメラモジュールを用います。私も「ちょっと珍しいから」という理由で赤外線カメラモジュールを購入しました。


Raspberry Pi Camera Module V2 カメラモジュール

後述する理由から一般的なカメラモジュールは購入を見送りましたが、赤外線カメラでも接続方法は変わるところはありません。

モジュールに繋がっているフレキシブルケーブル (FFC)を Raspi 回路基板のクリップに差し込めば接続完了です。

Raspberry Pi Zero W の場合にはモジュール付属ケーブルの形状が合いませんので、モジュールからフレキケーブルを引き抜いて、対応するケーブルに差し替える必要があります。

このケーブルは専用ケースの付属品になっていますので、ケースを購入すると一緒に入手できます。


Raspberry Pi Zero W公式シェル新品

このモジュールを接続した状態で、ターミナルから以下のコマンドを打ち込むと動作確認ができます。

$ raspistill -o ~/Desktop/cam.jpg

さらに画像の上下を反転させたり、ビデオやタイムラプスを撮影することも可能です。詳しくは公式のドキュメントに詳細が書いてあります。




WEBカメラ
カメラモジュールは簡単に使えて便利なのですが、私のそもそもの目的はコンベアベルトを作成することです。

この目的であれば、電子部品としては高額であまり入手性もよくない公式モジュールを使用しなくても十分な可能性があります。

また、モジュールに付属するフレキケーブル (FFC) やフレキ基盤 (FPC) も本音を言えば、あまり積極的に使いたい部品ではありません。繊細で壊れやすいためです。

市販品のデジタルカメラにも使用されている部品ですが、故障品を修理に出したときに補修部品としてよく見かける印象があります。

さらには学生時代にレンズスパナレンチを使ってオートフォーカスレンズを分解したときにも、自身で誤って破断させました。苦い経験です(※保証対象外になりますので真似しないでください)。

そこで、できればフレキケーブルは使用しておらず、複数個を調達することを考えて、もっと安価かつ入手性の良いカメラを探して行き着いた先が WEB カメラです。

こちらは USB ケーブルに Micro USB 変換コネクタを噛ませて Raspi の USB ポートに接続すれば、使用できるようになります。当然ながら Raspi 以外の普通の Linux デスクトップ PC でも問題なく使用できます。

使い方も lsusb コマンドで接続を確認、fswebcam コマンドで静止画キャプチャを作成、ffmpeg コマンドでビデオを録画といった具合に Linux マシンでいつもやっていることと変わりません。

$ lsusb
Bus 001 Device 002: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 001 Device 005: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ fswebcam -d /dev/video0 -r 1280x720 ~/Desktop/cam.jpg

$ ffmpeg -t 30 -f v4l2 -framerate 25 -i /dev/video0 ~/Desktop/output.mkv

これでファイル作成に成功していれば、画像認識用のプログラムからでも問題なく呼び出せるはずです。なんだか、こちらの方が使い慣れていて安心感がありますが、画質の面ではピクセル数 3280 × 2464 の SONY IMX219 を搭載した Raspi カメラモジュール(Camera Module v2) の方に利があります。


ロジクール ウェブカメラ C270n 国内正規品 2年保証

カメラから静止画像やビデオが取り込めるようになりましたら、次に問題になるのはストレージです。

画像認識の学習用データを自作しようと思ったら、どれだけ容量の大きなSDカードを用意したところで気休め程度にしかなりません。

むしろSDカードを補助記憶装置がわりに使用する Raspi の性質を考慮すると、学習データごときで容量を圧迫するのは「もったいない」とすら思えてきます。そこでデータの保存には無線接続されたハードディスク(NAS)をすることを考えます。

NAS(ネットワーク接続ストレージ)
一般的に市販されている NAS を購入してきて無線 LAN ルータやハブに接続すると、機器の内部ではローカル IP アドレスという 32bits のユニークな整数値が割り当てられます(※表示としては10進法に変換されて4桁ごとにドットで区切られたものが用いられます)。

このIPアドレスに同じネットワークに繋がっているパソコンやスマートフォンから接続すると、データを転送して保存したり、読み込んだりすることができるようになります。

Raspi を含む Linux マシンからローカル IP アドレスを調べるには、ずばりネットワーク自体のアドレスに対してホストスキャンをかければ一覧が表示されます。ネットワーク(※正確にはクラスCネットワークといいます)自体のアドレスは 192.168.1.0 に決まっているので対象の IP アドレスは 192.168.1.0 です。

$ sudo apt -y install nmap
$ sudo nmap -sn 192.168.1.0/24
[sudo] password for Goddard: 
Starting Nmap 7.60 ( https://nmap.org ) at 2019-08-31 13:04 JST
Nmap scan report for _gateway (192.168.1.1)
Host is up (0.00036s latency).
MAC Address: 00:00:00:00:00:00 (Mitsubishi Electric)
Nmap scan report for 192.168.1.3
Host is up (0.044s latency).
MAC Address: 00:00:00:00:00:00 (Sony Mobile Communications AB)
Nmap scan report for 192.168.1.6
Host is up (0.12s latency).
MAC Address: 00:00:00:00:00:00 (Asustek Computer)
Nmap scan report for 192.168.1.10
Host is up (0.11s latency).
MAC Address: 00:00:00:00:00:00 (Hon Hai Precision Ind.)
Nmap scan report for 192.168.1.11
Host is up (0.11s latency).
MAC Address: 00:00:00:00:00:00 (Raspberry Pi Foundation)
Nmap scan report for 192.168.1.13
Host is up (0.00024s latency).
MAC Address: 00:00:00:00:00:00 (I-O Data Device)
Nmap scan report for Ganymede (192.168.1.7)
Host is up.
Nmap done: 256 IP addresses (7 hosts up) scanned in 6.56 seconds

ここで私が使用している NAS は I-O DATA LAN DISK なので、目的のローカル IP アドレスは 192.168.1.13 と言うことがわかります。


I-O DATA NAS 4TB RAID 1/デュアルコアCPU/高速モデル/2ドライブ/日本製 3年保証

I-O DATA もしくは組み込み Linux と Samba で動いている NAS をお持ちの方は、試しにウェブブラウザから NASのローカルIPアドレス(私の場合では http://192.168.1.13/) にアクセスされると、そのまま設定画面にアクセスできちゃったりします。

この IP アドレスの SMB/CIFS ファイルシステムにある任意のディレクトリを Raspi にマウントしてしまえば、ターミナルやファイルシステムから自由にアクセスできるようになります。

ここではルート直下にある disk1 ディレクトリをマウントします。お使いの環境によっては share だったり Public だったりと言った別の名前がつけられているかもしれませんので、適宜改編してください。

$ sudo apt install cifs-utils
$ sudo mkdir /mnt/iodata && chmod 755 /mnt/iodata
$ sudo mount -t cifs //192.168.1.13/disk1 /mnt/iodata -o username=PI,password=RASPBERRY,iocharset=utf8

うまく実行できましたら、カメラから取得したデータを実際に保存してみます。うまく保存できていれば成功です。

$ sudo mkdir /mnt/iodata/raspberryPi/
$ sudo fswebcam -d /dev/video0 -r 1280x720 /mnt/iodata/cam.jpg

再起動時に毎回マウントすることが面倒であれば、あらかじめ設定しておけば起動時に自動的にマウントされます。

$ sudo vi /etc/fstab
//192.168.1.13/disk1 /mnt/iodata cifs username=PI,password=RASPBERRY,file_mode=0755,dir_mode=0755,iocharset=utf8,

これでようやくカメラを使って画像認識をはじめる準備が整いました。ここまで来て、ようやく学習データづくりとソフトウェアの着手に取り掛かれます。

まだまだ先は長いのです。