这篇笔记梳理 360 全景拼接,也就是 AVM(Around View Monitor)/环视鸟瞰系统的原理、整条视频通路,以及它对芯片的真实需求。
先把结论说清楚:车载 360 拼接通常不是做“球形全景照片”,而是把车身四周的地面区域投影到一个统一的俯视平面,再和车模、单路摄像头画面组合显示。它更像一个实时几何变换 + 多路视频融合系统,ISP 只是其中一段,真正吃资源的是多路视频输入、鱼眼矫正、透视变换、查表采样、融合、显示和编码。

上图是典型通路。四个鱼眼摄像头采集车前、车后、左侧、右侧视野,主控盒把它们矫正、投影、融合成 360 鸟瞰图,同时还能输出前/后/左/右单路图像,或者编码保存到 SD 卡。
典型系统关键规格
以典型独立 360 主控盒方案为例,它不是单纯摄像头模组,而是一套摄像头、主控、线束、触发、显示和录像组合系统。常见配置包含主控盒、4 个全高清鱼眼摄像头、遥控器、主线束、供电线、摄像头延长线,以及 VGA/AHD 等显示适配线。
| 项目 | 典型规格 | 对实现的含义 |
|---|---|---|
| 摄像头数量 | 标配 4 路鱼眼,最多支持 8 路输入 | 常规小车/商用车用前后左右 4 路;超长车可能需要 6 路或更多 |
| 摄像头视场角 | 190° Full HD 鱼眼,水平视角 >170° | 相邻摄像头之间必须有重叠区域,否则无法无缝融合 |
| 摄像头分辨率 | 1920×1080,25/30 fps | 每路约 2MP,4 路就是 8MP/帧级别的输入规模 |
| 传感器 | 1/2.9 inch SONY CMOS,2.8um 像素 | 低照、动态范围、镜头匹配会影响拼接稳定性 |
| 主控 | 双核 ARM Cortex-A9 SoC,内置高性能 H.264 编解码核心 | CPU 负责控制、UI、文件和标定管理;实时像素处理应依赖硬件模块 |
| 输入能力 | Max. 8CH×1080P@25/30 | 主控需要多路视频接收、DMA 和足够内存带宽 |
| 显示模式 | Panoramic bird-view + single channel video | 常见显示是“鸟瞰 + 单路前/后/左/右”组合 |
| 输出 | VGA/HD 1080P 50/60,AHD 1080P 25/30,CVBS D1 | 同一帧可能要同时服务高清显示、模拟输出和降采样输出 |
| 录像 | 4×128G SD,最大 8CH×1080P H.264 编码/解码,码流 4M/8M | 编码必须硬件化,存储链路要有持续写入能力 |
| 供电与环境 | 8-32V,<2A@12V,-20℃ 到 70℃,摄像头 IP69K | 这是车载环境,不只是桌面视频处理板 |
| 标定 | 支持 PC 标定、单步自动标定、XML 文件导入导出 | 拼接效果主要取决于几何标定和标定数据管理 |
其中最重要的产品形态是:主控盒内部已经完成 360 拼接,外部系统看到的是显示输出、录像文件、触发控制和少量配置接口。如果要把它接到机器人主控做感知,需要确认它能否输出每路原始视频、是否有硬件同步和时间戳;这类产品通常主要面向驾驶显示和录像,不一定会把机器人感知接口作为重点。
360 拼接到底在拼什么
单个鱼眼镜头能看到很宽的范围,但画面是强畸变的。四路鱼眼直接并排显示时,人能看见环境,却很难判断车身周围物体和车的相对位置。360 环视要做的是:
- 把每个鱼眼画面矫正成可计算的几何模型。
- 根据摄像头相对车身的位置和角度,把画面中的地面点投影到车身坐标系下的俯视平面。
- 把前后左右四个俯视图拼到同一张画布。
- 在重叠区域选择缝合线并做亮度/颜色融合。
- 覆盖一个车模,遮住车身本体和摄像头看不到的区域。
- 按驾驶场景输出“全景鸟瞰 + 单路大图”。
所以 360 拼接的核心假设是“车周围主要关注地面”。地面上的车道线、停车线、障碍物底部能被准确投影;但立起来的物体,例如电线杆、行人、墙角,会因为不在地面平面上而出现拉伸、断裂、重影。这不是算法坏了,而是鸟瞰投影模型的天然限制。
几何模型:从鱼眼到鸟瞰

