Grounded-Segment-Anything与自动驾驶:摄像头图像的实时障碍物分割
自动驾驶系统依赖精确的环境感知技术,而摄像头图像的障碍物分割是其中的核心环节。传统方法在复杂场景下常面临误检、漏检问题,Grounded-Segment-Anything(Grounded-SAM)通过结合Grounding-DINO目标检测与Segment Anything(SAM)分割能力,实现了像素级障碍物识别。本文将聚焦其在自动驾驶摄像头图像分割中的应用,尤其是如何通过3D框估计技术提升环境感知精度。
技术架构:从2D分割到3D空间感知
Grounded-SAM的自动驾驶解决方案构建在模块化架构之上,核心包括目标检测、2D分割和3D框生成三个层级:
- 目标检测层:采用GroundingDINO模型,通过文本提示(如"car"、"pedestrian")实现零样本障碍物检测,输出2D边界框。
- 2D分割层:基于Segment Anything的掩码生成能力,将检测框细化为像素级掩码。
- 3D空间转换层:通过voxelnext_3d_box模块,结合激光雷达点云数据,将2D掩码投影为3D障碍物框,实现空间定位。
关键代码实现可见grounded_sam_3d_box.ipynb,其中_draw_3dbox函数(位于voxelnext_3d_box/utils/image_projection.py)负责将3D坐标转换为图像平面坐标。
实时分割流程:从图像输入到障碍物输出
以下是自动驾驶场景中障碍物分割的典型流程,以车辆后视图摄像头为例:
1. 图像采集与预处理
自动驾驶车辆的鱼眼摄像头采集原始图像,如assets/n015-2018-08-02-17-16-37+0800__CAM_BACK_LEFT__1533201470447423.jpg所示,包含车辆、行人等障碍物。
2. 目标检测与掩码生成
通过Grounded-SAM的model接口(grounded_sam_3d_box.ipynb)输入图像和提示点,输出障碍物掩码:
image = cv2.imread(image_path)
prompt_point = np.array([[560, 500]]) # 点击图像中的障碍物
mask, box3d = model(image, point_dict, prompt_point, lidar2img_rt, image_id)
3. 3D框生成与可视化
利用相机内参和外参矩阵(lidar2img_rt),将激光雷达点云与图像掩码融合,生成3D障碍物框:
上图显示了车辆后方障碍物的3D框投影结果,不同颜色对应不同障碍物类别。核心算法通过voxelnext_3d_box/model.py中的Model类实现,结合VoxelNeXt稀疏卷积网络完成点云特征提取。
性能优化:移动端部署与效率提升
为满足车载系统实时性要求,项目提供多种轻量化模型选择:
| 模型变体 | 推理速度(FPS) | 模型大小 | 适用场景 |
|---|---|---|---|
| MobileSAM | 30+ | 35MB | 嵌入式摄像头 |
| EfficientSAM | 25+ | 88MB | 边缘计算单元 |
| Grounded-SAM (默认) | 15+ | 938MB | 车载中央处理器 |
轻量化实现详见EfficientSAM/目录,其中MobileSAM/setup_mobile_sam.py提供了移动端模型的初始化配置。实际部署可参考grounded_sam_osx_demo.py中的macOS优化方案。
实际应用案例:城市道路障碍物识别
在复杂城市道路场景中,系统展现出强大的障碍物区分能力:
图中同时检测并分割了车辆、行人、交通锥等多类障碍物,3D框的尺寸和位置精度满足自动驾驶决策需求。关键技术点包括:
- 掩码与点云的动态融合(voxelnext_3d_box/utils/image_projection.py)
- 多传感器标定参数校准(voxelnext_3d_box/config.yaml)
- 动态障碍物追踪算法(voxelnext_3d_box/models/voxelnext_head.py)
未来展望:多模态融合与端到端学习
项目正在探索更先进的感知方案:
- 多摄像头协同分割:结合前视、环视摄像头实现360°环境感知
- 时序信息融合:利用playground/ImageBind_SAM/的多模态能力,融合音频信号检测紧急车辆
- 端到端3D检测:参考VISAM/模块的视觉-激光雷达联合训练框架
相关实验代码可关注项目playground/目录下的最新研究进展,社区贡献指南详见CONTRIBUTING.md。
通过Grounded-Segment-Anything技术,自动驾驶系统能够更精准地理解复杂交通环境,为路径规划和决策控制提供可靠的环境感知输入。开发者可基于grounded_sam_demo.py快速搭建原型系统,或参考automatic_label_demo.py实现数据集的自动标注。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考






