APP下载

基于双目视觉图像的倒车障碍物检测预处理方法

2018-03-28刘昱岗王卓君刘艳芳张祖涛

关键词:视差标号双目

刘昱岗,王卓君,刘艳芳,张祖涛,徐 宏

(1.西南交通大学 交通运输与物流学院,四川 成都 610031; 2.西南交通大学 综合交通运输智能化国家地方联合工程实验室,四川 成都 610031; 3.西南交通大学 机械工程学院,四川 成都 610031;4.中国电子科技集团第三十二研究所,上海 201808)

0 引 言

随着汽车的日益普及,道路和停车场越来越拥挤,驾驶员视野受限,穿行、掉头、倒车等常规操作所引发的碰撞和拖挂时常发生,其中尤以倒车事故最为严重和突出,驾驶员倒车误操作已成为城市交通事故的重要原因之一。根据英国Accident Exchange事故统计机构2011年研究,英国每年约有4万起严重交通事故,其中有较大的部分是由司机的倒车过失引起的。在中国,由于倒车引起的交通事故,在事故总数、发生率和造成的后果的严重性上,远远高于国外[1]。因此,如何有效地检测倒车环境,成功区分出障碍物或行人,成为目前倒车安全领域的研究重点之一。

目前的汽车环境感知技术主要是利用传感器对车外环境进行检测,然后将信息反馈给汽车或者驾驶员,进而对汽车进行辅助的控制。双目立体视觉技术由于其获取信息丰富、信息准确,失真小、对近距离障碍物的关注度高等优点,成为近年来倒车领域备受关注的环境感知技术之一。魏娟[2]研究了双目视觉系统在自动倒车系统中的应用,详细论述了双目立体视觉的双目标定、特征提取、双目匹配3个方面的内容,表明了双目立体视觉对于倒车环境感知的可用性。但是双目视差获取(双目匹配)一直以来计算机视觉中最关键、最困难的一步。尽管国内外许多学者已经提出了很多相关理论如灰度相关性匹配、极限约束、特征点匹配等[3-4],但误匹配现象仍然存在,并会大大影响接下来的障碍物检测等工作,刘雨婷[5]采用随机采样一致性(RANSAC)方法来消除伪匹配点。

引入图像形态学的膨胀、腐蚀操作来使视差图中属于同一障碍物的不连通区域连通,消除误匹配,同时消除一些噪声,以利于接下来的检测工作。在倒车过程中,驾驶员或汽车往往更关注车后更近一些的障碍物。远距离的障碍物对倒车安全没有实际意义且需要大量计算时间。鉴于此,笔者采用基于距离的障碍物检测算法,选择合适的视差值作为障碍物检测距离的阈值对视差图进行二值化处理,将距离较近的障碍物作为检测的主要目标,使得驾驶员或汽车能够更多的关注到距离较近的障碍物。接着,使用区域标记算法对各个连通进行标记,计算各区域的面积大小,并将面积较小的区域作为噪声去除。最后提取出余下面积较大的连通区域作为最终障碍物检测的结果。实验结果表明笔者提出的基于双目视觉图像的倒车障碍物检测方法能够有效检测出车后的障碍物区域。并可对以后基于双目视觉的倒车障碍物跟踪与车辆安全控制研究提供前期基础和一定的借鉴意义。

基于双目视觉图像的倒车障碍物检测方法流程主要包括膨胀和腐蚀、视差图二值化、障碍物提取3个步骤,如图1。

针对双目图像匹配时容易产生误匹配,使得视差灰度图不清晰这一问题,首先采用膨胀和腐蚀算法来消除误匹配并去除一部分噪声;然后采用合适的阈值对视差图像进行二值化,将一定距离内想要检测到的障碍物划分出来;接着利用区域标记算法将二值化后的视差图像中的连通区域进行标记,最后通过面积控制将面积过小的区域作为噪点去除,将面积较大的区域作为障碍物提取出来,实现倒车环境下的障碍物检测。

图1 障碍物检测方法系统流程Fig. 1 System flowchart of obstacle detection method

2 基于双目视觉图像的倒车障碍物检测方法

2.1 膨胀、腐蚀

双目匹配一直以来都是计算机视觉领域中的重点和难点,且由此产生的误匹配现象尚未得到很好的解决。误匹配会使同一障碍物区域的视差值不一致,进而造成同一障碍物区域的视差灰度图不连通,最终将影响到障碍物的检测。因此,如何减小误匹配对障碍物检测的影响是实现双目视觉图像检测的关键步骤。

