Mapillaryの撮影方法、コマンドラインツールmapillary_toolsを使ってアップロードする方法
始めに
Mapillary撮影を長時間にわたって大量にやる場合は、アプリやWebアップローダーを使うよりもコマンドラインツールを使うほうが楽だと思います。ここでは撮影からアップロードまで、私なりのやり方を説明します。
前提
準備するもの
- PCにインストール
- mapillary_tools.exe
- exiftool
- Image magick(オプション)
- カシミール(オプション)
- GPSレコーダー
- 私が使っているのはiOSアプリOsmAnd Map
- カメラ
- 私が使っているのはLG360
- 360カメラを使う場合
- 自撮り棒
- 帽子(写り込みを防ぐ)
- モバイルバッテリー
撮影
スマホでOsmAndを起動し、gpsログを取りながら、LG360でインターバル撮影します。
なお、通常は360カメラで撮影する場合は、自撮り棒にカメラを取り付けて鉛直に保持して撮影します。ですが私は自撮り棒を肩に担いで斜めに持って撮影しています。
斜めに持つことによるメリット・デメリットは以下の通りです。
- メリット
- 腕が楽。特に長時間撮影では。
- 周りからは撮影しているように見えにくくあまり目立たない、はず。
- カメラ位置が後ろにくるので、自分の顔が写りこみにくい。
- デメリット
- 体が少し大きく写る
- カメラがLG360に限定される。他の360カメラは移動中の水平補正がいまいちなので、画像が斜めになってしまいます。
また、進行方向にはレンズを向けないようにしています。レンズが正面から障害物にぶつかりにくくなります。
画像処理・アップロード
注:以下、実行コマンドラインの箇所では、オレンジの箇所は必ず各自の環境に合わせて変更してください。緑の箇所はそのままでも適当に調整もOK。
- カメラからPCに画像をダウンロードする
- gpxをPCにダウンロードする
- (オプション)カシミールでgpxファイルを開き、データが飛んでいるところを削除する。修正したgpxデータをファイルに書き出し保存する。(轍のノイズフィルター機能を使うのもよさそうです)
カシミールのgpxトラックを選択して、《編集(トラックエディタ)》を開く |
《速度》が異常値になっている場所を目視で探して、その前後も含めて削除する。 私は徒歩撮影を基本としているので、10km/h以上のデータを異常値と判断しています。 |
- (オプション)画像のファイルサイズを小さくする
> magick mogrify -monitor -quality 80 "*.jpg"
- 画像にgpsデータを付与する
> C:\work\exiftool.exe -geotag="I:\test\track.gpx" -overwrite_original I:\test
- (オプション)カシミールでgpsデータがきちんと付与されたかチェックする。データの並びが不自然だったら、カメラ時刻がずれていると思われます。exiftoolかカシミールで修正する。
- 画像の前処理(撮影方向の付与、シーケンス分割、重複画像の削除)
> C:\work\mapillary_tools.exe process --advanced --import_path "I:\test" --user_name tankaru --overwrite_all_EXIF_tags --local_time --interpolate_directions --offset_angle -90 --cutoff_distance 30 --cutoff_time 30 --duplicate_distance 1 --duplicate_angle 20 --move_duplicates --save_as_json
- Mapillaryにアップロード
> C:\work\mapillary_tools.exe upload --import_path "I:\test"
- おわり
備考
- mapillary_toolsではgpxの文字処理に難があるようでうまくいきませんでした。ですので私はgpsデータの付与はexiftoolに任せています。→exe版ではなくスクリプト版を使用し、言語設定を変更することでmapillary_tools上でgpsデータを付与することができるようになります。詳しくはkouki-Tさんの解説をご覧下さい。
- 画像の前処理をやり直す場合は、オプション”--rerun”をつけて実行してください。
参考資料
公式の解説