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

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

Oracle主键和外键详解及实用技巧

在 Oracle 数据库中,主键(Primary Key)和外键(Foreign Key)用于维护数据库表之间的数据完整性。 1. 主键(Primary Key) 主键是一列或多列,能够唯一标识表中的每一行。表中只能有一个主键,并且主键列不能为空(即 NOT NULL)。 特性: 唯一性:主键中的每一个值都是唯一的,不能重复。非空性:主键列不能包含 NULL 值。索引:Oracle 自动为

Temu官方宣导务必将所有的点位材料进行检测-RSL资质检测

关于饰品类产品合规问题宣导: 产品法规RSL要求 RSL测试是根据REACH法规及附录17的要求进行测试。REACH法规是欧洲一项重要的法规,其中包含许多对化学物质进行限制的规定和高度关注物质。 为了确保珠宝首饰的安全性,欧盟REACH法规规定,珠宝首饰上架各大电商平台前必须进行RSLReport(欧盟禁限用化学物质检测报告)资质认证,以确保产品不含对人体有害的化学物质。 RSL-铅,