如何在mmdetection3d下批量的预测单目3d检测结果并保存

news/2024/11/2 17:26:08/

这是为了能通过pycharm功能在服务器下可以看见图片并成批量保存做的笔记,本人不是太会说明,所以代码解释如下

from mmdet3d.apis import init_model, inference_mono_3d_detector, show_result_meshlab
import glob
import mmcv
from os import path as osp# 这里是最好用绝对路劲,相对路劲有时候行不通,我也不知道是为什么
# config_file代表的是mmdetection3d的文件夹下ocnfigs的模型配置json文件。这可以根据自己的需求修改
config_file = '/data/home/jwu/mmdetection3d/configs/smoke/smoke_dla34_pytorch_dlaneck_gn-all_8x4_6x_kitti-mono3d.py' 
# ann_file是关于create_data.py后生成的data里面的mono3d.json文件,也是同上可以自行修改。
ann_file = '/data/home/jwu/mmdetection3d/data/kitti/kitti_infos_test_mono3d.coco.json'
# image_path是关于自己下载数据集的图片所在文件夹的路径,这个要根据个人的需求进行该别:注意:必行要跟上面的ann_file相匹配。
image_path = r'/data/home/jwu/mmdetection3d/data/kitti/testing/image_2/'
# checkpoints_file是关于自己训练模型的绝对路径,修改同上。
checkpoint_file = '/data/home/jwu/mmdetection3d/work_dirs/own_smoke_train/latest.pth'
# images_name是为了获得文件夹下的所在的所有图片的绝对路径。
images_name = glob.glob(image_path + "*.png")
for image_name in images_name:# 这一步是为了有些数据集如kitti下有很多有不同相机在同一时间和统一位置照的图片,#有下角标_,这下面的几步就是为了将其剔除,只留下真正的不含_的图片。if osp.basename(image_name).partition('_')[0] == osp.basename(image_name):continueimage_name = osp.basename(image_name).partition('_')[0]image = image_path + image_name + '.png'# data_infos = mmcv.load(ann_file)# # find the info corresponding to this image# for x in data_infos['images']:#     # print('x:',x)#     # print('image_name:', osp.basename(image))#     # print("x['file_name']:", osp.basename(x['file_name']))#     if osp.basename(x['file_name']) != osp.basename(image):#         continue#     img_info = x#     # print('img_info:', img_info)#     break# 这步是为了读取网络模型。model = init_model(config_file, checkpoint_file, device='cuda:0')# 这一步是为了的到结果和数据result, data = inference_mono_3d_detector(model, image, ann_file)# 这一步是为了将最终的结果以单目3d检测的方式储存并保存到你想要的路径下out_dir = './outputs/result'show_result_meshlab(data, result, out_dir, task='mono-det')

最后,将其保存为.py文件到demo文件夹下并运行,例如:

python demo/my_kitti_code.py

http://www.ppmy.cn/news/641594.html

相关文章

3D Slicer将分割结果保存

1、从segmentation editor 切换回data 2、双击分割名称完成名称更改,接着鼠标右键选择导出到binary label map,如下图 3、选中步骤2生成的label,鼠标右键选择export to file,如下图 4、选择格式以及存储路径,此处我选择的是nii.gz,一般也可选…

Solidworks如何保存为网页可以浏览的3D格式

1 如图所示3D装配图,在Solidworks中可以旋转,缩放。 2 我想要另存为在浏览器中可以缩放,旋转的格式。如下所示(我的装配图初步.htm) 3 步骤是,先在Solidworks中出版到eDrawings 4 然后再eDrawings里面另…

3dMax 闪退未保存的解决方案

使用3dMax的时候,偶尔会因为不明原因闪退 “发生了错误,应用程序将立即关闭。” 再次打开原文件,看到之前做的没有了,本来我不抱希望了 没想到,3dMax有默认自动保存的功能,隔一段时间就会自动保存 保存的…

3D视觉学习计划之点云的读取和保存

3D视觉学习计划之点云的读取和保存 一、QT配置PCL 1.Pro文件 这里先贴出我的Pro文件: TEMPLATE app CONFIG console c14 CONFIG - app_bundle CONFIG - qtSOURCES \main.cppINCLUDEPATH .\/usr/local/include/pcl-1.13 \/usr/include/eigen3 \/usr/include/v…

3dmax文件保存后超大怎么缩小?想学3D建模,还没软件速来领取

用3d max的时候突然遇到一个棘手的问题,max文件保存的时候突然变的很大,而且很占内存,想想是不是模型面太多了,保存其中的单体模型文件,文件的大小还是变的几百兆,估计是哪里出问题了,复制到哪里…

3D Slicer中文教程(三)—数据加载及保存方式

1.打开数据与保存数据 (1)打开数据 ——可以将数据拖拽到3D Slicer应用窗口或者从菜单栏工具栏打开。 ——多种方式加载大量数据。 有关DICOM数据,请参阅DICOM模块文档。 对于几乎所有其他(包括场景),您可以使用添加数据对话框。 有关支持的数据格式的列表,请参阅此列表…

mmdet3d training 流程

一般大家的pytorch训练代码都比较简洁,mmdet3d为了支持扩展性,把代码进行了很多的抽象和封装,大大降低了可读性。现在简单理一下其training的代码执行逻辑。 实际使用的时候肯定是train几个epoch之后eval一次的,这里只考虑trainin…

模型的保存与加载与多gpu的模型保存和加载

模型保存与加载 模型的保存与加载方式 模型保存有两种形式,一种是保存模型的state_dict(),只是保存模型的参数。那么加载时需要先创建一个模型的实例model,之后通过torch.load()将保存的模型参数加载进来,得到dict,再…