一、引言
點云濾波,是對點云數據處理的常用功能。
相機采集的圖像,受限于拍攝條件、光照、物件表面反光及補光角度等原因,會導致攝像頭成像質量下降,進而導致在進行點云重建時會包含一些噪點。包括飛點、彌散點、甚至是憑空出現的點,因此若需要得到高質量點云,可以選擇對點云數據進行一次濾波,提升數據質量。
當然提高質量手段有很多,從環境上調優光照、調整拍攝角度,從拍攝上進行HDR、參數調整,或從算法上調整等,本文將先基于點云濾波展開討論。
二、濾波原理
本文講述濾波方法為基于鄰域的濾波。顧名思義就是會計算每個點與周圍鄰域內有效點的數量,根據相關程度來決定當前點是否需要被過濾。
將點云2D平面化后,如上圖:
(假設紅色為鄰域點,半徑d為鄰域距離閾值)
每個單獨點云的鄰域相關情況,一般來說分為3種:
- 黃色點:鄰域內沒有相關的點,作為噪點直接排除
- 藍色點:鄰域內有大量相關的點,作為有效點保留
- 綠色點:鄰域內有相關的點,但是數量不足,也作為噪點排除
根據鄰域濾波原理,可以解決大部分噪點,效果如下:
濾波前
濾波后
三、濾波實現
為了實現濾波,首先需要準備點云間距離閾值,即原理圖中的半徑d。一般來說可以使用點云點間平均距離*6。此參數越大時,濾波效果越差。參數越小時濾波效果越好。但是過小時可能會過濾掉有效點。
其次需要準備鄰域內相關數量閾值,即鄰域內至少要有幾個點云才保留當前點。本算法實現為搜索鄰域內一共44個點,有6個以上即判定為保留。此參數越大時濾波效果越好,參數越小時濾波效果越差。
通過兩個參數組合和調優,已經可以勝任絕大部分場景下的點云濾波需求。
大致流程如下:
- 遍歷點云數據中每個點
- 根據距離閾值,檢查每個點鄰域內相關點數量
- 根據相關數量閾值,確定點云數據是否保留
- 根據保留結果,將點云數據拷貝至新數據緩沖區
實現代碼如下:
漢振3D開發SDK中,可以直接調用點云濾波接口,使用方法如下:
參數解釋如下:
- buffer:存儲點云基本數據,需要按照3通道float方式存儲xyz數據
- targetData:濾波后結果數據,按照3通道float方式存儲xyz數據
- 1920:點云列數
- 1200:點云行數
- 0.5:質心平均距離,也可以理解為點云點間平均距離
- 30:云間距離閾值
四、代碼加速
有了思路,實現了效果還不夠,代碼需要跑得快才能真的派上用處。對于點云濾波算法,可以有以下幾種加速思路:
01 多線程并行
即代碼中coreUtilsConcurrent部分。本算法中將點云按照行進行拆分,分發給4個線程單獨處理。在4線程下可以提速2到3倍。這里要注意的一點是在現在基于CPU的運算中,線程并不是越多越好,需要根據算法實際調整。對于本算法,4線程左右為宜,即使CPU物理上有8線程甚至16線程。主要原因是本算法較為簡單,內存瓶頸比CPU運算瓶頸更容易出現。線程多反而容易造成資源爭奪,降低緩存命(ming)中率,進而導致性能下降。
02 鄰域相關度計算剪枝
即代碼循環體內大代碼量部分。算法中鄰域搜索邏輯是會先從點云當前行開始,依次搜索-1行,+1行,-2行,+2行,-3行,+3行。結合物理世界中實際點云噪點分布情況,如果在當前行和-1行都沒有搜索到符合條件的鄰域有效點,那么在+1,-2行這些也大概率搜索不到鄰域有效點,因此當前點基本就是無效點,就可以直接刪除。按照此邏輯類推,分別設置1、3、5個鄰域有效點的退出條件。通過此項剪枝后,可以提速2到4倍。
03 內存訪問順序優化
因為CPU有緩存秒鐘問題,所以我們希望開發的程序盡可能提高緩存命(ming)中率,以提高運行速度。對點云數據的訪問,在內存上盡量從左到右訪問,從上到下訪問。
04 代碼減少判斷條件
部分可以通過內聯展開,代碼結構完成的判斷,可以直接通過寫代碼方式實現,而不是通過for,函數調用方式使用。
05 減少對象拷貝
盡量通過全局變量保存熱點變量。例如點云數據指針,高寬等參數,會被頻繁用到,可以保存到全局變量中讓后續流程可以直接訪問,而不是保存到中間變量反復拷貝,或者通過指針反復解指針使用。
進行了如上幾點優化后,230W點云濾波,可以控制在5到15ms以內。
更多機器視覺產品信息與應用說明,機器視覺算法,應用技巧,解決方案以及相關領域的技術分享,歡迎繼續關注“漢振智能”....
下一篇:電纜導體預熱要注意哪些問題
免責聲明
- 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.lfljgfsj.com。違反者本網將追究相關法律責任。
- 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
- 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
2025第十一屆中國國際機電產品交易會 暨先進制造業博覽會
展會城市:合肥市展會時間:2025-09-20