Carla仿真系列:7_BEV + 语义分割融合,一张鸟瞰图看懂整个场景
第6期做了语义分割,第5期做了BEV拼接,这期把它们融合起来——把语义分割结果投影到BEV鸟瞰图上,让整张图既能看到"哪里是什么",又能看到"在哪里"。
1 为什么要把两者融合
| 单独使用 | 融合后 |
|---|---|
| BEV:知道位置,不知道是什么 | 位置 + 语义,全都有 |
| 分割:知道是什么,是单视角 | 360度鸟瞰 + 像素级语义 |
| 信息割裂,要来回切换 | 一张图看懂整个场景 |
融合后的BEV语义图,直接能看到:路面在哪、车道线在哪、哪些区域可通行、障碍物是什么——这是自动驾驶场景理解的核心能力。
2 整体流程
启动环境(前几期一样) ↓ 发布四路相机图像(TCP桥接) ↓ 语义分割(SegFormer / YOLOPv2) ↓ 分割结果投影到BEV ↓ 融合成360度鸟瞰语义图第一步到第四步:准备阶段
环境启动、ROS Bridge、TCP图像传输,跟之前一样:
# 终端1-3:启动环境 + Carla + ROS Bridge# 终端4:发布相机图像cd/opt/carla_ws python tcp_bridge/tcp_bridge_server_multi_camera_py2.py# 四路环视第五步:启动语义BEV
方案一:SegFormer + BEV
cd/opt/carla_ws/sim_workspace/image_seg python image_seg_segformer_bev_online.pySegFormer 做语义分割,结果投影到 BEV 鸟瞰图。
方案二:YOLOPv2 + BEV
cd/opt/carla_ws/sim_workspace/image_seg python image_seg_yolopv2_bev_online.pyYOLOPv2 是三合一模型(检测+车道线+可行驶区域),投影到BEV后效果更好。
3 实现原理
四路相机图像 ↓ 语义分割模型 每路的分割图(每个像素:路面/车道线/车/人/建筑) ↓ 单应矩阵投影(第5期标定的) 四路分割图 → BEV鸟瞰视角 ↓ 拼接融合 360度BEV语义图关键:复用第5期标定好的 H 矩阵,把分割结果(不是原始图像)投影到 BEV,融合成一张完整的鸟瞰语义图。
4 实测效果
两个模型都能跑通,整体效果都不是很好,不过只是测试一个通路思路的demo,如果要实现好的效果,可以这样:直接在BEV的图像上进行标注训练模型,这样的效果是最好的。
7_BEV+语义分割的融合
5 下一期
下一期将讲相机和激光点云的融合,如何将激光点云投影到图像上进行显示。
往期回顾
- Carla仿真系列:6_实时图像语义分割,SegFormer 和 YOLOPv2 实测对比
- Carla仿真系列:5_Carla 四路相机标定与BEV环视拼接
- Carla仿真系列:4_在 Carla 的 Tesla 上装 4 路摄像头,并创建网格为环视拼接做准备
- Carla仿真系列:3_Carla 仿真中跑通 YOLOv8 实时目标检测
- Carla仿真系列:2_Carla 仿真中批量添加 NPC,让场景动起来
- Carla仿真系列:1_Carla + ROS 仿真环境从零搭建,跑通完整数据流
如果本文对你有帮助,欢迎点赞、关注、收藏。
遇到问题可以评论区留言交流,也欢迎转发给需要的朋友。
