Beyond your wall with Drogger

ドロガーで壁を越えよう

動画から位置情報付画像を生成する

動画を切り出しGNSSの位置情報を紐づけるプログラム Drogger MJpegについて説明します。

MJpegの概要

このソフトは、動画から写真測量(フォトグラトリ)を行うことを支援するソフトです。動画とGNSSの位置情報は、ばらばらのデータですが、この2つのデータを結合することが主な目的です。

このソフトは以下のことを行います。
前提としてカメラとRTK受信機を同じ剛体としてマウントし、動画を撮影すると同時にRTKの位置情報を記録したデータを必要とします。

  1. 動画を指定したレートで画像(JPEG)ファイルに書き出します。
  2. GoPro HERO 5~11 or 13の場合で撮影した動画のメタ情報から、先頭フレームのGPS時刻を読み取ります。GNSSの位置情報と時刻同期して画像に正確な位置を付与します
  3. GNSSのNMEA $GNGGAメッセージから、動画のフレームごとの位置情報とyaw・pitch・rollを計算します。GNSSデータ間隔の間にあるフレームの情報は線形補間されます。
    高さは楕円体高または標高で標高の場合「ジオイド2024日本とその周辺」を使い計算されます。
  4. IMUの値とオフセットからカメラ位置を計算したフライトログを出力します。
  5. exiftool.exeがある場合Exifにオフセット計算された緯度・経度・楕円体高を高精度で書込みます。

効果

画像に正確な位置情報を付与することで、以下の効果が期待できます。

  1. 写真のマッピングにかかる時間の短縮
  2. 解析によって生成される点群への座標付与

インストール

このプログラムは最新のDrogger Processorに含まれております。未インストールの場合はDrogger Processorをインストールしてください。既にインストールされている場合は最新に更新します。

Drogger Processorの[ツール]-[Drogger Tools]-[MJpeg.]をクリックで起動できます。

MJpegから使用する外部ツール

MJpegだけで利用できますが、外部ツールを使用するとより便利に利用できます。

ffmpeg

ffmpegがあると画像の切り出しが高速に行えます。

  1. ffmpeg ダウンロードページよりffmpeg-master-latest-win64-gpl-shared.zipをクリックします。
  2. ダウンロードできたら適当なフォルダに解凍します。

exiftool

通常、写真解析ソフトは画像に対する位置情報ファイルをサポートしているため、デフォルトでは画像のexifに位置は書き込みしませんがexiftoolを使うと書き込みを行うことができます。ただ、フライトデータを使用する場合はこのツールは不要です。EXIFへの書き込みは時間のムダになります。

  1. exiftool ダウンロードページより、 exiftool-13.24_64.zipをクリックします。
  2. ダウンロードできたら適当なフォルダに解凍します。
  3. exiftool(-k).exeをexiftool.exeに名前を変更します。


解析ソフトにPix4Dmaticを使用する場合、EXIFにカメラメーカーとモデルが記録されている必要があるようです。Pix4Dmaticを使用される場合は、exiftoolを有効にし、正しいカメラメーカーとモデルを指定する必要があります。

使い方

NMEAのロギングと動画の撮影

ここではRTK移動局の設定ができているものとして、今回の用途で特別な点だけ記します。以下はDrogger-GPSでの操作です。

  • [計測・更新レート] RWSシリーズの場合は、5Hzにします。RZSシリーズの場合は 10Hzに設定します。
    (参考: BeidouとGLONASSをOFFにすることでRWSシリーズも10Hzに設定することができます。)
  • [メッセージ出力] [Bluetoothメッセージタイプ]でGGAとPRDIDを有効にします。
  • [ヘッディングと傾斜補正]で[受信機の取付向き]を除てすべてデフォルトにします。[受信機の取付向き]をパッケージに合わせて選択します。

IMUデータを正しく記録するには、磁気センサーのキャリブレーションを行います。キャリブレーションは周囲に磁気や金属のない開けた場所で行ってください。

youtu.be

動画の撮影の準備とRTKのFIXが確認できたら、メイン画面の[Logging Control]で NMEA ▶でNMEAのロギングを開始します。

このあと、動画の撮影を開始してください。

NMEAデータの転送

撮影が終わりましたら、NMEAのロギングを停止します。また、データ一覧から記録したNMEAデータをPCに転送します。

MJpegで処理

処理を行う前に各種情報の設定を行います。設定は4つのタブに分かれています。左から順に設定します。

入力タブ

