使用视频技术提高汽车安全性变得更加可行

2023-05-30 14:00   279   0  

数十个处理器控制着当今汽车的每一个性能方面,没有一个“车辆体验”功能不受技术的影响。无论是气候控制、发动机控制还是娱乐,在过去十年中,制造商产品的功能都在不断发展。这种演变背后的力量之一,即信号处理器性能成本比的快速增长,即将对另一个关键的汽车组件——安全子系统产生深远的影响。




虽然目前大多数可用的安全功能都利用各种传感器(主要涉及微波、红外光、激光、加速度计或位置检测),但直到最近才引入了能够满足实时计算要求的处理器,使视频图像处理能够为安全技术做出重大贡献。ADI公司的Blackfin媒体处理器系列具有高处理速度、多功能数据移动功能和视频专用接口,为这个不断增长的市场提供了极具吸引力的解决方案。本文将讨论Blackfin处理器在新兴的基于视频的汽车安全领域可以发挥的作用。




汽车安全系统中的视频




在许多方面,使用高性能媒体处理器的基于视频的系统可以大大提高汽车安全性。然而,由于较短的响应时间对于挽救生命至关重要,因此必须实时确定地进行图像处理和视频过滤。有一种自然的趋势,即使用处理器可以为给定应用程序处理的最高视频帧速率和分辨率,因为这为决策提供了最佳数据。此外,处理器需要将车速和相对车-物体距离与所需条件进行比较,同样是实时的。此外,处理器必须与许多车辆子系统(如发动机、制动、转向和安全气囊控制器)交互,处理来自所有这些系统的传感器信息,并向驾驶员提供适当的视听输出。最后,处理器应该能够连接到导航和电信系统,以响应和记录故障、事故和其他问题。




图1显示了汽车安全系统的基本视频操作元件,表明了图像传感器可能在整个车辆中的放置位置,以及如何将车道偏离系统集成到底盘中。有几件事值得注意。首先,多个传感器可以由不同的汽车安全功能共享。例如,后置传感器可以在车辆倒车时使用,也可以在车辆前进时跟踪车道。此外,车道偏离系统可以接受来自多个摄像机源中的任何一个的馈送,为给定情况选择适当的输入。在基本系统中,视频流将其数据馈送到嵌入式处理器。在更高级的系统中,处理器接收其他传感器信息,例如来自GPS接收器的位置数据。


pYYBAGPY04CAIA8uAABRlLrnKYw279.gif?la=en&imgver=1


图1.用于汽车安全应用的基本摄像头放置区域。




智能安全气囊




媒体处理器在汽车安全中的新兴用途是“智能安全气囊系统”,该系统根据谁坐在受安全气囊影响的座椅上来决定部署。目前,基于重量的系统使用最广泛,但视频传感将在五年内普及。可以使用热成像摄像机或常规摄像机,速率高达每秒 200 帧,并且可能使用多个摄像机来提供每个乘员的立体图像。目标是表征乘员的位置和姿势,而不仅仅是他们的体型。如果发生碰撞,系统必须选择是完全限制部署、以较低的力量部署还是完全部署。在帮助确定身体位置时,图像处理算法必须能够区分人的头部和其他身体部位。




在这个系统中,媒体处理器必须以高帧速率采集多个图像流,处理图像以分析在所有类型的照明条件下每个乘员的大小和位置,并持续监控位于整个汽车中的所有碰撞传感器,以便在几毫秒内做出最佳的部署决策。




防撞和自适应巡航控制




另一个备受瞩目的安全应用是自适应巡航控制(ACC),这是防撞系统的一个子集。ACC是一种便利功能,可控制发动机和制动系统,以调节汽车的速度及其与前方车辆的距离。采用的传感器涉及微波、雷达、红外和视频技术的组合。媒体处理器可能会从安装在汽车后视镜附近的摄像头实时处理每秒 17 到 30 帧(聚焦在道路上)。图像处理算法可能包括针对不同照明场景的帧到帧图像比较、对象识别和对比度均衡。视频传感器输入的目标是提供有关车道边界和道路曲率的信息,并对障碍物进行分类,包括汽车前方的车辆。




ACC系统作为便利功能进行推广,而真正的防撞系统则通过协调汽车的制动、转向和发动机控制器来积极避免事故。因此,由于任务的复杂性、关键的可靠性考虑以及法律和社会后果,它们的发展速度较慢。据估计,到2010年,这些系统的部署可能顺利进行。鉴于典型的5年汽车设计周期,此类系统设计已经在进行中。




