kitti pkl可视化_KITTI 3D Lidar 数据可视化
前言Lilikili:在嘗試做Lidar方面的研究的時候,發現對于可視化大家的腦洞還不是很夠,所以提供一些思路讓大家蛤一下。
數據集
本次使用的數據集是KITTI 3D object detection條目下面的data_object_velodyne.zip,里面存儲了二進制存儲的Lidar數據。數據大小壓縮后是26.7GB,包含7481個frame。對應的Camera數據是data_object_image_3.zip。Label什么的這次涉及不到,想要的自己找去
下載方式:因為內容存在了aws的s3里面,國內下不下來。建議使用迅雷等下載工具。
代碼以及工具包
代碼請移步Github:https://github.com/LGNRoy/KITTI_3D_Visulation
工具包:numpy, mayavi, matplotlib, pyside
同理,pip install的時候如果輪子下不來,建議直接去pip官網上用下載工具下載對應的輪子
基本的可視化數據集編號000001,Lidar可視化展示
這部分的代碼參考了CSDN:https://blog.csdn.net/weixin_39999955/article/details/83819196
對Lidar的3D展示使用了mayavi.mlab這個工具包,效果十分強大。提供了UI,支持拖動來進行自由旋轉,但是不支持平移。
顏色支持自定義。本文使用了距離(點(x, y, z)到坐標原點的直線距離)作為顏色值,使用了默認的彩虹色系,色系也可以在UI中進行切換。顏色值除了距離以外,也可以設置為高度或者反射率。
腦洞部分(開蛤)
首先來說,思路:Lidar數據是稀疏數據,按(x, y, z)點存儲在笛卡爾坐標系。
但是實際上Lidar的工作原理是激光從左到右旋轉,每個角度從上到下掃描。
所以依此來思考,應該會有很多點在相同角度(換句話說應該能看到很多的"豎線"),同理高度也可能會這樣。
參考下兩張圖,可以發現,對于墻這個物體,是存在明顯的豎線和橫線。
那么能否能把稀疏的Lidar數據轉化為二維圖像數據,并解決稀疏的問題?
比如,把角度和高度離散化作為像素的位置,用距離作為灰度來繪制一張灰度圖。數據集編號000000,紅圈內是Lidar探測到的一面墻
透過Lidar掃描到的墻,來看墻外面的東西
展示步驟:先計用xy計算角度a,用z來代表高度h,再通過xyz計算出深度d。
對角度進行篩選、對高度進行篩選
用plt.scatter進行展示
展示效果:數據集編號000001,橫縱坐標分別為角度和高度,顏色代表深度
效果差強人意。希望得到的是方方正正的一張圖,每個點都按照橫豎完美的對齊排列好,但是并沒有。
在后續的數據分析中發現:因為lidar的光點的誤差,沒有看到豎線,但是點是正態分布在線上和左右,通過一些方法應該能還原出線。
橫線這邊,圖里雖然有明顯的線,但是是曲線,這代表高度不適合作為縱軸。采用yz計算出來的角度應該會更合適一點。
總的來說,嗯,挺失敗的。
你們想蛤就蛤吧
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的kitti pkl可视化_KITTI 3D Lidar 数据可视化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arcgis js 地图打印_Arcgi
- 下一篇: Java集合 Collection