在复现完pointpillar和Second两个算法之后,又开始捣鼓kitti数据集的可视化。
参考博客:3D目标检测数据集 KITTI(标签格式解析、3D框可视化、点云转图像、BEV鸟瞰图)-CSDN博客
基于kitti数据集的算法流程(含数据集准备等):基于kitti数据集的3D目标检测算法的训练流程_pointpillar训练kitti数据集-CSDN博客
数据集和可视化代码的下载这里不再进行赘述,大家自行查看上面分享的博客。
目录
一、数据准备
1、文件夹布局
首先我们需要将下载好的数据集和可视化代码按照以下格式进行存放:
我在之前进行算法复现时就已经安装好了mmdetection3d框架,这里是在mmdetection3d文件夹下新建的一个visualization文件夹,文件夹全部内容如下:
其中data文件夹存放了用于复现算法的全部数据集(点云数据、图像数据、标签数据和标定数据)。tools文件夹存放了用于运行的train.py文件和test.py。内置的mmdetection3d文件夹下存放了包含pointpillar和Second算法的各种py文件(在configs文件夹下)。
将从上述博客中下载好的三个用于可视化的代码直接放在visualization文件夹下,自行新建文件夹save_output用于保存生成的带有边界框的图像,新建dataset文件夹,用于存放数据集。dataset文件夹内容如下:
将kitti数据集中下载的testing和training文件夹(下载的压缩包解压后自动形成的两个文件夹)复制到该dataset文件夹下。这样,数据集和代码的准备工作就完成了(pycache文件夹不用管,运行成功后会自行生成)。
2、路径修改
在kitti_vis_main.py文件的visualization函数中需要修改路径为自己的数据集路径:
大家根据自己的dataset文件夹路径进行修改即可。这里的data_idx是图像索引号,大家可以根据需要修改成想可视化的图像编号。
二、代码运行
1、激活算法复现时的虚拟环境
conda activate <你的虚拟环境名称>
不知道虚拟环境如何激活以及虚拟环境各种配置的可以看看算法复现的这篇博客:
基于kitti数据集的3D目标检测算法的训练流程-CSDN博客
2、进入文件夹目录
cd mmdetection3d/visualization
如果你的文件夹命名和我不同,记得修改!
3、运行代码
python kitti_vis_main.py
直接使用python命令运行main文件。
4、报错解决
运行后会出现几个报错,下面来一一解决:
第一个报错就是未找到‘mayavi’模块,解决方法也很简单,直接pip install 模块名就行:
pip install mayavi
运行pip命令之后再次运行main文件,这时会遇到第二个报错:
同样,第二个报错也是模块问题,这里未找到‘configobj’模块,解决方法如报错一:
python install configobj
5、运行结果报错
在两个报错解决之后就可以继续运行代码,但是最后在终端还是出现了error(如下图所示):
实际上,这里的error说的是尝试为特定类型(在本例中为 'image/png')的文件定义一个查看(或渲染)规则时遇到了问题。这个规则没有通过其测试用例。也就是图像(无论是imame还是png)在终端都无法显示。但其实到这里运行就成功了也结束了。
三、结果查看
在代码运行完毕之后,我们可以看到save_output文件夹中多了五张图片并且pycache文件夹也多了两个pyc后缀的文件。
以上是image_with_3Dboxes图像,就是生成的带有3D边界框的图像。剩下四张分别是带有边界框的鸟瞰图(BEV with boxes)、鸟瞰图(BEV)、带有2D边界框的图像(image_with2Dboxes)和激光雷达图像(lidar_on_image)。
而pyc文件为 Python 的编译文件。当你运行一个 Python 脚本时,Python 解释器会首先将源代码(.py
文件)编译成字节码,然后执行这些字节码。为了提高性能,Python 允许将这些编译后的字节码保存到一个 .pyc
文件中,这样下次运行相同的脚本时,Python 可以直接加载这些字节码,而不需要重新编译源代码。
这样就完成了kitti数据集的可视化操作。之后会进行对自己的数据集进行可视化的讲解!
标签:基于,数据,文件夹,报错,可视化,kitti,运行 From: https://blog.csdn.net/qq_52889317/article/details/143113601