基于多摄像头的纯视觉3D目标检测方法在自动驾驶领域得到越来越广泛的关注。DEPE模型采用Trasformer的ed-to-ed的结构设计,无需传统检测方法中手工设计的要素(如achor,NMS等), 而是直接利用图片的2D特征进行时(历史帧)空(多视角)融合,并在训练过程中利用LiDAR点云监督图片depth的预测进而改进3D感知精度,最后经过DETR-like的trasformer decoder输出3D目标。在uScees数据集上的演示demo如下: DEPE模型以PETRv2(论文, 代码)方法为基础,该方法的核心思路是将图片在depth方向采样并结合相机参数生成3D坐标,将3D的位置编码与2D特征结合(3DPE),从而进行3D检测。DEPE方法扩展了预测图片像素depth的方式,借鉴BEVDepth(论文, 代码)提出的方法,借助LiDAR点云数据对图片depth的预测进行监督,将depthmap编码后与3DPE结合,以提升目标在3D场景的感知精度。该方式简洁有效,在uScees-val数据集上,输入分辨率800x320时,NDS指标相比PETRV2有0.52%的提升( 本模型适用于自动驾驶场景,支持uScees数据集的格式作为输入,主要以多视角的视觉输入为主,预测3D场景的10类目标(如行人、车辆)的位置、尺寸、朝向、速度、属性等信息。 本模型支持uScees数据集的推理,用户需要对原始数据集进行处理,并按照预定格式放置于特定文件夹下。首先请参考mmdet3d的官方文档对原始数据进行预处理(注:mmdet3d在1.0后重构了坐标系定义,推理代码支持mmdet3d<1.0和mmdet3d>=1.0的版本,但建议使用最新版本),然后使用PETRv2的官方工具脚本生成pkl文件。默认情况下,模型以uScees-mii的val数据集演示模型推理效果,该数据集包含2个场景共81帧。 本模型使用的训练数据为uScees,是自动驾驶领域公开的大规模数据集之一,共采集了1000个场景,每个场景约20秒,涵盖了复杂的交通状况和天气、光照变化。数据采集的设备包括6个相机、1个LIDAR,5个RADAR,以及GPS和IMU。详见:官网 DEPE模型训练的图片输入分辨率为800x320,使用v2-99的预训练模型作为backboe, 初始学习率2e-4,采用cosie退火策略训练24epoch,单卡batch_size为1,使用8卡v100耗时18小时。 DEPE模型与原始PETRv2模型在uScees-val的指标对比如下: 逐个类别的指标如下: 该项目的部分代码来自于PETRv2, BEVDepth,BEVDet,非常感谢他们开源了相关工作。
如果你觉得该模型对你有所帮助,请考虑引用下面的相关的论文:DEPE模型介绍
模型描述
期望模型使用方式以及适用范围
如何使用
代码范例
import cv2
import os
import os.path as osp
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
from modelscope.outputs import OutputKeys
from modelscope.msdatasets import MsDataset
# use uScees-mii dataset as iput
ms_ds_uscees = MsDataset.load('uScees_mii', amespace='shaoxua')
data_path = ms_ds_uscees.cofig_kwargs['split_cofig']
val_dir = data_path['validatio']
val_root = val_dir + '/' + os.listdir(val_dir)[0] + '/'
# pipelie
depe = pipelie(Tasks.object_detectio_3d, model='damo/cv_object-detectio-3d_depe')
sample_idx = 10 # set sample idex i [0,80]
iput_dict = {'data_root': val_root, 'sample_idx': sample_idx}
result = depe(iput_dict)
rst_img = result[OutputKeys.OUTPUT_IMG]
if result is ot Noe:
cv2.imwrite('result.jpg', rst_img)
prit(f'Output writte to {osp.abspath("result.jpg")}')
# if you wat to show the result, you ca ru
import matplotlib.pyplot as plt
plt.axis('off')
plt.imshow(rst_img)
模型局限性以及可能的偏差
训练数据介绍
模型训练流程
数据评估及结果
Name
mAP↑
mATE↓
mASE↓
mAOE↓
mAVE↓
mAAE↓
NDS↑
PETRv2p4800x320_DN
0.4191
0.7005
0.2632
0.4555
0.3814
0.1878
0.5107
DEPEp4800x320_DN
0.4253
0.7031
0.2681
0.4320
0.3791
0.1874
0.5159
Object Class
AP
ATE(m)
ASE(1-IOU)
AOE(rad)
AVE(m/s)
AAE(1-acc)
car
0.6103
0.4762
0.1464
0.0742
0.3233
0.1914
truck
0.3937
0.6865
0.2001
0.1023
0.3356
0.2046
bus
0.4687
0.7130
0.1916
0.0824
0.7187
0.2394
trailer
0.2391
1.0700
0.2495
0.6014
0.2770
0.1486
costructio_vehicle
0.1446
1.0407
0.4767
1.0548
0.1281
0.3404
pedestria
0.5100
0.6435
0.2900
0.5347
0.4218
0.1811
motorcycle
0.4091
0.6550
0.2623
0.5569
0.5812
0.1804
bicycle
0.4129
0.5723
0.2551
0.7236
0.2474
0.0132
traffic_coe
0.5660
0.5150
0.3178
a
a
a
barrier
0.4985
0.6407
0.2914
0.1573
a
a
相关论文以及引用信息
@article{liu2022petrv2,
title={PETRv2: A Uified Framework for 3D Perceptio from Multi-Camera Images},
author={Liu, Yigfei ad Ya, Jujie ad Jia, Fa ad Li, Shuaili ad Gao, Qi ad Wag, Tiacai ad Zhag, Xiagyu ad Su, Jia},
joural={arXiv preprit arXiv:2206.01256},
year={2022}
}
@article{li2022bevdepth,
title={BEVDepth: Acquisitio of Reliable Depth for Multi-view 3D Object Detectio},
author={Li, Yihao ad Ge, Zheg ad Yu, Guayi ad Yag, Jirog ad Wag, Zegra ad Shi, Yukag ad Su, Jiajia ad Li, Zemig},
joural={arXiv preprit arXiv:2206.10092},
year={2022}
}
@article{huag2022bevdet4d,
title={BEVDet4D: Exploit Temporal Cues i Multi-camera 3D Object Detectio},
author={Huag, Jujie ad Huag, Gua},
joural={arXiv preprit arXiv:2203.17054},
year={2022}
}
点击空白处退出提示
评论