第1章 設計の方針 で述べている考え方に基づいて、試験的な実装を試みている。 それらの実装のリポジトリのリストを示す。
視差データをnpyファイルで保存してあるのを可視化するツール。
- 視差データをcolormapで表示
- colormapの視差データと左画像との重ね書き
- 法線ベクトルの向きによる色分け
- 点群データからの再投影
- 点群データのplyファイルへの保存 おまけの機能として、ZED2iカメラからのステレオ画像の保存ツールを同梱。
ステレオ計測アルゴリズムの1例を、モジュールとしてインストール可能なように改変したもの。 IGEVは近年のステレオライブラリの1つ。 細い領域に対しても視差の計算ができるようになってきている。 保存した結果は、上述のviewer によって可視化できる。
ステレオ計測アルゴリズムの1例、ここではOpenCVのStereoSGBMを、同様なインタフェースをもつモジュールとしてインストール可能なように改変したもの。 実装自体に新規性はない。
単眼画像に対する深度予測のライブラリにdepth-anythingがある。 それをJetson AGX orin に移植してある実装を、モジュールとしてインストール可能なように改変したもの。 それを利用したサンプルとして、ZED SDKでの深度にスケーリングを合わせ込んだ単眼深度画像(正確には単眼での視差相当画像)を作成するスクリプトを含む。
大半の3Dカメラには、近距離側の計測限界がある。そのためカメラに写っている至近距離の物体が、欠損値になってしまう。 このことを回避するには、 作業距離を近距離側の計測限界より遠くなるようにする、 超音波センサでの物体検出をする、 のような対策が必要になる。
Depth-Anything を使えば、至近距離での物体があることに気づける。(距離の精度は不十分かもしれないが) 欠損値として無視してしまうのを避けるための実装である。
YOLOX とZED SDKとの組合せた実装例
https://github.com/stereolabs/zed-sdk/tree/master/object%20detection/custom%20detector/python/pytorch_yolov8 の実装をヒントに、yolov8の代わりにyoloxを用いたもの。
- このコードは、pytorch_yolov8 に似せて書いた。
- StereoLabs にこのコードを寄付した。
- StereoLabsで動作検証されて、標準の配布物になればうれしいと思っている。
- YOLOX と同じMIT ライセンスを選択した。
grounded-segment-anything with ZED SDK
Open Vocaburary でのセグメンテーションとZED SDKでの連動の実装例
- 深度情報とセグメンテーションとを画素単位で対応付けすることができる。
- ZED SDK の算出する世界座標系と、Open Vocaburary でのセグメンテーションとを対応付けることができる。
- できないこと:
- text_prompt で指定されていない物体へのセグメンテーション。
- 物体の見えてない範囲についての仮説の生成
- 次の行動を引き起こすための、把持位置についての仮説の生成
- 周辺環境を考慮して、ぶつからないためのアームとハンドの行動計画の生成
- これらの課題については、それぞれに適した実装を探すこと。
- 大規模言語モデルがJetsonで動作することの検証結果
- Dockerfileでの動作
- オリジナルは git clone をすることにした。
NVIDIA Jetson AGX orin で動作確認したLLMへのDocker設定 それぞれのリポジトリは、Dockerfile の中で git clone している。 そのためこのリポジトリの中では、オリジナルのリポジトリをfork していない。
- https://github.com/owenzlz/EgoHOS
- https://github.com/IDEA-Research/Grounded-Segment-Anything0
- Segmentation AnythingをOpen Vocabulary と関連付けたもの。
- Open Vocabularyで、物体の領域がピクセル単位でわかる。 ![https://github.com/IDEA-Research/Grounded-Segment-Anything/raw/main/assets/ram_grounded_sam_new.png]
- https://github.com/IDEA-Research/GroundingDINO
- 自然言語で指定した記述にそって物体検出ができる。
- 文章で指定したものをなんでも検出できるAI Grounding DINO
- https://github.com/NVIDIA-AI-IOT/nanoowl
- Jetson対応済み
- Jetsonで高速に操作するように移植されたOWL-ViT
- これも自然言語で指定した記述にそって物体検出ができる。
- https://github.com/NVIDIA-AI-IOT/nanosam
- 既にJetson対応済み
- Jetsonで高速に操作するように移植されたSegmantation Anything