CloudCompare的介绍
CloudCompare是一個(gè)三維點(diǎn)云(網(wǎng)格)編輯和處理軟件。最初,它被設(shè)計(jì)用來對稠密的三維點(diǎn)云進(jìn)行直接比較。它依賴于一種特定的八叉樹結(jié)構(gòu),在進(jìn)行點(diǎn)云對比這類任務(wù)時(shí)具有出色的性能【1】。此外,由于大多數(shù)點(diǎn)云都是由地面激光掃描儀采集的,CloudCompare的目的是在一臺(tái)標(biāo)準(zhǔn)筆記本電腦上處理大規(guī)模的點(diǎn)云——通常超過1000萬個(gè)點(diǎn)云。在2005年后,cloudcompare就實(shí)現(xiàn)了點(diǎn)云和三角形網(wǎng)格之間的比較。隨后,許多其他點(diǎn)云處理算法(配準(zhǔn)、重采樣、顏色/法線向量/尺度、統(tǒng)計(jì)計(jì)算、傳感器管理、交互式或自動(dòng)分割等)以及顯示增強(qiáng)工具(自定義顏色漸變、顏色和法向量處理,校準(zhǔn)圖像處理、OpenGL著色器、插件等)
例如在一臺(tái)帶有雙核處理器的筆記本電腦上,計(jì)算出300萬個(gè)點(diǎn)到14000個(gè)三角形網(wǎng)格的距離需要10秒(筆者理解:這里是指點(diǎn)云到模型的配準(zhǔn),出現(xiàn)的誤差通過顏色的不同可視化出差別)
點(diǎn)云與網(wǎng)格
由于CloudCompare的特定歷史,該軟件幾乎將所有的三維實(shí)體都視為點(diǎn)云數(shù)據(jù)進(jìn)行處理。通常,三角形網(wǎng)格只是一個(gè)具有關(guān)聯(lián)拓?fù)涞狞c(diǎn)云(網(wǎng)格頂點(diǎn) the mesh vertices)(與每個(gè)三角形對應(yīng)的“連接”點(diǎn)的三元組)。這解釋了網(wǎng)格始終有一個(gè)名為“頂點(diǎn)”的點(diǎn)云作為同級或父級(取決于加載或生成它們的方式)。雖然CloudCompare允許用戶直接在網(wǎng)格結(jié)構(gòu)(即三角化點(diǎn)云)上應(yīng)用一些工具,但有些工具只能應(yīng)用于網(wǎng)格頂點(diǎn)。一開始可能有點(diǎn)令人難以理解,但我們不希望用戶忽略這一點(diǎn):CloudCompare主要是一個(gè)點(diǎn)云處理軟件。當(dāng)然,由于CloudCompare的目的是進(jìn)行變化檢測(例如形變監(jiān)測),而且三角形網(wǎng)格是表示參考形狀(例如建筑物)的一種非常常見的方法,因此它非常有用,不能忽視。盡管如此,處理網(wǎng)格點(diǎn)云仍然是一個(gè)“次要”實(shí)例,尤其是CloudCompare能夠直接比較兩個(gè)點(diǎn)云,而不需要生成中間網(wǎng)格。
主要原因是:
- 三角化網(wǎng)格通常很難在真實(shí)場景中正確生成,尤其是在使用激光掃描儀(噪聲、可變密度等)掃描時(shí) 
- 由于ALS/TLS點(diǎn)云通常非常密集(且準(zhǔn)確),我們已經(jīng)擁有了所需的所有信息。 
(筆者理解:這里說明了cloudcompare的定位是一款處理點(diǎn)云的軟件,盡管能處理mesh數(shù)據(jù),但是也只能處理mesh數(shù)據(jù)中頂點(diǎn)的點(diǎn),并且是一款用于檢測形變的點(diǎn)云處理軟件)
CloudCompare技術(shù)上的優(yōu)勢
便攜性
CloudCompare是在C++中開發(fā)的。它目前是在Windows、Linux和Mac操作系統(tǒng)上編譯(感謝CMake)32位和64位體系結(jié)構(gòu)。
在存儲(chǔ)和速度之間進(jìn)行權(quán)衡
以下是關(guān)于CloudCompare中所做技術(shù)選擇的一些細(xì)節(jié)(主要是為了實(shí)現(xiàn)加載盡可能多的點(diǎn)而不降低太多性能的目標(biāo),即在存儲(chǔ)和速度之間進(jìn)行良好的權(quán)衡)
- 所有存儲(chǔ)值和大部分計(jì)算都使用32位浮點(diǎn)值完成 
- 防止對數(shù)組大小的任何限制(因?yàn)樵?2 位Windows上很難獲得大的連續(xù)內(nèi)存塊),我們使用一個(gè)自定義容器,自動(dòng)將數(shù)據(jù)集分塊成小塊(每個(gè)塊64KB)。 
- 法向量(如果有)壓縮到16位(實(shí)際上是15位,因?yàn)榱炕?的工作方式) 
- CloudCompare中使用的特定八叉樹結(jié)構(gòu)需要恒定的每點(diǎn)內(nèi)存(即在32位操作系統(tǒng)上,每點(diǎn)8個(gè)字節(jié)—最大深度為10—在64位操作系統(tǒng)上為12個(gè)字節(jié)—最大深度為21!)。它基于三維點(diǎn)坐標(biāo)的特定量化-一種Morton【2】排序方案-其中每個(gè)點(diǎn)在八叉樹網(wǎng)格和任何級別上的位置都由單個(gè)整數(shù)代碼表示。然后我們處理這些代碼以實(shí)現(xiàn)非常高效的最近鄰查詢操作。然而,盡管這種八叉樹結(jié)構(gòu)對于計(jì)算距離非常有效,但它不適合快速顯示( Level Of Detail (LOD) 等) 
基于以上平衡選擇的結(jié)果是CloudCompare每GB內(nèi)存可以存儲(chǔ)大約9000萬個(gè)空白點(diǎn)(只含有XYZ的意思)。如果添加RGB顏色、法線向量、單個(gè)尺度字段,并且需要計(jì)算八叉樹,則每GB最多可以加載3200萬個(gè)點(diǎn)。在一個(gè)64位操作系統(tǒng)上,你可以加載任意多個(gè)點(diǎn)(事實(shí)上多達(dá)40億)。但是,根據(jù)您的顯卡功能,顯示和交互性可能會(huì)因?yàn)檫@許多點(diǎn)而嚴(yán)重降低)。有了高端顯卡,你可以保持一個(gè)合理的幀速率高達(dá)1.5億個(gè)點(diǎn)。
參考文獻(xiàn)
1 http://en.wikipedia.org/wiki/Quantization
2 http://en.wikipedia.org/wiki/Z-order_curve
最近的進(jìn)展
雖然該項(xiàng)目已于2004年在EDF研發(fā)部啟動(dòng),但直到2009年左右才在公共領(lǐng)域發(fā)布(根據(jù)GPL許可)。由于CloudCompare是開源項(xiàng)目,所以每個(gè)人都可以免費(fèi)(也歡迎)擴(kuò)展其功能。請不吝于提問和分享您的經(jīng)驗(yàn)在論壇里【3】,并查看Github源代碼【4】。
許可證
CCLib庫(包含核心算法)的許可證是LGPL【5】版本2.0。
因此,CCLib可以集成到任何商業(yè)或非商業(yè)項(xiàng)目中。你只要和別人分享,就可以和作者一起修改代碼。
其他組件的許可證為GPL【6】(2.0版):
?qCC_db(數(shù)據(jù)庫)
?qCC_io(文件I/O庫)
?qCC_gl(基于OpenGL的3D顯示庫)
?CloudCompare和ccViewer(獨(dú)立應(yīng)用程序)
因此,只有與GPL兼容(即開源但不一定意味著免費(fèi))的項(xiàng)目可以使用這些組件。
最新版本的用戶文檔可在以下網(wǎng)址找到:
http://www.cloudcompare.org/doc/wiki/參考文獻(xiàn)
3 http://www.cloudcompare.org/forum
4 https://github.com/cloudcompare/trunk
5 http://www.gnu.org/licenses/lgpl-2.0.html
6 http://www.gnu.org/licenses/gpl-2.0.html
資源
三維點(diǎn)云論文及相關(guān)應(yīng)用分享
【點(diǎn)云論文速讀】基于激光雷達(dá)的里程計(jì)及3D點(diǎn)云地圖中的定位方法
3D目標(biāo)檢測:MV3D-Net
三維點(diǎn)云分割綜述(上)
3D-MiniNet: 從點(diǎn)云中學(xué)習(xí)2D表示以實(shí)現(xiàn)快速有效的3D LIDAR語義分割(2020)
win下使用QT添加VTK插件實(shí)現(xiàn)點(diǎn)云可視化GUI
JSNet:3D點(diǎn)云的聯(lián)合實(shí)例和語義分割
大場景三維點(diǎn)云的語義分割綜述
PCL中outofcore模塊---基于核外八叉樹的大規(guī)模點(diǎn)云的顯示
基于局部凹凸性進(jìn)行目標(biāo)分割
基于三維卷積神經(jīng)網(wǎng)絡(luò)的點(diǎn)云標(biāo)記
點(diǎn)云的超體素(SuperVoxel)
基于超點(diǎn)圖的大規(guī)模點(diǎn)云分割
更多文章可查看:點(diǎn)云學(xué)習(xí)歷史文章大匯總
SLAM及AR相關(guān)分享
【開源方案共享】ORB-SLAM3開源啦!
【論文速讀】AVP-SLAM:自動(dòng)泊車系統(tǒng)中的語義SLAM
【點(diǎn)云論文速讀】StructSLAM:結(jié)構(gòu)化線特征SLAM
SLAM和AR綜述
常用的3D深度相機(jī)
AR設(shè)備單目視覺慣導(dǎo)SLAM算法綜述與評價(jià)
SLAM綜述(4)激光與視覺融合SLAM
Kimera實(shí)時(shí)重建的語義SLAM系統(tǒng)
SLAM綜述(3)-視覺與慣導(dǎo),視覺與深度學(xué)習(xí)SLAM
易擴(kuò)展的SLAM框架-OpenVSLAM
高翔:非結(jié)構(gòu)化道路激光SLAM中的挑戰(zhàn)
SLAM綜述之Lidar SLAM
基于魚眼相機(jī)的SLAM方法介紹
往期線上分享錄播匯總
第一期B站錄播之三維模型檢索技術(shù)
第二期B站錄播之深度學(xué)習(xí)在3D場景中的應(yīng)用
第三期B站錄播之CMake進(jìn)階學(xué)習(xí)
第四期B站錄播之點(diǎn)云物體及六自由度姿態(tài)估計(jì)
第五期B站錄播之點(diǎn)云深度學(xué)習(xí)語義分割拓展
第六期B站錄播之Pointnetlk解讀
[線上分享錄播]點(diǎn)云配準(zhǔn)概述及其在激光SLAM中的應(yīng)用
[線上分享錄播]cloudcompare插件開發(fā)
[線上分享錄播]基于點(diǎn)云數(shù)據(jù)的?Mesh重建與處理
[線上分享錄播]機(jī)器人力反饋遙操作技術(shù)及機(jī)器人視覺分享
[線上分享錄播]地面點(diǎn)云配準(zhǔn)與機(jī)載點(diǎn)云航帶平差
點(diǎn)云PCL更多活動(dòng)請查看:點(diǎn)云PCL活動(dòng)之應(yīng)屆生校招群
掃描下方微信視頻號二維碼可查看最新研究成果及相關(guān)開源方案的演示:
如果你對本文感興趣,請點(diǎn)擊“原文閱讀”獲取知識(shí)星球二維碼,務(wù)必按照“姓名+學(xué)校/公司+研究方向”備注加入免費(fèi)知識(shí)星球,免費(fèi)下載pdf文檔,和更多熱愛分享的小伙伴一起交流吧!
以上內(nèi)容如有錯(cuò)誤請留言評論,歡迎指正交流。如有侵權(quán),請聯(lián)系刪除
掃描二維碼
? ? ? ? ? ? ? ? ? ?關(guān)注我們
讓我們一起分享一起學(xué)習(xí)吧!期待有想法,樂于分享的小伙伴加入免費(fèi)星球注入愛分享的新鮮活力。分享的主題包含但不限于三維視覺,點(diǎn)云,高精地圖,自動(dòng)駕駛,以及機(jī)器人等相關(guān)的領(lǐng)域。
分享及合作方式:群主微信“920177957”(需要按要求備注) 聯(lián)系郵箱:dianyunpcl@163.com,歡迎企業(yè)來聯(lián)系公眾號展開合作。
點(diǎn)一下“在看”你會(huì)更好看耶
總結(jié)
以上是生活随笔為你收集整理的CloudCompare的介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【开源方案共享】VDO-SLAM:基于视
- 下一篇: PCL中3D特征描述子Shot详解
