動画を切り出しGNSSの位置情報を紐づけるプログラム Drogger MJpegについて説明します。
MJpegの概要
このソフトは、動画から写真測量(フォトグラトリ)を行うことを支援するソフトです。動画とGNSSの位置情報は、ばらばらのデータですが、この2つのデータを結合することが主な目的です。
このソフトは以下のことを行います。
前提としてカメラとRTK受信機を同じ剛体としてマウントし、動画を撮影すると同時にRTKの位置情報を記録したデータを必要とします。
- 動画を指定したレートで画像(JPEG)ファイルに書き出します。
- GoPro HERO 5~11 or 13の場合で撮影した動画のメタ情報から、先頭フレームのGPS時刻を読み取ります。GNSSの位置情報と時刻同期して画像に正確な位置を付与します
- GNSSのNMEA $GNGGAメッセージから、動画のフレームごとの位置情報とyaw・pitch・rollを計算します。GNSSデータ間隔の間にあるフレームの情報は線形補間されます。
高さは楕円体高または標高で標高の場合「ジオイド2024日本とその周辺」を使い計算されます。 - IMUの値とオフセットからカメラ位置を計算したフライトログを出力します。
- exiftool.exeがある場合Exifにオフセット計算された緯度・経度・楕円体高を高精度で書込みます。
効果
画像に正確な位置情報を付与することで、以下の効果が期待できます。
- 写真のマッピングにかかる時間の短縮
- 解析によって生成される点群への座標付与
インストール
このプログラムは最新のDrogger Processorに含まれております。未インストールの場合はDrogger Processorをインストールしてください。既にインストールされている場合は最新に更新します。
Drogger Processorの[ツール]-[Drogger Tools]-[MJpeg.]をクリックで起動できます。

MJpegから使用する外部ツール
MJpegだけで利用できますが、外部ツールを使用するとより便利に利用できます。
ffmpeg
ffmpegがあると画像の切り出しが高速に行えます。
- ffmpeg ダウンロードページよりffmpeg-master-latest-win64-gpl-shared.zipをクリックします。
- ダウンロードできたら適当なフォルダに解凍します。
exiftool
通常、写真解析ソフトは画像に対する位置情報ファイルをサポートしているため、デフォルトでは画像のexifに位置は書き込みしませんがexiftoolを使うと書き込みを行うことができます。ただ、フライトデータを使用する場合はこのツールは不要です。EXIFへの書き込みは時間のムダになります。
- exiftool ダウンロードページより、 exiftool-13.24_64.zipをクリックします。
- ダウンロードできたら適当なフォルダに解凍します。
- 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データを正しく記録するには、磁気センサーのキャリブレーションを行います。キャリブレーションは周囲に磁気や金属のない開けた場所で行ってください。
動画の撮影の準備とRTKのFIXが確認できたら、メイン画面の[Logging Control]で NMEA ▶でNMEAのロギングを開始します。

このあと、動画の撮影を開始してください。
NMEAデータの転送
撮影が終わりましたら、NMEAのロギングを停止します。また、データ一覧から記録したNMEAデータをPCに転送します。
MJpegで処理

処理を行う前に各種情報の設定を行います。設定は4つのタブに分かれています。左から順に設定します。
入力タブ
| 項目 | 説明 | 補足 |
|---|---|---|
| 動画ファイル | 撮影した動画ファイルの場所を指定します | |
| NMEAファイル | ロギングした NMEAファイルの場所を指定します | GGAとPRDIDが記録されたNMEAです。 |
GNSSと動画同期タブ
| 項目 | 説明 | 補足 |
|---|---|---|
| GNSSと動画の同期 |
|
GoProによるAutoの場合、フレーム間隔以下の精度での正確な同期が可能です。時計バイアスはゼロです。 GoProで正確な同期をするには、オープンスカイにてGoProの電源を早めに入れGPS測位できている状態にする必要があります。 |
出力タブ
| 項目 | 説明 | 補足 |
|---|---|---|
| 出力フォルダ | 切り出した画像を保存するフォルダを指定します。また、このフォルダに画像名と位置情報を記録したファイルflightlog.txtを出力します。 | |
| 出力間隔 | 動画フレーム何枚ごとに画像を切り出すか指定します | 通常の動画は30フレーム/秒です。30と指定すると1秒ごとに画像を切り出します |
| 画像品質 | 高、中、低から選択できます。 | |
| フライトデータ | IMUの値も記録したフライトログを生成できます。座標値は、指定したオフセットで補正したカメラ位置の座標が出力されます。
|
位置精度は一律 X Y0.05 H 0.1mの固定値としています。 (値を良くしすぎると束縛が強すぎてモデルに歪みを生じる可能性があります) |
外部プログラム
| 項目 | 説明 | 補足 |
|---|---|---|
| ffmpeg | ffmpegを使用する場合チェックします。ffmpegを使うと高速に画像の切り出しが行えます。ffmpeg.exeがあるフォルダを指定します | 例 c:\temp\ffmpeg-master-latest-win64-gpl-shared\bin |
| exiftool | exiftoolを使うとEXIFに位置情報を書き込むことができます。
|
例 c:\temp\exiftool-13.24_64 カメラのメーカーとモデルは、そのカメラで撮影した画像ファイルをWindowsのエクスプローラでプロパティを開き、詳細タブのそれぞれの項目で確認できます。 |
パラメータの設定ができたら、[開始]ボタンをクリックします。
出力の確認
[開始]ボタン下の[出力フォルダを開く]をクリックします。
切り出した画像が確認できます。

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

exiftoolを使用した場合は、画像のEXIFでGPSの位置を確認できます。
- 保存された画像のフォルダが開きます。
- 画像を右クリックしてプロパティーを開きます。
- [詳細]タブを選択し、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では平面直角座標の場合、定義済のフォーマット通りですので、以下の図の定義を選択します。
