顾桥磊 宋宇飞 孟祥兴
(南京工程学院 通信工程学院,江苏南京 211167)
本系统的研发基于两方面。一方面,工厂雇佣检测员的花费大、招聘检测员的难度大,检测员凭肉眼观察效果差、错误多、效率低,难以满足企业的实际需求。另一方面,当今与图片采集处理相关的技术迅速发展,自动化的图像检测系统的检测效果提高、成本降低,逐渐被应用于制造、生产领域,但技术还不够成熟。总的来说,用机器代替人工进行检测符合当前社会发展的趋势,能有效地解决用工荒、成本高等问题。
为了更好地实现工业自动化的目的,本设计根据实际的工业检测需求,给出了一种基于最经典的嵌入式处理器实现图像划痕检测的方案,该方案使用网口传输,网口传输速率满足实时传输图像的需求,因此能很好地实现传感器与人机交互界面互联。该系统构建简单,工作稳定,扩展性强,完全符合工业自动化检测的要求。
本设计主要是基于当前较为前沿的嵌入式ARM Cortex-M4系列芯片,从工业对零件划痕检测的实际需求出发,构建了较为完整工业图像检测系统。此系统包含采集、传输和处理三大子系统。图像采集系统基于嵌入式STM32F4的自制PCB,利用摄像头在合适的光照背景条件下采集JPEG格式的图像。图像传输系统将嵌入式端数据传输至基于Qt的上位机,主要传输方式为以太网通信,辅助传输方式为串口通信。图像处理系统利用了PC机强大的处理性能,采用OpenCV算法实现划痕识别,并检测出划痕长度。图1为系统组成框图。
图2 DMA双缓冲模式下读取JPEG图片的框图
在本系统中,使用STM32F407ZGT6的DCMI接口连接OV5640摄像头模块,该模块采用8位数据输出接口,自带24M有源晶振,无需外部提供时钟,模组支持自动对焦功能,且支持闪光灯,整个模块只需提供3.3V供电即可正常使用。该摄像头模块通过SCCB总线,编程实现了图像输出分辨率的额配置、闪光灯的开关、自动对焦、调节色彩饱和度、亮度设置、设置自动锐度、启动持续对焦等功能。同时此次摄像头图像传输到嵌入式采用了DMA(Direct Memory Access),即直接存储器访问。同时加入DMA的双缓冲机制,能较好的解决传输卡顿的问题,DMA在RAM与外设之间直接传送数据,这样大大提高了CPU的效率。DMA双缓冲的原理是嵌入式首先接收来自摄像头的JPEG数据流,在内存1中存储,当内存1存满,自动切换到内存2,同时程序读内存1的数据到外部SDRAM;当内存2存满,又切回内存1,这时候程序读内存的数据到外部SDRAM。发生中断时,暂时结束图像数据采集,迅速读取未被读取的数据到外部的SDRAM。这样就完成了一次JPEG图像数据的采集。图2为DMA双缓冲模式下读取JPEG图片的框图。
图3 测试结果图
表1 一组测试零件的结果
STM32F4借助以太网外设,可以通过以太网按照IEEE 802.3-2002标准发送和接收数据。STM32F4的以太网模块提供了可配置、灵活的外设,用以满足客户的各种应用需求。本系统采用了LAN8720以太网模块。LAN8720是低功耗的10/100M以太网PHY层芯片,I/O引脚电压符合IEEE802.3-2005标准。LAN8720支持通过RMII接口与以太网MAC层通信,内置10-BASE-T/100BASE-TX全双工传输模块,支持10Mbps和100Mbps,LAN8720可通过自协商的方式选择与目的主机最佳的连接方式。本设计中以太网口主要完成将ARM处理器外部的SRAM中存储的JPEG图片通过网络发送到上位机上显示的任务:当嵌入式端和上位机端连接成功后,嵌入式端读取FIFO中缓存的图片数据并通过LAN8720网口给上位机端发送图片数据流。
同时本系统设计采用了UCOS+LWIP的设计,便于操作各类任务。LWIP是一种可以不依赖于操作系统的轻量级TCP/IP协议栈,有无操作系统的支持都可以运行,它的重点是在保持TCP协议的 主要功能的基础上减少对RAM的使用,节约了资源,从而使它适合在嵌入式终端上使用。UCOSIII是一个可裁剪、可固化、可剥夺的多任务系统,没有任务数目的限制,是UCOS的第三代内核,它具有极短的关中断时间,可以同时等待多个内核对象,同时加入了时间戳控制,提升了ARM处理器的运算速度。在UCOSIII上运行LWIP协议栈可以大大提升网络传输速度与时延,更好地满足了实时性的要求。本设计中系统UCOS任务有网络传输任务、LWIP连接任务、按键检测任务、LCD显示任务、LED闪烁任务和开始任务,使用操作系统大大地节省了系统资源和功耗。
本次上位机采用Qt 5.7(MinGW 5.3版)设计,Qt是一个图形界面程序框架。上位机的功能是连接下位机并接收嵌入式端的图片数据,利用算法提取数据信息并显示图片,对图片进行处理后显示结果。界面设计基于Qt的MainWindow类。在此基础上设计了菜单栏,进行了窗口的设计与布局,最终利用Qt的布局管理器实现了界面设计。本上位机主要实现的功能有:接收下位机传输的数据并提取,实时显示摄像头传过来的图片,显示上位机和下位机的连接状态和时间,对图片进行处理并得出划痕的有无和长度,打开PC机原有图片进行处理,保存处理前图片和处理后图片等。
本系统采用了OpenCV计算机视觉库作为图像处理方案。OpenCV3使用“内核”与“插件”的相结合的架构形式,使得软件稳定性提高。此次图像检测算法涉及了边缘检测、寻找轮廓和图像的矩等部分。Canny边缘检测算子是一种当今最优的边缘检测的算法,本系统为了满足低错误率、高定位性、最小响应三大标准,采用了变分法;为了在图像中寻找轮廓,用到了findContours()函数;由于矩函数可以根据图形描述出图像形状的全局特征,并能够提供大量关于该图片不同类型的几何特征信息,比如大小、位置、方向及形状等。我们在测量一个物体时,必须有可参考物理量,一般来说,测量对象的最大横截面的周长,就是照相机拍摄的图片中的物体的周长。由于测量对象的最大横截面的周长与划痕之间有固定的比例关系,如果知道这个比例关系,那么划痕的实际长度也能求出来。
图4 系统展望图
本系统的测试用纸箱构建了一个背景纯黑的环境以便防止外界光线干扰,然后通过在白纸上用记号笔画上一道线来模拟物品上的划痕,如图3测试结果图所示。
我们测试时首先通过网口连上嵌入式终端,连接上以后一段时间摄像头区域会显示实时拍摄到的图像,当我们按下下方的拍照键时,即可在图片区域看到此刻拍到的图片,然后按下检测按键就可以在处理结果的地方看到物品的清晰轮廓和明显的划痕,上位机下方可以显示划痕的实际长度。当我们对划痕用尺子测量后,还可以通过输入上位机下方空格处的偏移量来校准划痕长度检测的误差,下方的最小划痕还可以用来消除不必要的噪声。
表1给出的是多次测量后的划痕长度记录和相应的误差,可以从表上看出,本系统的测量误差满足实际工业自动化检测的要求,并且网络通信速率符合实时监测的要求,能够较准确地判断误差的长度。
该系统中的嵌入式端作为工业生产的物联网中一个最简单的节点,考虑到了现代工业生产自动化的实际需求,将图像检测与无线数字通信系统强大的功能结合。同时根据现代工业检测中人力使用的问题,提出了一种自动化的图像检测新型方案。但是此系统还不是终结,今后的设计过程中,可以采用多节点的方式将各个嵌入式端与PC机端进行互联,如图4的系统展望图所示。并且在通信方式上也有多种选择,一种是采用路由器接多根网线的方式,另一种采用生活中常用的Wi-Fi方式。利用主机控制下位机的基本手段,形成一个基于工业互联网的工厂零件物流控制系统,最终实现一个小型完善的工业物联网优化系统。
[1]顾海洲,马双武.PCB电磁兼容技术:设计实践[M].北京:清华大学出版社,2004.
[2]Altium Designer 16电路设计与仿真从入门到精通.北京:清华大学出版社,2005.
[3]宫辉.嵌入式实时操作系统μC/OS-III[M].北京航空航天大学出版社,2012.
[4]庄严,王骁.嵌入式C/C++系统工程师实训教程[M].清华大学出版社,2011.
[5]陆文周.Qt5开发及实例(第2版)[M] 北京:电子工业出版社,2015.
[6]毛星云.OpenCV3编程入门[M].北京:电子工业出版社,2015.
[7]冈萨雷斯,伍兹.阮秋琦译.数字图像处理(第3版)[M].北京:电子工业出版社,2011.
[8]魏伟波,芮筱亭.不变矩方法研究[J].火力与指挥控制,2007,(11):116-119.
[9]张铮,薛桂香,顾泽苍.数字图像处理与机器视觉[M].北京:人民邮电出版社,2010.
[10]刘圣.工业图像检测系统关键技术的研究及应用[D].上海交通大学,2007.