APP下载

机器视觉在线检测核桃大小软件设计

2017-04-26郭政史建新周军蔡建刘航

新疆农业科学 2017年3期
关键词:图像处理轮廓核桃

郭政,史建新,周军,蔡建,刘航

(新疆农业大学机械交通学院,乌鲁木齐 830052)

机器视觉在线检测核桃大小软件设计

郭政,史建新,周军,蔡建,刘航

(新疆农业大学机械交通学院,乌鲁木齐 830052)

【目的】设计一种可以利用机器视觉对核桃大小进行在线分级处理的软件。【方法】通过配置大恒USB2.0工业相机,实时获取核桃在线检测时RGB图像,利用VS2010开发出界面程序对采集到的图像源数据进行格式转换和预处理,获得轮廓图像。利用OpenCV的图像矩计算原理提取核桃外形尺寸数据,为下位机控制板提供等级信号控制不同等级电磁阀动作。【结果】软件可以同步显示处理前后的图像,实现了图像优化采集和分割阈值手动调节。【结论】基于机器视觉在线检测核桃大小软件可以判定不同外形尺寸大小的核桃,可以将分级信号准确送出。

机器视觉;在线检测;OpenCV;核桃;自动分级

0 引 言

【研究意义】对果蔬产品进行分级是采后加工的重要环节,是提升果蔬产品品质、方便其贮藏和运输、提高产品附加值的有效方法[1]。基于机器视觉的农产品无损检测技术具有实时、准确、自动化程度高等优点,被广泛应用。自2010年起新疆核桃总产量稳居全国第二名[2]。目前新疆核桃分级方法多用滚筒筛和辊轴分级法等[3],此类核桃机械分级方法具有效率高、设备简单可靠等优点,但是存在对于分级等级控制不够精确、薄皮核桃在分级中容易造成损伤等问题。而基于机器视觉的核桃在线检测方法较好,其中,控制软件的性能对整个系统运作起着决定作用。【前人研究进展】已有多人对基于机器视觉控制软件进行研究。张杰[4](2006)采用8位单片机实现了图像采集,实现了将图像传输到中心处理计算机中进行处理。陈丰农[5](2012)利用VS2005开发了MFC界面软件,实现了小麦阈值分割,并利用串口实时通信。龚爱平[6](2012)采用Java语言为智能手机开发了机器视觉图像处理软件,可测量不同形状和颜色的叶片面积及对柑橘进行估产。张丛[7](2015)使用VS2008结合OpenCV实现了零件识别的上位机控制软件,包括图像采集、处理、识别和定位功能。虞飞宇[8](2015)通过VisualC++6.0和OpenCV对工业相机二次开发,实时显示图像处理结果并从打印口并行输出。【本研究切入点】针对机械式核桃大小分级机等级控制不精确以及部分品种核桃机械分级中易破损的问题,研究通过使用VS2010和最新版本图像视觉库OpenCV2.4.9对USB接口工业相机进行二次开发,着手基于内存图像处理机制,设计软件可以在线实时获取核桃轮廓数据,并判断大小等级。【拟解决的关键问题】实现在线检测功能,研究相机采集图像类型和图像处理库软件所支持格式相匹配,设计合理算法程序,使处理过程在库支持下可以快速完成图像采集与源图像显示、图像处理、阈值调节和核桃轮廓数据显示等步骤。

1 材料与方法

1.1 材 料

研究所需材料分为硬件平台和开发软件平台。硬件平台为搭建的核桃输送系统和相机架设工具,采用开发硬件为大恒公司MER-030-120UM/UC工业数字摄像机,此款相机是由大恒图像公司最新研发的USB 2.0接口数字摄像机。开发的软件平台为Windows 7 X64系统,采用VS2010 中MFC工具设计本次软件主界面,同时利用Open CV2.4.9机器视觉库函数实现对预处理后的图像进行数据提取。

核桃在检测线上运动,到达相机底部中心位置A 时,光电开关会感应到随着核桃一起运动的金属片,在图像采集开发环境配置正确的前提下,信号触发相机开启采集过程。绘出系统工作示意图。图1

图1 核桃在线图像采集
Fig.1 Walnut online image acquisition

1.1.1 配置大恒相机

GxIAPI是此款大恒相机提供的软件开发工具(SDK),包括了GxIAPI.h、DxImageProc.h头文件和GxIAPI.lib、DximageProc.lib库。GxIAPI.lib主要功能为图像采集,DximageProc.lib主要功能为图像数据的转换。使用时需要对VS2010资源管理器进行两类接口函数的库包含配置。列出主要配置属性。表1