項目 説明 補足
動画ファイル 撮影した動画ファイルの場所を指定します
NMEAファイル ロギングした NMEAファイルの場所を指定します GGAとPRDIDが記録されたNMEAです。

GNSSと動画同期タブ

項目 説明 補足
GNSSと動画の同期
  • Auto: GoPro HERO 11または 13の場合自動同期できます
  • ファイルで指定:Drogger-GPSアプリで動画を撮影した場合、NMEAファイルで先頭フレームの時刻が記録されています。このファイルはVDO_xxxで始める動画と同じ名前で拡張子がnmea.txtで保存されていますのでそのファイルを指定します。
  • Manual Input: 動画の先頭フレームの日時を手動で指定します。
  • 時計バイアス:動画の先頭フレーム時刻は計り方によって精密時刻に比べて遅れがあります。Drogger-GPSアプリでは250msecから400msecほどあります。
GoProによるAutoの場合、フレーム間隔以下の精度での正確な同期が可能です。時計バイアスはゼロです。
GoProで正確な同期をするには、オープンスカイにてGoProの電源を早めに入れGPS測位できている状態にする必要があります。

出力タブ

項目 説明 補足
出力フォルダ 切り出した画像を保存するフォルダを指定します。また、このフォルダに画像名と位置情報を記録したファイルflightlog.txtを出力します。
出力間隔 動画フレーム何枚ごとに画像を切り出すか指定します 通常の動画は30フレーム/秒です。30と指定すると1秒ごとに画像を切り出します
画像品質 高、中、低から選択できます。
フライトデータ IMUの値も記録したフライトログを生成できます。座標値は、指定したオフセットで補正したカメラ位置の座標が出力されます。
  • 出力座標系:WGS84または平面直角座標で出力できます。
  • 高さにJPGEO2024標高を使う:JPGEO2024での標高で記録したい場合はONにします。OFFの場合は楕円体高で出力します。デフォルトはOFFです。
  • yaw方向を180°回転させる:Gパッケージでは、IMUの前方と撮影フレームの上辺の向きが180°異なるためONにします。
  • カメラ-アンテナ位相中心オフセット:このオフセット値補カメラ位置の座標を計算します。図の表示をクリックすると、オフセットの軸と+方向を確認できます。
位置精度は一律 X Y0.05 H 0.1mの固定値としています。
(値を良くしすぎると束縛が強すぎてモデルに歪みを生じる可能性があります)

外部プログラム

項目 説明 補足
ffmpeg ffmpegを使用する場合チェックします。ffmpegを使うと高速に画像の切り出しが行えます。ffmpeg.exeがあるフォルダを指定します 例 c:\temp\ffmpeg-master-latest-win64-gpl-shared\bin
exiftool exiftoolを使うとEXIFに位置情報を書き込むことができます。
  • exiftool.exeがあるフォルダを指定します
  • カメラメーカー : カメラ―のメーカを指定します。
  • カメラモデル : カメラのモデルを入力します
例 c:\temp\exiftool-13.24_64
カメラのメーカーとモデルは、そのカメラで撮影した画像ファイルをWindowsのエクスプローラでプロパティを開き、詳細タブのそれぞれの項目で確認できます。

パラメータの設定ができたら、[開始]ボタンをクリックします。

出力の確認

[開始]ボタン下の[出力フォルダを開く]をクリックします。
切り出した画像が確認できます。

また、MJpegの[フライトログを開く]をクリックするとメモ帳で画像名に対する位置やIMU値を記録したフライトログをメモ帳で表示します。

exiftoolを使用した場合は、画像のEXIFでGPSの位置を確認できます。

  1. 保存された画像のフォルダが開きます。
  2. 画像を右クリックしてプロパティーを開きます。
  3. [詳細]タブを選択し、GPSカテゴリまでスクロールします。

フライトログのフォーマット

フライトログフォーマットは以下のようになっています。数学座標に合わせて、経度(X), 緯度(Y)の順で記録されます。

WGS84

# Name, Longitude, Latitude, Altitude, LongitudeAccuracy, LatitudeAccuracy, AltitudeAccuracy, Yaw, Pitch, Roll 

平面直角座標

# Name, X (East), Y (North), Alt, YAccuracy, XAccuracy, Alt Accuracy, Yaw, Pitch, Roll

Reality Captureのフライトログインポート定義

Reality Captureでは平面直角座標の場合、定義済のフォーマット通りですので、以下の図の定義を選択します。