3D目标检测实用技巧(四)- OpenPCDet改变预测类别

2024-04-23 18:36

本文主要是介绍3D目标检测实用技巧(四)- OpenPCDet改变预测类别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、引言

本次探讨的问题是:如何通过OpenPCDet改变预测的类别?

假设:我们原来预测的类别是Car,如何仅在yaml文件中添加一些配置,使得模型能够同时预测出Pedestrians和Cyclists。

下面就这个问题简单复现一下。

二、复现过程

首先我们以VirConv举例:

在VirConv.yaml文件中,上面的Class只有['Car']类别,因此首先我们要做的是要把其他两个类别加进来:

CLASS_NAMES: ['Car','Pedestrian', 'Cyclist']  # prediction class

然后这样运行起来,预测的结果将会是:

 也就是说,除了car类别以外,没有任何一个类别可以被成功预测出来。这是因为我们没有添加anchor生成器的一些参数:

    DENSE_HEAD:NAME: AnchorHeadSingleCLASS_AGNOSTIC: FalseUSE_DIRECTION_CLASSIFIER: TrueDIR_OFFSET: 0.78539DIR_LIMIT_OFFSET: 0.0NUM_DIR_BINS: 2# 在这里加入预测类别的框ANCHOR_GENERATOR_CONFIG: [  # prediction anchor generation{'class_name': 'Car','anchor_sizes': [[3.9, 1.6, 1.56]],'anchor_rotations': [0, 1.57],'anchor_bottom_heights': [-1.78],'align_center': False,'feature_map_stride': 8,'matched_threshold': 0.6,'unmatched_threshold': 0.45},{'class_name': 'Pedestrian','anchor_sizes': [[0.8, 0.6, 1.73]],'anchor_rotations': [0, 1.57],'anchor_bottom_heights': [-0.6],'align_center': False,'feature_map_stride': 8,'matched_threshold': 0.5,'unmatched_threshold': 0.35},{'class_name': 'Cyclist','anchor_sizes': [[1.76, 0.6, 1.73]],'anchor_rotations': [0, 1.57],'anchor_bottom_heights': [-0.6],'align_center': False,'feature_map_stride': 8,'matched_threshold': 0.5,'unmatched_threshold': 0.35}]

加入后就没啥问题了:

2024-04-22 20:20:45,398   INFO  Car AP@0.70, 0.70, 0.70:
bbox AP:99.0242, 89.8920, 89.7941
bev  AP:90.5798, 88.8974, 88.8224
3d   AP:90.2740, 87.3502, 87.2354
aos  AP:98.71, 89.46, 89.26
Car AP_R40@0.70, 0.70, 0.70:
bbox AP:99.4942, 95.7422, 95.6544
bev  AP:96.6726, 92.3975, 92.3774
3d   AP:96.1565, 88.9776, 88.9854
aos  AP:99.16, 95.20, 94.96
Car AP@0.70, 0.50, 0.50:
bbox AP:99.0242, 89.8920, 89.7941
bev  AP:98.9991, 97.3256, 89.7406
3d   AP:98.9965, 89.8333, 89.7366
aos  AP:98.71, 89.46, 89.26
Car AP_R40@0.70, 0.50, 0.50:
bbox AP:99.4942, 95.7422, 95.6544
bev  AP:99.4721, 97.7615, 95.6498
3d   AP:99.4714, 95.6845, 95.6274
aos  AP:99.16, 95.20, 94.96
Pedestrian AP@0.50, 0.50, 0.50:
bbox AP:59.1360, 50.5516, 42.3628
bev  AP:59.0754, 50.3845, 42.3691
3d   AP:58.5248, 49.8588, 42.0124
aos  AP:32.92, 28.50, 24.50
Pedestrian AP_R40@0.50, 0.50, 0.50:
bbox AP:61.8966, 50.3211, 43.5737
bev  AP:61.6259, 50.0281, 43.1782
3d   AP:60.9391, 49.4208, 42.6651
aos  AP:30.05, 23.97, 20.56
Pedestrian AP@0.50, 0.25, 0.25:
bbox AP:59.1360, 50.5516, 42.3628
bev  AP:68.7782, 59.6901, 51.3097
3d   AP:68.7782, 59.6901, 51.3086
aos  AP:32.92, 28.50, 24.50
Pedestrian AP_R40@0.50, 0.25, 0.25:
bbox AP:61.8966, 50.3211, 43.5737
bev  AP:68.3972, 56.2436, 46.9825
3d   AP:68.3972, 56.2436, 46.9822
aos  AP:30.05, 23.97, 20.56
Cyclist AP@0.50, 0.50, 0.50:
bbox AP:60.3033, 42.8206, 34.7173
bev  AP:59.6499, 41.9951, 34.3846
3d   AP:57.8227, 41.0860, 33.6334
aos  AP:29.64, 22.72, 19.19
Cyclist AP_R40@0.50, 0.50, 0.50:
bbox AP:61.2353, 37.5554, 35.1295
bev  AP:58.4128, 36.8041, 34.4358
3d   AP:56.3943, 35.5600, 31.3543
aos  AP:26.01, 15.93, 14.79
Cyclist AP@0.50, 0.25, 0.25:
bbox AP:60.3033, 42.8206, 34.7173
bev  AP:59.7645, 42.0996, 34.3846
3d   AP:59.7645, 42.0996, 34.3846
aos  AP:29.64, 22.72, 19.19
Cyclist AP_R40@0.50, 0.25, 0.25:
bbox AP:61.2353, 37.5554, 35.1295
bev  AP:60.5544, 36.9441, 34.5113
3d   AP:60.5544, 36.9441, 34.5113
aos  AP:26.01, 15.93, 14.79

三、 注意

还有一点值得注意的是,yaml文件还有一个地方提及了三个类别,也就是gt-sampling:

  AUG_CONFIG_LIST:- NAME: gt_samplingAUG_WITH_IMAGE: True # use PC-Image AugJOINT_SAMPLE: True # joint sample with pointKEEP_RAW: False # keep original PCPOINT_REFINE: True # refine points with different calibBOX_IOU_THRES: 0.5IMG_AUG_TYPE: by_depth  AUG_USE_TYPE: annotation IMG_ROOT_PATH: semi/image_2USE_ROAD_PLANE: FalseDB_INFO_PATH:- kitti_dbinfos_trainsemi.pklPREPARE: {filter_by_min_points: ['Car:5', 'Pedestrian:5', 'Cyclist:5'],filter_by_difficulty: [-1],}# 这是gt-sampling增强用到的参数SAMPLE_GROUPS: ['Car:15', 'Pedestrian:15', 'Cyclist:15']NUM_POINT_FEATURES: 8DATABASE_WITH_FAKELIDAR: False  REMOVE_EXTRA_WIDTH: [0.0, 0.0, 0]LIMIT_WHOLE_SCENE: False- NAME: random_world_rotationWORLD_ROT_ANGLE: [-0.78539816, 0.78539816]- NAME: random_world_flipALONG_AXIS_LIST: ['x']- NAME: random_world_scalingWORLD_SCALE_RANGE: [0.95, 1.05]

参数的意思也很简单,就是从别的帧里采样多少个目标过来,Car:15就是采样十五个汽车。实际上,这些与我们上述的更改与预测什么类别并没有太大联系,只能说一定程度上会影响预测精度。

这篇关于3D目标检测实用技巧(四)- OpenPCDet改变预测类别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/929570

相关文章

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2