APP下载

基于OpenCV技术车辆轮廓检测方法的研究

2023-08-28邢玮琦

山西电子技术 2023年4期
关键词:轮廓灰度预处理

邢玮琦

(山西省信息产业技术研究院有限公司,山西 太原030012)

1 绪论

近年来,汽车轮廓检测发展迅速,目前技术对整车尺寸进行自动测量的手段相对单一,普遍采用的是二维激光轮廓扫描测量方法、CCD影像测量法对车辆的轮廓进行检测,这种技术的测量精度较高,但受天气影响较大,在雨雾等不良天气条件下测量精度不高。

采用人工智能方法对汽车进行轮廓检测被广泛使用。本文将提供基于开放计算机视觉库OpenCV的轮廓检查方案。首先使用CCD获取环境的图像数据;其次,对图像数据信息预处理、二值化阈值分割,得到黑白环境图像;最后,通过OpenCV函数监测车辆外轮廓线,进一步为实现汽车外廓尺寸测量提供基础支持。虽然这种检测技术准确度不如激光测距技术但受气候环境影响较小,因此可以较快的得到汽车的外部等值线。

2 基于OpenCV的车辆轮廓检测

2.1 OpenCV简介

OpenCV是英特尔公司提供的为实现图像处理和计算机视觉图像处理方面的通用算法,是一个免费视觉数据库。可以被用于人工智能、跟踪识别图像、人机交互等信息处理领域。

随着计算机技术的飞速发展,OpenCV中的C、C++接口被大量运用在多核开发中,迭代后的软件算法大大提高了可用性。因此,目前国内外图像处理领域普遍采用OpenCV处理图像,成为当代流行的处理图片的软件之一[1]。

2.2 车辆图像的预处理

将采集到的车辆轮廓图片进行预处理,包括图片降噪、平滑处理、二值化阈值分割等。预处理后的图片数据才能被算法处理成目标值。汽车轮廓图像数据预处理流程如图1所示。

图1 车辆轮廓图像的预处理流程

形态学去噪是数学形态学图像加工的基础理论。包含:腐蚀和扩展、开运算和闭计算。根据上述基本运算,就能够推导和构造多种数学形态学实用算子,通过它们可以进行图像形态和特征的分析和控制。经过形态学去噪技术可以将图片处理为黑白图或灰度图,灰度图是黑白二值图的一种特殊表现形成,本文为了提高计算精度采用黑白二值图像。

图像的平滑处理主要采用中值滤波法。由于自然因素,从户外摄像机采集到的汽车俯视画面很大可能会产生很多噪音,降低画面品质,平滑处理的目的是增强汽车轮廓图的清晰度。通过中值滤波及平滑处理过程能够保存更多的有关图片的灰度数据,进而大大提高了图片轮廓检查的品质。

像素分割处理使用了二值化阈值划分法,主要目的是将像素空间划分为几个有价值的区块。车辆轮廓检测则是利用像素切割,获取黑白的二值图像。利用这个方式,可把图片中所要分辨的物象与其他识别物进行区分,看作是以阈值作为划分点的2个不同形象。超过或者低于阈值点的用1替代,或者用0替代。再经过二值化分割,获得黑白图形,为轮廓提取打下基础。

2.3 轮廓提取及检测实现

二值化图像轮廓提取算法的原理是:

条件1:如原图中有一点为黑;

条件2:此点相邻的8个点都为黑色。

同时满足条件1和条件2的点就是内点,依次删除内容直至所有内点消失,剩余点组成的图像就是想要得到的轮廓线。将所有采集到的多角度拍摄的汽车图片用OpenCV技术依次处理,最终得到的就是相对完整清晰的汽车外轮廓线。

2.3.1 图像的读取

从文件中读取图像的语句为:

Ipllmage*IO=0;IO=cvloadImage(filename,flag);

结构Iplimage定义了IPL图片的头部,当中flag是代表载入图片的通路数标记:当flag>0时,代表载入图片强制性为三通路彩色图片;当flag=0时,则代表载入图片强制为单通路灰色图片;flag值<0时,说明载入图片由数据库中的图片信道数决定。在本文中需要下载的数据必须是灰度图片,所以要设定flag=0。输入后的汽车灰度图片如图2所展示。

图2 车辆灰度图像

2.3.2 图像的形态学去噪和平滑处理

膨胀与腐蚀的参数依次是:cvdilate(IOPOconstruction iterations);cverodeIOPOconstruction iterations)。 其中IO为输入图片;PO为输出图片;construction为结构内容;iterations为计算次数。结合数学形态学中膨胀与腐蚀这2个基本算法实现开运算和闭运算。开运算就是先腐蚀再膨胀,闭运算就是先膨胀再腐蚀。

OpenCV中使用了以下变量进行此运算:在cvmorphologyex(IOPO temp construction operation iterations)中operation代表形态学运算的形式;cv_mop_open代表开放运算;而cv_mop_close代表关闭运算。

