Linux で iPhone をマウントして Mapillary アプリの写真を取り出す

Mapillary へ画像をアップロードする前にそれなりの大きさの画面で写真を見たいじゃないですか。LinuxiPhone をマウントする時に毎回ググるのがアレなので自分用にメモを残しておきます。

操作を始める前に iPhone の Mapillary アプリで写真に EXIF 情報を付与しておくとパソコンから Mapillary へアップロードできる。

iPhone のマウント

こちらの gist を見るとやり方が書いてあります。

On Ubuntu 16.04, since iOS 10 update, libimobiledevice can't connect to my iPhone. This is my attempt to document a fix. · GitHub

ざっくり流れを書くと

  • libplist (場合によってはいらない)
  • libusbmuxd
  • libimobiledevice
  • usbmuxd
  • ifuse

辺りを入れる。ビルドをする場合はビルドに使われるパッケージ類を入れておくこと。

パソコンに iPhone を接続したら認証させる。iPhone 側でコンピューターを信頼するかどうかのダイアログが出てたら信頼しておかないとダメなはず。

$ idevicepair pair

SUCCESS: Paired with device XXXX~ が表示されれば OK。出なかったら適当にトラブルシュートする。

$ ifuse --documents com.mapillary.app /home/zoar/mapillary/

普通にマウントしても見えなかったのでアプリを指定してマウントする。

アンマウントするときは

$ fusermount -u /home/zoar/mapillary/

写真の取り出し

マウントしたディレクトリに移動すると日付時刻ディレクトリの中に写真が入っているので必要なものをコピーする。今回は全部コピーした。

$ cd ~/mapillary/
$ cp -r ./* /pathToDir/

取り出した写真を見ながら不要な画像を削除したりモザイク処理をする。2000枚近くの写真から人の顔とか車のナンバーを認識してモザイク処理してくれるソフトないかしら。

アップロード

Mapillary tools でアップロードする。
iPhone のアプリ側で EXIF 情報を付与しておけば Mapillary のユーザー情報も一緒に入っているので upload.py でアップロードできる。
普通の写真に位置情報を付けたファイルの場合には upload_with_authentication.py とかでアップロードする。

あとは公開されるのを待てば OK。