机器视觉虚拟仿真实验教学系统开发
2022-06-15张望王俊生赵凯林远海陈彦彤宋明珠
张望,王俊生,赵凯,林远海,陈彦彤,宋明珠
(大连海事大学 信息科学技术学院,辽宁 大连)
一 引言
《机器视觉》是计算机科学与技术、光电信息科学与工程、机械电子工程等相关专业的重要课程,该课程的教学内容主要是对图像进行采集和处理,作为教学重点的图像处理过程一般包括预处理、特征提取和目标识别。利用机器视觉技术能够实现缺陷检测、尺寸测量、视觉定位、模式识别等多种功能,其应用领域包含了自动驾驶、虚拟现实、工业视觉、图像解释、人机交互、物体识别、智能安防、医学影像分析等众多与人们生产、生活密切相关的方面,已成为人工智能领域最具发展前景、发展最为快速的一个分支[1-3]。目前,谷歌、脸书、亚马逊等国际互联网巨头掀起了机器视觉技术发展的浪潮,国内也崛起了如商汤科技、大疆创新、格灵深瞳等诸多创业公司,对相关人才的需求与日俱增[4]。
随着工业4.0时代的开启,培养符合新工科背景的应用型创新人才成为机器视觉相关专业的切实需要[5]。为满足工程认证标准的机器视觉实验教学要求,大连海事大学与大连明佳智能装备有限公司联合研发了基于机器视觉的光电检测创新实训平台。该平台以元件统计、细胞分类、形貌测量、车牌识别、扫码支付等工业应用为背景,抽象出药丸的计数、纽扣的分类、几何图形的测量、数字符号的识别、条形码和二维码的分析等设计性实验项目,并在三年的教学实践过程中取得良好效果。同时,在教学过程中也发现了若干问题,其主要表现在学生无法应对图像中共存的多种干扰因素,而导致特征提取和目标识别失败,并且难以衡量各种干扰所导致的影响程度,而产生焦躁情绪和畏惧心理。为此,专业实验中心组织中青年骨干教师开发了机器视觉虚拟仿真实验教学系统,利用虚拟仿真技术在图像中定量添加干扰,由浅入深地引导学生完成复杂的图像处理任务。
二 虚拟仿真系统设计
机器视觉虚拟仿真实验教学系统基于NI公司的LabVIEW软件平台开发,主要由视景仿真和成像仿真两大部分构成,如图1所示。其中视景仿真提供了药丸的计数、纽扣的分类、几何图形的测量、数字符号的识别、条形码和二维码的分析等多种具有实际工业应用背景的原始视景图像,成像仿真则可对视景图像的曝光、颜色、模糊、噪声、透视和旋转等参数进行定量调节,从而仿真工业应用中可能存在的不同干扰因素影响。系统的后端则与MATLAB软件相对接,保持其与机器视觉理论课程所使用图像处理工具的一致性,便于学生运用理论课程所掌握的算法进行图像处理。
图1 虚拟仿真系统的构成
LabVIEW软件平台采用模块化的图形编程方式,提供功能丰富的视觉开发包(Vision Development Module),具备良好的第三方软件和标准硬件设备兼容性,对机器视觉虚拟仿真实验教学系统的开发带来诸多便利。该系统的运作流程首先是根据实验要求选择合适的图像输入源,并通过设定筛选条件获取原始视景图像。然后调节成像仿真参数,得到附加有定量干扰因素影响的仿真图像。进而可在MATLAB软件中进行图像处理算法的验证,并将图像处理结果反馈至仿真平台,再根据对比结果改进图像处理算法或调整仿真参数。在这个过程中,通常可先选取简单目标并附加某一种干扰因素,然后逐渐增加目标的复杂性和干扰因素的种类,循序渐进地提升目标识别的准确性。
三 虚拟仿真功能实现
(一) 视景仿真
视景仿真的主要功能是根据设定的条件从输入源中筛选出特定的原始视景图像,如图2所示。视景仿真提供了标准视景图像数据库和自定义图像两种输入源,其中标准视景图像数据库是视景图像的主要来源,涉及的内容分别是药丸的计数、纽扣的分类、几何图形的测量、数字符号的识别、条形码和二维码的分析。药丸的计数来源于电子制造应用中的元件统计,主要关注药丸的位置和方向;纽扣的分类来源于微生物检测应用中的细胞分类,主要关注纽扣内部的边缘特征;几何图形的测量来源于机械制造中的零件加工,主要关注几何形貌的测量;数字符号的识别来源于广泛应用的车牌辨识,主要关注模板匹配的运用;条形码和二维码的分析来源于方兴未艾的扫码支付,主要关注解码算法的运用[6-8]。
图2 视景仿真部分的人机交互界面
为充分展现不同视景内容的图像特征,标准视景图像数据库由405张实物图像和135张SolidWorks建模生成的图像构成。由于实物图像是在小型摄影棚中拍摄的正视图像,图像中含有的干扰因素基本可以忽略,并且相对于SolidWorks建模生成的图像更为逼真,所以实验教学中更受到学生的欢迎。在获取视景图像时,可通过数量、种类、位置和方向进行筛选。较少的数量和种类对应较简单的位置和方向变化,图像处理难度较低。随着数量和种类的增加,位置和方向的变化将更加复杂,对图像处理算法提出了更高要求,能够与从简到繁、从易到难的认知和实践规律相适应。自定义图像则可有效增强视景仿真图像输入的灵活性,既方便学生向虚拟仿真系统中引入不同内容的图像,也方便教师在考核学生算法效果时使用标准数据库之外的图像。
此外,秉持着以虚补实、虚实结合的原则,将视景仿真部分与实验室原有的基于机器视觉的光电检测创新实训平台进行了对接。借助于LabVIEW良好的硬件设备兼容性,实现了与创新实训平台中位置传感器的通讯,从而在待检目标到达视场的特定区域时,可截取创新实训平台中USB摄像头的图像作为视景图像输入到虚拟仿真实验教学系统中。这使得学生通过虚拟仿真系统验证图像处理算法后,能够直接在创新实训平台上测试其实际应用效果。
(二) 成像仿真
成像仿真的主要功能是通过图像变换来模拟工业应用中可能存在的不同干扰因素影响,包含了曝光调节、颜色调节、模糊调节、噪声调节、透视调节和旋转调节几个模块,如图3所示。其中曝光调节和颜色调节用以模拟工业应用中环境光线变化对成像产生的影响;噪声调节和模糊程度调节用以模拟灰尘和雾气产生的影响;透视调节和旋转调节则可模拟出摄像头从不同角度拍摄时产生的变化[9-11]。
图3 成像仿真部分的人机交互界面
曝光调节和颜色调节的本质都是对图像色彩表现的调节,可以使用LabVIEW中视觉开发包所提供的IMAQ ColorBCGLookup VI来实现。IMAQ ColorBCGLookup VI能够分别调节彩色图像中R(红)、G(绿)、B(蓝)三个颜色通道的亮度和对比度,当同时改变三个通道的亮度时,图像就会表现出整体亮度的改变,当只改变单个通道的亮度时,图像则会表现出偏色的效果[12]。同样地,当同时改变三个通道的对比度时,图像的整体对比度便会随之产生变化。在人机交互界面上将亮度和对比度的整体调节放在曝光调节模块中,用以模拟光照强弱改变对图像产生的影响,而将R、G、B通道单独的亮度调节放在颜色调节模块中,用以模拟使用不同光源时产生的偏色影响。
模糊调节是模拟雾气对图像产生的影响,噪声调节是模拟灰尘对成像产生的影响,尽管二者都是模拟工业环境中不洁净空气造成的图像质量下降,但在仿真过程中的具体处理方法存在明显区别[13]。空气中雾气对图像产生的影响主要表现为模糊效果,同时也会伴随亮度和对比度的降低[14]。图像模糊效果可简单地利用线性空间滤波来实现,LabVIEW视觉开发包中相应地提供了IMAQ Convolute,如图4所示。在调用IMAQ Convolute时,除了输入图像外还要输入卷积矩阵和归一化因子两个重要参数,图像源会与卷积矩阵进行卷积运算来实现滤波,最后再除以归一化因子。卷积矩阵通常应为m*m(m取奇数)的形式,通过调整卷积矩阵的大小就可以相应地改变图像的模糊程度。
图4 利用IMAQ Convolute调节模糊程度
空气中呈颗粒状的灰尘通常会在图像上产生随机分布的噪声点,所以可通过添加椒盐噪声的方法来模拟,但LabVIEW视觉开发包中并没有与之对应的功能模块可用。为了满足执行复杂数学运算的需求,LabVIEW提供了具有完整.m文件编译器的MathScrip Node,可以处理大多数在MATLAB或兼容环境中创建的文本脚本,如图5所示。首先将图像源转换为二维数组格式作为输入,同时输入噪声密度控制参数a,然后在MathScrip Node中使用MATLAB处理图像时常用的imniose函数添加噪声,最后再将输出的二维数组转换为原来的图像格式。
图5 利用MathScrip Node添加椒盐噪声
透视调节和旋转调节通常需要配合使用才能模拟出摄像头从不同角度拍摄目标时产生的变化效果,前者用于模拟近大远小的透视效果,后者用于模拟图像的旋转效果[15]。在工业环境中使用摄像头拍摄时,通常难以保证使其正视目标物,从而导致图像中的目标产生近大远小的透视效果。为了模拟这一效果,可以在正视图像中取一个矩形,按照透视原理将其拉伸成一个不规则四边形。然后利用不规则四边形的四个顶点和原矩形的四个顶点位置关系求得一个变换矩阵,再把这个变换矩阵作用于原图像的全部范围上,即可得到预期的透视效果。对于这种相对复杂的变换,同样需要使用MathScrip Node来实现。此外,在工业环境中安装摄像头时,无论是安装位置的限制还是固有的安装误差,都会导致拍摄到的图像产生一定的旋转,可利用LabVIEW提供的IMAQ Rotate进行模拟。
四 虚拟仿真结果输出
通过在视景仿真中设定数量、种类、位置和方向条件,从输入源中筛选出特定的原始视景图像,再经过成像仿真添加曝光、颜色、模糊、噪声、透视和旋转调节效果,最终得到了图6所示的仿真图像。此时,点击图3中的“结果输出”按钮,与图像相关的视景仿真和成像仿真信息会显示在“目标特征参数”一栏中,并将仿真图像结果输出至特定的中转用文件中,同时会有一条图像更新信息通过虚拟串口发送至MATLAB软件。随后,学生便可在MATLAB软件中对该图像进行处理,实践机器视觉理论课中学到的各种算法。待所采用的图像处理算法能够获得稳定输出后,还可以在其中加入串口通信功能。使MATLAB编写的图像处理程序能够接收虚拟仿真系统发送图像更新信息,进而自动读取中转文件中的图像并进行处理,再将处理得到的数量、种类、位置和方向等目标特征参数反馈给仿真系统。虚拟仿真系统则会对比输出的目标特征参数和反馈的目标特征参数,并根据特征参数的复杂程度给出相应评分,从而为考核学生编写的图像处理算法效能提供定量参考。
图6 图像在虚拟仿真系统中的变换
五 结语
为提高学生在机器视觉实验中处理复杂图像任务的成功率,专业实验中心的多位教师合作开发了机器视觉虚拟仿真实验教学系统。该系统涵盖了5个具有工业背景的实验项目,能够提供3种输入源和540张的标准视景图像,可以定量调节图像的曝光、颜色、模糊、噪声、透视和旋转参数,用来模拟工业应用中可能存在的不同干扰因素影响。学生先通过包含简单目标和某一种干扰的图像来熟悉处理过程,再针对繁杂目标和多种干扰因素进行不断优化,循序渐进地提升目标识别的准确性和算法的适用性,从而完成复杂的机器视觉处理任务。此外,机器视觉虚拟仿真实验教学系统有效保障了新冠疫情期间线上实验教学的顺利实施,后续工作将进一步优化其与基于机器视觉的光电检测创新实训平台的对接,为实现机器视觉实验的线上线下混合式教学提供支撑。