基于动态扫描显微摄像头的大尺度精密测量装置

2022-02-22 00:38童炜健方锦树余汉泉
中国新技术新产品 2022年22期
关键词:轮廓摄像头灰度

童炜健 方锦树 余汉泉

(佛山科学技术学院,广东 佛山 528231)

0 引言

测量技术是现代化工业的基础技术之一。作为工业发展的基础,现代化测量技术是在现代化生产中保证产品质量的关键。测量的精度和效率在一定程度上决定了制造业乃至科学技术发展的水平。

目前,一般通过游标卡尺、螺旋测微器以及三坐标测量等方式测量相关参数。一方面,这类测量方式都需要接触零件表面,会导致零件表面出现一定程度的损伤,而基于机器视觉的测量具有非接触性、非破坏性、精度高以及速度快等特点。另一方面,人员测量不可避免地会出现效率低、因疲劳而导致误检等现象,难以满足如今制造业实行的实时、快速、在线和非接触检测的要求,而基于机器视觉的测量方法填补了人工检测存在的缺陷。运用工业摄像头和图像处理方法对样品的外观尺寸(例如外形轮廓、孔径、高度、面积以及角度等)进行非接触式自动化测量是一种新兴测量技术。该技术通过自动化测量和分析,摆脱因人工操作而产生误差的影响,具有精度高、检测范围大以及检测速度快的特点,可以满足企业生产对实时在线检测、长时间以及高精度重复工作的要求。

1 系统设计原理

测量装置的功能价值需求包括以下3点:1) 项目装置使用显微摄像头和动态扫描对拍摄的样品图片进行合成,具有智能、高精度、非接触性、非破坏性、精度高以及速度快等特点。2) 项目装置使用嵌入式系统代替PC端,大大降低了成本,具有较高的便携性。3) 项目装置具有控制调试手段,且成本较低,系统稳定。

针对以上功能要求,该装置的功能设计如下:以ARM开发板为核心平台,与显微摄像平台构成一体化功能设备。首先,由显微摄像头对待测样品进行图像采集。其次,由OpenCV图像处理算法程序在核心板上对图像包进行拼接整合,得出检测数据。最后,将所得数据转交操作系统平台进行数据可视化,主要功能设计如图1所示。

图1 主要功能设计图

嵌入式系统初始化后进入等待操作模式,操作者单击屏幕开始操作,嵌入式系统利用移动载物台和显微摄像头对被测物体进行扫描拍摄并储存,图像采集完成后对采集到的图片进行拼接,使其组成1张能完整显示被测物体的图片,对样品图片进行分析计算,即可得出该样品的具体参数并在屏幕上显示。嵌入式系统初始化后,如果操作者长时间未进行操作,系统就将进入低功耗模式,关闭屏幕等耗电较大的模块,等待操作者唤醒系统。主要功能流程如图2所示。

图2 精密智能测量流程图

2 硬件设计原理

该测量装置以嵌入式系统为主,是对摄像头、显示屏以及可移动载物台等各个硬件模块进行集成的功能一体化设备,其设计外观如图3所示。作为核心主控系统,ARM嵌入式系统对各个功能模块进行连接控制,其具体的功能结构框架如图4所示。

图3 装置外观设计图

图4 装置总体结构框架图

2.1 主控系统

鉴于OpenCV可以在Linux、Windows、Android和macOS操作系统上运行,采用英伟达Jetson Nano嵌入式开发板作为上位机,Jetson Nano的CPU是四核ARM A57内核,AI算力最高473GFLOPS,在性价比和主板性能等方面均符合计划要求。同时,该开发板已搭载Ubuntu系统,安装配置即可实现OpenCV和QT可视化界面的功能。通过在该开发板上植入运行基于QT所设计的用户操作界面,使用户可以在该操作界面实时操控及掌握检测数据(替代PC端),在实现降低成本的同时,大大提高便携性。

2.2 摄像头

摄像头使用Linux系统UVC协议免驱工业显微摄像头,无需安装驱动即可在嵌入式系统中使用,且摄像头具有无畸变矫正算法,大大降低了拍摄带来的误差。采用机器视觉方法实现大尺度样品的精细测度测量存在1组矛盾,即量程和精度要求之间的相互矛盾关系。如果采用广角摄像头实现大量程的测量,就意味测量精度会降低,而采用显微摄像头实现精密尺度测量,其量程范围会变小。为了解决这一矛盾,该项目提出采用动态扫描显微摄像头的方法,既利用显微摄像头实现精密尺度测量的功能,又利用动态扫描方法来实现大尺度样品全景测量的功能。

2.3 可移动载物台

动态扫描的难点在于轨迹运动速度及范围,进行精准测量的目标物往往很小,那么就需要准确的移动定位以及移动时间,否则动态扫描就会出现图像无法拼接的问题。该测量装置通过利用对载物台的可编程控制,可以把控扫描移动速度及距离。