碰撞警告系统,如 ACC,是避免碰撞类别的一个子集。这些提供了可能即将发生的事故的警告,但它们不会主动避免它。这个利基市场有两个主要的子类别:




盲点监视器 - 摄像头战略性地安装在车辆外围,以提供驾驶员盲点的视觉显示,并在处理器检测到盲点区域中存在另一辆车时发出警告。在倒档时,这些系统还可以用作倒车警告,警告驾驶员汽车后部的障碍物。显示屏可以与后视镜集成,提供汽车周围环境的完整、无障碍视图。此外,该系统可能包括车厢内“盲点”的视频,例如,允许驾驶员监控后向婴儿。




车道偏离监视器 - 这些系统可以通知驾驶员是否改变车道不安全,或者他们是否偏离车道或偏离道路,从而有助于检测驾驶员疲劳。前置摄像头监控汽车相对于道路中心线和侧标记的位置,最远可达汽车前方 50 至 75 英尺。如果汽车无意中开始离开车道,系统会发出警报。




车道偏离 - 系统示例




除了媒体处理器在基于视频的汽车安全应用中可以发挥的作用外,分析此类应用的典型组件也具有指导意义。为此,让我们进一步探讨一个可以使用Blackfin媒体处理器的车道偏离监控系统。




考虑到所执行信号处理功能的复杂性,图2的整体系统图相当简单。有趣的是,在基于视频的车道偏离系统中,大部分处理是基于图像的,并且在信号处理器内而不是通过模拟信号链进行。这大大节省了系统物料清单。对驾驶员的输出包括警告,以在车辆无意中离开车道之前纠正汽车的预计路径。它可能是可听见的“隆隆声”声音、编程的提示音或语音消息。




嵌入式处理器的视频输入系统必须在恶劣的环境中可靠地运行,包括宽而剧烈的温度变化和不断变化的路况。当数据流进入处理器时,它会实时转换为可以处理以输出决策的形式。在最简单的层面上,车道偏离系统根据道路上的车道标记查找车辆的位置。对于处理器来说,这意味着必须将传入的道路影像流转换为一系列描绘路面的线。




处理器可以通过查找边缘来查找数据字段中的行。这些边缘形成了驾驶员在前进时应保持车辆的边界。处理器必须跟踪这些行标记,并确定是否将异常情况通知驱动程序。




请记住,其他几个汽车系统也会影响车道偏离系统。例如,使用制动系统和转向信号灯通常会在有意变道和慢速转弯时阻止车道偏离警告。


poYBAGPY04KAUJSeAAApGiNLUzU645.gif?la=en&imgver=1


图2.车道偏离算法的基本步骤以及处理器如何连接到外部世界。




现在让我们更深入地了解车道偏离系统示例的基本组件。图 3 遵循与图 2 相同的基本操作流程,但更深入地了解正在执行的算法。进入系统的视频流需要经过过滤和平滑处理,以减少温度、运动和电磁干扰引起的噪声。如果没有这一步,就很难找到干净的车道标记。


pYYBAGPY04SATQYIAABJzdeNmYw946.gif?la=en&imgver=1


图3.算法流程,显示中间图像处理步骤的结果。




下一个处理步骤涉及边缘检测;如果系统设置正确,找到的边将代表车道标记。然后,这些线必须与车辆的方向和位置相匹配。霍夫变换将用于此步骤。它的输出将跨图像帧进行跟踪,并将根据所有编译的信息做出决定。最后一个挑战是及时发出警告,而不会发出误报。




图像采集




Blackfin处理器的一个重要特性是其并行外设接口(PPI),旨在处理传入和传出的视频流。PPI 无需外部逻辑即可连接到各种视频转换器。除了符合ITU-R 656标准的视频编码器和解码器外,PPI还可以连接到CMOS相机芯片和LCD显示器,这些芯片和LCD显示器在汽车行业中很常见。由于PPI可以实时捕获视频,因此对于本文中讨论的各种汽车安全应用至关重要。




在支持 ITU-R 656 的设备中,消隐数据和活动视频数据之间的每个边界都使用嵌入数据流中的 4 字节数据序列进行设置。PPI 自动解码此序列,无需处理器干预,以收集传入的活动视频帧。使用这种嵌入式控制方案,物理连接只需八条数据线和一个时钟。




PPI还连接到各种没有嵌入式控制方案的图像传感器和数据转换器。在这些情况下,PPI 最多提供三个帧同步来管理传入或传出数据。对于视频流,这些帧同步用作物理水平同步、垂直同步和场线(HSYNC、VSYNC 和场)。




