Carla仿真系列:5_Carla 四路相机标定与BEV环视拼接

前面几期把环境搭好、加了NPC、跑通YOLO、装了四路相机,这期是系列的核心------把四路相机图像拼成一张完整的鸟瞰环视图。

1 为什么 BEV 环视重要

自动驾驶要看到车四周360度的情况,靠单路相机做不到。BEV(Bird's Eye View)就是把前后左右四路相机的图像,投影到车顶俯视视角,拼成一张完整的环视图。

复制代码
       前
        ↑
左 ←── 车 ──→ 右
        ↓
       后

4路相机 → 各自标定 → 投影到BEV → 拼接成360度环视

2 整体流程

复制代码
启动环境(前几期一样)
    ↓
获取四路相机图像
    ↓
创建标定棋盘格
    ↓
每路相机计算 H 矩阵(单应矩阵)
    ↓
四路图像投影到 BEV 并拼接

第一步到第五步:准备阶段

环境启动、ROS Bridge、TCP图像传输、棋盘格创建,都跟前几期一样,按顺序执行:

bash 复制代码
# 终端1-2:启动容器 + Carla UE4
# 终端3:启动 ROS Bridge
# 终端4:多相机 TCP 服务端
python tcp_bridge/tcp_bridge_server_multi_camera_py2.py
# 终端5:接收图像
python tcp_bridge_client_py3.py
# 终端6:创建网格
python scripts/create_board_py2.py --vehicle-id 513 #这个ID是在启动 ROS Bridge时可以查看ego_vehicle参数

第六步:相机标定计算 H 矩阵

这是 BEV 拼接的核心。每路相机都需要计算一个单应矩阵 H,把相机视角的图像投影到 BEV 俯视视角。

bash 复制代码
cd /opt/carla_ws/sim_workspace/bev_surround
source activate py310

# 分别标定四个相机
python camera_bev_calib_py3.py --name front
python camera_bev_calib_py3.py --name back
python camera_bev_calib_py3.py --name left
python camera_bev_calib_py3.py --name right

标定原理:

复制代码
相机图像中的棋盘格角点
    ↓ 检测角点
建立 图像坐标 ↔ 世界坐标 对应关系
    ↓ 求解
单应矩阵 H(3x3)
    ↓ 应用
相机图像 → BEV俯视图像

关键点: 四路相机必须用同一个世界坐标系(统一的地面平面),否则拼接时四个角会对不齐。

第七步:BEV 拼接

四路相机都标定好后,执行拼接:

bash 复制代码
python bev_surround_py3.py

运行后可以看到:

  • 四路相机图像被投影到 BEV 视角
  • 前后左右拼成完整的360度环视图
  • 车辆周围的地面、车道线、障碍物都显示在鸟瞰图上

    需要说明一下:目前只实现了demo的效果,没有对4个角进行优化对齐,所以效果不是很好。

3 几个关键点

要点 说明
统一坐标系 四路相机共用同一地面平面,拼接才对齐
棋盘格标定 标定板/标定布,角点检测要准确
重叠区域 相邻相机留30度重叠,拼接处做融合
H矩阵精度 标定不准,拼接就歪,这是最花时间的地方

5_4个摄像头的标定和bev拼接

4 下一期

做图像的语义分割,再将语义分割结果投影到BEV空间得到语义BEV。

往期回顾

如果本文对你有帮助,欢迎点赞、关注、收藏 。

遇到问题可以评论区留言交流,也欢迎转发给需要的朋友。

相关推荐
Software攻城狮9 小时前
8 【 entity ,primitive,3D tiles 3者的含义和区别】
数码相机·3d
数字融合19 小时前
透明化数字孪生:以空间计算赋能全域智能决策
人工智能·数码相机·pygame
美摄科技2 天前
智能硬件如何增加一键成片剪辑功能?
数码相机·智能手机·智能硬件
蒲公英内测分发2 天前
智能家居厂商有多个产品线,包装上的 App 下载入口该共用还是分开?
android·人工智能·数码相机·机器人·智能家居·智能硬件
FLJwu2 天前
运动相机图像传感器选型实战|第二篇:参数看着一模一样,为什么骑行录像疯狂果冻、拖影翻车?
android·c语言·开发语言·数码相机·运动相机·oem 量产
小蒋观天下5 天前
【无标题】红外补光近距过曝、远距欠曝:导致车牌AI识别失效调试
人工智能·深度学习·数码相机·算法·机器学习·ai大模型
星马梦缘5 天前
JetAuto VLN语义目标探索
人工智能·数码相机
LittroInno5 天前
双光对齐为何静态正常动态错位 从时间同步到曝光中心
数码相机·时间同步·图像配准·热红外·可见光·双光融合
济南凡维6 天前
智能相机 VS 工业相机:机器视觉选型一次讲透
网络·数码相机·视觉检测
FLJwu6 天前
运动相机采购选型避坑实战|第二篇
c语言·开发语言·数码相机·运动相机·oem 量产