1.1.2 配置OpenCV2.4.9

在对相机获得的图像进行处理时,需要配置OpenCV库。OpenCV是一个开源的计算机视觉库,采用 C/C++语言编写,可以运行在多种操作系统上。由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。视觉库主体分为五个模块:核心函数库 CV、数据结构与线性代数库 CXCORE、函数库 High GUI、辅助函数库CvAux和机器学习函数库ML。通过正确配置将调用核心函数库CV。(在不同电脑下配置,盘符可改变)。表2

表1 配置相机设置项
Table 1 Configure the camera Settings

属性Property设置项Settings操作Operation包含目录IncludeDirectoryGxIAPI.hDxImageProc.h包含目录库目录LibraryDirectoriesGxIAPI.libDximageProc.lib包含目录依赖项DependenciesGxIAPI.libDximageProc.lib添加

表2 配置OpenCV设置项
Table 2 Configure OpenCV Settings

属性Property设置项Settings操作Operation路径PathD:…VC10in添加包含目录IncludeDirectoryD:…opencv&opencv2包含目录依赖项DependenciesD:…VC10lib添加

1.2 方 法

1.2.1 相机采集图像步骤框图

大恒此款工业相机SDK是基于事件查询来调用函数处理请求的。打开相机主要包括库初始化、枚举设备、功能控制、图像采集接收事件、关闭库和关闭设备等操作。在实际使用中,为了满足生产效率的要求,相机将长时间处于工作状态,所以整个系统工作是否正常主要取决于控制软件性能,快速处理开采命令、触发拍照、图像处理和注销回调函数这四个过程将从根本上提高生产效率。绘出采集图像流程和回调函数处理框图。图2

图2 图像采集流程
Fig.2 Image acquisition process

1.2.2 回调函数中显示拍摄图像

相机拍摄图像时,会在特定的内存中开辟临时存放数据区域,调用函数通过指针作为参数指向数据区域,将数据读出并显示。此次采集设置图像大小为656×492像素,采集模式为连续采集,采集格式为无损RAW,相机CCD面扫描,外触发模式,发出信号由光电开关接触金属片给出上升沿触发信号,相机自动白平衡,自动持续曝光。其余为相机默认参数设置。

以下给出采集主要接口函数代码:

GX_STATUS InitParam()//初始化采集参数

GX_STATUS SetPixelFormat8bit()//设置8位图像格式

Void OnFrameCallbackFun()//回调函数

{

memcpy(m_pBufferRaw,pImgBuf,nImgSize);//从回调函数中拷贝图像数据

DxRaw8ImgProcess(m_pBufferRaw, m_pBufferRGB, nWidth, nHeight, & m_objImageProcess);//将原始RAW图像转为RGB图像

DrawImage(m_pBufferRGB, nWidth, nHeight, m_pBmpInfo);//显示图像

}

运行程序结果如图3所示:

图3 拍摄图像显示
Fig.3 Shooting images show

1.2.3 BYTE*图像数据封装为Mat类

Byte数据类型(字节型)用一个字节(Byte)储存,可区别256个数字,取值范围:0~255。由于实验不止是显示拍摄图像,还需要获得核桃外形尺寸数据,所以在获得相机拍摄原始图像后,需要对原始图像进行实时格式转换和图像处理,方便进行后续数据的读出和写入。

在OpenCV中,Mat类是一个多维的密集数据数组。可以用来处理向量、矩阵、图像和直方图等常见的多维数据[9]。为了方便图像处理,需要将相机拍摄的数据格式为BYTE*型图像转换为OpenCV可识别和处理的Mat类,之后才可以调用OpenCV中的图像处理函数[10]。定义和源图像高度宽度相同的空间,将三通道的RGB图像指向该空间即可。主要代码如下:

Mat Image(nHeight,nWidth,CV_8UC3,pDlg->m_pBufferRGB);//封装为Mat类

1.2.4 在OpenCV中进行实时图像处理[11]

获得Mat类图像后,将Mat类指针指向图像处理函数,再利用OpenCV库函数对图像指针进行灰度图转换、平滑图像、Canny边缘检测、查找轮廓、轮廓绘制和图像矩计算等操作,并通过窗口显示函数将处理后的图像指针绘制到软件界面上。

实时图像处理主要代码如下:

on_ThreshChange()//进入处理函数

