
ようこそ"動画物体検出/位置合わせライン"へ
この工程では、
の処理を行います。
GNSSデータ"gpx"と動画ファイル"mp4"を使って、「映像に何が映っているのか」と「映像のフレームはどの緯度経度に相当するのか」を特定する重要な処理を担当しています。
従来のてんかく忍者のパイプライン(工程)では、最初の工程としてGV-Syncが同期処理とデータベース化、静止画書き出しを担い、最終工程で、書き出された静止画に対して最終的にYOLOの物体検出を実行して、データベース上に検出結果を書き込んでいた工程に相当します。
この最初と最後を、まとめて最初にやってしまうことが"即時性を担保するため"のキーポイントです。
"decode_from_mp4"マネージャから呼び出される"video_out"主任、"builed_geotrack"主任がそれぞれの仕事をしています。
・体制図
job_queue_runner ライン長
⇒ decode_from_mp4 係長
⇒ video_out 主任
⇒ builed_geotrack 主任
まず初めに、この工程での完成品をご覧ください。
素材として投入されるgpxやmp4はこういうものです。
| [gpx素材] |
![]() |
| [mp4動画素材] |
![]() |
本工程での加工を通ったあと
物体検出の結果がオーバーレイされた動画
と
物体検出の記録
そして、物体検出動画と属性情報を重ね合わせて表示できる字幕ファイルが生成されます。
| [YOLO物体検出済み動画mp4] |
![]() |
| [YOLO検出結果テキスト] |
![]() |
| [字幕付き動画] |
![]() |
そして、中身はバイナリなため、特殊なビューアでしか見られませんが、parquetデータベースが完成します。
| [parquetの中身:VSCodeプラグインで表示] |
![]() |
TenkakuNinjaFactory のジョブキュー(job_queue.json)を定期的にスキャンし、
decode_from_mp4.py を自動実行するランナー。
主な機能:
ジョブフォルダのうち、.job.jsonから読み取ったステータスが、PENDINGのものを、動画物体検出処理対象として処理します。
_yolo.txtや_yolo.mp4が既に存在する場合は処理をスキップします。
動画から同期音声トラックを抜き出し、ビートの検出とスタートの特定を実行し、minimodemによる同期音声復号を行います。
次にvideo_out.pyによってYOLOによる動画物体検出を行います。
主な機能:
・動画のFPSに応じた案分処理:shred_self
・特徴的な機能"同期音声の検出":detect_first_beat、analyze_beat
・特徴的な機能"ドロップフレーム処理":get_fps_from_video、is_drop_frame、time_to_frame
| フレームの同期 |
![]() |
| スタートフレームの検出 |
![]() |
| 同期後後の案分処理 |
![]() |
主な機能:
最後に、同期音声の情報と.動画フレーム、gpxの整合を確保し、フレーム数による案分処理をした結果をparquet形式のデータベースとして書き込みます。
またyolo物体検出結果動画の字幕として使える.srtファイルを生成します。
一連の加工を終了すると、.job.jsonの作業ステータスを"DONE"に更新します。

この工程から出力される成果品
▼この記事を書いたひと

R&Dセンター 松井 良行
R&Dセンター 技術戦略担当部長。コンピュータと共に35年。そしてこれからも!
●富士見事務所 TEL : 052-228-8744(交通部営業課) FAX : 052-323-3337(交通部共通)
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711
地図
PoCのお問い合わせ:交通部営業課
技術的なお問い合わせ:R&Dセンター


