OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
cv::large_kinfu::LargeKinfu 類參考抽象類

大規模密集深度融合實現。 更多...

#include <opencv2/rgbd/large_kinfu.hpp>

cv::large_kinfu::LargeKinfu 的協作圖

公共成員函式

virtual ~LargeKinfu ()=default
 
virtual void getCloud (OutputArray points, OutputArray normals) const =0
 
virtual void getNormals (InputArray points, OutputArray normals) const =0
 
virtual const ParamsgetParams () const =0
 
virtual void getPoints (OutputArray points) const =0
 
virtual Affine3f getPose () const =0
 
virtual void render (OutputArray image) const =0
 
virtual void render (OutputArray image, const Matx44f &cameraPose) const =0
 
virtual void reset ()=0
 
virtual bool update (InputArray depth)=0
 

靜態公共成員函式

static Ptr< LargeKinfucreate (const Ptr< Params > &_params)
 

詳細描述

大規模密集深度融合實現。

此類使用空間雜湊 TSDF 體積“子圖”實現用於較大環境的 3D 重建演算法。 它還執行週期性的姿勢圖最佳化,以最大限度地減少長序列跟蹤中的漂移。 目前,該演算法未實現重定位或閉環模組。 Glocker 等人在 ISMAR 2013 中描述的潛在詞袋實現或 RGBD 重定位將被實現

它採用從深度感測器(或任何深度影像源,如立體相機匹配演算法,甚至光線行進渲染器)拍攝的一系列深度影像。 輸出可以作為點向量及其法線獲得,或者可以從給定的相機姿勢進行 Phong 渲染。

模型的內部表示是一個空間雜湊體素立方體,它儲存 TSDF 值,這些值表示到最近表面的距離(有關詳細資訊,請閱讀有關 TSDF 的 [136] 文章)。 目前還沒有到該表示的介面。

對於姿勢圖最佳化,建立了 Volume 類的 Submap 抽象。 噹噹前視錐體和現有體積/模型之間的可見性重疊較低時,新的子圖將新增到模型中。 同時跟蹤多個子圖,並定期建立和最佳化姿勢圖。

LargeKinfu 尚未使用任何 OpenCL 加速。 要顯式啟用或停用它,請使用 cv::setUseOptimized()cv::ocl::setUseOpenCL()

此實現受到 Kintinuous、InfiniTAM 和其他 SOTA 演算法的啟發

您需要在 CMake 中設定 OPENCV_ENABLE_NONFREE 選項才能使用 KinectFusion。

建構函式 & 解構函式文件

◆ ~LargeKinfu()

virtual cv::large_kinfu::LargeKinfu::~LargeKinfu ( )
virtualdefault

成員函式文件

◆ create()

static Ptr< LargeKinfu > cv::large_kinfu::LargeKinfu::create ( const Ptr< Params > & _params)
static
Python
cv.large_kinfu.LargeKinfu.create(_params) -> retval
cv.large_kinfu.LargeKinfu_create(_params) -> retval

◆ getCloud()

virtual void cv::large_kinfu::LargeKinfu::getCloud ( OutputArray points,
OutputArray normals ) const
純虛擬函式
Python
cv.large_kinfu.LargeKinfu.getCloud([, points[, normals]]) -> points, normals

◆ getNormals()

virtual void cv::large_kinfu::LargeKinfu::getNormals ( InputArray points,
OutputArray normals ) const
純虛擬函式
Python
cv.large_kinfu.LargeKinfu.getNormals(points[, normals]) -> normals

◆ getParams()

virtual const Params & cv::large_kinfu::LargeKinfu::getParams ( ) const
純虛擬函式

◆ getPoints()

virtual void cv::large_kinfu::LargeKinfu::getPoints ( OutputArray points) const
純虛擬函式
Python
cv.large_kinfu.LargeKinfu.getPoints([, points]) -> points

◆ getPose()

virtual Affine3f cv::large_kinfu::LargeKinfu::getPose ( ) const
純虛擬函式

◆ render() [1/2]

virtual void cv::large_kinfu::LargeKinfu::render ( OutputArray image) const
純虛擬函式
Python
cv.large_kinfu.LargeKinfu.render([, image]) -> image
cv.large_kinfu.LargeKinfu.render(cameraPose[, image]) -> image

◆ render() [2/2]

virtual void cv::large_kinfu::LargeKinfu::render ( OutputArray image,
const Matx44f & cameraPose ) const
純虛擬函式
Python
cv.large_kinfu.LargeKinfu.render([, image]) -> image
cv.large_kinfu.LargeKinfu.render(cameraPose[, image]) -> image

◆ reset()

virtual void cv::large_kinfu::LargeKinfu::reset ( )
純虛擬函式
Python
cv.large_kinfu.LargeKinfu.reset() ->

◆ update()

virtual bool cv::large_kinfu::LargeKinfu::update ( InputArray 深度)
純虛擬函式
Python
cv.large_kinfu.LargeKinfu.update(深度) -> retval

此類文件由以下檔案生成