国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大盤點!匯總點云分割算法,涉及RANSAC、歐式聚類、區(qū)域增長等

這篇具有很好參考價值的文章主要介紹了大盤點!匯總點云分割算法,涉及RANSAC、歐式聚類、區(qū)域增長等。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

作者:PCIPG-zzl | 來源:計算機視覺工坊

添加微信:dddvisiona,備注:3D點云,拉你入群。文末附行業(yè)細分群。

點云分割優(yōu)化,算法,聚類,數(shù)據(jù)挖掘,機器學習,人工智能

1 什么是點云分割

點云分割的目標是將點云數(shù)據(jù)中的點分成不同的組或類別,使每個組中的點都屬于同一種物體或區(qū)域。根據(jù)空間,幾何和紋理等特征對點云進行劃分,使同一劃分內(nèi)的點云擁有相似的特征。點云分割的目的是分塊,從而便于單獨處理。分割過程有助于從各個方面分析場景,例如定位和識別對象、分類和特征提取。

點云的有效分割是許多應用的前提

  • 工業(yè)測量/逆向工程:對零件表面提前進行分割,再進行后續(xù)重建、計算特征等操作。

  • 遙感領域:對地物進行提前分割,再進行分類識別等工作

點云分割優(yōu)化,算法,聚類,數(shù)據(jù)挖掘,機器學習,人工智能
image.png

2 點云分割、分類和實例分割概念區(qū)分

點云分類(Point Cloud Classification):點云分類是將點云中的每個點分配到預定義的類別或標簽中的任務。點云分類可用于識別點云中的不同物體或地物,例如識別建筑物、樹木、汽車等。為每個點分配一個語義標記。點云的分類是將點云分類到不同的點云集。同一個點云集具有相似或相同的屬性,例如地面、樹木、人等。點云分類也叫做點云語義分割。實例分割(Instance Segmentation):實例分割是一種更高級的任務,它不僅要求識別點云中的不同物體或類別,還需要為每個物體中的每個點分配一個唯一的標識符,以區(qū)分不同實例。這使得實例分割能夠精確地區(qū)分出多個相同類別的物體,例如在一個點云場景中區(qū)分出多輛汽車或多棵樹。點云語義分割是指把一個大規(guī)模場景下的點云按照不同的類別給每個點云一個語義標簽,比如城市高速公路,所有的路燈會有一個相同的語義標簽,所有的路面會有 一個相同的語義標簽,所有的樹木會有同一個語義標簽。點云實例分割是在語義分割的基礎之上,把所有的路燈再一個一個分開,區(qū)別出來每一個路燈。這里也推薦「3D視覺工坊」新課程《三維點云處理:算法與實戰(zhàn)匯總》。

3 常見的點云分割算法

3.1 RANSAC算法

(Random Sample Consensus)隨機采樣一致性算法,采用迭代的方式從一組包含離群的被觀測數(shù)據(jù)中估算出數(shù)學模型的參數(shù)。RANSAC算法假設數(shù)據(jù)中包含正確數(shù)據(jù)和異常數(shù)據(jù)(或稱為噪聲),正確數(shù)據(jù)記為內(nèi)點(inliers),異常數(shù)據(jù)記為外點(outliers)點云分割優(yōu)化,算法,聚類,數(shù)據(jù)挖掘,機器學習,人工智能該算法核心思想就是隨機性和假設性:隨機性是根據(jù)正確數(shù)據(jù)出現(xiàn)概率去隨機選取抽樣數(shù)據(jù),根據(jù)大數(shù)定律,隨機性模擬可以近似得到正確結果。假設性是假設選取出的抽樣數(shù)據(jù)都是正確數(shù)據(jù),然后用這些正確數(shù)據(jù)通過問題滿足的模型,去計算其他點 ,然后對這次結果進行一個評分。算法流程

  1. 要得到一個直線模型,需要兩個點唯一確定一個直線方程。所以第一 步隨機選擇兩個點。

  2. 通過這兩個點,可以計算出這兩個點所表示的模型方程y=ax+b。

點云分割優(yōu)化,算法,聚類,數(shù)據(jù)挖掘,機器學習,人工智能

image.png
  1. 將所有的數(shù)據(jù)點套到這個模型中計算誤差。

  2. 找到所有滿足誤差閾值的點。

點云分割優(yōu)化,算法,聚類,數(shù)據(jù)挖掘,機器學習,人工智能

