APP下载

基于计算机视觉的物体尺寸测量方法实现 *

2021-05-12宗加飞蒋宁通

湖北科技学院学报 2021年2期
关键词:摄像头边缘物体

宗加飞,王 浪,蒋宁通,张 伟,丁 玲

(湖北科技学院 计算机科学与技术学院,湖北 咸宁 437100)

在20世纪60年代的早期,世界上第一次出现了能够执行数字图像处理任务的计算机,从此,数字图像处理技术诞生了。学者Marr在20世纪70年代晚期初步提出了视觉计算的基本理论,该理论成了计算机视觉理论出现后多年的非常重要的理论思想。计算机人工智能在20世纪80年代开始有了雏形并且发展得很快,导致计算机图像处理技术也取得了进一步的突破,之后也慢慢出现了人工智能的可视化技术,该技术在理论和实际应用上取得了明显的成果。同时人们对图像的研究更进了一步,从之前的二维领域进入了三维领域。数字图像处理技术在20世纪90年代开始了很快的成长,最核心的方面是学者Mallat将小波理论应用到图像的分解和重构上,这样就能对图像的局部进行分析和研究。到了21世纪,计算机视觉领域呈现许多新的趋势,现在人们在对视觉研究的过程中,更加注重的是怎么样通过计算机来模拟或模仿人的眼睛在获取外界信息时的作用和功能,到后来就有了计算机视觉这门新兴的有关计算机科学方面的学科,同时,这门学科的出现也体现了科学家和计算机视觉方面相关的研究者和工作者们对视觉的研究已经从理论慢慢地走向了更加科学的实践。就目前来看,人们用计算机视觉技术在社会不同方面上开发和研究出愈来愈多的应用,而不仅仅只是在手机、计算机上的应用。

当今在大规模工业生产过程中,由于人工视觉检测容易疲劳且具有不一致性,会导致误差或失误比较大。如果采用计算机视觉的检测方法,就会比单纯地采用人工视觉检测的方法具有更高的准确率和检测速度,会大大提高生产率,并且在一些危险的检测环境下,可以采取计算机视觉检测的方式,减少风险和确保人身安全,这就是工业上非接触式检测的目的。本文设计的基于计算机视觉的物体测量方法对设备的要求很低,成本也很低,只需要一台计算机和质量比较好的摄像头或者摄像机,就能组成一个相对完善的测量系统,能方便快捷地对各种物体尺寸进行测量,并且适用于各个领域。

一、系统的总体设计

1.系统对物体的尺寸测量流程设计

系统测量的对象主要是规则物体,如方形盒装物体等。该系统能测量目标物体的外轮廓尺寸,并能根据测量到的尺寸计算出物体的面积和体积,在测量过程中尽量减少尺寸误差,能最大程度上还原物体的真实尺寸信息。基于计算机视觉检测系统的整体流程如图1所示。

在用摄像头拍摄物体的过程中,提前将物体与摄像头之间的距离设定为30厘米且固定不变,采取垂直拍摄,这样可以减少对相机进行标定操作,还可以减少在测量和计算摄像头焦距时的误差,能够更有利于后续的计算机处理。

图1 基于计算机视觉物体尺寸检测系统的整体流程

2.系统总体设计

该系统硬件部分是一个摄像头和一台计算机构成。软件部分包括四个大的模块:分别是图像采集、图像预处理、识别与测量和结果输出模块。图像采集是使用摄像头拍摄的图片,然后将拍摄到的图片传输保存在计算机中,再对图片进行预处理操作,包括滤波、二值化、图像分割等,以便后续测量工作。然后再对预处理之后的图片进行物体尺寸测量,最后将测量得到的结果进行输出。该系统的整体框架图如图2所示。

图2 基于计算机视觉检测系统的整体流程

该系统中的四个大模块也相当于是对图片进行处理的四个步骤,主要是完成三个功能,即角点检测、轮廓检测和顶点计算。最后的结果输出模块基于之前的三个步骤,将处理好的图片输出到计算机中保存。

3.开发及运行环境

该系统利用Python+OpenCV在Windows 10操作系统下借助Spyder3编辑器实现的,包括硬件平台和软件平台,其中硬件平台和软件平台还有其它设备的主要参数如下:

(1)硬件平台为:CPU(Core i5-6300HQ 2.3GHz),硬盘120G,运行内存8G。

(2)软件平台为:操作系统Windows10,Python3.7.0,OpenCV-Python 3.4.5,Spyder 3.3.3。

(3)本系统使用的摄像头的主要参数如下:

·感光元件:CMOS

·摄像头像素:1200万

·分辨率:1600×1200

·镜头描述:五玻镜头

·接口类型:USB2.0

·最大帧频:30FPS

二、系统的实现及测试

1.图像采集

图像采集模块是用计算机调用USB摄像头对物体进行拍照采集图像。需要先将OpenCV的视频流嵌入wxPython的框架中(wxPython是Python中的一套实用的GUI图像库),再用OpenCV自带的cv2.VideoCapture()方法控制摄像头。其中有三个功能按钮,即打开摄像头、关闭摄像头、开始检测。当开启摄像头后,按下S键即可进行图片采集,并将图片保存到计算机指定的文件夹内等待下一步操作。

2.图像预处理

