账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
智慧汽车之眼-立体视觉
ADAS应用的挑战与商机(二)

【作者: Aish Dubey】2017年04月17日 星期一

浏览人次:【13147】


延续上篇所探讨的ADAS单眼摄影系统,接下来本篇将着重于立体视觉的探讨。发明雷达之前,海上的船只运用立体反射机械原理和钟盘来计算敌人和海盗船的距离(利用此资讯将加农炮瞄准敌人军舰)。船身两侧装载二个、甚至更多的镜子(立体)。精心安排的反射镜系统会将主要的立体镜影像传送到控制室,控制室的操作员先调整发条,再将接收到的两个影像叠加起来,预校准的钟盘刻度就会显示敌舰的距离。数百年来至今,立体运算法的原理都没有改变,这种量测法非常稳定可靠,而规律和稳定的演算法也为设计更好的硬体机械来执行立体视觉计算提供了机会。


立体视觉如何从2D平面数据计算物体距离?

图一显示的是立体几何方程式。如果两个摄影机已被校准过,找出物体距离这个问题就可以转化成找出左摄影机和右摄影机同时拍摄的影像画素点视差。预校准的立体摄影机可以校准图像,如此对极几何线就可以轻易对两个影像的每一个画素点进行水平搜寻(同一行)。所谓视差(Disparity),就是与左图像比对,一个特定点在右图像移动的画素量,此概念很重要,因为它适用于硬体实作的常态计算模型,在深入此主题之前,视差这个概念必须进一步厘清。



图一 : 立体几何方程式。 3D空间中一个点的景深,与该点在左右摄影机的视差成反比。
图一 : 立体几何方程式。 3D空间中一个点的景深,与该点在左右摄影机的视差成反比。

立体视差计算和距离计算的精确度

图二的三张图显示视差与物体距离的关系,首先注意到的是,视差和物体距离成反比。一个物体距离立体摄影机愈近,视差就会愈大,反之亦然。理论上,一个零视差的点距离摄影机无限的远。具体而言,以图二(a)系统的选定物理参数,一个画素视差代表大约700公尺的距离,二个画素视差,距离大约350公尺,这是非常大的解析度差异,如果视差计算失误一个画素,估算的距离就会产生很大的错误(100公尺以上的距离)。对于较短的距离(图二曲线下半部,小于50公尺处),距离计算的解析度能获得大幅改善,从曲线下半部密集的距离计算点可得到明证,在此区块内,视差计算失误一个画素(或更少),距离的误差大约2~3公尺。



图二 : 计算精确度与距离和视差的关系。视差计算的画素精确度提升,距离的精确度也相对提高。该计算基于(a)两台摄影机相距30公分(b)焦距10厘米(c) 画素大小4.2微米。
图二 : 计算精确度与距离和视差的关系。视差计算的画素精确度提升,距离的精确度也相对提高。该计算基于(a)两台摄影机相距30公分(b)焦距10厘米(c) 画素大小4.2微米。

有些方法可以改善系统的精确度,如图二(b)和(c)所示,如果视角计算以半画素或四分之一画素执行,距离计算的解析度会成正比提升。在这些情况下,100公尺以上、300公尺以下的距离,连续视角增加的计算距离解析度会提升30~40公尺。 100公尺以下的距离,精确度可优于50公分。重要的是,对近距离防撞系统而言,精确度必须最大化(最好小于10公分),但与此同时,立体摄影机的工作范围必须获得改善,即使得稍微牺牲精确度。


ADAS系统的立体摄影机工作范围

如果再回顾一下基础的立体方程式(图一),要增进系统的最大范围,很明显的低视角的距离计算必须正确。这可以从下列方式获得实现,每一个方法都必须和机械或电子设计以及最终的系统成本之间取得平衡。


(1):使用较小的画素尺寸(例如一半),其他不变,范围可以提高50%(精


确度相同)。 (2):增加两台摄影机之间的距离。如果“T”的长度加倍,其他不变,范围可以提升50%(精确度相同)。 (3):改变焦距。如果“f”的长度加倍,其他不变,范围可以提高50%(精确度相同),但视野缩小。 (4)使用拥有子画素精确度的运算系统计算立体视角。


(2)和(3)的选项虽在数理上可行,但却对系统的硬体特色造成困扰。当汽车装载立体系统时,通常会以固定的角度安装,系统也必须愈小愈好。这样的美学考量与增加摄影机间的距离(T)或拉长焦距(f)相违背。因此,要安装大范围的高精确度立体距离计算系统,最可行的选项只剩下(1)和(4)。


流程

图三显示计算立体视差的数据流程和运算链高阶方块图。请注意,其中并没有像上篇提及的SFM方块图一样有摄影机校准步骤,也不须像密集立体视差演算法一样需要寻找特征。 SFM距离计算法是基于物体的大小来计算距离,因此辨识特征和物体是必要的。



