#KL26-124 動画作成スクリプト - #35
Conversation
|
opencvで動画を作成する代わりに,FFmpegで動画化することで高速化を目指す。 |
|
EtRobocon2026.cppを書き換えたままpushしちゃってるからCIのテストが終了しなくなってる。 |
|
あれ、今の実装だと、その時に検出したBBoxを描画するだけ? 調整に使いたいから、実際に見てるところに加えて、その時指定してるtargetXとか、ROIとかも一緒に描画したいって話で進んでたと思うんだけど。 仕様から再確認した方が良さそうです。 |
|
詰まったので仕様の再確認と意見欲しいです。 |
There was a problem hiding this comment.
保存を並列化したって話があったけど、それを実装できてそうには見えなかった(??)
コミット履歴には変更の痕跡があった。
このコミットでは画像処理のクラスでFrameSaveの関数自体を別スレッドで実行するようにしてたけど、FrameSaveの関数の頭からお尻までをthreadで囲めば使う側は並列化を意識せずに呼び出すだけでよくなるのかな?
(余裕があれば、並列化を取り入れるついでに、処理を別スレッドで実行するためのthreadラッパークラスみたいなのをcommonに作ってもらえるとありがたいです。簡単に並列化できるようになれば今後助かる。これはできればの話なので、スルーしてもいいです。)
| @@ -1,3 +1,4 @@ | |||
| SHELL := /bin/bash | |||
There was a problem hiding this comment.
実機でsourceコマンドを使うために追記しました。
There was a problem hiding this comment.
sourceコマンドを使わずに直接python環境を指定するように変更したので消去しました。
…bocon2026 into ticket-KL26-124
別のPRで関数を並列で実行するラッパークラスを上げます。お願いします。 |
HaruArima08
left a comment
There was a problem hiding this comment.
遅くなリました🙇
確認と修正お願いします。
|
|
||
| /** | ||
| * @brief 値をint型にキャストして文字列に変換するヘルパー関数 | ||
| * @param value 変換する値 | ||
| * @return std::string 変換後の文字列 | ||
| */ | ||
| static std::string toStrInt(double value); |
There was a problem hiding this comment.
この関数はcommonにutils.hみたいなの作って置いといていいかもね
| * @example | ||
| * 静的メンバ関数の場合: | ||
| * MultiThread::wrap(FrameSave::save, frame, filePath, fileName); | ||
| * メンバ関数の場合: | ||
| * MultiThread::wrap(&class名::メンバ関数, &インスタンス, 引数1,引数2, 引数3...) | ||
| * 引数が参照型の場合はstd::ref()でのキャストが必要 |
| @@ -0,0 +1,410 @@ | |||
| """ | |||
| @file createVideo.py | |||
| @brief 保存された連続JPEG画像から、BoundingBox・文字を描画しつつ、FFmpegを利用し並列プロセスで高速に動画を作成する | |||
There was a problem hiding this comment.
コメントは、このくらいの粒度でよさそう
| @brief 保存された連続JPEG画像から、BoundingBox・文字を描画しつつ、FFmpegを利用し並列プロセスで高速に動画を作成する | |
| @brief 保存された連続JPEG画像から、走行ログ可視化動画を作成する |
| void memberFunc(DummyClassB& b) { b.value = 100; } | ||
| }; | ||
|
|
||
| // 7. 他のクラスの参照を引数に持つメンバ関数を非同期で実行するテスト |
There was a problem hiding this comment.
| // 7. 他のクラスの参照を引数に持つメンバ関数を非同期で実行するテスト | |
| // 他のクラスの参照を引数に持つメンバ関数を非同期で実行するテスト |
|
|
||
| namespace etrobocon2026_test { | ||
|
|
||
| TEST(MultiThreadTest, WrapFrameSave) {} |
There was a problem hiding this comment.
FrameSave::save()を非同期で実行できる仕様に対応したテストケースです。
追加し忘れてました。
|
同一の名前空間に同じ関数名がある場合、型推論できずエラーになるのでexampleを修正しました |
|
exampleを修正。呼び出し元のスコープを抜けた状態で実行すると、segamantation faultに |
チェックリスト
変更点
追加
-- 便利関数をまとめたたクラス
変更
-- commonの全ての.cppをコンパイルに含めるように
動作テスト
実機で画像を保存。手元のPCで動画作成
実験方法
実験結果
添付資料
作成した動画
https://app.notion.com/p/uom-katlab/387dd5b1cc18806e8effe1826db68694?source=copy_link