膨胀和腐蚀是数字图像处理中常见的形态学操作[6-10],主要用于图像的噪声抑制,边缘提取,图像分割,纹理分析,图像重建等。其区域连通作用可去除双目视差灰度图中小区域的误匹配。接下来笔者将介绍一些基本的数学集合的相互关系和常见的集合运算的概念,再介绍在此基础上定义的膨胀、腐蚀操作。常用的数学集合的相互关系包括:包含,相交,不包含。常用的集合运算包括:非运算,交运算,并运算,差运算。图2和图3分别显示了3种集合间相互关系的示意图和4种集合运算的示意图。其中A和B分别表示两个数学集合。图4中阴影部分为运算结果。

图2 集合间相互关系Fig. 2 Correlation of each set

图3 常见的集合运算Fig. 3 Common set operation

膨胀定义:设被膨胀图像为集合X,把集合B(在形态学操作中,一般将集合B称为结构元素)平移a(x,y)后获得Ba,如果Ba击中或被包含于X,记下a点,此时,所有满足上述条件的a点的集合称为X被B膨胀的结果。可以用如公式(1)描述X和B的关系:

X⊕B=E{a|(Ba∩X)≠∅}

(1)

式中:⊕为膨胀运算符;∅为空集。

在形态学操作中,一般将集合B称为结构元素。图4显示了一个简单的膨胀操作示意图:

图4 图像膨胀操作示意Fig. 4 Image dilation operation

另外,根据结构元素B的不同,膨胀效果也会不同,如图5:

图5 不同结构元素下的膨胀操作Fig. 5 Dilation operation under different structural elements

通过膨胀操作,可以使视差图中同一目标的不连续匹配区域连通起来,减少误匹配带来的影响。

腐蚀可以看作是膨胀的对偶运算,定义为:设被腐蚀图像为X,把结构元素B平移a(x,y)后获得Ba,如果Ba包含于X,记下a点,此时,所有满足上述条件的a点的集合称为X被B腐蚀的结果。可以用如公式(2)描述X和B的关系:

XΘB=E{a|Ba⊂X≠∅}

(2)

式中:Θ为腐蚀运算符。

图6为腐蚀示例:

图6 图像腐蚀操作示意Fig. 6 Image erosion operation

与膨胀操作一样,结构元素B的不同,腐蚀效果也会有不同,如图7:

图7 不同结构元素下的腐蚀操作Fig. 7 Erosion operation under different structural elements

腐蚀操作的目的主要用于去除双目视差获取时误匹配产生的细小噪点。在完成膨胀腐蚀操作后,双目视差图像会变得更加清晰。

2.2 视差图二值化

在现实倒车环境中,距离车后较近的障碍物才会对驾驶员的操作或是车辆的自动控制系统产生影响。因此,在检测过程中只检测车后一定距离D内的障碍物而将远距离的障碍物忽略,既能减少计算量,也符合实际的倒车需要。视差值d与障碍物距车辆的距离Z有如式(3)所示的关系。

(3)

由式(3)可知视差值d与距离Z是一一对应的关系,且距离车辆较近的障碍物视差灰度值较高,距离车辆较远的障碍物视差灰度值较低。现设定一个安全距离L,若想要检测L以内的障碍物,则可以通过式(3)反解出相应的视差dL。为了便于接下来对障碍物的标记处理,通过使用dL对视差图进行二值化可将距离在L之内的障碍物区域灰度值设置为1,将其余非障碍物区域或较远的障碍物区域的灰度值设置为0。

2.3 障碍物提取

在对视差灰度图进行去误匹配和二值化处理之后,图像中只包含了灰度值1的前景障碍物区域和灰度值为0的背景区域。利用区域标记算法对二值化视差图中每一个连通区域进行标记,一个连通区域即是一个障碍物。对一些被当作障碍物标记出来的小范围噪点,可运用阈值化处理,将面积过小的障碍物作为噪声去除,将剩余面积较大的区域作为障碍物提取出来。这样便可得到想要检测的障碍物。

结合倒车图像的实际情况和膨胀腐蚀操作所带来的问题,笔者将四连通的区域作为连通区域,采用基于行程的连通区域标记法对连通区域进行标记,具体实现步骤如图8。

1)逐行对图像进行扫描,对每一行中出现的白色像素序列进行记录,记下它们的起点位置,终点位置和对应的行号。