在图像采集过程中,不可避免地会混入一些噪声和干扰,会导致图像质量下降,影响到图像识别算法的可靠性和准确性,因此,对图像做分析之前一定要对图像进行预处理操作。其具体流程一般包括图像的分割、图像特征的提取、灰度化、几何变换、图像增强等。图像灰度化的方法一般有分量法、最大值法、平均值法和加权平均法。图像增强算法有空域方法和频域方法这两种。前者是一种非常直接的图像增强算法,这种算法又细分为点算法和邻域去噪算法。点操作算法包括灰度校正、灰度变换(也称对比度拉伸)和直方图校正。邻域增强算法可分为图像平滑和锐化。常用的平滑算法包括均值滤波、中值滤波和空间滤波。锐化常用算法有梯度算子法、二阶导数算子法、高通滤波、掩模匹配法等。

(1)滤波处理

数字图像的获取与传输的过程中会伴随很多不同的噪声一起,某些噪声会干扰图像本身的特征,并使后续操作变得困难,因此,需要对图像进行滤波操作,以减少噪声和干扰。原图像和进行中值滤波及高斯滤波处理后的效果如图3所示。

图3原图和经过中值滤波处理后的图像

(2)图像二值化

图像二值化能够减少图片数据量,同时突出检测目标。OpenCV中有两个函数用于二进制图像:cvthreshold ( )和cvadaptivethreshold ( )。图4所示的是经过处理得到的二值图像,能清晰显示出背景和前景的色差情况。

(3)图像分割

图像分割是将图像分布到不同的特定和独特的区域并呈现特定对象的技术和过程。这是从图像处理到图像分析的重要一步。现有的图像分割方法一般分为基于特定阈值的分割方法、在区域上的分割方法、边缘分割方法等具体方法。OpenCV中具有的基于区域的grabCut算法,即cv.grabCut ()。图5是原图和经过区域分割后的效果图。

图4 经过二值化处理后的图像 图5 基于区域的图像分割方法

(4)图像边缘检测

图像边缘检测结果是图像分割结果不能得到的一系列的点,需要进一步的预处理,将边缘点沿图形边界连接起来,就形成了一系列的边缘。在Python中,Roberts算子是通过Numpy定义的模板,再调用OpenCV的filter2D( )函数实现边缘提取。该函数主要利用核函数实现图像的卷积。Sobel算子用于计算图像亮度的近似值。根据图像边缘附近的光和影的强度,在超过一定数量的区域中的特定点被记录为边缘。Sobel算子认为相邻点之间的距离对当前像素有不同的影响。距离越近,对当前像素的影响越大,从而实现图像的锐化和边缘轮廓的高亮显示。如图6所示是使用Sobel算子进行边缘检测的结果。

(5)轮廓检测

以上操作说明了如何检测图像的边缘并获得图像主边缘的二值分布。边缘勾勒出包含重要视觉信息的图像元素。但简单的二值边缘分布有两个主要缺点:一是检测到的边缘太厚,增加了识别物体边界的难度;更加重要的是,通常无法找到足够低的阈值来检测图像中所有的重要边缘和足够高的阈值以避免太多不相关的边缘。这是一个很难衡量的问题,但是可以利用Canny算法来解决这个问题。图7是轮廓检测的结果。

图6 边缘检测效果图 图7 轮廓检测结果

(6)顶点计算

进行上述一系列处理之后,可以获取图像中物体的轮廓信息,通过对轮廓的边缘进行判断和进一步处理,确定轮廓的水平、垂直和对角这几个方向的元素,保留这些方向的终点坐标,就能把这个矩形轮廓的位置描述清楚。然后对轮廓中的点排序,使它们显示在左上、右上、右下和左下的顺序中,然后绘制倾斜的边界框的轮廓,最终可以通过计算顶点来实现对物体尺寸的测量。

3.测试结果及分析

利用系统测试得到的结果如图7所示,检测结果为长82.9mm,宽51.1mm,而校园卡实际长为85mm,宽为54mm。

表1 测量误差分析表

根据本文提出的测量方法对校园卡进行测量后,得出的测量结果基本上是正确的,但是存在着一定的误差。在这里绝对误差的值是测量值与真实值做差的绝对值,相对误差是绝对误差与真实值的比值。其误差分析表如表1所示。

最后的实验结果表明,本文提出的方法存在其优点和缺陷。具体来说,其优点在于不需要参考物,既不需要先测量参考物的尺寸,也不需要将参考物和待测物体放在一起拍摄;存在的缺陷在于每次若使用不同的拍摄设备,都要先对拍摄设备的焦距进行多次测量,另外,需要先固定拍摄距离,不同的拍摄距离有不同的成像效果。

三、总结与展望

本文提出的方法是针对静态图片中的目标物体进行尺寸测量,这些静态图片通过摄像头拍摄的。该系统测量的对象主要是规则物体,并能根据物体的外观轮阔尺寸计算出物体的面积和体积,其硬件部分是一个摄像头和一台计算机;软件部分包括四个大的模块,分别是图像采集、图像预处理、识别与测量、结果输出模块。该方法减少了识别和计算过程中造成的不可避免的数据误差,能最大程度上还原物体的真实三维尺寸信息。

猜你喜欢

摄像头边缘物体
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
深刻理解物体的平衡
我们是怎样看到物体的
一张图看懂边缘计算
为什么同一物体在世界各地重量不一样?
奔驰360°摄像头系统介绍
悬浮的鸡蛋
安装摄像头后为何无法使用耳麦?等
在边缘寻找自我