長い学習なしでロボットに物体認識を教える方法
Imagine this: you bought a new manipulator or decided to build a smart camera for sorting parts. You have a bunch of different objects — from soda cans to complex spare parts. The standard path in Computer Vision today is to collect a dataset, label thousands of frames, train a model, and hope it doesn\'t "drift" under different lighting. And if a new object appears tomorrow? You\'ll have to start all over again.
Engineers from NVIDIA Research seem to have gotten tired of this endless cycle and rolled out FoundationPose. It\'s a unified model for 6D pose estimation (position and orientation in space) and object tracking that works "out of the box" even with objects it has never seen during training.
メインニュースとは
通常、6Dポーズ推定タスクは2つの阵营に分けられます。1つは物体の精密なCADモデルがある場合(モデルベース)、もう1つは異なる角度から撮影した数枚の写真しかない場合(モデルフリー)です。FoundationPoseはこれらのアプローチを組み合わせています。
このプロジェクトの興味深い点は、特定のタスクに対するファインチューニングが不要であることです。3Dモデルまたは参照画像のセットを与えるだけで、物体の空間座標の出力をすぐに開始します。現在、このソリューションは新規物体向けメソッドの中でBOP(6D物体ポーズ推定ベンチマーク)の世界リーダーボードで第1位を獲得しています。
内部的动作の仕組み
開発者は、この柔軟なを実現するために、いくつかの工夫を凝らしています。
まず、ニューラル暗黙表現(neural implicit representation)を適用しました。これにより、システムが物体の新しいビューをオンデマンドで合成できるようになり、 готовый3Dモデルがある場合と数枚の写真しかない場合で、ポーズ推定プロセスが同一になります。
次に、学習規模が印象的です。このモデルは大量の合成データで学習されています。興味深い点として、このデータの生成に大規模言語モデル(LLM)が関与していました。これにより、手動では得るのが難しい多様なシナリオやテクスチャを作成できました。
第3に、アーキテクチャはTransformerとコントラスト学習に基づいています。簡略化すると、このモデルは現在のフレームと参照を比較し、「この特定のドリル」の特定機能に依存せずに、物体がどのように回転しているかを理解することを学習します。
プロジェクトの実用的な機能
リポジトリのデモを見ると、3つの主要な使用シナリオが確認できます:
- ロボティクス。ロボットが常に動いているマスタードボトルを掴みます。システムはリアルタイムでポーズを再計算し、マニピュレータにとってこれが重要です。
- 拡張現実(AR)。仮想オブジェクトがジャダーやシフトなしで実際のオブジェクトに「接着」されます。
- 複雑なデータセットでの作業。モデルは、 многиеオクルージョン(ある物体が別の物体を遮る場合)がある古典的なベンチマークであるYCB-Video也很好に処理します。
ちなみに、プロダクションで速度を重視する方のために、NVIDIAはTensorRTサポート付きのROSバージョンを準備しています。これにより、GPU最適化によりFPSが大幅に向上します。
起動して試す方法
このようなMLプロジェクトのデプロイは依存関係地獄になることがありますが、ここでは著者が2つの合理的な方法を提案しています。
最もシンプルな方法はDockerです。チームですべてのCUDAのコツがすでに設定されたイメージを準備しています。
Condaを好む場合、プロセスは少し複雑で、C++とCUDA拡張を手動でビルドする必要があります。PyTorch、PyTorch3D、NVDiffRastをインストールする必要があります。
セットアップ後 демоの実行は簡単です:
python run_demo.py
" width="80%">
デフォルトでは、スクリプトはデモデータからマスタードボトルの追跡を説明します。まず初期化(最初のフレームでのポーズ推定)があり、その後トラッキングモードに自動的に切り替わります。
ニュアンスと制限事項
どんなグラフィックスカードでも完璧に動作するとは思わないでください。例えば、RTX 4090の所有者は、新しいCUDAカーネルの特性により、カスタムDockerイメージを使用する必要があります。
もう1つの重要な点として、Stable Diffusionのライセンス制限(学習用のテクスチャ生成に使用された)のため、著者は拡散拡張で学習されたモデル重みをリリースできませんでした。パブリックバージョンはややシンプルであるため、公式研究論文で報告されているよりも精度がわずかに低い場合があります。
誰が恩恵を受けるか
FoundationPoseは、数百件のCVPR論文の一つではない別のニューラルネットワークです。これは以下に取り組む人々のための готовый基盤です:
- ウェアハウスロボティクス(システムに新しい製品を迅速に追加する必要がある場合)。
- 製造における品質管理。
- インタラクティブなARアプリケーションの作成。
空間内の物体の位置を特定する必要があり、新しい「小さなねじ」ごとに何週間もデータセットを収集したくない場合、このリポジトリは確かにブックマークする価値があります。このプロジェクトはアクティブで、Issueで積極的に議論されており、BOPでのリーダーボード首位は、今日この分野で最強のSOTAメソッドの1つであることを示唆しています。
関連プロジェクト