Skip to content

katsunori-waragai/3D-camera-design-policy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3D-camera-design-policy

3D camera design policy document

Purpose

  • 3D カメラを用いた以下の処理を組合せを簡単にし、アルゴリズムの差し替えを簡単にするインタフェースがほしい。 この文書は、3Dカメラのユーザーが、カメラ画像を取得する・深度を取得する・検出を実施するなどの処理を行う際に 再利用が容易になるモジュールの設計を簡単にする指針を示すことを目標とする。

ソフトウェアのインタフェースのデザインを重視する理由

  • 3Dカメラの利用・画像認識:
    • 複数の機能の連携が重要
    • それぞれのタスク間の連携をしやすく
    • タスクに対する実装の入れ替えはよく起こる
    • データ構造の変換作業というオーバーヘッドを生じさせたくない。
    • 3Dカメラ取得データの扱いを、3Dカメラの種類によらず簡単にしたい。
    • センサデータのデータフローを単純化させたい。
  • そこそこにいい出発点が大事
    • 3Dカメラ・各種画像認識について、最初からそこそこいい出発点に立てることが大切。
    • 教科書のアルゴリズムよりもいい実装が存在する。
    • 楽をできる部分を見つけて楽をする。
  • 数万、数十万人の開発者がいる時代に:
    • いいものを使えることが大事。
    • 論文ベースのSOTAであることより、ロバストであることが大事。
    • いいものを自分が書くよりも、いいものを見極められることがまずは大事。
    • それらよりも、いいものが作れる確信ができたら、実装しよう。

3D cameras

  • カメラの種類
    • Stereo Camera
    • ToF Camera
    • Active stereo camera
    • monocular camera (exceptional)
  • 機能
    • 画像取得
    • 視差の計算
    • カメラのIMU、timestamp の取得
    • 点群への換算
    • 物体検出
      • 物体検出結果の3Dでの座標取得
    • 物体検出のセグメンテーション
      • セグメンテーションベースの物体検出結果の3Dでの座標取得
    • open vocabulary での物体検出
    • open vocabulary でのセグメンテーション
    • 物体の2Dでの追跡
    • 物体の3Dでの追跡
    • 特定の対象物でのポーズ推定
      • (2D, 3D)
      • 人の全身・頭部・手
      • 車両のポーズ推定
      • その他

カメラ・OSへの依存性の少ないライブラリを推奨する。

  • 推奨例:
  • Open3D

表示方法の問題

  • アルゴリズムのモジュールにおいては、画像表示・点群表示・top viewの表示自体もライブラリ化した部分には含めない。
  • 理由:画像認識モジュールは、head less のシステムで利用されることが想定されるため。
  • 実装例: 以下のような表示を作るためのモジュールのAPIを提供する。

https://github.com/katsunori-waragai/disparity-view

検出結果の受け渡しの問題

  • モジュールを実装する言語によらない受け渡しの方法があること
    • 例:protobuf
  • 同一言語内では、その言語内で便利な受け渡し方法があってよい。
    • 例:dataclasses-json, pyserde

最近の知見の共有

  • 深層学習・VisionTransformer の進展は、既存のタスクのフレームワークをどんどん置換えている。
  • arXivのpdfとともにgithub 上のレポジトリも公開されている。
  • これらの中には、Jetsonのような組み込みデバイスで動作可能なものもある。
  • 例:ステレオ計測はOpenCVのStereoSGBMだけじゃない。

https://github.com/katsunori-waragai/libIGEVStereo

目次

第1章 設計の方針

第2章 3Dカメラの選択・ボードの選択・フレームワークの選択

第3章 フレームの扱いと代表的なタスク

第4章 遅延時間とカメラ姿勢の問題

reducing latency and camera pose

第5章 スレッド処理

スレッド処理 GStreamer もしくはNVIDIA DeepStream

第6章 Open3D and ROS2

第7章 3Dカメラでの計測と物体検出についての提案の私見

第8章 試験的な実装

第9章 対象外のこと

対象外のこと

Appendix

あなたにできること

  • このプロジェクトのドキュメントを自由に展開してください。
  • このプロジェクトで紹介するOSSの実装を自由にご利用ください。
  • 関連する有益な情報の入手先のURLを教えてください。反映します。

ドキュメントの作成状況

Releases

No releases published

Packages

No packages published