StreamPETR:革命性3D物体检测框架快速入门指南 StreamPETR革命性3D物体检测框架快速入门指南【免费下载链接】StreamPETR[ICCV 2023] StreamPETR: Exploring Object-Centric Temporal Modeling for Efficient Multi-View 3D Object Detection项目地址: https://gitcode.com/gh_mirrors/st/StreamPETRStreamPETR是ICCV 2023收录的创新3D物体检测框架专注于探索以物体为中心的时间建模技术为多视图3D物体检测提供高效解决方案。该框架在保持高精度的同时显著提升处理速度是自动驾驶和机器人感知领域的突破性工具。 什么是StreamPETRStreamPETRStreaming Perception Transformer是一种基于Transformer架构的3D物体检测系统专为处理连续视频流数据设计。它通过创新的物体中心时间建模方法有效融合多帧视觉信息在仅使用摄像头输入的情况下实现高性能3D检测同时保持出色的实时性。核心优势高效时序建模采用物体级记忆机制避免冗余计算实时处理能力在NVIDIA RTX 3090上可达31.7 FPS高精度检测在nuScenes数据集上达到62.0 mAP和67.6 NDS纯视觉方案无需激光雷达降低硬件成本 StreamPETR工作原理StreamPETR的核心创新在于其物体中心的时序建模方法。传统方法通常处理完整的历史帧导致计算冗余而StreamPETR只追踪关键物体信息大幅提升效率。StreamPETR框架展示了物体中心时序建模流程包括历史记忆队列、传播Transformer和更新记忆队列框架主要由三部分组成历史记忆队列存储过去帧的物体特征传播Transformer融合当前帧与历史物体信息更新记忆队列动态维护关键物体特征这种设计使系统能够高效处理视频流数据同时保持对物体的长期追踪能力。 性能表现StreamPETR在nuScenes数据集上实现了精度与速度的完美平衡。与其他先进方法相比它在保持高检测精度的同时显著提升了处理速度StreamPETR在mAP平均精度和FPS每秒帧数上的表现对比关键性能指标mAP平均精度62.0NDSnuScenes检测分数67.6AMOTA多目标跟踪精度65.3处理速度31.7 FPSRTX 3090️ 快速开始环境准备StreamPETR需要以下基础环境Python 3.8CUDA 11.2PyTorch 1.9.0mmdet3d 1.0.0rc6步骤1创建并激活虚拟环境conda create -n streampetr python3.8 -y conda activate streampetr步骤2安装PyTorchpip install torch1.9.0cu111 torchvision0.10.0cu111 torchaudio0.9.0 -f https://download.pytorch.org/whl/torch_stable.html步骤3安装可选的Flash Attentionpip install flash-attn0.2.2步骤4克隆仓库git clone https://gitcode.com/gh_mirrors/st/StreamPETR cd StreamPETR步骤5安装mmdetection3dpip install mmcv-full1.6.0 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html pip install mmdet2.28.2 pip install mmsegmentation0.30.0 git clone https://github.com/open-mmlab/mmdetection3d.git cd mmdetection3d git checkout v1.0.0rc6 pip install -e . cd ..数据准备步骤1下载nuScenes数据集从nuScenes官网下载数据集到./data/nuscenes步骤2创建信息文件python tools/create_data_nusc.py --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes2d --version v1.0步骤3下载预训练权重mkdir ckpts # 下载预训练权重到ckpts目录准备完成后目录结构应如下StreamPETR ├── projects/ ├── mmdetection3d/ ├── tools/ ├── configs/ ├── ckpts/ ├── data/ │ ├── nuscenes/ │ │ ├── maps/ │ │ ├── samples/ │ │ ├── sweeps/ │ │ ├── v1.0-test/ │ │ ├── v1.0-trainval/ │ │ ├── nuscenes2d_temporal_infos_train.pkl │ │ ├── nuscenes2d_temporal_infos_val.pkl训练模型使用以下命令开始训练tools/dist_train.sh projects/configs/StreamPETR/stream_petr_r50_flash_704_bs2_seq_24e.py 8 --work-dir work_dirs/stream_petr_r50_flash_704_bs2_seq_24e/评估模型评估检测性能tools/dist_test.sh projects/configs/StreamPETR/stream_petr_vov_flash_800_bs2_seq_24e.py work_dirs/stream_petr_vov_flash_800_bs2_seq_24e/latest.pth 8 --eval bbox评估跟踪性能python nusc_tracking/pub_test --version v1.0-trainval --checkpoint {PATH_RESULTS.JSON} --data_root {PATH_NUSCENES}速度测试python tools/benchmark.py projects/configs/test_speed/stream_petr_r50_704_bs2_seq_428q_nui_speed_test.py 实用训练技巧训练方式选择提供滑动窗口训练和流视频训练两种方式。流视频训练收敛较慢但节省4倍训练时间损失权重调整将边界框回归的x,y权重从1.0调整为2.0可提升性能学习率设置小模型建议设置更高的学习率0.25或0.5Sync-BN对小模型使用Sync-BN可获得更稳定的结果查询数量训练60个epoch时300128查询与644256查询效果相近但更利于部署 相关资源官方文档环境设置数据准备训练与推理配置文件StreamPETR配置projects/configs/StreamPETR/RepDETR3D配置projects/configs/RepDETR3D/模型代码StreamPETR头部projects/mmdet3d_plugin/models/dense_heads/streampetr_head.py传播Transformerprojects/mmdet3d_plugin/models/utils/petr_transformer.py 引用如果您在研究中使用StreamPETR请引用以下论文article{wang2023exploring, title{Exploring Object-Centric Temporal Modeling for Efficient Multi-View 3D Object Detection}, author{Wang, Shihao and Liu, Yingfei and Wang, Tiancai and Li, Ying and Zhang, Xiangyu}, journal{arXiv preprint arXiv:2303.11926}, year{2023} }StreamPETR为3D物体检测领域带来了革命性的效率提升特别适合实时自动驾驶和机器人应用。通过本指南您可以快速部署并体验这一先进技术的强大能力【免费下载链接】StreamPETR[ICCV 2023] StreamPETR: Exploring Object-Centric Temporal Modeling for Efficient Multi-View 3D Object Detection项目地址: https://gitcode.com/gh_mirrors/st/StreamPETR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考