OpenCV 4.5.3(日本語機械翻訳)
|
Large Scale Dense Depth Fusion implementation [詳解]
#include <large_kinfu.hpp>
公開メンバ関数 |
|
virtual const Params & | getParams () const =0 |
virtual CV_WRAP void | render (OutputArray image) const =0 |
virtual CV_WRAP void | render (OutputArray image, const Matx44f &cameraPose) const =0 |
virtual CV_WRAP void | getCloud (OutputArray points, OutputArray normals) const =0 |
virtual CV_WRAP void | getPoints (OutputArray points) const =0 |
virtual CV_WRAP void | getNormals (InputArray points, OutputArray normals) const =0 |
virtual CV_WRAP void | reset ()=0 |
virtual const Affine3f | getPose () const =0 |
virtual CV_WRAP bool | update (InputArray depth)=0 |
静的公開メンバ関数 |
|
static CV_WRAP Ptr< LargeKinfu > | create (const Ptr< Params > &_params) |
大規模高密度奥行き融合の実装
このクラスは、空間的にハッシュ化されたTSDFボリューム "Submaps "を使用して、大規模な環境のための3D再構成アルゴリズムを実装しています。また、定期的にポーズグラフの最適化を行い、長時間のシーケンスにおけるトラッキングのドリフトを最小化します。現在、このアルゴリズムには、再配置やループクローズのモジュールは実装されていません。Glocker et al. ISMAR 2013に記載されているようなBag of wordsの実装やRGBDの再定位が実装される可能性があります。
このクラスは,深度センサ(または,ステレオカメラマッチングアルゴリズムやレイマーチングレンダラなどの任意の深度画像ソース)から取得した一連の深度画像を受け取ります。出力は,点とその法線のベクトルとして得られるほか,与えられたカメラのポーズからフォンレンダリングすることもできます.
モデルの内部表現は、空間的にハッシュ化されたボクセルキューブで、最も近いサーフェスまでの距離を表すTSDF値を格納しています。[kinectfusion] の詳細はTSDFについての記事をご覧ください)。この表現に対するインターフェースはまだありません。
ポジグラフの最適化のために、ボリュームクラスの上にサブマップの抽象化を作成します。新しいサブマップは、現在のビューイング・フラストラムと既存のボリューム/モデルとの間に視認性の低いオーバーラップがある場合に、モデルに追加されます。複数のサブマップが同時に追跡され、ポゼグラフが作成され、定期的に最適化されます。
LargeKinfuは、まだOpenCLアクセラレーションを使用していません。明示的に有効または無効にするにはcv::setUseOptimized()または cv::ocl::setUseOpenCL().
この実装は、Kintinuous、InfiniTAM、その他のSOTAアルゴリズムを参考にしています。
KinectFusionを使用するには、CMakeでOPENCV_ENABLE_NONFREEオプションを設定する必要があります。