鱼眼镜头不是普通针孔相机。它通常需要一个鱼眼投影模型,例如等距投影、等固角投影或厂商自定义畸变模型。工程上不会每个像素实时求复杂公式,而是离线标定后生成 LUT(Look-Up Table,查找表)。
对输出鸟瞰图中的每个像素,可以反向查到它应该从哪一路摄像头的哪个像素采样:
鸟瞰输出像素 (u_bev, v_bev)
→ 转成车身坐标系地面点 (X, Y, Z=0)
→ 用该摄像头外参变换到相机坐标系
→ 用鱼眼内参/畸变模型投影到原始图像坐标 (u_src, v_src)
→ 双线性采样 / 多路融合
→ 写入输出画布
这里有几类关键参数:
| 参数 | 作用 | 标定错误会怎样 |
|---|---|---|
| 内参 | 焦距、主点、鱼眼畸变模型 | 直线弯曲、边缘拉伸、缩放不一致 |
| 外参 | 每个相机相对车身的位置和朝向 | 前后左右对不齐,车道线断裂 |
| 地面尺度 | 标定框长度、宽度、棋盘格尺寸 | 鸟瞰图比例错误,距离感失真 |
| 缝合线 | 决定重叠区域由哪路相机主导 | 接缝穿过关键物体,重影明显 |
| 颜色补偿 | 统一四路曝光、白平衡、亮度 | 接缝两侧明暗不同,像拼图 |
典型 PC 标定流程正好印证了这个过程:先在车身周围铺矩形框和四块调试布,记录 Length、Width、Grid Size;然后保证四个摄像头画面都能看到两块完整调试布;再导出四路单视图到 U 盘,用 CalibrationTool 对每路画面选取两块调试布的 8 个顶点,也就是 4 路 × 8 点;工具在 1 秒内生成拼接结果,必要时再调整 Rotate Parameters、Translate Parameters、Internal Parameters,最后把 XML 标定结果导回 360 主机。
这说明主机真正实时跑的不是“寻找棋盘格”,而是“使用已经标定好的映射参数做实时重映射和融合”。自动标定只是把手工点选替换为棋盘格检测。
完整数据通路

