一个精简的开源点云库
Cilantro是一個精簡高效的點云數據處理庫,編程是C++,依賴項較少,但是相比較于PCL來說,代碼更有可讀性,PCL中大量的使用C++高級特性,閱讀起來比較難并且不易重構拆解代碼,而cilantro重點放在了3D案例上,盡量減少了樣板代碼的數量,包含了對點云常見的操作,是一個比較簡單易懂的API,所以該庫可以被廣泛的模塊化,并且支持多維度數據進行操作,同時保證對算法模塊的模塊化和可擴展性。作者是一位在Magic leap公司工作的計算機視覺工程師,是馬里蘭大學伯克利分校的計算機科學博士,是感知機器人小組的成員。
模塊劃分
點云基本處理模塊
(1)一般尺寸的KD樹(與PCL一樣都用了第三方依賴項nanoflann)
(2)基于原始點云的曲面法向量和曲率的估計
(3)基于常用的尺寸網格的點云重采樣算法
(4)主成分分析
(5)三維點云基本的IO操作(其中依賴了第三方庫tinyply和Eigen庫)
(6)rgbd圖像對和點云之間的轉換程序
點云凹凸以及空間檢測模塊
(1)使用了第三方庫Qhull實現從常見維度點云凸多面體檢測
(2)實現多個圖多面體的并集檢測運算
點云分類模塊
(1)依賴第三方庫nanoflann實現多維度的基于距離度量的K-mean聚類算法
(2)基于第三方庫Spectra的各種拉普拉斯類型的頻譜聚類
(3)支持自定義的基于內核的mean-shift聚類算法
(4)支持任意點之間基于聯通性的點云分割算法
點云配準模塊
支持任意對應搜索方式的ICP點云配準
(1)點對點的度量方式(通用維度)點對平面的度量(二維或者三維)或者其他任意組合下的剛性或者仿射對齊算法
(2)在點到點和點到平面度量的任意組合下,通過穩定的正則化,局部剛體或者仿射變換,實現二維或者三維點集的非剛性對齊,并支持稠密和稀疏的點云變換的算法。
點云模型估計模塊
ransac估計器模板及其在一般維度上的實例:
(1)穩健超平面估計
(2)給定噪聲對應的剛性點云配準
點云可視化模塊模塊
主要是依賴了第三方庫Pangolin
安裝與實例
安裝Eigen以及?Pangolin
安裝Eigen3
sudo apt-get install libeigen3-dev
安裝Pangolin
sudo apt-get install libglew-dev libpython2.7-dev libboost-dev libboost-thread-dev libboost-filesystem-dev -y
git clone https://github.com/stevenlovegrove/Pangolin
cd Pangolin
mdkir build
cd build
cmake ..
make
sudo make install
安裝完成后下載源碼并編譯
(已經fork到我們的github組群中)
git clone?https://github.com/dianyunPCL/cilantro.git
編譯
mkdir build
cd build
cmake ..
make
從cmake中我們可以看出來代碼是比較精簡的,一般性的第三方庫都已經在include中,并且直接將其編譯為.so文件,而我們在安裝成eigen和pangolin
之后,將會編譯example中的代碼。所以如果想修改其中的代碼,相比較PCL的庫簡單很多。
此時我們找一個example運行一下。這里以可視化的函數為例
./visualizer? test.ply
資源
三維點云論文及相關應用分享
【點云論文速讀】基于激光雷達的里程計及3D點云地圖中的定位方法
3D目標檢測:MV3D-Net
三維點云分割綜述(上)
3D-MiniNet: 從點云中學習2D表示以實現快速有效的3D LIDAR語義分割(2020)
win下使用QT添加VTK插件實現點云可視化GUI
JSNet:3D點云的聯合實例和語義分割
大場景三維點云的語義分割綜述
PCL中outofcore模塊---基于核外八叉樹的大規模點云的顯示
基于局部凹凸性進行目標分割
基于三維卷積神經網絡的點云標記
點云的超體素(SuperVoxel)
基于超點圖的大規模點云分割
更多文章可查看:點云學習歷史文章大匯總
SLAM及AR相關分享
【開源方案共享】ORB-SLAM3開源啦!
【論文速讀】AVP-SLAM:自動泊車系統中的語義SLAM
【點云論文速讀】StructSLAM:結構化線特征SLAM
SLAM和AR綜述
常用的3D深度相機
AR設備單目視覺慣導SLAM算法綜述與評價
SLAM綜述(4)激光與視覺融合SLAM
Kimera實時重建的語義SLAM系統
SLAM綜述(3)-視覺與慣導,視覺與深度學習SLAM
易擴展的SLAM框架-OpenVSLAM
高翔:非結構化道路激光SLAM中的挑戰
SLAM綜述之Lidar SLAM
基于魚眼相機的SLAM方法介紹
往期線上分享錄播匯總
第一期B站錄播之三維模型檢索技術
第二期B站錄播之深度學習在3D場景中的應用
第三期B站錄播之CMake進階學習
第四期B站錄播之點云物體及六自由度姿態估計
第五期B站錄播之點云深度學習語義分割拓展
第六期B站錄播之Pointnetlk解讀
[線上分享錄播]點云配準概述及其在激光SLAM中的應用
[線上分享錄播]cloudcompare插件開發
[線上分享錄播]基于點云數據的?Mesh重建與處理
[線上分享錄播]機器人力反饋遙操作技術及機器人視覺分享
[線上分享錄播]地面點云配準與機載點云航帶平差
點云PCL更多活動請查看:點云PCL活動之應屆生校招群
掃描下方微信視頻號二維碼可查看最新研究成果及相關開源方案的演示:
如果你對本文感興趣,請點擊“原文閱讀”獲取知識星球二維碼,務必按照“姓名+學校/公司+研究方向”備注加入免費知識星球,免費下載pdf文檔,和更多熱愛分享的小伙伴一起交流吧!
以上內容如有錯誤請留言評論,歡迎指正交流。如有侵權,請聯系刪除
掃描二維碼
? ? ? ? ? ? ? ? ? ?關注我們
讓我們一起分享一起學習吧!期待有想法,樂于分享的小伙伴加入免費星球注入愛分享的新鮮活力。分享的主題包含但不限于三維視覺,點云,高精地圖,自動駕駛,以及機器人等相關的領域。
分享及合作方式:群主微信“920177957”(需要按要求備注) 聯系郵箱:dianyunpcl@163.com,歡迎企業來聯系公眾號展開合作。
點一下“在看”你會更好看耶
總結
以上是生活随笔為你收集整理的一个精简的开源点云库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Open3d 学习计划—13(Azure
- 下一篇: 基于地平面的单目视觉里程计绝对尺度估计