对于汽车安全应用,图像分辨率通常从VGA(640×480像素/图像)到QVGA(320×240像素/图像)。无论实际图像大小如何,传输的数据格式都保持不变,但当传输的数据较少时,可以使用较低的时钟速度。此外,在最基本的车道偏离警告系统中,只需要灰度图像。因此,数据带宽减半(从 16 位/像素减半到 8 位/像素),因为色度信息可以忽略。




内存和数据移动




高效使用内存是系统设计人员的重要考虑因素,因为外部存储器价格昂贵,而且其访问时间可能具有高延迟。虽然Blackfin处理器具有片上SDRAM控制器,以支持经济高效地添加更大的片外存储器,但明智地仅传输应用所需的视频数据仍然很重要。通过智能解码ITU-R 656前导码,PPI可以帮助这种“数据过滤”操作。例如,在某些应用程序中,只需要活动视频字段。换句话说,水平和垂直消隐数据可以忽略,不传输到内存中,导致带入系统的数据量减少多达 25%。更重要的是,这种较低的数据速率有助于节省内部和外部数据总线上的带宽。




由于视频数据速率要求很高,因此必须在外部存储器中设置帧缓冲器,如图4所示。在此方案中,当处理器在一个缓冲区上运行时,PPI 通过 DMA 传输填充第二个缓冲区。可以设置一个简单的信号量来保持帧之间的同步。使用Blackfin灵活的DMA控制器,几乎可以在内存填充过程中的任何点生成中断,但通常配置为在每个视频线或帧的末尾发生。


poYBAGPY04aAPgpSAABMjzU6eco058.gif?la=en&imgver=1


图4.将外部存储器用于帧缓冲器。




一旦完整的帧进入SDRAM,数据通常会传输到内部L1数据存储器中,以便内核能够以单周期延迟访问它。为此,DMA 控制器可以使用二维传输来引入像素块。图 5 显示了一个示例,说明如何通过 16D DMA 引擎将 16 × 1 个“宏块”(许多压缩算法中使用的结构)线性存储在 L2 内存中。


pYYBAGPY04iAAEiyAABROoLZZDc943.gif?la=en&imgver=1


图5.从 SDRAM 到 L2 内存的 1D 到 1D DMA 传输。




为了有效地浏览源图像,需要控制四个参数:X 计数、Y 计数、X 修改和 Y 修改。X 和 Y 计数分别描述在“水平”和“垂直”方向上读入/读出的元素数量。水平和垂直是此应用程序中的抽象术语,因为图像数据实际上是线性存储在外部存储器中。X 和 Y 修改值通过在传输必要的 X 计数或 Y 计数后指定要“跨步”遍历数据的量来实现此抽象。




从性能的角度来看,最多可以有四个独特的SDRAM内部库随时处于活动状态。这意味着,在视频框架中,当 2D 到 1D DMA 从一个库拉取数据而 PPI 馈送另一个库时,不会观察到额外的银行激活延迟。




投影校正




用于车道偏离系统的摄像头可以位于前挡风玻璃的中央顶部位置,面向前方,在后挡风玻璃中,面向已经行驶的道路,或作为“鸟瞰”摄像头,为即将到来的道路提供最广阔的视角,因此可以代替多个视线摄像头使用。在后一种情况下,由于广角镜头,视图会变形,因此在解析图片内容之前,必须将输出图像重新映射到线性视图中。




图像过滤




在进行任何类型的边缘检测之前,重要的是要过滤图像以消除图像捕获过程中拾取的任何噪声。这一点至关重要,因为引入边缘检测器的噪声会导致检测器输出假边沿。




显然,图像过滤器需要足够快地运行以跟上输入图像的连续性。因此,必须优化图像过滤器内核,以便在尽可能少的处理器周期内执行。一种有效的滤波方法是通过基本的二维卷积操作来实现。让我们看看如何在Blackfin处理器上有效地执行这种计算。




卷积是图像处理中的基本操作之一。在二维卷积中,对给定像素执行的计算是该像素邻域像素的强度值的加权和。由于蒙版的邻域以给定像素为中心,因此蒙版区域通常具有奇数维度。相对于图像,蒙版尺寸通常较小;3 × 3 掩码是一种常见的选择,因为它在每个像素的基础上计算是合理的,但足够大以检测图像中的边缘。




图 3 显示了 3 × 6 内核的基本结构。例如,图像中第 20 行第 10 列的像素的卷积过程输出为:




