再びMapillary

投稿者: | 2017年1月15日

ToBeFixedアップデート

ToBeFixedプロジェクトページに簡単な使用例を追加しました。

最終的にはJOSMプラグイン化すべきだと思っているのですが、

  • 面倒くさそうに見えるが、やってみるとそうでもない。(そもそも、JOSM使ってる人なら、なんてことない気がする)
  • まずはToBeFixedの返す情報の選別、チューニングを優先すべき。
  • Mapillaryでのカバレッジもまだまだ。しかも最近結構重い…

という理由で、当面は別のことに注力します。諸々の環境が整ってきたら、やろうと思います。

Mapillaryアップロードの改善

で、課題の一つであるMapillaryでのデータ集めですが、以前の記事から若干アップデートありました。まず、gpspruneを使ったジオタグの付加ですが、exiftoolというコマンドでもできることがわかりました。これで、撮ってきた動画をスクリプトで一気にタグ付けまでできるようになりました。

#!/bin/bash

TOOL_PATH=/home/uno/work/mapillary_tools/python
PHOTO_PATH=$3
INTERVAL=2
VIDEO_FILE=$1
TRACK_FILE=$2

ffmpeg -i ${VIDEO_FILE} -f image2 -qmin 1 -q 1 ${PHOTO_PATH}/frame%04d.jpg

BASEDATE=`stat ${VIDEO_FILE} | awk  '/^Modify/ {printf("%s %s", $2, $3)};' | awk -F '.' '{print $1}'`
python ${TOOL_PATH}/add_fix_dates.py ${PHOTO_PATH}/ "${BASEDATE}" ${INTERVAL}
exiftool -overwrite_original -geosync=+00:00:04 -geotag ${TRACK_FILE} ${PHOTO_PATH}/
python ${TOOL_PATH}/interpolate_direction.py ${PHOTO_PATH}

また、ここからアップロードの際に、信号待ち等で止まっている際の重複写真の削除が必要なのですが、公開されているMapillary向けツールをよく見たら、以下のように、写真群を一定の距離間隔に間引いてくれるツールがきちんと用意されていました。

python remove_duplicates.py [-d min-distance-meters] src-path/ [duplicate-path/]

詳しくは、配布リポジトリのpython/README.mdを参照ください。

これでかなり楽にはなったのですが、それでもやはりアップロードする前に人の目によるチェックは必要で、結構な手間がかかります。「できるだけ標識等の情報が含まれている画像を省かない」、「変な物(?)が写っているのは省く」、「街と田舎道で間隔を調整する」とか機能が欲しくなってきます。ここで、ようやく今流行のAI&画像認識が登場しそうなテーマになってきました。一番最初の記事で書いた一通りのおさらいが終わったら、ここに戻ってきたいですね。

おまけ

「Googleストリートビュー使えばいいんじゃないの?」と思う方もいるかも知れませんが、Googleストリートビューの画像は転用してはいけない規約になっているのでNGです。まあ、ビジネスである以上当然と言えば当然ですが、Googleの決めた使い方しかできないというのは結構不便なものです。

あと、Googleがデータの所有権を持ち、かつ利用者にそれ以外に選択の余地がないというのはあまり好ましい状況とは言えないでしょう。現時点では問題がなくても、いつ豹変するかわからないですし。

利用者にとってオルタナティブとなりうる点で、OpenStreetMap及びその周辺の活動には大きな意味があると思っています。

まあ、この活動に関しては、それ以前に「Google等大手地図提供者が(日本の)自転車乗りを相手にしてくれない」というのがあるんですけどね。勝手な推測で、1) 自転車走行のルールが日本独自である、2) その情報を含んだオンラインデータがない、かつ、3)コストをかけて作るほどの需要がなさそう、というところから来てるんじゃないかと…

なので、自転車乗りが自分達でデータを集めてオープンで公開、そこそこ使えることが証明できれば、どこかの大手がそれをベースにサービス始めてくれるのではないか、と妄想していたりします。