image.png
  1. 然后我們再重復1~4這個過程,直到達到一定迭代次數(shù)后,選出那個被 支持的最多的模型,作為問題的解。

點云分割優(yōu)化,算法,聚類,數(shù)據(jù)挖掘,機器學習,人工智能

image.png

RANSAC算法與最小二乘法區(qū)別RANSAC 算法適用性:RANSAC主要用于處理包含噪音和異常值的數(shù)據(jù)集。它通過隨機采樣和迭代的方式來找到最佳擬合模型,忽略了外點的影響,因此在數(shù)據(jù)中含有大量噪音或少量異常值的情況下表現(xiàn)較好。步驟:RANSAC通過隨機選擇內(nèi)點樣本進行模型擬合,并通過計算內(nèi)點和模型之間的誤差來判斷外點。它迭代地選擇具有最大內(nèi)點數(shù)的模型作為最終擬合模型。優(yōu)點:魯棒性較強,能夠在存在噪音和異常值的情況下仍然得到合理的模型估計。最小二乘法適用性:最小二乘法假設數(shù)據(jù)中的噪音較小,且異常值較少。它通過最小化數(shù)據(jù)點與模型之間的誤差平方和來得到最佳擬合模型,適用于數(shù)據(jù)比較干凈的情況。求解:最小二乘法可以直接求解或優(yōu)化模型參數(shù)的解析解,對于線性問題尤其有效。然而,在存在較多噪音或異常值時,最小二乘法容易受到這些數(shù)據(jù)點的影響,導致估計結果不準確。優(yōu)點:在數(shù)據(jù)相對干凈,噪音較小的情況下,最小二乘法能夠得到精確的模型估計。RANSAC算法被廣泛應用在計算機視覺領域和數(shù)學領域,例如直線擬合、平面擬合、計算圖像或點云間的變換矩陣、計算基礎矩陣等方面,使用的非常多??傊?,RANSAC和最小二乘法適用于不同類型的數(shù)據(jù)情況。RANSAC適用于含有噪音和異常值的數(shù)據(jù),能夠通過迭代的方式找到魯棒性較強的模型。最小二乘法適用于相對干凈的數(shù)據(jù),能夠得到精確的模型估計,但容易受到噪音和異常值的影響。在實際應用中,根據(jù)數(shù)據(jù)的特點選擇合適的方法以獲得準確的模型估計。

pcl::ModelCoefficients::Ptr?coefficients(new?pcl::ModelCoefficients);
pcl::PointIndices::Ptr?inliers(new?pcl::PointIndices);??//inliers用來存儲直線上點的索引
pcl::SACSegmentation<pcl::PointXYZ>?seg;//創(chuàng)建一個分割器
seg.setOptimizeCoefficients(true);??????//可選擇配置,設置模型系數(shù)需要優(yōu)化
seg.setModelType(pcl::SACMODEL_LINE);???//設置目標幾何形狀
seg.setMethodType(pcl::SAC_RANSAC);?????//擬合方法:隨機采樣法
seg.setDistanceThreshold(0.05);?????????//設置誤差容忍范圍,也就是閾值
seg.setMaxIterations(500);??????????????//最大迭代次數(shù),不設置的話默認迭代50次
seg.setInputCloud(cloud);???????????????//輸入點云
seg.segment(*inliers,?*coefficients);???//擬合點云

3.2 歐式聚類算法

歐式聚類算法(Euclidean Clustering)是一種將點云數(shù)據(jù)分割成不同聚類(簇)的算法。它是點云分割中的一種常用方法,旨在將距離比較近的點分為同一簇,從而識別出不同的物體或結構。這個算法主要適用于包含較小噪音和具有一定距離差異的點云數(shù)據(jù)。基本思想

  1. 選擇一個種子點(Seed Point)作為當前簇的起始點。

  2. 遍歷所有未分類的點,計算它們與種子點的距離。如果距離小于設定的閾值,將其歸為同一簇。

  3. 對于同一簇中的點,重復步驟2,將與當前簇內(nèi)任一點距離小于閾值的點加入簇。

  4. 切換到下一個未分類的點,作為新的種子點,繼續(xù)重復步驟2和3。

  5. 當所有點都被分類為某個簇,聚類過程結束。

pcl::search::KdTree<pcl::PointXYZ>::Ptr?tree?(new?pcl::search::KdTree<pcl::PointXYZ>);
tree->setInputCloud?(cloud_filtered);

std::vector<pcl::PointIndices>?cluster_indices;
pcl::EuclideanClusterExtraction<pcl::PointXYZ>?ec;
ec.setClusterTolerance?(0.02);?//?2cm
ec.setMinClusterSize?(100);
ec.setMaxClusterSize?(25000);
ec.setSearchMethod?(tree);
ec.setInputCloud?(cloud_filtered);
ec.extract?(cluster_indices);

一個桌子的場景圖經(jīng)過歐式聚類算法效果如下圖所示。點云分割優(yōu)化,算法,聚類,數(shù)據(jù)挖掘,機器學習,人工智能

3.3 區(qū)域增長算法

區(qū)域生長算法(Region Growing)是一種用于圖像處理和分割的算法,主要用于將點云中的點分成不同的區(qū)域,從而識別出具有相似特性的區(qū)域。區(qū)域生長算法基于相似性原則,將相似度高的點聚集在一起,形成連續(xù)的區(qū)域。算法步驟:1.初始化:選擇一個種子點,并將其標記為“已訪問”。2.根據(jù)設定的相似性準則,計算當前點與種子的相似度。3.如果當前點與種子相似度超過設定閾值,則將其標記為當前區(qū)域的一部分,并將其加入當前區(qū)域。4.遍歷當前點的鄰居(相鄰點),對每個鄰居執(zhí)行以下步驟:如果鄰居未被訪問過且與當前區(qū)域的相似度超過設定閾值,則將其標記為“已訪問”并添加到當前區(qū)域。遞歸地對鄰居的鄰居進行相似性判斷,將相似的像素或點添加到當前區(qū)域。5.重復步驟4,直到當前區(qū)域不能再生長為止。6.如果還存在未訪問的點,選擇一個未訪問的點作為新的種子,重復上述步驟。7.當所有點都被分配到區(qū)域后,分割過程結束。這里也推薦「3D視覺工坊」新課程《三維點云處理:算法與實戰(zhàn)匯總》。

pcl::RegionGrowing<pcl::PointXYZ,?pcl::Normal>?reg;
reg.setMinClusterSize?(50);
reg.setMaxClusterSize?(1000000);
reg.setSearchMethod?(tree);
reg.setNumberOfNeighbours?(30);
reg.setInputCloud?(cloud);
reg.setIndices?(indices);
reg.setInputNormals?(normals);
reg.setSmoothnessThreshold?(3.0?/?180.0?*?M_PI);
reg.setCurvatureThreshold?(1.0);

算法是針對小曲率變化面設計的,尤其適合對連續(xù)階梯平面進行分割

4 參考資料

https://blog.csdn.net/luolaihua2018/article/details/120113848https://pcl.readthedocs.io/projects/tutorials/en/master/index.html#sample-consensus

—END—

高效學習3D視覺三部曲

第一步 加入行業(yè)交流群,保持技術的先進性

目前工坊已經(jīng)建立了3D視覺方向多個社群,包括SLAM、工業(yè)3D視覺、自動駕駛方向,細分群包括:[工業(yè)方向]三維點云、結構光、機械臂、缺陷檢測、三維測量、TOF、相機標定、綜合群;[SLAM方向]多傳感器融合、ORB-SLAM、激光SLAM、機器人導航、RTK|GPS|UWB等傳感器交流群、SLAM綜合討論群;[自動駕駛方向]深度估計、Transformer、毫米波|激光雷達|視覺攝像頭傳感器討論群、多傳感器標定、自動駕駛綜合群等。[三維重建方向]NeRF、colmap、OpenMVS等。除了這些,還有求職、硬件選型、視覺產(chǎn)品落地等交流群。大家可以添加小助理微信: dddvisiona,備注:加群+方向+學校|公司, 小助理會拉你入群。

添加小助理微信:cv3d007, 拉你入群
第二步 加入知識星球,問題及時得到解答

針對3D視覺領域的視頻課程(三維重建、三維點云、結構光、手眼標定、相機標定、激光/視覺SLAM、自動駕駛等)、源碼分享、知識點匯總、入門進階學習路線、最新paper分享、疑問解答等進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯(lián)合知名企業(yè)發(fā)布3D視覺相關算法開發(fā)崗位以及項目對接信息,打造成集技術與就業(yè)、項目對接為一體的鐵桿粉絲聚集區(qū),6000+星球成員為創(chuàng)造更好的AI世界共同進步,知識星球入口:「3D視覺從入門到精通」