输出(20,10) = A × (19,9) + B × (19,10) + C × (19,11) + D × (20,9) + E × (20,10) + F × (20,11) + G × (21,9) + H × (21,10) + I × (21,11)


poYBAGPY04mADCJ6AAALHnvg_70085.gif?la=en&imgver=1


图6.3×3卷积核的基本结构。




高级算法可以通过以下步骤进行描述:




将掩码的中心放在输入矩阵的元素上。




将遮罩邻域中的每个像素乘以相应的滤镜遮罩元素。




将每个乘法相加为一个结果。




将每个总和放在输出矩阵中与掩码中心相对应的位置




图 7 显示了一个输入矩阵 F、一个 3 × 3 掩码矩阵 H 和一个输出矩阵 G。


poYBAGPY04qAV8b6AABAsc1syOc259.gif?la=en&imgver=1


图7.输入矩阵,F;3×3掩模矩阵,H;和输出矩阵 G。




计算每个输出点后,掩码将向右移动。在图像边缘,算法环绕到下一行中的第一个元素。例如,当掩码以元素 F2M 为中心时,掩码矩阵的 H23 元素乘以输入矩阵的元素 F31。结果,输出矩阵的可用部分沿图像的每个边缘减少一个元素。




通过正确对齐输入数据,Blackfin的两个乘法累加(MAC)单元都可以在单个处理器周期中使用,一次处理两个输出点。在同一周期中,多个数据提取与 MAC 操作并行发生。该方法允许为每个循环迭代高效计算 2 个输出点,或每像素 4.5 个周期,而不是图 9 中的每像素 7 个周期。




边缘检测




广泛使用各种各样的边缘检测技术。在考虑如何检测边缘之前,算法必须首先确定边缘实际是什么的合适定义,然后找到增强边缘特征以提高检测机会的方法。由于图像传感器不理想,因此必须解决两个问题:噪声和量化误差的影响。




图像中的噪点几乎可以保证原始图像中具有相同灰度级别的像素在噪点图像中不会具有相同的级别。噪音会基于许多不容易控制的因素引入,例如环境温度、车辆运动和外部天气条件。图像中的量化错误将导致边缘边界延伸到多个像素。这些因素共同作用使边缘检测复杂化。因此,选择的任何图像处理算法都必须将抗噪性作为主要目标。




一种流行的检测方法使用一组常见的基于导数的运算符来帮助定位图像中的边缘。每个导数运算符都旨在查找强度发生变化的位置。在此方案中,可以通过包含理想边属性的较小图像对边进行建模。




我们将讨论 Sobel 边缘检测器,因为它易于理解,并说明了扩展到更复杂的方案的原理。Sobel 检测器使用两个卷积核来计算水平和垂直边缘的梯度。第一种设计用于检测垂直对比度的变化(Sx).第二个检测水平对比度的变化(Sy).


pYYBAGPY04yAHoqFAAAJISGbIlE795.gif?la=en&imgver=1


输出矩阵为图像中的每个像素保存“边缘似然”幅度(基于水平和垂直卷积)。然后对该矩阵进行阈值设置,以利用大小较大的响应对应于图像中的边缘这一事实。因此,在霍夫变换阶段的输入处,图像仅由“纯白色”或“纯黑色”像素组成,没有中间渐变。




如果应用程序不需要真实幅度,则可以节省成本高昂的平方根运算。构建阈值矩阵的其他常见方法包括对每个像素的梯度求和,或者简单地取两个梯度中最大的一个。




直线检测—霍夫变换




Hough 变换是一种广泛使用的方法,用于通过在参数化空间中定位图像中的全局模式(如直线、圆形和椭圆)来查找它们。它在车道检测中特别有用,因为基于公式1的极坐标表示,可以很容易地将线检测为霍夫变换空间中的点:




pYYBAGPY042ANxDkAAAGBs5eJ4o586.gif?la=en&imgver=1
(1)




这个方程的含义可以通过将垂直线从给定线延伸到原点来可视化,使得 θ 是垂直线与横坐标形成的角度,θ 是垂直线的长度。因此,一对坐标(ρ,θ)可以完全描述这条线。图 1a 中的 L2 和 L8 行演示了这一概念。图8b显示L1由θ1和垂直红色的长度定义,而L2由θ2和蓝色垂直线的长度。


poYBAGPY04-AEb-UAAAUW5S4Npw899.gif?la=en&imgver=1


