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

此類實現了一種非常高效且魯棒的迭代最近點(ICP)演算法。 任務是將 3D 模型(或點雲)與一組噪聲目標資料進行配準。 這些變體是我在經過某些測試後組合在一起的。 任務是能夠快速匹配雜亂場景中的部分噪聲點雲。 您會發現我強調的是效能,同時保持準確性。 此實現基於 Tolga Birdal 在此處的 MATLAB 實現:http://www.mathworks.com/matlabcentral/fileexchange/47152-icp-registration-using-efficient-variants-and-multi-resolution-scheme 主要貢獻來自:更多...

#include <opencv2/surface_matching/icp.hpp>

cv::ppf_match_3d::ICP 的協作圖

公共型別

列舉  {
  ICP_SAMPLING_TYPE_UNIFORM = 0 ,
  ICP_SAMPLING_TYPE_GELFAND = 1
}
 

公共成員函式

 ICP ()
 
 ICP (const int iterations, const float tolerence=0.05f, const float rejectionScale=2.5f, const int numLevels=6, const int sampleType=ICP::ICP_SAMPLING_TYPE_UNIFORM, const int numMaxCorr=1)
 ICP 建構函式,帶有預設引數。
 
virtual ~ICP ()
 
int registerModelToScene (const Mat &srcPC, const Mat &dstPC, double &residual, Matx44d &pose)
 執行配準。
 
int registerModelToScene (const Mat &srcPC, const Mat &dstPC, std::vector< Pose3DPtr > &poses)
 執行具有多個初始姿勢的配準。
 

詳細描述

此類實現了一種非常高效且魯棒的迭代最近點(ICP)演算法。 任務是將 3D 模型(或點雲)與一組噪聲目標資料進行配準。 這些變體是我在經過某些測試後組合在一起的。 任務是能夠快速匹配雜亂場景中的部分噪聲點雲。 您會發現我強調的是效能,同時保持準確性。 此實現基於 Tolga Birdal 在此處的 MATLAB 實現:http://www.mathworks.com/matlabcentral/fileexchange/47152-icp-registration-using-efficient-variants-and-multi-resolution-scheme 主要貢獻來自

  1. Picky ICP: http://www5.informatik.uni-erlangen.de/Forschung/Publikationen/2003/Zinsser03-ARI.pdf
  2. ICP 演算法的高效變體:http://docs.happycoders.org/orgadoc/graphics/imaging/fasticp_paper.pdf
  3. ICP 演算法的幾何穩定取樣:https://graphics.stanford.edu/papers/stabicp/stabicp.pdf
  4. 多解析度配準:http://www.cvl.iis.u-tokyo.ac.jp/~oishi/Papers/Alignment/Jost_MultiResolutionICP_3DIM03.pdf
  5. Kok Lim Low 的點到平面度量線性化:https://www.comp.nus.edu.sg/~lowkl/publications/lowk_point-to-plane_icp_techrep.pdf

成員列舉文件

◆ 匿名列舉

匿名列舉
列舉器
ICP_SAMPLING_TYPE_UNIFORM 
ICP_SAMPLING_TYPE_GELFAND 

建構函式 & 解構函式文件

◆ ICP() [1/2]

cv::ppf_match_3d::ICP::ICP ( )
inline
Python
cv.ppf_match_3d.ICP() -> <ppf_match_3d_ICP 物件>
cv.ppf_match_3d.ICP(iterations[, tolerence[, rejectionScale[, numLevels[, sampleType[, numMaxCorr]]]]]) -> <ppf_match_3d_ICP 物件>

◆ ~ICP()

virtual cv::ppf_match_3d::ICP::~ICP ( )
內聯虛擬

◆ ICP() [2/2]

cv::ppf_match_3d::ICP::ICP ( const int iterations,
const float tolerence = 0.05f,
const float rejectionScale = 2.5f,
const int numLevels = 6,
const int sampleType = ICP::ICP_SAMPLING_TYPE_UNIFORM,
const int numMaxCorr = 1 )
inline
Python
cv.ppf_match_3d.ICP() -> <ppf_match_3d_ICP 物件>
cv.ppf_match_3d.ICP(iterations[, tolerence[, rejectionScale[, numLevels[, sampleType[, numMaxCorr]]]]]) -> <ppf_match_3d_ICP 物件>

ICP 建構函式,帶有預設引數。

引數
[輸入]iterations
[輸入]tolerence控制 ICP 每次迭代的配準精度。
[輸入]rejectionScale應用魯棒的異常值剔除以實現魯棒性。 此值實際上對應於標準偏差係數。 在配準期間,將忽略具有 rejectionScale * &sigma 的點。
[輸入]numLevels要進行的金字塔層數。 深金字塔提高了速度,但降低了精度。 太粗糙的金字塔可能會在不準確的配準之上產生計算開銷。 應選擇此引數以最佳化平衡。 典型值範圍為 4 到 10。
[輸入]sampleType當前忽略此引數,僅應用均勻取樣。 將其保留為 0。
[輸入]numMaxCorr當前忽略此引數,僅應用 PickyICP。 將其保留為 1。

成員函式文件

◆ registerModelToScene() [1/2]

int cv::ppf_match_3d::ICP::registerModelToScene ( const Mat & srcPC,
const Mat & dstPC,
double & residual,
Matx44d & pose )
Python
cv.ppf_match_3d.ICP.registerModelToScene(srcPC, dstPC) -> retval, residual, pose
cv.ppf_match_3d.ICP.registerModelToScene(srcPC, dstPC, poses) -> retval, poses

執行配準。

引數
[輸入]srcPC模型的輸入點雲。 預期具有法線 (Nx6)。 目前,CV_32F 是唯一支援的資料型別。
[輸入]dstPC場景的輸入點雲。 假設模型已在場景中註冊。 場景保持靜態。 預期具有法線 (Nx6)。 目前,CV_32F 是唯一支援的資料型別。
[輸出]residual輸出配準誤差。
[輸出]posesrcPC 和 dstPC 之間的變換。
返回
成功終止時,函式返回 0。

假設模型已在場景中註冊。 場景保持靜態,而模型進行變換。 輸出姿勢將模型變換到場景上。 由於點到平面的最小化,因此場景應具有可用的法線。 預期具有法線 (Nx6)。

◆ registerModelToScene() [2/2]

int cv::ppf_match_3d::ICP::registerModelToScene ( const Mat & srcPC,
const Mat & dstPC,
std::vector< Pose3DPtr > & poses )
Python
cv.ppf_match_3d.ICP.registerModelToScene(srcPC, dstPC) -> retval, residual, pose
cv.ppf_match_3d.ICP.registerModelToScene(srcPC, dstPC, poses) -> retval, poses

執行具有多個初始姿勢的配準。

引數
[輸入]srcPC模型的輸入點雲。 預期具有法線 (Nx6)。 目前,CV_32F 是唯一支援的資料型別。
[輸入]dstPC場景的輸入點雲。 目前,CV_32F 是唯一支援的資料型別。
[in,out]poses從輸入姿勢開始,但也列出姿勢的輸出。
返回
成功終止時,函式返回 0。

假設模型已在場景中註冊。 場景保持靜態,而模型進行變換。 輸出姿勢將模型變換到場景上。 由於點到平面的最小化,因此場景應具有可用的法線。 預期具有法線 (Nx6)。


此類文件由以下檔案生成