点云拼接-将局部扫描设备拼接到完整点云地图
點(diǎn)云拼接-將局部掃描設(shè)備拼接到完整點(diǎn)云地圖
目錄
一、適用場景
二、算法步驟
三、實(shí)驗(yàn)結(jié)果?
?四、結(jié)語
一、適用場景
????????對(duì)某一場景已經(jīng)有一幅完整的點(diǎn)云地圖,但是該場景局部發(fā)生了變化,如新增加了一個(gè)設(shè)備,于是對(duì)該設(shè)備周圍進(jìn)行掃描,得到一幅局部掃描點(diǎn)云,希望將該設(shè)備點(diǎn)云增加到原來的完整點(diǎn)云地圖中。如下圖所示:
????????紅色點(diǎn)云是局部掃描地圖,綠色點(diǎn)云是完整點(diǎn)云地圖。?
二、算法步驟
????????因?yàn)楝F(xiàn)在兩幅點(diǎn)云的位姿有較大偏差,所以整體算法分成點(diǎn)云配準(zhǔn)和點(diǎn)云融合兩步。
(1)點(diǎn)云配準(zhǔn)
? ? ? ? 在實(shí)際配準(zhǔn)過程中,地面的點(diǎn)云占比比較大,卻沒有帶太多的特征信息,會(huì)對(duì)配準(zhǔn)造成干擾,所以配準(zhǔn)前先進(jìn)行地面去除,去除效果如下:
? ? ? ? 地面去除后開始配準(zhǔn),這里配準(zhǔn)我嘗試了FPFH+ICP和Super4pcs算法,其中FPFH+ICP算法的配準(zhǔn)結(jié)果不理想,Super4pcs算法的效果挺好的,而且很經(jīng)過Super4pcs配準(zhǔn)后,ICP算法已經(jīng)沒有多大的精度改進(jìn)了。效果如下:
(2)點(diǎn)云融合?
????????仔細(xì)觀察配準(zhǔn)后的點(diǎn)云地圖,發(fā)現(xiàn)局部點(diǎn)云地圖部分點(diǎn)存在嚴(yán)重飄逸的情況,如下圖所示這部分點(diǎn)云如果融合到完整地圖中,則會(huì)給完整地圖帶來錯(cuò)誤信息,所以接下來需要對(duì)局部點(diǎn)云地圖進(jìn)行分割篩選。
????????首先通過歐式距離判斷重疊區(qū)域,結(jié)果如下面左圖,藍(lán)色點(diǎn)云為分割出的重疊區(qū)域,綠色點(diǎn)云為完整點(diǎn)云地圖,然后再對(duì)重疊區(qū)域和完整點(diǎn)云地圖進(jìn)行加權(quán)融合,實(shí)驗(yàn)中選擇的權(quán)值是各0.5,結(jié)果如下面中間圖,紅色點(diǎn)云為重疊區(qū)域這部分融合后的點(diǎn)云。對(duì)于非重疊區(qū)域,通過聚類進(jìn)行分割,篩選出我們需要的設(shè)備點(diǎn)云,結(jié)果如下面右圖,然后添加進(jìn)最終的完整點(diǎn)云地圖。
三、實(shí)驗(yàn)結(jié)果?
? ? ? ? 實(shí)驗(yàn)結(jié)果如下圖,場景中新增的設(shè)備成功添加進(jìn)了完整點(diǎn)云地圖中。(左圖為原始完整點(diǎn)云地圖,右圖為更新后的點(diǎn)云地圖)
?四、結(jié)語
?????????整體思路比較簡單,學(xué)習(xí)過程中做個(gè)記錄,歡迎大家提出意見,一起討論進(jìn)步。如果有需要源碼的可以私聊(雖然代碼也很簡單),人多的話我就整理上傳到網(wǎng)站。
總結(jié)
以上是生活随笔為你收集整理的点云拼接-将局部扫描设备拼接到完整点云地图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频教程-清华-尹成老师-Python爬
- 下一篇: 宝塔面板部署青龙面板签到云音乐、什么值得