图 8a.边缘检测器的输出是像这样的二进制图像,人类观察者可以对其进行目视检查以显示线条。霍夫变换允许对这两条线进行定位。


pYYBAGPY05CAIr4ZAAAdQzD5mSg412.gif?la=en&imgver=1


图 8b.上图中的两条白线可以用从原点延伸的红色和蓝色垂直线段的长度和角度来描述。


pYYBAGPY05OAWZRbAABuFyY0YPw999.gif?la=en&imgver=1


图 8c.图 8a 中图像的霍夫变换。θ 的范围是 [0, 2π],ρ 的范围是图 8a 中输入图像对角线的一半。两个明亮区域对应于局部最大值,可用于重建图8a中的两条线。




查看霍夫变换的另一种方法是考虑一种可以直观地实现算法的方法:




仅访问二进制图像中的白色像素。




对于要考虑的每个像素和每个 θ 值,在像素上画一条与原点成 θ 角的线。然后计算 ρ,即原点和所考虑的线之间的垂直长度。




在累积表中记录此(ρ,θ)对。




对图像中的每个白色像素重复步骤 1-3。




在累积表中搜索最常遇到的 (ρ, θ) 对。这些对描述了输入图像中最可能的“线”,因为为了记录高累积值,必须有许多白色像素沿着(ρ,θ)对描述的线存在。




Hough 变换是计算密集型的,因为为输入图像中的每个像素计算了正弦曲线。但是,某些技术可以大大加快计算速度。




首先,一些计算项可以提前计算,以便可以通过查找表快速引用它们。在Blackfin的定点架构中,仅存储余弦函数的查找表非常有用。由于正弦值与余弦相位相差 90 度,因此可以使用具有偏移量的同一表。使用查找表时,公式(1)的计算可以表示为两个定点乘法和一个加法。




另一个可以提高性能的因素是一组关于输入图像中车道标记的性质和位置的假设。通过仅考虑那些可能成为车道标记的输入点,可以避免大量不必要的计算,因为每个白色像素只需要考虑狭窄的θ值范围。




霍夫变换的输出是一组可能是车道标记的直线。这些线的某些参数可以通过简单的几何方程计算。可用于进一步分析的参数包括与相机中心轴的偏移、检测到的线的宽度以及相对于相机位置的角度。由于许多高速公路系统中的车道标记是标准化的,因此一组规则可以从车道标记候选列表中删除某些线。然后可以使用一组可能的车道标记变量来推导出汽车的位置。




车道跟踪




车道信息可以从汽车内的各种可能来源确定。这些信息可以与车辆相关参数(例如速度、加速度等)的测量相结合,以帮助进行车道跟踪。根据这些测量结果,车道偏离系统可以明智地决定是否正在进行意外偏离。在高级系统中,可以对其他因素进行建模,例如一天中的时间、路况和驾驶员的警觉性。




估计车道几何形状的问题是一个挑战,通常需要使用卡尔曼滤波器来估计道路曲率。具体来说,卡尔曼滤波器可以预测未来的道路信息,然后可以在下一帧中使用这些信息,以减少霍夫变换带来的计算负载。




如前所述,霍夫变换用于查找每个图像中的线条。但这些线条也需要通过一系列图像进行跟踪。通常,卡尔曼滤波器可以描述为估计对象未来状态的递归滤波器。在本例中,对象是一条线。线条的状态基于其位置及其跨多个帧的运动路径。




除了道路状态本身,卡尔曼滤波器还提供每个状态的方差。预测状态和方差可以结合使用,以缩小未来帧中 Hough 变换的搜索空间,从而节省处理周期。




决策 - 当前车辆位置或车道交叉时间




根据我们的经验,我们知道误报总是不可取的。要让消费者禁用可选的安全功能,没有比让它指示不存在的问题更快的方法了。




有了处理框架,系统设计人员可以将自己的知识产权 (IP) 添加到每个处理线程的决策阶段。最简单的方法可能是在做出决定时考虑其他车辆属性。例如,当车道变换被认为是有意的时(例如使用闪光灯或踩刹车时),可以抑制车道变换警告。更复杂的系统可能会考虑 GPS 坐标数据、乘员驾驶剖面、一天中的时间、天气和其他参数。




结论




在前面的讨论中,我们只描述了一个示例框架,说明如何构建基于图像的车道偏离系统。我们试图确定的一点是,当灵活的媒体处理器可用于设计时,有足够的空间来考虑功能添加和算法优化。





登录icspec成功后,会自动跳转查看全文
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。