OpenStreetMap向けにMapillaryを使う

現時点での自分なりのやり方
徒歩(ハイキング)でルートをストリートマップ化し、POIをOSM向けにフォトマッピングすることを想定

道具

ハードウェア
  • ウェアラブルカメラ:ストリートマッピング
    • 現在はSONY AS200Vを使用している。
    • インターバル撮影ができるものが必要。撮影間隔を細かく設定できるとよい。少なくとも10秒程度の撮影間隔に設定できるもの。
    • マウントも。バックパックマウントとか。
  • 手持ちカメラ:POI撮影用
    • なんでもいい
    • コンパスで撮影向きが記録できるものであればベター
    • 現在はOlympus TG4を使っている
  • Ricoh Theta:360°ストリートマッピング用と、POIの相対位置確認用
  • GPS
    • ログを取れればなんでもいい
    • 現在はetrex10を使っている
  • 地図
    • 現在地確認にやっぱり地図は必要かな。スマホでいい。
  • モバイルバッテリー
  • (Mapillaryアプリは使わない)

事前準備

  • カメラの時刻は秒単位でそろえておく。GPSにあわせる。GPSがついているデジカメだと自動調整してくれる機能はあるが、ずれていることがあるので必ず確認する。

撮影

  1. GPS起動
  2. AS200Vをバックパックのベルトに取り付け、モバイルバッテリーをつなぎ、インターバル撮影を10秒間隔設定で開始
  3. 適当に歩く
  4. OSMマッピングしたいものを見かけたら、TG4で撮影する
    1. POIは、アップの写真だけでなく、引きの写真も撮って、周囲との相対位置がわかるようにしたほうが良い。
  5. POIの位置関係が複雑な場所では、Thetaでも撮影する

事後処理

とりあえず
  • カメラの写真をローカルに保存する
GPSログ
撮影座標修正
  • カシミールで写真に座標をつける(「デジカメプラグイン」→「ブラウザ起動」→写真選択→「撮影位置を推定する」)
  • 必要に応じて座標を手作業で修正する
  • Thetaの写真を参照しながらだと、POIの相対位置が分かりやすい
プライバシー処理
  • プライバシー保護のため、人の顔や車のナンバープレートにはモザイクをかける
  • IrfanViewで、Image→Effects→Effects Browser→Blur2、IterationとRegularizationは最大にし、ボケを強くしたいときはApply to original imageを何回かクリックする。
  • Mapillaryは自動でプライバシー保護してくれるんだけど、いまいち精度が悪いので、事前に手作業でやったほうがマシな気がする。
  • mapillaryサーバでの自動モザイク処理精度が向上したので、手動モザイクはやらなくなりました
  • Thetaの写真には自分が映り込んでしまう。自分の削除は別途説明予定。

OSMマッピング

Mapillaryにアップロード

  • Manual Uploadsで写真をアップロードする
  • ひとつのシーケンスは100枚くらいにしておくのがよいかも。なんとなく。

Mapillary上で修正

  • Mapillaryの自動モザイクはいまいち精度が悪い。手動モザイク済みであれば、モザイク解除申請をひとつずつする。面倒。

試行錯誤中

ストリートマップとエリアマップ
  • Mapillaryはシーケンス単位で管理され、地図上にもシーケンスのラインが引かれるので、ストリートマップ向きです。
  • 一方、OSM向けにフォトマッピングする場合、写真と写真のつながりを気にすることは少ないと思います。あるエリア内のPOIをすべて写真にとったり、ふと見かけたPOIを一枚だけ写真にとったりするのではないかと思います。点または面でのマッピングと言ったらいいでしょうか。
  • 両者はいまいち相性がよくないように感じています。現時点ではOSM向けマッピングスタイルを優先していますが…
  • ウェアラブルカメラで撮ったストリート写真と、手持ちカメラで撮ったPOI写真を、別々にアップロードするか、ひとつのシーケンスにまとめるのか、まだ結論は出ていません。
    • ひとつのシーケンスにまとめた場合のデメリット:ストリートビューを連続で表示させている途中で、急にPOIのアップが現れてしまう。
    • 別々にアップロードした場合のデメリット:POI写真はたまに撮るだけなので、シーケンスの線が道に沿わない。
    • POI写真はアップロードしないという選択肢もあるが、OSMのソースとして使えなくなるので、本末転倒か。
    • さすがにTheta写真までひとつのシーケンスにまとめたことはない。
カメラマウント
  • 現在は、AS200VにバックパックマウントVCT-BPM1を使っています。
  • 晴れた日は良いのですが、曇りの日や森の中では写真がブレがちになります。また、坂道を上るときは地面がアップになり、坂道を下るときは空ばっかり写すことになってしまいます。
  • ぶれを減らしたり、上り下りの路面も撮影できるように、クリップヘッドマウントBLT-CHM1も試してみました。ですが、帽子のつばがかなり大きく映り込みます。また、上り下りの撮影もいまいちでした。
  • とりあえずは、地面状況が撮影できれば良しと考えて、バックパックマウントVCT-BPM1に戻し、上りのときはそのまま地面をアップで写し、下りのときはカメラ向きを少し下に変えて撮影しています。
  • AS200Vは前後に長いので、もしかしたら徒歩では上下にぶれやすいのかもしれません。GoProだと、もしかしたらマシになるかもしれませんが、どうなのでしょうか。
Mapillaryアプリ?
  • Mapillaryを始めた当初は専用アプリを使っていましたが、今は使っていません。
  • OSMでの利用を考えないのであれば、アプリ内で完結するのでよいかもしれません。ですが、撮影した写真をローカルに保存するのが難しいので、JOSM等でフォトマッピングするのが大変です(web経由で写真を参照することになる)。
  • 撮影した写真はローカルに保存して、JOSMでフォトマッピングするのが楽です。
撮影の向き
  • スマホ電子コンパス付きデジカメで撮影した写真には撮影向きが記録されます。Mapillaryでも撮影向き情報は使われているようです。
  • AS200Vは撮影向きが記録されません(移動方向は記録しているようなのですが)。GPSログから撮影向きを推定してExifに書き込むpythonスクリプトを自作して使っているのですが、一般的なやりかたに移行したいところです。