3D camera design policy document
- 3D カメラを用いた以下の処理を組合せを簡単にし、アルゴリズムの差し替えを簡単にするインタフェースがほしい。 この文書は、3Dカメラのユーザーが、カメラ画像を取得する・深度を取得する・検出を実施するなどの処理を行う際に 再利用が容易になるモジュールの設計を簡単にする指針を示すことを目標とする。
- 3Dカメラの利用・画像認識:
- 複数の機能の連携が重要
- それぞれのタスク間の連携をしやすく
- タスクに対する実装の入れ替えはよく起こる
- データ構造の変換作業というオーバーヘッドを生じさせたくない。
- 3Dカメラ取得データの扱いを、3Dカメラの種類によらず簡単にしたい。
- センサデータのデータフローを単純化させたい。
- そこそこにいい出発点が大事
- 3Dカメラ・各種画像認識について、最初からそこそこいい出発点に立てることが大切。
- 教科書のアルゴリズムよりもいい実装が存在する。
- 楽をできる部分を見つけて楽をする。
- 数万、数十万人の開発者がいる時代に:
- いいものを使えることが大事。
- 論文ベースのSOTAであることより、ロバストであることが大事。
- いいものを自分が書くよりも、いいものを見極められることがまずは大事。
- それらよりも、いいものが作れる確信ができたら、実装しよう。
- カメラの種類
- Stereo Camera
- ToF Camera
- Active stereo camera
- monocular camera (exceptional)
- 機能
- 画像取得
- 視差の計算
- カメラのIMU、timestamp の取得
- 点群への換算
- 物体検出
- 物体検出結果の3Dでの座標取得
- 物体検出のセグメンテーション
- セグメンテーションベースの物体検出結果の3Dでの座標取得
- open vocabulary での物体検出
- open vocabulary でのセグメンテーション
- 物体の2Dでの追跡
- 物体の3Dでの追跡
- 特定の対象物でのポーズ推定
- (2D, 3D)
- 人の全身・頭部・手
- 車両のポーズ推定
- その他
- 推奨例:
- Open3D
- アルゴリズムのモジュールにおいては、画像表示・点群表示・top viewの表示自体もライブラリ化した部分には含めない。
- 理由:画像認識モジュールは、head less のシステムで利用されることが想定されるため。
- 実装例: 以下のような表示を作るためのモジュールのAPIを提供する。
- モジュールを実装する言語によらない受け渡しの方法があること
- 例:protobuf
- 同一言語内では、その言語内で便利な受け渡し方法があってよい。
- 例:dataclasses-json, pyserde
- 深層学習・VisionTransformer の進展は、既存のタスクのフレームワークをどんどん置換えている。
- arXivのpdfとともにgithub 上のレポジトリも公開されている。
- これらの中には、Jetsonのような組み込みデバイスで動作可能なものもある。
- 例:ステレオ計測はOpenCVのStereoSGBMだけじゃない。
https://github.com/katsunori-waragai/libIGEVStereo
reducing latency and camera pose
スレッド処理 GStreamer もしくはNVIDIA DeepStream
- このプロジェクトのドキュメントを自由に展開してください。
- このプロジェクトで紹介するOSSの実装を自由にご利用ください。
- 関連する有益な情報の入手先のURLを教えてください。反映します。