图三 : 立体视差距离计算法的高阶数据和演算流程
图三 : 立体视差距离计算法的高阶数据和演算流程

图像秩转换通常是立体图像处理流程的第一或第二个步骤。此步骤的目的是确保两个图像的连续区块比对不易受到真实世界干扰的影响,例如左、右图像的照明或亮度变化。许多因素会造成变化,例如两台摄影机因为不同视角、快门速度和其他抖动伪像的细微差异,导致摄影机在不太一样的时间点拍下左、右图像,造成亮度不同。


有许多研究论文和方法论提出各种不同的图像秩转换选项,并分析它们如何影响视差计算的强固性。图三的图像校准步骤,确保连续视差计算能沿着水平对极搜寻线进行。接下来的流程步骤就是实际计算视差、运算信心水平和后处理。密集的视差计算大多是在空间域执行,虽然有些方法建议在频域计算视差。


这些方法试图利用可以相对快速计算大FFT这个优点,但FFT有其缺点使它无法专美于前。本文无须对此深入讨论,但持平而言,大多数 (如果不是全部的话) 商品化的立体视差演算法都是在空间域实现。在最基础的层次上,此分析法要求必须为左图像(已转换)的每一个画素,选取一小块围绕着它的画素区块。


接着,沿着对极(水平)线搜寻右图像(已转换),直到找到相同区块的位置。每一个可能的视差值(从1到最大值64或128或其他任何数值)都要执行这样的计算。左边和右边区块的差异(或关联性)会趋近于最小(最大),接近画素真正的视差值。使用「移动视窗」执行区块比对或匹配以计算区块移动的范围,得出的结果再用来计算3D空间中特定画素的距离。此流程如图四所示。



图四 : 简易SAD区块比对演算法,用于搜寻视差
图四 : 简易SAD区块比对演算法,用于搜寻视差

使用SAD算法搜寻视差虽然简洁但有时太过于简单。此算法的基本前提是,给定的画素区块视差是相等的,但这在物体的边缘几乎不可能。物体边缘的小画素区块,视差会剧烈变化,倾斜或弯曲的表面则微幅改变。


如图五Middlebury图片集的「锥体和面具」清楚说明此一事实。在一个圆锥(略微倾斜的表面)上发现的相邻像素,视差改变微小,物体边缘的视差差异则​​较大。使用简单的SAD算法及秩转换,两边的遮挡都留下很大的视差孔,如同仅在一台摄影机和物体边缘才会看见的伪影。



图五 : Middlebury图片集的圆锥和面具。使用简单的SAD执行视差计算,视差在曲面上保持轻微变化,而在物体边界急剧变化。观察图的右上方围栏视差孔、物体不连续、以及图左侧遮挡的情形。
图五 : Middlebury图片集的圆锥和面具。使用简单的SAD执行视差计算,视差在曲面上保持轻微变化,而在物体边界急剧变化。观察图的右上方围栏视差孔、物体不连续、以及图左侧遮挡的情形。

更好的方法是「半全域比对法(semi global matching, SGM)」。该方法针对多于一个方向(4、8或16)的每个像素计算平滑度代价函数。代价函数计算如图六所示,目的是为每个像素优化多方向的代价函数S(p,d),并确保平滑视差图。 SGM的原始文件建议用16个方向优化代价函数,而实作上已经尝试了2、4和8个方向。



图六 : SGM优化代价函数方程式
图六 : SGM优化代价函数方程式

SGM代价函数和优化算法的具体实现如图七所示。使用伪代码段,可以很容易进行记忆体、运算效能和最终的硬体复杂度条件评估,即时实现SGM运算。



图七 : 实施SGM的伪代码
图七 : 实施SGM的伪代码

视差计算对运算效能和记忆体的需求

可想而知,上述计算对ADAS应用来说是很重的运算负担。一个典型的前置立体摄影机装置,是一组以每秒30格的速度进行拍摄的1百万画素摄影机。视差计算处理的第一步骤是秩转换。典型的秩转换是Census Transformation转换或略微修改的版本,两者所需的输入都是立体影像,输出则是经过Census Transformation转换的影像对。


以画素点为中心的N×N区块所需的Census Transformation运算,是执行6,000万次N×N Census Transformation转换。每一次对N×N区块的画素进行Census Transformation转换,需要N2次比对运算。其他涉及的秩转换需要对每个画素进行N2次点排列。保守估计,未来几年实际部署在车辆上的系统,最少须进行6,000万x N2次的秩转换比对运算。