可移动载物台由STM32F1微控制器、3个DM420YS驱动器以及3个28微型步进电机直线滑台组成,滑台主体如图5所示。对STM32F1进行C语言编程,控制其高级控制定时器TIM1~3通道向3个驱动器分别输出3路特定占空比的PWM斩波恒流,从而实现通过3个驱动器对滑台步进电机进行驱动的目标,滑台因此得以在平面矩形内移动,可由驱动器的拨码开关调节细分数、对STM32F1定时器预分频器进行编程控制以及C语言延时函数等方式实现精准控制滑台移动速度及距离的功能。而STM32F1微控制器又通过USB串口与上位机主控系统进行连接,以实现数据通信,通过特定字符串命令实现主控系统实时控制载物平台的功能。

图5 滑台结构图

2.4 显示屏

为了呈现拍摄到的物体图像和物体数据,特搭配10.1寸电容触摸屏,单击屏幕上即可完成对物体的采集、计算和数据显示等操作。

3 图像处理核心模块简述

作为该测量装置关键的测量应用部分,核心图像处理核心模块主要分为图像拼接模块、图像预处理模块、图像Canny边缘检测模块以及图像轮廓描绘和计算模块。

在进行测量时,把被测物体放置在平移台上,使用符合该试验的显微摄像头进行拍摄,再使用载物台移动物体并进行扫描拍摄,将得到的多张待测样品图例上传图像拼接模块,由其利用特征信息对拍摄样品进行处理,就可以获得1张完整的待测样品成型图。但是这张成型的待测样品图例尚存在图像背景因素和自身因素等干扰,并不能达到实际测量的要求,须经图像预处理模块进行灰度化转化和形态学处理后方可消除大部分无关因素的干扰。在此基础上,将图例传给图像Canny边缘检测模块,以检测明显的待测样品图例的边缘轮廓并自动在显示屏上显示,为测量者展示直观的测量结果。最终待测样品图例将自动交付给图像轮廓描绘和计算模块,在Canny边缘检测图和原图上进行明显的轮廓描绘,并计算符合实际测量要求的数据。

3.1 图像拼接模块

在实际开发中,图像拼接技术一般包括5个部分:图像特征的寻找和匹配、摄像机的校准、图像的变形、曝光补偿以及图像融合,实现过程非常烦琐。为了适应实际工业的开发、应用,该文主要把图像拼接技术简化为特征点的提取、图像的配准以及图像的融合3个部分,并采用OpenCV中的一个新模块Stitching来对整体进行图像拼接,它所有的相关函数都封装在Stitcher类中。封装的Stitcher类底层可以实现使用鲁棒性的加速稳健特征(SRUF)算法对图像进行特征点提取的功能,同时使用随机抽样一致(RANCAC)算法进行图像配准、融合,可以提高实际的开发效率。

例如,对待测样品进行扫描采样,采样4张图(如图6所示),利用上述的图像拼接技术准确识别这4张图片的像素特征点,然后将各张图片两两之间进行对比,选取相近的像素点进行拼接,最终可以获得1张拼接成功的图像,如图7所示。由此可见,利用提取像素点进行图像拼接的方式可以有效保证待测样品轮廓的完整度。

图6 样品采样图

3.2 图像预处理模块

虽然对拍摄出来的多张图片进行正确拼接后能得到的1张完整的拼接图,但是它仍然包括与测量目标无关的信息,因此,为了凸显测量目标信息,必须对图像进行预处理。

3.2.1 图像的灰度图转化

在图像处理中,由于显微摄像头拍摄的图像是彩色图像,图像的边缘明显存在部分微黄的色彩,这会对目标信息有很大的干扰,因此往往需要对图像进行图像灰度化,就是把彩色图像转化为灰度图像。

彩色图像通常包括3个分量(R、G和B),图像灰度化就是使彩色图像的R、G和B相等的过程,使图像的每个像素介于黑色与白色之间的多级色彩深度中,当灰度值越大时,像素点越亮,反之则越暗。而图像的灰度化值最小为0(黑色),最大值为255(白色)。

在图像灰度化处理的过程中,往往涉及RGB颜色空间的转换。需要根据实际需求将其颜色空间转换为灰度图像、二值图像、HSV和HSI等颜色(其中,HSV为六角模型,由色度(Hue)、饱和度(Saturation)和明度(Value)共同组成,HSI为色彩空间,由色调(Hue)、色饱和度(Saturation)和亮度 (Intensity或Brightness)组成)。因此,该文主要采用OpenCV中的cvtColor()函数来实现转换的过程。

OpenCV中的cvtColor()函数的原函数类型是cvtColor(src, code[, dst[,dstCn]])。其中,src为输入需要进行颜色空间转换的图像;dst为输出转换的图像;code为转换的代码或标识;dstCn为目标图像通道数,当其值为0时,就由src和code决定(其中,src为要输入的源图像参数,code为要输入的图像标识参数)。该文选择COLOR_BGR2GRAY通道,可以将图7中的成型色彩图转化为图8的灰度图。图7与图8相比,图8的色彩变成了单一的灰色,明显降低了其他色彩的干扰。

图7 拼接成型图

图8 目标图像灰度图

3.2.2 图像的形态学处理

当得到灰度图时,会发现目标图像的边缘总会是有凹凸不平的细小部分,甚至经过灰度化后,目标图像边缘出现了其他无关且紧挨边缘的细微突起点(如图9所示),这些突起或存在边缘周边的点给边缘的精确测量造成了不必要的影响,而使用形态学处理方式进行腐蚀和膨胀操作可以降低无关信息的影响。

图9 图像边缘的像素点

在进行目标图像的形态学处理前,需要对灰度化过的图像进行图像二值化阈值处理,减少图像的无关数据,呈现明显的黑白效果并凸显目标的轮廓。该文对图像的二值化阈值处理主要采用OpenCV技术中的threshold()函数,它的函数原型是threshold(src,dst,thresh,maxval,type),通过设定thresh阈值(0和255)、type通道类型(THRESH_BINARY_INV | THRESH_OTSU)来获得目标图像的二值化图。

OpenCV中有为图像的形态学变换提供了简单、快捷的函数。该文采取最基本的2种形态学处理方式:腐蚀(Erosin)和膨胀(Dilation)。

在进行目标图像形态学操作前,需要获取类似于卷积和滤波对图像进行操作的卷积核的结构化元素,因此采用OpenCV中的getStructuringElement()获取特定形状、大小的结构元素,函数原型为getStructuringElement(int shape, Size esize, Point anchor = Point(-1, -1))。当结构元素大小定义的一个像素核矩阵接近一定上限时,能过滤图9中目标图像的上边缘的细小素点就会增多;继而使用morphologyEx()函数对图9的目标图像分别进行先腐蚀后膨胀的开操作试验方法或先膨胀后腐蚀的闭操作实验方法。经过实际的运算测量,该文决定采用效果较好的闭操作,如图10所示。而通过前后对比可知,图10过滤了图9中边缘外的无关像素点后,图像的轮廓边缘更清晰、明了且更易处理。

图10 闭操作处理图

3.3 图像Canny边缘检测模块

在目标图像经历过形态学处理后,图像的无关信息已大大减少,此时便可采用Canny边缘技术检测目标图像中较为明显的像素点的组合,并整合成一定的图像结构信息,以对图像边缘检测进行预处理,得到最好的检测效果,如图11所示。

图11 Canny边缘轮廓图

但是在使用OpenCV中的Canny()函数进行边缘检测时,图像边缘非常容易受到噪声的干扰,因此为了避免检测到错误的边缘信息,通常需要对图像进行滤波,以去除噪声[1]。而经过实际测试发现,GaussianBlur()高斯滤波函数的去噪声效果更好。同时,使用Canny()函数时可通过设置一个临界值来剔除存在边缘图像内的因噪声而产生的虚边缘。OpenCV中Canny()函数原型如下:Canny(image,threshold1,threshold2,[apertureSize[,L2gradient]])。

3.4 图像轮廓描绘和计算模块

经过上述的各种图像处理操作,便可以利用目标图像的结构信息描绘轮廓和计算。该文主要采用OpenCV中的findContours()函数寻找轮廓边缘,用contours数组来保存图像数据信息,从而对轮廓的外边缘和内边缘进行取舍以及对边缘轮廓进行相关计算。并采用drawContours()函数对目标图像的边缘进行描绘[2],以获取目标图像的轮廓成型图。例如该文中的图12,在完成Canny边缘检测的基础上,描绘Canny检测边缘的结果,便可以直接、清晰地观察黑白效果下物体的边缘轮廓。可以根据Canny图上描绘的结果在原图上选取drawContours()函数对原样品拼接合成图上进行轮廓描绘,原图描绘的结果如图13所示。

图12 Canny边缘轮廓描绘图

计算时,仔细观察图13中的图像轮廓可以发现,它并不是平滑整齐的,而是存在不规则的曲线。因此,需要采用数学上的坐标轴和格林公式对曲线和曲面进行精确计算。如图14所示(源码示例),创建1个专门存储图像像素点的容器和1个存放像素点指向方向的容器,利用OpenCV中所封装的具有计算曲面周长和面积功能的arcLength()函数和contourArea()函数拟合像素点,从而可以求出图像周长长度和面积数据。由此可见,该文计算处理过程对实际物体的不规则轮廓计算有一定意义。

图13 原图轮廓描绘图

图14 arcLength()和contourArea()的使用过程

4 结语

随着工业现代化的进一步发展,精密零部件对精度的要求也越来越高,样品大尺度范围的高精度尺度精密测量具有广泛的科研和工业应用场景,例如陶瓷、玻璃和金属等板件的缺陷检测、尺度测量,机械构件的尺度精密测量及其缺陷检测等。

猜你喜欢
轮廓摄像头灰度
浙江首试公路非现场执法新型摄像头
采用改进导重法的拓扑结构灰度单元过滤技术
摄像头连接器可提供360°视角图像
基于灰度拉伸的图像水位识别方法研究
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算
在线学习机制下的Snake轮廓跟踪