學習3D視覺核心技術,掃描查看,3天內(nèi)無條件退款

高質量教程資料、答疑解惑、助你高效解決問題
第三步 系統(tǒng)學習3D視覺,對模塊知識體系,深刻理解并運行

如果大家對3D視覺某一個細分方向想系統(tǒng)學習[從理論、代碼到實戰(zhàn)],推薦3D視覺精品課程學習網(wǎng)址:www.3dcver.com

科研論文寫作:

[1]國內(nèi)首個面向三維視覺的科研方法與學術論文寫作教程

基礎課程:

[1]面向三維視覺算法的C++重要模塊精講:從零基礎入門到進階

[2]面向三維視覺的Linux嵌入式系統(tǒng)教程[理論+代碼+實戰(zhàn)]

[3]如何學習相機模型與標定?(代碼+實戰(zhàn))

[4]ROS2從入門到精通:理論與實戰(zhàn)

[5]徹底理解dToF雷達系統(tǒng)設計[理論+代碼+實戰(zhàn)]

工業(yè)3D視覺方向課程:

[1](第二期)從零搭建一套結構光3D重建系統(tǒng)[理論+源碼+實踐]

[2]保姆級線結構光(單目&雙目)三維重建系統(tǒng)教程

[3]機械臂抓取從入門到實戰(zhàn)課程(理論+源碼)

[4]三維點云處理:算法與實戰(zhàn)匯總

[5]徹底搞懂基于Open3D的點云處理教程!

[6]3D視覺缺陷檢測教程:理論與實戰(zhàn)!

SLAM方向課程:

[1]深度剖析面向機器人領域的3D激光SLAM技術原理、代碼與實戰(zhàn)

[1]徹底剖析激光-視覺-IMU-GPS融合SLAM算法:理論推導、代碼講解和實戰(zhàn)

[2](第二期)徹底搞懂基于LOAM框架的3D激光SLAM:源碼剖析到算法優(yōu)化

[3]徹底搞懂視覺-慣性SLAM:VINS-Fusion原理精講與源碼剖析

[4]徹底剖析室內(nèi)、室外激光SLAM關鍵算法和實戰(zhàn)(cartographer+LOAM+LIO-SAM)

[5](第二期)ORB-SLAM3理論講解與代碼精析

視覺三維重建

[1]徹底搞透視覺三維重建:原理剖析、代碼講解、及優(yōu)化改進)

自動駕駛方向課程:

[1]?深度剖析面向自動駕駛領域的車載傳感器空間同步(標定)

[2]?國內(nèi)首個面向自動駕駛目標檢測領域的Transformer原理與實戰(zhàn)課程

[3]單目深度估計方法:算法梳理與代碼實現(xiàn)

[4]面向自動駕駛領域的3D點云目標檢測全棧學習路線!(單模態(tài)+多模態(tài)/數(shù)據(jù)+代碼)

[5]如何將深度學習模型部署到實際工程中?(分類+檢測+分割)

最后

1、3D視覺文章投稿作者招募

2、3D視覺課程(自動駕駛、SLAM和工業(yè)3D視覺)主講老師招募

3、頂會論文分享與3D視覺傳感器行業(yè)直播邀請文章來源地址http://www.zghlxwxcb.cn/news/detail-761997.html