2)对这些白色序列进行标号,从第1行第1个序列依次往下递增;但如果当前白色序列与上1行有重合的区域,就将上1行有重合区域的那个序列的标号赋给当前的白色序列;如果有2个以上重合,就赋值给最小的那个标号,同时将上1行存在重合区域的白色序列的标号写入等价对,说明他们是等价的。

3)将等价对转换为等价序列(可以通过深度优先搜索算法),从1开始,为每个等价序列附上相同标号。

4)遍历白色像素序列开始标记,查找等价序列,并附上新的标号。

5)将每个白色序列的标号填入标记图像中。

6)根据不同的应用,计算质心,面积等。

结合图8的简单示例,对图像进行标记。

图8 区域标记简单示例Fig. 8 A sample of region labelling algorithm

扫描第1行:有2个白色像素序列,记为(2,2)和(6,7)分别赋予标号1,2。

扫描第2行:同样有2个白色像素序列,记为(2,4)和(6,6),但是这2个序列和第1行都有重叠部分,所以将(2,4)赋予标号1,将(6,6)赋予标号2。

扫描第3行:有1个白色像素序列,记为(4,6),它与上1行两个序列都有重合,所以取上1行所有与它重叠的白色像素序列中最小的标号赋予,同时将标号1和2计入等价对。

扫描第4行:有1个白色像素序列,记为(1,2),因为上1行没有与它重叠的,所以将这1行的(1,2)赋予标号3。

接着将等价对转换成等价序列。由于此例较为简单,其等价对只有1对,即1和2,所以等价序列也只有1和2。此时将等价序列1和2重新标号为1,将单独的标号为3的白色像素序列改为2。再次扫描图像,遍历白色像素序列开始标记,标上新的标号。标记结果如图9。

图9 区域标记结果Fig. 9 Results of region labelling algorithm

在标记完每个连通区域之后,可以计算出每个连通区域的面积,将面积过小的区域作为噪点去除,将剩余的面积较大的连通区域作为障碍物区域提取出来。

3 实验分析

为验证该方法有效性,采用图10所示的双目摄像头采集的样图对笔者提出的基于双目视觉图像的倒车障碍物检测方法进行验证。图11(a)为图10双目图像所对应的视差灰度图。可以观察到,图内线框中存在大量的属于同一物体但不连通的区域。与此同时,由图11(a)局部放大后的图11(b)还可看出视差灰度图中还存在许多白色噪点。

图10 双目摄像头采集样图Fig. 10 Sample picture collected by binocular-cameras

图11 视差图像Fig. 11 Disparity map

为了解决这两个问题,通过膨胀和腐蚀来连通区域和去除部分噪点,其处理效果如图12。

图12 膨胀腐蚀结果Fig. 12 Results of dilation and erosion operation

可以看出经过膨胀腐蚀之后的视差图的不连通区域已经连通了。接着对图像进行二值化处理,将远距离障碍物和近距离障碍物通过视差关系区分,二值化结果如图13。

图13 二值化视差图Fig. 13 Binary disparity map

然后使用区域标记算法,对不同区域加以标记,如图14。

图14 区域标记Fig. 14 Region labelling

区域标记后测量各个图像块的面积,将面积过小的噪声点去除,如图15。

图15 面积控制去除小噪声点Fig. 15 De-noising effect of area control

最后,将标记结果记录并显示在左右摄像头采集的图片中。左右摄像头目标定位如图16。

使用不同的距离L,可计算出不同的dL来对视差灰度图进行二值化,进而可检测到不同范围内的障碍物。假如设置了较大的检测距离L,则可以检测到更远的障碍物,如图17。

图17 较大距离内的障碍物Fig. 17 Obstacle existing in a longer distance

为验证检测有效性,运用基于双目视觉图像的倒车障碍物检测方法对一些标准数据库进行了检测率统计分析,正确检测率达94%以上,如表1。证明了方法的可行性。除了对这些知名学者提供的标准数据进行实验验证之外,本次实验还对实际采集的倒车现场视频进行了检测,采集场景为西南交通大学九里校区逸夫馆。图18显示了视频中随机抽取的4帧图片的检测结果,可以看出本方法对实测倒车视频也有很好的检测效果。

表1 标准数据检测和误检统计Table 1 Standard data detection and misdiagnosis statistics

图18 实测倒车环境障碍物检测Fig. 18 Obstacle detection in the actual reversing environment

4 结 语