上图把完整数据通路拆成两条线:青色是高带宽视频主链路,从四路摄像头输入、接收同步、DDR 缓冲、ISP 预处理、鱼眼矫正、鸟瞰投影、缝合融合,到显示、编码和 SD 卡存储;红色是低带宽控制链路,来自倒车、转向、雷达、按键或系统配置,用来决定视图切换、OSD 叠加和触发录像等行为。
把系统拆开看,一帧图像从摄像头到显示屏,大致经过下面这些阶段。
1. 摄像头采集
每个摄像头由 CMOS 传感器、鱼眼镜头、ISP/编码或模拟高清视频输出电路组成。若摄像头侧采用 1.0Vp-p、75Ohm 这类车载模拟视频输出,主控侧再配合 AHD/VGA/HD/CVBS 等接口,那么产品形态就更接近车载模拟高清视频环视盒。若换成机器人平台,输入也可能是 MIPI CSI、GMSL、FPD-Link 或 USB,但后面的几何拼接原理不变。
摄像头阶段要关注三件事:
- 视场角必须足够大。典型 190° 鱼眼、水平 >170° 的设计,目的就是让相邻视角有重叠。
- 图像参数要一致。四路曝光、白平衡、增益如果差很多,融合接缝会很明显。
- 安装位置要稳定。摄像头角度一动,外参就变了,标定结果需要重做。
2. 视频接收与同步
主控盒需要把 4 路或最多 8 路 1080P@25/30 视频接进来。视频进入 SoC 前通常会经过 AHD/TVI/CVI 接收芯片、解串器、MIPI CSI 接收器或并口视频接口,然后通过 DMA 写入 DDR。
显示型 AVM 对同步的容忍度比机器人感知高一些,但四路帧不同步仍会导致动态物体在接缝处错位。例如人从左侧走到前方,左相机和前相机如果差了一帧,接缝区域就可能出现重影。机器人场景更严格,需要硬件同步、曝光时间戳和稳定延迟,否则很难和 IMU、轮速、激光雷达做融合。
3. ISP 与图像预处理
如果输入是 RAW,SoC 需要完整 ISP;如果输入已经是 YUV/RGB,主控仍然需要做基础图像处理,例如颜色空间转换、缩放、去噪、锐化、亮度均衡和 OSD 叠加。
环视系统里的 ISP 目标不是“单路画面最好看”,而是“四路画面一致”。因此 AE/AWB 不能每路完全自由漂移,最好支持锁定参数、统一曝光策略或后级颜色补偿。否则单路看都正常,拼在一起就会出现四块不同色温的地面。
4. 鱼眼矫正与透视变换
这是 360 拼接最核心的计算。硬件会根据标定生成的 LUT,对输出画布进行反向映射采样。反向映射比正向映射更常见,因为它能保证输出每个像素都有定义,不会因为源图像投影后的空洞而出现破洞。
每个输出像素可能只取一路相机,也可能在重叠区取两路相机加权融合。采样通常用双线性插值,画质更高的实现还会做边缘保护、抗锯齿或局部锐化。
5. 缝合与融合
四路鸟瞰图之间会有重叠区域。简单做法是固定缝合线:例如前/左相机在左前角附近各负责一部分,中间用一条平滑权重带过渡。更复杂的做法会避开强边缘或动态物体,但车载量产系统常常更偏向固定、可预测、低延迟。
融合要解决两个问题:
- 几何对齐:同一条地面线在两路相机里投影后要接上。
- 光度一致:同一块地面在两路相机里亮度和颜色要接近。
工程现场常见的“部分图像不能无缝拼接”,通常与累积误差有关,需要检查标定参数、调试布是否平整、铺设流程是否符合要求。这正是几何误差和标定误差在接缝处被放大的表现。
6. 合成显示
拼好的鸟瞰图还不是最终显示。系统通常会继续合成:
- 车模 PNG 或 3D 俯视车模;
- 前/后/左/右单路大图;
- 倒车线、轨迹线、雷达距离提示;
- 菜单、文件播放、录像状态;
- 按转向灯、倒车线、雷达或按键触发切换视图。
典型系统支持倒车触发自动切到后视图,左右触发自动切到左右视图;默认主视图也可以设置为 360+后路、360+前路 或 全屏360。这说明最终输出是一个图形合成结果,不只是纯视频流。
7. 编码与存储
如果需要录像,系统还要把单路或多路视频送进 H.264 编码器,写入 SD 卡。典型配置可以做到最大 8 路 1080P H.264 编码/解码、4M/8M 码流、最多 4 张 128G SD 卡。这一段不能靠 ARM CPU 软件编码,否则功耗、发热和帧率都不可控。
如果按 8 路 × 8Mbps 估算,纯码流约 64Mbps,也就是 8MB/s,再加文件系统和索引开销。这个写入速率对 SD 卡本身不算夸张,难点主要在多路并发文件管理、掉电保护、循环录像、录像回放和系统 UI 同时运行。
芯片需求:哪些能力是真硬需求