到了這里,關于大盤點!匯總點云分割算法,涉及RANSAC、歐式聚類、區(qū)域增長等的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 計算機視覺的幾個經(jīng)典算法 —— 最小二乘法 + RANSAC + 哈希算法(附DCT) + 圖像聚類算法

    計算機視覺的幾個經(jīng)典算法 —— 最小二乘法 + RANSAC + 哈希算法(附DCT) + 圖像聚類算法

    在了解最小二乘法之前,我們有必要先說說線性回歸,所謂線性回歸我們最常見的例子y=2x這個一元線性回歸方程中,斜率2就是回歸系數(shù),它表示的是x變動時,y與之對應的關系,而線性回歸就是表示一些離散的點在總體上是最逼近某一條直線的 這跟最小二乘法有啥關系呢?

    2024年02月08日
    瀏覽(27)
  • 隨機采樣一致性(RANSAC)三維點云的平面擬合算法(含C++代碼)

    隨機采樣一致性(RANSAC)三維點云的平面擬合算法(含C++代碼)

    ????????隨機采樣一致性(Random sample consensus,RANSAC) :RANSAC是一種魯棒的模型擬合方法,它可以處理存在大量噪聲和異常值的數(shù)據(jù)。在進行平面擬合時,RANSAC會隨機選擇三個點,然后計算這三個點確定的平面模型。然后,RANSAC會計算其他所有點到這個平面的距離,并根據(jù)

    2024年02月07日
    瀏覽(21)
  • PCL源碼剖析 -- 歐式聚類

    PCL源碼剖析 -- 歐式聚類

    參考 : 1. pcl Euclidean Cluster Extraction教程 2. 歐式聚類分析 3. pcl-api源碼 4. 點云歐式聚類 5. 本文完整工程地址 聚類方法需要將無組織的點云模型P劃分為更小的部分,以便顯著減少P的總體處理時間。歐式空間的簡單數(shù)據(jù)聚類方法可以利用 固定寬度box 的3D網(wǎng)格劃分或者一般的 八

    2024年02月06日
    瀏覽(14)
  • PCL 改進快速歐式聚類

    ??【論文復現(xiàn)】——FEC: Fast Euclidean Clustering for Point Cloud Segmentation一文嚴格按照論文中描述的方法進行算法的復現(xiàn),未添加點云聚類分割方法中通用的約束條件閾值。本文對代碼中該不足之處進行優(yōu)化改進。 FastEuclideanCluster.h

    2024年02月16日
    瀏覽(14)
  • PCL 歐式聚類(C++詳細過程版)

    ??歐式聚類PCL里經(jīng)典的點云聚類分割算法,具體算法原理和實現(xiàn)代碼見:PCL 歐式聚類分割。為充分了解算法實現(xiàn)的每一個細節(jié)和有待改進的地方,使用C++代碼對算法實現(xiàn)過程進行復現(xiàn)。 注意: 該算法的實現(xiàn)過程中,加入多線程可能會得到錯誤的結果。因此,未進行多線程

    2024年02月14日
    瀏覽(18)
  • 毫米波雷達點云 DBSCAN聚類算法

    毫米波雷達點云 DBSCAN聚類算法

    聚類的目的是將一組數(shù)據(jù)點劃分為具有相似特征或屬性的組或簇。通過聚類分析,我們可以識別出數(shù)據(jù)中的內(nèi)在模式、結構和關聯(lián)關系,從而獲得對數(shù)據(jù)的更深入理解。 具體來說,聚類的目的可以分為以下三部分: 發(fā)現(xiàn)數(shù)據(jù)的內(nèi)在結構: 聚類可以將數(shù)據(jù)分成簇,這些簇可能

    2024年02月06日
    瀏覽(24)
  • 點云分割-pcl區(qū)域生長算法

    點云分割-pcl區(qū)域生長算法

    1、本文內(nèi)容 pcl的區(qū)域生長算法的使用和原理 2、平臺/環(huán)境 cmake, pcl 3、轉載請注明出處: https://blog.csdn.net/qq_41102371/article/details/131927376 參考:https://pcl.readthedocs.io/projects/tutorials/en/master/region_growing_segmentation.html#region-growing-segmentation https://blog.csdn.net/taifyang/article/details/124097186

    2024年02月15日
    瀏覽(23)
  • 基于深度學習方法的點云算法5——PointConv(點云分類分割)

    基于深度學習方法的點云算法5——PointConv(點云分類分割)

    請點點贊,會持續(xù)更新?。?! 基于深度學習方法的點云算法1——PointNetLK(點云配準) 基于深度學習方法的點云算法2——PointNet(點云分類分割) 基于深度學習方法的點云算法3——PointNet++(點云分類分割) 基于深度學習方法的點云算法4——PCT: Point Cloud Transformer(點云分類

    2024年02月06日
    瀏覽(23)
  • 點云補全算法匯總

    點云補全算法匯總

    點云補全就是希望基于觀察到的殘缺不全的點云生成完整的 3D 點云。由于掃描或者距離的原因導致點云局部缺失,對其進行補全,傳統(tǒng)算法可能會補不完整,也可能會補的過于完整。 今天這里要講的是PF-Net: Point Fractal Network for 3D Point Cloud Completion,整體網(wǎng)絡模型: 骨骼點逐

    2024年02月03日
    瀏覽(13)
  • PCL 使用LCCP算法進行點云分割

    ??LCCP是Locally Convex Connected Patches的縮寫,算法大致可以分成兩個部分: 基于超體聚類的過分割。 在超體聚類的基礎上再聚類。 /

    2024年02月12日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包