由於pointRCNN源碼的訓練和inference很詳細,但是沒有可視化的代碼,本文介紹其3d框結果的可視化方法
1. 跑通pointRCNN
https://github.com/sshaoshuai/PointRCNN
pointRCNN
的運行本文就不贅述了。
我是下載的作者訓練好的模型,跑了一遍inference
,因爲生成的檢測結果在下面可視化時會用到
2. 將pointRCNN
預測結果拷貝到KITTI數據集
pointRCNN
的結果存儲在:(裏面包含000001.tx
t等等,存的是3d框的預測結果)
PointRCNN/output/rcnn/default/eval/epoch_no_number/val/final_result
把整個文件夾複製到kitti數據集的training目錄下,文件夾命名pred
數據組織結構如下:
(注意,這裏的training裏面是全部7481張圖,不然會報錯沒有000000.txt)
kitti
object
testing
calib
image_2
label_2
velodyne
training
calib
image_2
label_2
velodyne
pred # 這個是需要自己複製過來的
3. 運行可視化源碼kitti_object_vis
源碼地址:https://github.com/kuixu/kitti_object_vis
下載源碼並進到源碼文件夾
git clone https://github.com/kuixu/kitti_object_vis
把上述kitti數據集的object/目錄,鏈接到data/目錄下過去,並命名爲obj(因爲這個源碼需求)
cd kitti_object_vis/data
ln -s /home/ubuntu/dataset/KITTI/object obj
下載源碼和源碼所需的庫(mayavi之類的),照readme裏面去做
運行命令分爲幾種:
(1) 只顯示LiDAR 僅真值
cd kitti_object_vis
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis
終端按回車鍵進行下一張圖
(2) 顯示LiDAR和image 僅真值
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes
終端按回車鍵進行下一張圖
(3) 顯示特定某張圖的LiDAR和image 僅真值
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 100
ind 100表示就是圖像編號爲000100.txt
注:紅色是預測框,綠色是真值框
(4) 顯示pointRCNN預測值+真值對比
在以上所有命令後面加 -p
例:
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 6 -p
目前有幾個疑問:
image中只能顯示gt,無法顯示預測結果。
0是啥意思?類別嗎,但個別的帶人的圖上面標號也都是0,如下:
(運行kitti的tracking數據,三維顯示數據框裏面沒有標記出label,只有紅色框?)
感謝前輩:https://blog.csdn.net/tiatiatiatia/article/details/97765165