{

cvtColor(Image,afterImage,CV_BGR2GRAY );//灰度图转化

blur(afterImage, afterImage, Size(3,3) );//以(3,3)内核平滑图像

Canny(afterImage,cannyMat_output);// Canny边缘检测函数

findContour(cannyMat_outputg_vContours,g_vHierarchy,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE, Point(0, 0));//寻找轮廓

vector mu(Contours.size() );

for(unsigned int i=0;i< Contours.size(); i++ )

{

mu[i] = moments(Contours[i],false );

}//计算矩

drawing = Mat::zeros(cannyMat_output.size(),CV_8UC3 );

drawContours( drawing, Contours);//绘制轮廓

}

运行程序显示出图像处理结果。图4

图4 处理图像显示
Fig.4 Image show after processing

1.2.5 获得核桃外形轮廓和面积像素

定义核桃轮廓长度像素数为m_dLength,定义核桃正投影面积像素数为m_dArea,通过调用OpenCV函数arcLength()和contourArea(),用寻找到的轮廓数组作为参数传入。由于上一节中设置寻找轮廓格式为CV_RETR_EXTERNAL,所以传入的数组参数值为Contours[0](即干净背景下最外层图像轮廓,此处即为核桃阈值分割后的图像),可获得对应核桃外形尺寸像素数据。

即:

m_dLength =arcLength(Contours[0], true );

m_dArea= contourArea(Contours[0]);

2 结果与分析

2.1 测试数据

检查代码,并在DEBUG和RELEASE两种模式下生成软件界面。经调试,软件界面显示正确,并对软件运行进行测试:在输送带上摆上核桃,运动中触发光电开关,相机接收到信号开始采集图像,软件从内存中读取数据,并实时处理,然后显示结果并发出等级信号给下位机,通信完毕后软件自动释放为图像开辟的数据存储空间,结束一次采集,并迎接下一个核桃到来。实验采用每组50个核桃,共三组进行试验,以每秒4个核桃的速度经过采集区,实验数据如表3,得出核桃触发拍照率为98%,轮廓处理率为97.6%,达到设计要求。表3,图5

表3 测试数据
Table 3 Test data

组别数Groupnumber样品个数Samplenumber信号个数Signalnumber触发拍照率Triggerrateofphoto(%)轮廓显示次数Contournumber轮廓处理率Processingratioofcontour(%)15049984910025048964797.9350501004896平均Average5049984897.6

注:*样品为新新2核桃

Note: Walnut of XinXin 2 as the sample

图5 程序运行整体界面
Fig.5 The whole interface of program

2.2 实现图像优化采集

图像采集时,光源配置的合理性和核桃表面颜色将产生不同的图像质量,直接影响到后续处理的速度。简单干净的背景和清晰可辨的轮廓会大大缩短算法计算的时间。因此,利用软件可以对图像采集过程进行干预,通过调节Gamma、亮度、对比度和白平衡等参数可获得前后景分明的图像,大幅度减轻了软件计算压力,提高了处理效率。图6

图6 优化采集后图像
Fig.6 Optimizing the gathering image

2.3 实现像素数显示和轮廓图像人工调节处理

运行程序,除了显示处理后的图像还给出了核桃轮廓长度像素和轮廓面积像素。其中核桃实际外形尺寸则应根据不同核桃品种在对相机进行统一标定后,才可定量给出核桃等级(标定方法见下一节)。轮廓长度像素和轮廓面积像素数据。图7

在对拍摄图像处理时,为了降低图像噪声的干扰,避免轮廓数据提取时产生无关轮廓,可在交互界面以人工滑动SLIDER CONTROL(滑块控件)的方式,调节不同的分割阈值,软件内部函数会重新刷新阈值,并将新的分割阈值图像显示到界面上。图8显示了分割阈值为30和70下的处理图像对比。图8

图7 显示像素尺寸
Fig.7 Display pixel size

图8 不同阈值下图像手动调节处理
Fig.8 automatically adjust processing under different threshold

2.4 触发拍照率和轮廓处理率

核桃的输送是靠链条传动完成的,由于输送辊的自转以及电机驱动链条运转时产生的微小震动,会使得核桃经过图像采集区时,光电开关感应金属片位置存在误差,使得触发拍照率不为100%。此外,虽然软件可以实现图像优化采集,但是拍摄的外部环境光也会影响图像采集质量,造成图像产生色差甚至出现核桃和背景边界模糊的现象,使得软件轮廓处理率达不到100%。