提出了一种基于双目视觉图像的倒车障碍物检测方法。该方法首先使用膨胀和腐蚀算法对图像进行处理,这样可以有效降低双目视差图像中误匹配和噪点的影响;然后利用安全距离使图像二值化,去除图像背景区域,分离出目标前景;接着,运用区域标记算法,标记出二值化视差图中的连通区域,为障碍物检测做准备;然后对连通区域进行面积控制,提取出障碍物区域。最后,笔者提供的标准数据和现场视频采集数据,实验证明了提出的基于双目视觉的倒车障碍物检测方法的有效性。

[1]刘华军.面向智能车辆的道路环境理解技术研究[D].南京:南京理工大学,2007.

LIU Huajun.ResearchonRoadSceneInterruptionTechniquesforIntelligentVehicles[D]. Nanjing: Nanjing University of Science & Technology, 2007.

[2]魏娟.双目视觉在自动倒车系统中的应用研究[D].哈尔滨:哈尔滨工程大学,2009.

WEI Juan.TheApplicationResearchofBinocularVisioninAutomaticReversingSystem[D]. Harbin: Harbin Engineering University, 2009.

[3]金伟伟.基于双目视觉的运动小目标三维测量的研究与实现[D].杭州:浙江大学,2010.

JIN Weiwei.ResearchandRealizationonBinocularStereoVisionSysteminDistanceMeasurementofDynamicObject[D]. Hangzhou: Zhejiang University, 2010.

[4]白明,庄严,王伟.双目立体匹配算法的研究与进展[J].控制与决策,2008,23(7):721-729.

BAI Ming, ZHUANG Yan, WANG Wei. Progress in binocular stereo matching algorithms[J].ControlandDecision, 2008, 23(7): 721-729.

[5]刘雨婷.基于双目立体视觉的图像匹配算法研究[D].昆明:昆明理工大学,2014.

LIU Yuting.ResearchonBinocularStereoVisioninImageMatchingAlgorithm[D]. Kunming: Kunming University of Science and Technology, 2014.

[6]孙继平,吴冰,刘晓阳.基于膨胀/腐蚀运算的神经网络图像预处理方法及其应用研究[J].计算机学报,2005,28(6):985-990.

SUN Jiping, WU Bing, LIU Xiaoyang. Cellular neural network application manner in pre processing image[J].ChineseJournalofComputers, 2005, 28(6): 985-990.

[7] ANSAR A, CASTANO A, MATTHIES L. et al. Enhanced real-time stereo using bilateral filtering[C]//3D Data Processing, Visualization and Transmission, 2004. 3DPVT 2004. Proceedings. 2nd International Symposium on. IEEE, 2004: 455-462.

[8] ESS A, LEIBE B, SCHINDLER K, et al. Robust multi-person tracking from a mobile platform[J].IEEETransactionsonPatternAnalysis&MachineIntelligence, 2009, 31(10): 1831-1846.

[9]陈武,王安麟,魏俊华.基于CCD的待车数传感器研究——等待车辆图像的腐蚀-膨胀识别算法[J].机械科学与技术,2004,21(6):20-23.

CHEN Wu, WANG Anlin, WEI Junhua. Study on sensors for quantity of waiting vehicles based on CCD-corrosion-expansion identifying method for image of waiting vehicles[J].JournalofMachineDesign, 2004, 21(6): 20-23.

[10]陈武.基于CCD图像的等待车辆数传感器的研究——等待车辆图像的腐蚀-膨胀识别算法[D].上海:上海交通大学,2004.

CHEN Wu.StudyonSensorsforQuantityofWaitingVehiclesbasedonCCD-Corrosion-ExpansionIdentifyingMethodforImageofWaitingVehicles[D]. Shanghai: Shanghai Jiaotong University, 2004.

[11]陈诚.基于双目视觉的运动目标跟踪算法研究与应用[D].哈尔滨:哈尔滨工程大学,2014.

CHEN Cheng.ResearchandApplicationonMovingObjectsTrackingAlgorithmBasedonBinocularVision[D]. Harbin: Harbin Engineering University, 2014.

猜你喜欢

视差标号双目
基于自适应窗的立体相机视差图优化方法研究
基于双目测距的卡尔曼滤波船舶轨迹跟踪
基于梯度域引导滤波的视差精炼迭代算法
基于HALCON和VC++的双目机器人织物抓取系统设计
基于分割树的视差图修复算法研究
基于双目视觉图像的长度测量方法
立体视差对瞳孔直径影响的研究
基于路P8m+4t+2的交错标号的图S(4m+1,4(t+1),4m-1)的优美标号*
非连通图D3,4∪G的优美标号
非连通图(P1∨Pm)∪C4n∪P2的优美性