平滑处理函数为:cvsmooth(IOPO smoothtype param1,param2,param3,param4),同时由于smoothtype标签中所使用的光滑方法,在本文中也使用了中值滤波,所以设定为cv_median,并对图片执行了尺寸为param1*param1的中值滤波,因此设置param1=3,其余的控制参数均为0。在本文中,对图片采用了开放、闭运算以及中值滤波等多次循环算法,以获得光滑轮廓、减少噪音和轮廓缺陷。经过处理后的车辆图片将如图3所显示。

图3 经处理后的车辆图像

2.3.3 图像二值化分割

二值化分割函数为:cvthreshold(IOPO threshold,max_value threshold_type),将threshold_type设置为cv_thresh_bina-ry,并进行了二值化滤波后,波谷为threshold,峰值表示为max_value。当IO(xy)>threshold时,PO(xy)=max_value,否则PO(xy)=0。基于拍摄场景实况,我们进行了多次计算,取threshold=100,max_value=255能达到较为理想的结果。相比车辆本身,拍摄场景阈值要更为复杂,因此阈值划分后再进行的反经过阈值划分后的二值化结果在图4中显示。

图4 阈值分割后的二值化图像

2.3.4 轮廓检测及提取

汽车轮廓图像函数可以表示为:cvfindcontours(IO storage &contour header_size mode method, offset),其中IO为输入的8-Bite、单通道图像,仅用0或1表示,0像素为0 ,其余均用1表示,因此图像被数字化为二值表示方便计算;storage是汽车轮廓二值数据的存储库;contour为包含第一个输出轮廓的指针的输出参数,;header_size是序列头的大小,本文取为sizeof(cvcontour);mode为轮廓搜索的模型,本文中我们只取最外层轮廓图像函数参与及下一步计算,因此设为cv_retr_external;method是一种近似算法,用cv_chain_approx_simple对图像进行垂直、水平、对角线、直角等划分,在汽车轮廓图像函数中只保留最末位像素;offset表示位移,不可以设定为默认值cvpoint(0,0),无位移是不存在的。

轮廓析出后,在contour序列或OpenCV中绘画轮廓的方法如下:cvdrawcontours(PO contour extemal_color hole_color max_level thickness line_type offset),其中PO为内轮廓图像;extemal_color为外轮廓图像;hole_color为内轮廓色彩值;max_level为绘画轮廓边缘的最高层次,在本文中以0描绘简单的轮廓边缘;thickness为在绘画轮廓边缘中所采用的色彩线的粗度为2;Line_type中为线条的位置为7。经[2,4,7]检测后的车辆另外等值曲线则在图5中显示。

图5 车辆外轮廓线图像

3 试验验证

因为汽车功能性以及人们审美观的不同,车身结构复杂且多种多样,在加上环境(比如光线、背景图与汽车图片相似)等外在因素,导致收集到的汽车图片有大量噪声,比如不规则、残缺、灰度高等,如图2所示。通过对图片进行预处理后,背景环境和车身内部的噪音都得以减少,同时图片整体清晰度和整个车身的轮廓线也获得了更为理想的平滑状态,如图3所示。车辆图像在用OpenCV车辆轮廓检测技术进行二值化处理之后,已经基本上区别了背景和实物,如图4所示。但因为现场环境等原因,灰度值产生了相当大的差别,从而导致在二值化后的图片中,车身的部分并不能完全与现实背景中区分开来,车身轮廓不是很连贯。如图5所示,汽车的车身轮廓线获得了更为理想的表现。但还是不够平滑及连贯。

4 结论

根据试验结论不难发现,即便在汽车外部环境较差的前提下,应用OpenCV技术的汽车外部轮廓测量系统仍然能够相对完全的将汽车轮廓从背景中剥离,获得较为全面的汽车等值线,为进一步优化测量汽车外部轮廓尺寸奠定了有力的依据。

这种技术原理易懂,计算简单。且OpenCV视觉库的高效率性能帮助用户快速处理图像数据,经过多次实验结果证明,本文提出的算法技术可行且高效,有实用价值。

英特尔公司的OpenCV视觉库,为C++及其他编程语言的可视化研究创造了一条全新的途径,OpenCV和其它开发方式一样具备周期短、成本小、快捷的优势,随着OpenCV在影象处理领域的广泛应用,也必然在各方面获得了更为广阔的应用。

猜你喜欢

轮廓灰度预处理
采用改进导重法的拓扑结构灰度单元过滤技术
基于灰度拉伸的图像水位识别方法研究
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
基于预处理MUSIC算法的分布式阵列DOA估计
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算
络合萃取法预处理H酸废水
在线学习机制下的Snake轮廓跟踪
基于自适应预处理的改进CPF-GMRES算法