为了进一步提高以上两项结果参数,在后续研究中将考虑更换链条输送为同步带输送,优化传动机构,提高运行的稳定性,保证触发拍照率。其次,加装拍摄暗箱,创造不受外界环境光影响的图像采集环境;更换与核桃表面色差更大的背景板,以降低轮廓提取难度。

3 讨 论

3.1 像素转换系数

在得到核桃外形尺寸像素数后,可以通过棋盘标定,得出比例关系:

K=S/M.

式中,K为像素的面积换算系数;S为标准白板的实际面积;M为识别标准白板在图像中的像素点个数[12]。

在相机高度一定时,利用这个关系式将获得的核桃尺寸像素数进行换算,得出核桃真实的长度l和正投影面积s。在实际生产中,由人工或经验法先对某品种核桃大小建立分级标准,输入控制软件。在软件内部,利用switch()和case()语句,将l和s与分级标准比较,并将比较结果以ASCLL码值传给下位机,给出不同大小核桃的等级信号。

3.2 通信方式和下位机动作

为了方便快捷,传统的上下位机通信采用打印机并口RS232-DB25或RS232-DB9来实现。但是随着USB串口的大量使用,目前市场上新式台式机主板几乎淘汰了这类接口。因此,实验采用CH340USB转串口芯片实现上位机和下位机实时通信[13],接线原理图。图9

图9CH340芯片和USB通信Fig.9CommunicationbetweenCH340ChipandUSB

此外,通过编写合理的下位机程序,控制板可以对上位机软件发送来的不同等级信号做出回应,驱动不同等级的气动电磁阀,将对应等级的核桃吹入等级框内。由于气吹的方式避免了核桃与滚轴和筛筒的机械接触,降低了纸皮核桃受挤压和输送架桥时的外壳破碎率;此外,通过修改下位机程序和更改气动电磁阀数目可以方便快捷的实现分级等级的扩展。

4 结 论

以核桃用机器视觉法进行分级为研究目标,设计了一款针对核桃外形尺寸分级的控制软件。该软件以VS2010软件和OpenCV库作为开发工具,对大恒USB2.0工业相机进行二次开发,利用内存图像存取机制,可以进行实时图像优化采集和阈值手动调节处理,实现了显示核桃像素尺寸和大小3个等级判断的功能。软件还可以实现USB串口通信,给出3种等级的信号控制下位机动作。通过实验验证,基于机器视觉的核桃在线检测上位机软件功能基本实现,实验触发拍照率为98%,轮廓处理率为97.6%,性能达到预期。

References)

[1] 周竹,黄懿, 李小昱,等.基于机器视觉的马铃薯自动分级方法[J]. 农业工程学报,2012,28(7):178-183.

ZHOU Zhu, HUANG Yi, LI Xiao-yu, et al. ( 2012) Potato automatic classification method based on machine vision [J].TransactionsoftheCSAE, 28(7):178-183. (in Chinese)

[2] 王国安,张强, 黄闽敏, 等.新疆核桃产业现状与分析[C]//. 第八届全国干果生产、科研进展学术研讨会论文集,2013.

WANG Guo-an, ZHANG Qiang, HUANG Min-min, et al. (2013). Xinjiang walnut industry present situation and the analysis [C]//.ProceedingsoftheEighthNationalSymposiumondriedfruitproductionandscientificresearch. (in Chinese)

[3] 王科权. 核桃分选机的研究现状[J]. 农机化研究,2015,(7):264-268.

WANG Ke-quan.(2015). The research status of walnut sorting machine [J].JournalofAgriculturalMechanizationResearch,(7):264-268. (in Chinese)

[4] 张杰.基于机器视觉的图像采集与处理系统研究[D].成都:成都理工大学硕士论文,2006.

ZHANG Jie.(2006).Imageacquisitionandprocessingsystembasedonmachinevisionresearch[D]. Master Dissertation. Chengdu University of Technology, Chendou. (in Chinese)

[5] 陈丰农.基于机器视觉的小麦并肩杂与不完善粒动态实时检测研究[D].杭州:浙江大学硕士论文,2012.

CHEN Feng-nong, (2012).Basedonmachinevisionofwheatmixedwithimperfectdynamicreal-timedetectionresearch[D]. Master Dissertation. Zhejiang University, Hanzhou. (in Chinese)

[6] 龚爱平.基于嵌入式机器视觉的信息釆集与处理技术研究[D].杭州:浙江大学硕士论文,2013.

GONG Ai-ping.(2013).Quantitativeinformationcollectionandprocessingbasedonembeddedmachinevisiontechnologyresearch[D]. Master Dissertation. Zhejiang University, Hanzhou. (in Chinese)

[7] 张丛.基于机器视觉的机械零件的识别研究[D].天津:天津职业技术师范大学硕士论文,2015.

ZHANG Cong. (2015).Mechanicalpartsrecognitionbasedonmachinevisionresearch[D]. Master Dissertation. Tianjin Vocational Technology Normal University, Tianjin. (in Chinese)

[8] 虞飞宇,郭俊先,胡光辉,等.哈密瓜分级系统上位机软件功能的实现[J].农机化研究,2015,(3):215-217.

YU Fei-yu, GUO Jun-xian, HU Guang-hui, et al. (2015). The realization of the function of Hami melon grading system PC software [J].JournalofAgriculturalMechanizationResearch, (3): 215-217. (in Chinese)

[9] Open CV中文网[EB/OL].[2015-10-13], http:// www.opencv.org.cn/forum.php.

Open CV Chinese network[EB/OL].[2015-10-13], http:// www.opencv.org.cn/forum.php.

[10] 王明蓉,蒋树清.Mat格式图像在MFC程序中的显示[J].电脑开发与应用,2014,(27):23-28.

WANG Ming-rong, JIANG Shu-qing.( 2014). Mat format image shows in the MFC application [J].ComputerDevelopmentandApplication, (27):23-28. (in Chinese)

[11] 毛星云,冷雪.OpenCV3编程入门[M].南京:电子工业出版社,2014.

MAO Xing-yun, Leng Xue. (2014).OpenCV3programmingprimer[M]. Nanjing: Electronic Industry Press. (in Chinese)

[12] 李博豪,殷晓平,赵新,等.一种基于计算机视觉的原木端面面积检测方法[J].造林与经营,2015,(10):28-32.

LI Bo-hao, YAN Xiao-Ping, ZHAO Xin, et al. (2015)A log face area detection method based on computer vision [J].JournalofAfforestationAndManagement, (10):28-32. (in Chinese)

[13] 吴波.89C52单片机系统的USB接口[J].信息科技,2012,(12):84-89.

WU Bo. (2012). the USB interface of 89C52 single-chip system [J].informationscienceandtechnologye,(12):84-89. (in Chinese)

Supported by:Fund Program of Farming and Animal Husbandry Machinery Products Quality Supervision and Management of Xinjiang"Walnut Grading Technology Research Based on Machine Vision"; Supported by Projects in the National Science & Technology Pillar Program during the Twelfth Five-year Plan Period (2011BAD27B02-05-02);Science and technology achievement transformation project of Xinjiang (201130102-4)

SHI Jian-xin(1956-), male, professor, Master degree, agricultural products processing

Software Design of Machine Vision On-Line Detection of Walnut Size

GUO Zheng, SHI Jian-xin, ZHOU Jun, CAI Jian, LIU Hang

(CollegeofMechanicalTransportation,XinjiangAgriculturalUniversity,Urumqi830052,China)

【Objective】 To design a kind of software which can grade the size of walnut online by machine vision. 【Method】In this paper, the Daheng USB2.0 Industrial Camera was used to obtain the RGB image of walnut on-line detection, and the interface of program was developed by VS2010 to convert the image data and preprocess, which could obtain the contour of image. By using OpenCV image moment calculation principle to extract walnut dimensions data, the software could provide different levels of signal for the lower computers to control solenoid valve action. 【Result】The software displayed the images before and after the processing and realized the optimization of image acquisition and the manual adjustment of segmentation threshold. 【Conclusion】The walnut size software based on machine vision can detect walnut with different sizes and send out grading signal accurately.

machine vision; on-line detection; OpenCV; walnut automatic classification

10.6048/j.issn.1001-4330.2017.03.019

2016-08-20

新疆维吾尔自治区农牧业机械产品质量监督管理站资助项目“基于机器视觉的核桃分级技术研究”;“十二五”国家科技支撑计划项目(2011BAD27B02-05-02);新疆维吾尔自治区科技成果转化项目(201130102-4);

郭政(1990-),男,江苏宿迁人,硕士研究生,研究方向为农产品加工,(E-mail)894947824@qq.com

史建新(1956-),男,甘肃临泽人,教授,研究方向为农产品加工,(E-mail)xjsjx@sina.com

S11+6

A

1001-4330(2017)03-0538-08

猜你喜欢

图像处理轮廓核桃
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
小核桃变身“致富果”
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
高速公路主动发光轮廓标应用方案设计探讨
黄龙核桃
多功能漏斗型核桃夹