流程的第二步骤是影像校准,以利极线视差搜寻在水平线上进行。第三步骤比较有趣,它针对每个画素和视差组合计算C(p,d),Lr(p,d)和S(p,d)(参见图七)。如果C(p,d)按区块进行SAD操作且区块大小是N×N,所需的系统范围大约200公尺,距离精确度以半画素视差计算,则系统需要计算C(p, d)用于64-128种视差可能性。使用这些参数的C(p,d)的总运算需求为每秒执行6,000万 × N2 × 128次SAD操作。Lr(p,d)的计算则须对每个画素在“r”个可能的方向进行运算,因此必须进行6,000万x128 x r次计算。一个画素的计算需要五次加法运算(如果把减法当作一种特别形式的加法)和一次最小侦查搜寻操作。加总起来,每秒的Lr(p,d)的计算需要6,000万 × 128 × r × 5次加法和6,000万 × 128× r次最小值计算。



图八 : 影像秩转换范例。图的左边是简单的Census Transformation转换,右边称为「全秩转换」。
图八 : 影像秩转换范例。图的左边是简单的Census Transformation转换,右边称为「全秩转换」。

对于每个可能的画素和视差值,S(p,d)计算需进行r次,每次计算S(p,d)需要“r”次加法和一次比对。执行此计算的每秒总操作数为6,000万 × 128 × r 次加法和6,000万 × 128次比对。将这三个计算相加,一个精确的SGM视差计算引擎,运行在1百万画素每秒30格的摄影机上,进行128个视差可能性计算,每秒必须执行大约1 Tera的操作(加法、减法、寻找最小值)。


和这个数字相较,先进的通用嵌入式处理器每一个周期发出7到10个指令,其中一些指令是SIMD类型,亦即它们可以平行处理8-16段数据。倘若通用处理器使用最佳的IPC,以2 GHz运行的四核处理器将提供约320G的64位元操作。即使我们认为大多数的立体管线将是16位元,而且可以100%的效率将数据封包在64位元仓,但四核通用处理器仍不足以满足现代ADAS立体视觉系统的需求。通用处理器的目标是提供各种高阶可编程性,这意味着设计即时ADAS立体视觉系统需要专用的硬体。


计算方法的强固可靠性

ADAS视觉系统的目的是避免或起码将道路事故的严重性降至最低。每年有120多万人因交通事故死亡,成为15至29岁人口的主要死因。行人是最脆弱的道路使用者,每年有超过25万行人受伤。驾驶人注意力不集中或疲劳驾驶是道路交通事故的主因。因此,ADAS视觉系统的紧急刹车功能,最重要的目的是降低事故的严重性和频率。然而,这是一个双面刃的需求,因为视觉系统不仅必须针对每一格影像和每一秒精确可靠地估算距离,而且还必须使误报的情况降至最低。为了确保ADAS系统的规格和设计达到适当的强固性,ISO 26262被制定作为汽车安全应用电子系统的规范、设计和开发的国际标准。


在此进行一点算术,可以得知立体视觉系统计算距离时可能产生的误差。图九显示,如果焦距(f)和摄影机距离(T)的容许误差是1%,视差计算演算法的精确度是5%,那么计算出来的距离(Z)就会产生大约2.5%的误差。因此,将视差计算法的准确度提高到子画素(四分之一或二分之一画素)水平是很重要的。这有两个意涵:第一个是提升演算法和硬体的后处理插值计算要求,第二个要求更复杂,而且与ISO 26262相关。



图九 : 立体视觉系统计算距离的统计误差预估值
图九 : 立体视觉系统计算距离的统计误差预估值

架构和设计需确保电子零件的瞬时和永久性错误,能在系统的容错时间间隔(FTTI)内被检测和标记出来。 FTTI和其他相关指标的评量并非本文要讨论的,只要记得用于建构系统的电子零组件,必须能够实现ADAS视觉系统所需的ASIL级别就够了。


本文中,我们检视各种通用和立体视觉演算法的成效,特别是用于计算汽车ADAS安全紧急煞车系统距离的选项。而TI目前正在推动ADAS处理领域的深度创新,特别是高效、强大的立体视觉处理。也有许多不同的电子系统选项,可以实现ADAS安全视觉系统的设计和效能目标。例如,TI(TDA系列)的异质晶片架构特别能够满足此一特定应用的效能、功耗、尺寸和ASIL功能性安全目标。


(本文作者任职于德州仪器)


@刊头图(Source:Sports and Mobiles Knowledge Blogs)


相关文章
以霍尔效应电流感测器简化高电压感测
ADAS 前置摄影机设计的电源供应四大挑战
以固态继电器简化高电压应用中的绝缘监控设计
以半导体技术协助打造更安全更智慧的车辆
适用於整合太阳能和储能系统的转换器拓扑结构
comments powered by Disqus
相关讨论
  相关新闻
» 亚湾2.0以智慧科技领航国际 加速产业加值升级
» TI新型功率转换器突破电源设计极限 协助工程师实现更高功率密度
» 高通执行长Cristiano Amon於COMPUTEX 2024 分享智慧装置上的生成式AI运算
» 应材及东北微电子联手 为MIT.nano??注200mm晶圆研制能力
» 国科会核准科学园区投资案 德商易格斯进驻中科拔头筹


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK83SA9AGFUSTACUKK
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw