mmdetection3d(2)---结果、log可视化

1.结果可视化:
安装的docker 版本的mmdetection3d在可视化的时候存在一些问题,open3d总是难以打开窗口,但源码安装的版本是可以实现可视化的。所以采用源码安装方法。源码安装也比较简便,环境没什么问题的话,过程很顺滑。
(1)源码安装步骤
安装过程方法:https://github.com/open-mmlab/mmdetection3d/blob/master/docs/getting_started.md
安装过程中没有什么坑,按照步骤一步一步来就可以。

安装运行之后出现类似:

KeyError: 'SparseConv2d is already registered in conv layer'

的报错,大概率是MMCV版本过高,适当降低mmcv版本,重新安装即可.

python_open3d_Error: The DISPLAY environment variable is missing
https://blog.csdn.net/shyjhyp11/article/details/113250325

(2)使用源码安装的版本进行可视化
先配置好config文件中test_cfg部分的的iou_thre以及score_thr
a.在线可视化
运行之后会对每一帧都进行可视化,并且可视化后会把原始点云和预测结果的.obj文件保存到show-dir目录下。每次想切换下一帧就将open3d窗口×掉。不过这种方法只能显示预测结果,GT没有一起显示。

eg:
python tools/test.py configs/3dssd/3dssd_kitti-3d-car.py data/mmdetection/pretrain_weight/3dssd_kitti-3d-car_20210324_122002-07e9a19b.pth --show --show-dir ./data/zjh_data/mmdetection/show_result

b.离线可视化,可以和GT一起显示
想要和GT一起显示,需要生成的文件中也一起包括gt.obj。使用如下命令可以一起得到gt.obj

python tools/test.py ${CONFIG_FILE} ${CKPT_PATH} --eval 'mAP' --eval-options 'show=True' 'out_dir=${SHOW_DIR}'

但在实际运行的时候,我的源码安装的mmdet3d出现如下报错。
暂时没有解决该问题,先记录一下。没改过这部分源码,感觉是环境配置哪里出现了点问题。

File "/mnt/data/zjh_data/mmdet3d_install/mmdetection3d/mmdet3d/core/evaluation/kitti_utils/eval.py", line 365, in calculate_iou_partly
    overlap_part = image_box_overlap(gt_boxes, dt_boxes)
TypeError: expected dtype object, got 'numpy.dtype[float64]'

曲线救国方法:
采用docker版本先生成可视化文件,然后再采用源码版本的可视化。但是docker版本的因为open3d的问题,导致没法可视化从而导致在调用open3d的时候就报错,使得无法生成可视化文件。
解决方法:打开目录mmdet3d/core/visualization/show_result.py文件,把show_result函数下的if show 调用open3d部分全都注释,就不会因为open3d不能用影响可视化文件生成。
运行如下命令生成模型.pkl文件和可视化文件000023_gt.obj ,000023_points.obj ,000023_pred.obj。

python tools/test.py ${CONFIG_FILE} ${CKPT_PATH} --out ./data/result_output/out_dir/3dssd.pkl --eval 'mAP' --eval-options 'show=True' 'out_dir=./data/result_output/show_result'

生成之后采用tool中的离线可视化脚本进行可视化:

python tools/misc/visualize_results.py ${CONFIG_FILE} --result ~/zjh_data/result_output/out_dir/3dssd.pkl --show-dir ~/zjh_data/result_output/show_result/

在这里插入图片描述
2.log文件中误差曲线可视化

 python tools/analysis_tools/analyze_logs.py plot_curve ~/zjh_data/mmdetection/work_dir623/20210624_004729.log.json --keys loss --legend loss --out loss.pdf
  1. test测试并提交到kitti上进行在线测评
    (1)修改config文件中
ann_file=data_root + 'kitti_infos_test.pkl',
        split='testing',
data = dict(
    samples_per_gpu=6,
    workers_per_gpu=4,
    train=dict(
        type='RepeatDataset',
        times=2,
        dataset=dict(
            type=dataset_type,
            data_root=data_root,
            ann_file=data_root + 'kitti_infos_train.pkl',
            split='training',
            pts_prefix='velodyne_reduced',
            pipeline=train_pipeline,
            modality=input_modality,
            classes=class_names,
            test_mode=False,
            # we use box_type_3d='LiDAR' in kitti and nuscenes dataset
            # and box_type_3d='Depth' in sunrgbd and scannet dataset.
            box_type_3d='LiDAR')),
    val=dict(
        type=dataset_type,
        data_root=data_root,
        ann_file=data_root + 'kitti_infos_val.pkl',
        split='training',
        pts_prefix='velodyne_reduced',
        pipeline=test_pipeline,
        modality=input_modality,
        classes=class_names,
        test_mode=True,
        box_type_3d='LiDAR'),
    test=dict(
        type=dataset_type,
        data_root=data_root,
        # 这里改动过,训练的时候重新改为val
        ####下面两行修改成test数据
        ann_file=data_root + 'kitti_infos_test.pkl',
        split='testing',
        pts_prefix='velodyne_reduced',
        pipeline=test_pipeline,
        modality=input_modality,
        classes=class_names,
        test_mode=True,
        box_type_3d='LiDAR'))

(2)使用脚本文件进行测试

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值