LoginSignup
1

More than 3 years have passed since last update.

posted at

updated at

mapillary_tools を使ってアクションカムで撮った写真をMapillaryに投稿する

Mapillary はストリートビューをクラウドソーシングで作るサービスです。通常はスマートフォンのアプリを使って撮影したものを共有するのですが、GPSロガーで取ったログとアクションカムやデジカメのタイムラプスモードで撮影した静止画を合わせてスクリプトで一括アップロードできます。
日本には美しい四季がありますので、皆さんの身近な場所や旅行先でたくさん撮って共有してください。Mapillaryのストリートビューは OpenStreetMap の編集にも使えますので自由な地図の充実にもつながります。

タイムラプス撮影について

私はGoPro Hero3 Silver Editionを使っています。3,680×2,760ピクセルでインターバル1秒のタイムラプスで静止画を撮影しています。GoPro以外のカメラでもインターバル撮影ができるものなら同じ要領でできると思います。
mapillary_tools には動画から静止画を作る機能もありますので必ずしもタイムラプス撮影である必要はありません。ドライブレコーダの動画も(位置情報が取り出せれば)利用できるでしょう。ただし一般的に画質や解像度は動画より静止画の方が高いです。
いわゆる中華アクションカムの場合はタイムラプス撮影に制限があったり、ファイル形式がJPEGはでなかったりするようです。その場合は動画撮影がベストプラクティスと思われます。

GPSログについて

GPSロガーはGPX形式のログが出力できるものであればどんなものでも良いと思います。私は GARMIN fenix を使っています。現在の mapillary_tools は NMEA 形式のログにも対応しているようです。

動作環境

MacOS High Sierra (Python 2.7.10)で動かしてます。Linuxでも動作します。Windowsでの環境構築は「mapillary_tools を Windows で動かす」にまとめました。

$ python --version
Python 2.7.10

環境構築

pip のアップデート

pip のバージョン10以上が要求されています。私の環境のパッケージは古かったので新しい pip をインストールしました。

$ pip --version
pip 9.0.1 from /Library/Python/2.7/site-packages (python 2.7)
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ sudo python get-pip.py
$ pip --version
pip 18.0 from /Library/Python/2.7/site-packages/pip (python 2.7)

依存ライブラリをインストール

Mapillaryプロジェクトがフォークした Piexif をインストールします。ここで私の環境では「xcrun: error: invalid active developer path」のエラーが出ました。この記事を参考に対処しました。

$ sudo pip install git+https://github.com/mapillary/Piexif

ffmpeg のインストール

動画からアップロードできる機能を使用するために ffmpeg をインストールします。Homebrew が必要です。動画サポートが必要ない場合はこのステップは省略可能です。

$ brew install ffmpeg

mapillary_tools のインストール

mapillary_tools 本体をインストールします。ここで私の環境では以下のエラーになりました。「--ignore-installed six」のオプションを指定することでインストールできました。

Found existing installation: six 1.4.1
Cannot uninstall 'six'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

$ sudo pip install --upgrade git+https://github.com/mapillary/mapillary_tools --ignore-installed six

動作確認

以下のように表示されればインストール成功です。

$ mapillary_tools --version

Mapillary tools version : 0.5.0

認証

初回のみ認証が必要です。旧mapillary_toolsのようにWebサイトからハッシュを写す必要もありません。認証情報は $HOME/.config/mapillary/config ファイルに書き込まれます。

$ mapillary_tools authenticate --advanced

画像の加工

位置情報や撮影方向のついていない画像(タイムラプス静止画または動画)にGPSログから位置情報を付与してアップロードできるようにします。
あわせて信号待ち等で同じ場所でたくさん撮影されてしまった重複画像をアップロード対象外にします。「5m」と「40度」はスマートフォンのアプリのデフォルト値です。もっと適切な値があるかもしれません。

タイムラプス静止画の場合

以下のオプションを指定します。この方法だとオリジナルの画像のEXIFに書き込みが行われファイルのタイムスタンプが変更になります。

$ mapillary_tools process --advanced --user_name kudarisenmon --geotag_source "gpx"  --local_time --interpolate_directions --duplicate_distance 5 --duplicate_angle 40 --move_duplicates --overwrite_EXIF_direction_tag --overwrite_EXIF_gps_tag --geotag_source_path 2019-04-20.gpx --import_path /media/DCIM 
オプション 指定内容
process 画像を加工する
--advanced 高度なオプションを指定する
--user_name Mapillaryのユーザ名
--geotag_source GPSログのファイル形式
--local_time 撮影時刻が日本時間で記録されている
--interpolate_directions 撮影方向を書き込む
--duplicate_distance 重複と判断する距離(m)
--duplicate_angle 重複と判断する角度
--move_duplicates 重複と判断された写真を duplicates フォルダに移動
--overwrite_EXIF_direction_tag 撮影方向のExifを上書き
--overwrite_EXIF_gps_tag 撮影地点ののExifを上書き
--geotag_source_path GPSログファイル
--import_path 加工対象静止画のフォルダ

動画の場合

以下のオプションを指定します。静止画と違って元の動画ファイルには書き込みは行われません。撮影に使用したデバイスのメーカー名、モデル名は任意で省略可能です。

$ mapillary_tools video_process --advanced --user_name kudarisenmon --geotag_source "gpx" --interpolate_directions --duplicate_distance 5 --duplicate_angle 40 --video_sample_interval 1 --overwrite_all_EXIF_tags --move_duplicates --device_make "RICOH" --device_model "RICOH THETA S" -- R0010282_er.MP4 --geotag_source_path 2019-05-03_162711.gpx
オプション 指定内容
video_process 動画を加工する
--advanced 高度なオプションを指定する
--user_name Mapillaryのユーザ名
--geotag_source GPSログのファイル形式
--interpolate_directions 撮影方向を書き込む
--duplicate_distance 重複と判断する距離(m)
--duplicate_angle 重複と判断する角度
--overwrite_all_EXIF_tags Exifを上書きする
--move_duplicates 重複と判断された写真を duplicates フォルダに移動
--device_make 撮影デバイスのメーカー名(任意)
--device_model 撮影デバイスのモデル名(任意)
--video_import_path 動画ファイル
--geotag_source_path GPSログファイル

アップロード

加工したファイルをアップロードします。重複と判断された画像はここでスキップされます。
4スレッドで送信されますが気長に待ちましょう。:-)

$ mapillary_tools upload --import_path /media/DCIM

情報源

README.md

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1