恩智浦视觉ADAS专用SoC: S32V234
未来十年,为了完成从感知+预警到决策+执行的进化之路,高级辅助驾驶系统(ADAS)将接入更多的传感器,实现更为复杂的计算,同时具备更高的安全性。
图1:S32V234结构图
S32V234采用了4颗ARM Cortex A53作为核心CPU,以获得更高的性能功耗比。另外,S32V234包含了一颗ARM Cortex M4来作为片上MCU,主要用于关键IO(如CAN-FD)的实时控制,并支持AutoSAR操作系统。
芯片集成了两路MIPI-CSI2和两路16bit并行相机接口,以及Gbit以太网控制器,为图像传感器的输入提供了多种选择。同时芯片内部包含了可编程的图像信号处理(ISP)硬件模块。利用嵌入式ISP,外部配搭的图像传感器可以输出raw data,从而降低物料成本,节省空间尺寸。另外,芯片还包含了两个名为APEX2CL的视觉加速引擎。每个APEX2CL拥有64个本地计算单元(CU),并配有本地内存,通过SIMD/MIMD(单指令多数据/多指令多数据)的处理方式对图像识别过程进行加速。
另外值得指出的是,考虑到ADAS系统对安全性和可靠性的严苛需求,S32V234在设计时加入了诸如ECC(错误检查与纠正),FCCU(故障收集与控制单元),M/L BIST(内存/逻辑内置自测)等多种安全机制,能够满足ISO26262 ASIL B~C的需求。
双目视觉简介
相比于单目视觉,双目视觉(Stereo Vision)的关键区别在于可以利用双摄像头从不同角度对同一目标成像,从而获取视差信息,推算目标距离。具体到视觉ADAS应用来说,如果采用单目摄像头,为了识别行人和车辆等目标,通常需要大规模的数据采集和训练来完成机器学习算法,并且难以识别不规则物体;而利用毫米波雷达和激光雷达进行测距的精度虽然较高,但是成本和难度亦较高。所以,双目视觉的最大优势在于维持开发成本较低的前提下,实现一定精度的目标识别和测距,完成FCW(前方碰撞预警)等ADAS功能。
双目视觉测距的基本原理并不复杂,如图2所示,P为目标点,它在左右两个相机(镜头中心分别为A和B)上的成像点分别为E和F,则P点在两个相机中的视差为d=EC+DF。根据三角形ACE与POA以及三角形BDF与POB的相似性,推导可得d=(fq)/z,其中f为相机焦距,q为两相机光轴的距离,z为目标到相机平面的距离。则距离z=(fq)/d,而f和q可认为是固定参数,所以求出视差信号d即可求得距离z。
图2:双目视觉测距原理
根据双目视觉的测距原理,通常将其实现过程分为五个步骤:相机标定,图像获取,图像预处理,特征提取与立体匹配,三维重构。其中,相机标定是为了得到相机的内外参数和畸变系数等,可以离线进行;而左右相机图像获取的同步性,图像预处理的质量和一致性,以及立体匹配(获取视差信息)和三维重构(获取距离信息)算法的实时性要求带来的巨大运算量,对在嵌入式平台上实现双目视觉ADAS提出了挑战。
基于S32V234的双目视觉ADAS解决方案
S32V234片上具有两路MIPI-CSI2相机接口,每一路最大可提供6Gbps的传输速率,可用于左右两路相机的视频输入。由于两路相机分别输入两个MIPI通道,需要考虑二者之间的同步问题。在外部图像传感器的配合下,S23V324能够支持不同的同步方式。如图3所示,图像传感器通常具有场同步信号(VSYNC)和行同步信号(HSYNC)来进行信号同步:当两路相机工作在主从模式时,由Master向Slave发送同步信号;当两路相机都工作在从模式时,可以由S32V234内部定时器产生同步信号,同时发送给两路相机。
图3:双目相机同步方案
在S32V234获取外部相机的图像信号后,可以由内部的ISP进行预处理。ISP模块包含多个针对ISP功能进行优化的处理单元,利用片上SRAM对输入信号和中间处理结果进行缓存,并采用一个基于ARM Cortex M0+的专用协处理器来管理ISP处理单元的时序,从而实现图像信号的像素级处理。由于ISP位于芯片内部并且可以灵活编程,所以不仅能够节省双目相机外置ISP的成本,而且其运算资源和带宽能够支持对双路高达1080p@30fps图像信号的实时处理,保证了双路图像信号的质量和一致性。
在双目视觉ADAS应用中,最大的挑战来自于对两路图像进行立体匹配和三维重构所需要的巨大运算量。以FCW应用为例,既要求视差信号的提取具有足够的精度以保证测距精度,又要求处理帧频维持一定水平以保证预警的响应速度,因此要求嵌入式平台具有足够的处理能力。S32V234中集成的图像加速引擎APEX2的结构如图4所示,其并行计算结构和专用DMA等设计保证了对图像信号具有极高的处理效率。具体来说,ISP对图像信号预处理完毕后送入DDR,APEX2引擎将图像分割后经由专用DMA将其送入每个CU对应的本地内存CMEM中,而立体匹配所需要的块匹配(Block Matching)等算法可以在不同的CU中并行处理,处理完毕后的数据经由DMA送回DDR,由CPU进行进一步处理(如生成预警信号),或送至专门的DCU(Display Control Unit)模块输出显示。
图4:APEX2架构及图像处理示意图
综上所述,基于S32V234的双目视觉应用数据流如图5所示。在该应用中,数据流按照ISP-APEX2-DCU的方向流动,A53作为主控CPU完成逻辑控制和必要的数据处理。通过这种流水线式的处理方式,可以使各部分计算资源充分利用,提高计算效率。
图5:基于S32V234的双目视觉数据流
利用S32V234开发板搭建双目视觉平台,对双路720p@30fps视频信号进行处理,其输出结果如图6所示。其中从左至右的三幅图中目标与相机的距离分别为1m,2m,3m,显示结果以冷暖色调的变化表征目标距离。结果表明,S32V234能够对双目视觉信号进行实时处理,正确得到三维测距结果,同时辅以芯片的各项安全性设计,可以满足双目视觉ADAS系统的需求。
图6:S32V234双目视觉显示结果
总结
恩智浦的视觉ADAS专用芯片S32V234集成了图像信号处理器ISP,图形加速引擎APEX2,3D GPU等专用计算单元,通过流水线式的处理架构使各个异构计算资源充分利用;不同计算模块对OpenCV ,OpenCL和OpenVG等多种API的支持增强了算法的可移植性;而符合ISO26262标准的功能安全设计使得芯片能够满足ADAS系统对安全性的严苛需求。S32V234支持包括双目视觉在内的多种视觉ADAS和传感器数据融合解决方案,使得我们在通往无人驾驶的道路上迈出坚实的一步。