360 拼接芯片不能只看 CPU 主频。真正决定体验的是视频输入、DDR 带宽、几何加速、显示合成、编码器和车规可靠性。
多路视频输入
标准四路 1080P30 是基本盘,商用车和长车还可能需要 6 路或 8 路。芯片或板级方案要支持:
- 至少 4 路 1080P@30 同时输入;
- 最好能扩展到 8 路 1080P@25/30;
- 每路独立 DMA buffer;
- 丢帧、断线、花屏检测;
- 输入格式转换,例如 BT.656/BT.1120、MIPI CSI-2、YUV422、RGB 等。
如果是机器人视觉,不建议只拿“能显示 4 路”作为判断标准,还要问清楚能不能同时输出每路原始帧、是否有帧号和硬件时间戳。
DDR 带宽
粗略估算一下,4 路 1080P30 YUV422 输入的数据量是:
1920 × 1080 × 30 × 4路 × 2Byte ≈ 498MB/s
8 路就是约 996MB/s。这个只是“写入一次输入帧”的数据量,还没有算:
- 鱼眼矫正时读取源图;
- 查 LUT;
- 写中间图或最终图;
- 重叠区多路采样;
- 显示控制器读帧;
- 编码器读帧;
- CPU/OS/UI 访问内存。
所以实际系统设计里,4 路 1080P30 拼接 + 显示 + 编码,DDR 带宽至少要按数 GB/s 级别留余量;8 路方案要更保守。很多低端 SoC 的瓶颈不是算术单元,而是 DDR 被多路视频读写打满。
几何变换加速
鱼眼展开、LDC、透视变换、旋转、缩放和拼接都属于规则但高吞吐的像素操作。理想芯片应有专门的几何引擎、2D 图形引擎、GPU/VPU 或 ISP 后处理模块,支持:
- LUT 反向映射;
- 双线性插值;
- 多路输入合成;
- Alpha blend / feather blend;
- 多个 ROI 输出;
- line buffer 或 tile buffer 降低 DDR 压力。
如果这些都靠 Cortex-A9 这类 CPU 做,1080P 多路实时拼接基本不现实。如果看到“双核 ARM Cortex-A9 + SoC + H.264 编解码核心”这样的配置,更合理的理解是:ARM 管控制,视频编解码和像素搬运靠硬件核心。
ISP 与颜色一致性
环视对 ISP 有两个不同层面的要求:
第一,单路画面要可用。需要基本的去噪、锐化、WDR/HDR、白平衡、色彩校正和低照处理。
第二,四路画面要一致。需要曝光锁定、白平衡锁定、颜色增益匹配、镜头阴影校正和接缝亮度补偿。否则图像看起来不是 360,而是四块视频贴在一起。
户外机器人还要特别关注 HDR/WDR。车辆从阴影区进入强光,或者一侧逆光一侧背光时,四路曝光策略不稳定会直接破坏拼接和感知。
视频编码器
只要要录像,多路 H.264/H.265 编码就是硬需求。典型规格可以支持最大 8 路 1080P H.264 编码/解码,并支持 4M/8M 码流。芯片选型时要确认:
- 是 4 路编码、8 路编码,还是 8 路输入但只有少数路可编码;
- 编码分辨率和帧率是否能同时满足;
- 编码和显示、拼接是否能并发;
- 是否支持码率控制、I 帧间隔、循环录像、时间戳和文件切片。
显示与 OSD
AVM 的最终产品体验很依赖显示合成。芯片需要显示控制器、图层混合、缩放、颜色空间转换和 OSD。典型方案支持 VGA/HD 1080P 50/60、AHD 1080P 25/30、CVBS D1,意味着至少存在高清显示输出、模拟输出适配和降采样链路。
对机器人而言,显示不是必须,但如果同一颗芯片还要服务驾驶屏、远程 Web UI、录像回放和算法输出,显示子系统会和视频处理抢内存带宽。
车载控制与可靠性
这类系统还会有倒车线、左右触发线、UART 雷达配置、WebAPP、U 盘导入导出、APP/MCU 升级等功能。对应到芯片和板级设计,需要:
- GPIO/ADC/隔离输入处理倒车、转向等 8-32V 触发信号;
- UART/CAN/RS485 等车身或雷达接口;
- 看门狗和掉电保护;
- 启动后快速出图;
- 8-32V 宽压供电、浪涌、反接、ESD、EMI 设计;
- -20℃ 到 70℃下持续工作和散热余量。
这些不是算法问题,但会决定产品能不能上车。
标定为什么决定最终效果
360 拼接里,标定不是售后步骤,而是系统的一部分。典型标定流程要求每个单视图都能看到两块完整调试布。如果车身太长,左右摄像头看不到完整调试布,需要调整摄像头角度、增加安装高度;极端情况下要左右各加一个摄像头,变成六路拼接。
这句话很关键:它说明相机数量不是越少越好,而是由车身尺寸、安装高度、镜头视场角和重叠区域共同决定。四路方案能覆盖多数车辆,但长轴距、低底盘、大车身会让重叠区不足,导致黑边、拉伸或接缝处信息不够。
标定质量主要受这些因素影响:
- 调试布是否平整,棋盘格是否清晰;
- 长宽和格子尺寸是否量准;
- 四路相机是否都看到足够完整的角点;
- 摄像头安装后是否松动;
- 车身是否停在平整地面;
- 光照是否导致棋盘格识别失败;
- 车模尺寸和实际车身遮挡区域是否匹配。
低底盘车辆容易在环视边缘出现大块黑色空白,因为摄像头安装位置低,采集到的有效像素太少。这是几何覆盖问题,不是简单调亮或加锐化能解决的。
对机器人平台的额外提醒
如果只是给驾驶员看,AVM 主控盒输出一张低延迟 360 鸟瞰图就够了。但如果要把它接入机器人感知,需求会明显不同。
| 驾驶显示 AVM | 机器人感知 |
|---|---|
| 重点是可视化、低成本、安装方便 | 重点是可计算、可同步、可复现 |
| 可以接受没有严格时间戳 | 必须有硬件时间戳或可校准延迟 |
| 拼接后鸟瞰图足够 | 通常还需要每路原始图和外参 |
| 颜色好看很重要 | 几何一致性、曝光稳定更重要 |
| 固定视角和 UI 触发 | 需要 ROS/算法接口和数据闭环 |
所以评估芯片或产品时,除了问“能不能 360 拼接”,还要问:
- 能否同时输出四路原始视频和拼接图?
- 四路摄像头是否硬同步?时间戳打在曝光开始、帧结束还是 DMA 完成?
- 标定参数是否可导出?格式是否包含内参、外参和 LUT?
- 拼接延迟是多少?延迟是否稳定?
- AE/AWB 能否锁定?是否支持统一曝光?
- 黑边、低底盘、长车身场景下是否支持 6 路或 8 路扩展?
- H.264 录像、显示输出、Web UI 和拼接能否并发不掉帧?
总结
360 全景拼接的本质是多相机实时几何系统。它先用鱼眼摄像头换取大视场,再靠标定把每路鱼眼画面映射到同一个车身地面坐标系,最后通过缝合和融合输出鸟瞰图。
综合上面的典型规格,这类产品的典型能力组合是:4 路 190°/1080P 鱼眼输入,主控盒内完成拼接,输出 1080P 鸟瞰 + 单路视频,支持倒车/转向触发,支持 H.264 多路录像和 SD 卡存储。芯片需求上,CPU 不是核心卖点;多路输入、DDR 带宽、LDC/warp 几何引擎、blend 合成、视频编码器、显示控制器和车载可靠性才是决定系统上限的关键。
一句话判断芯片是否适合做 360 拼接:看它能不能在稳定功耗和温度下,同时吃进 4 到 8 路 1080P 视频,按标定 LUT 做实时鱼眼展开和鸟瞰融合,再并发输出显示与 H.264 录像,而且延迟、帧率、标定数据和同步机制都可控。
评论