APP下载

基于FLIR ONE的番茄机械损伤检测

2019-03-07徐义鑫王建春张雪飞杜彦芳

贵州农业科学 2019年2期
关键词:图像处理轮廓灰度

徐义鑫, 王建春*, 彭 凯, 张雪飞, 杜彦芳

(1.天津市农业科学院 信息研究所,天津 300192; 2.河北工业大学 机械工程学院,天津 300130)

番茄是世界上重要的蔬菜作物之一,在各国的蔬菜栽培中均占有很大比例[1]。番茄果实营养丰富,富含多种维生素、碳水化合物、矿物盐及有机酸等,其用途广泛,可生食、炒食,加工制成番茄酱、番茄汁或整果罐头等[2]。番茄果实采后呼吸作用旺盛,常温下很快软化,极易受到机械损伤和病原菌侵染而腐烂变质,使果实失去商品性,从而限制果实的流通[3],影响经济效益。因此,番茄机械损伤的检测具有重要意义。

传统的果蔬机械损伤检测往往依靠人工用肉眼判别,结果易受人的主观因素影响,且存在精度低、视觉易疲劳、速度慢等问题[4]。随着计算机图像处理技术的不断进步,通过果实的可见光成像对其进行表面缺陷检测的技术逐渐发展起来。王树文等[5]对番茄图像进行处理,综合运用计算机视觉、BP人工神经网络技术实现番茄损伤的自动检测与分类。丁竹青等[6]基于LabVIEW软件,采用IMAQ Vision的视觉处理函数对番茄图像进行处理,进而检测出霉斑缺陷部分。相比人工检测,基于图像处理技术的方法有较大优势,但此类方法在检测番茄等颜色较深的果实表面机械损伤时,对图像的细节要求较高,通常只能识别较明显的损伤。

果蔬机械损伤发生后,其热特性发生变化,在一定条件下,会增大果实正常与损伤部分的温度差异。这一特性为热成像检测果蔬机械损伤[7-10]提供了条件。LINDEN等[11]采用热成像技术,利用1℃冷却90 min、70℃烘箱加热1~2 min、微波加热7~15 s等3种不同热激励方式对番茄机械损伤的检测效果表明,微波加热15 s后可有效区分出番茄细微机械损伤,但微波会对番茄造成一定破坏。刘娟娟[12]提出了一种基于红外和可见光图像融合的水果无损检测方法,融合图像很好地保留了苹果缺陷在红外图像中所体现的特征,且有效地消除了可见光图像表面色彩对于缺陷识别的影响。周建民等[13]利用主动热成像技术检测红富士苹果早期机械损伤,并对环境因素对检测影响程度进行了定性分析。通过热成像技术将果实温度差异用不同颜色显示出来,可以直观地发现果实缺陷,较好地解决可见光图像中不明显损伤难识别的问题。但上述方法通常需要使用配套计算机,且所用热成像仪一般价格较为昂贵,不适合推广;另一方面,热成像在损伤的定量检测方面尚待更多研究[14]。

FLIR ONE是一款应用于智能手机的热成像摄像头,因其价格相对便宜,使用方便,逐渐受到重视。目前在医学领域应用较多[15-17],主要用于伤员伤情检测;在果蔬检测方面处于起步阶段,如NAIK[18]等将FLIR ONE用于芒果分级。该方法基于Android手机,将FLIR ONE用于番茄果实机械损伤检测,通过对番茄热成像的处理与番茄表面温度矩阵的计算,获得番茄表面机械损伤参数。

1 检测原理与方法

1.1 检测原理

所有温度在绝对零度以上的物体,都会不停地发出热红外线。热成像技术就是通过接收目标物各部位发射出的红外线,经过红外信息转换与处理技术,最终以图像形式显示目标物各个部位发射的红外线强度[19],即把温度矩阵转换成可视图像。番茄机械损伤发生后,热量在果实中的吸收和传播发生变化,引起热特性参数发生变化,从而导致正常和损伤部分之间产生一定的温度差异[14]。利用安装于手机的FLIR ONE获取番茄热成像,可识别出可见光成像下不易发现的番茄机械损伤,通过开发的APP对番茄温度矩阵进行计算得到机械损伤缺陷参数。

1.2 检测方法

1.2.1 检测流程 检测方法主要流程如图1所示。首先,用FLIR ONE拍照获取番茄热成像,同时获取温度数组;其次,对热成像进行图像处理,并标记出损伤部分;最后,基于图像处理结果对温度数组进行计算,得到损伤参数。

图1 番茄热成像检测流程

Fig.1 The Process of thermal imaging detection of tomoto

1.2.2 获取番茄热成像及温度数组 通过2个100 W的红外灯主动热激励,番茄损伤与正常部分温差增大,进而便于检测。整个热激励装置如图2所示,2个红外灯成90°摆放,距离番茄20 cm,加热150 s后停止。在停止后60 s内拍照,调色板选择铁红色的热成像效果最好。由于FLIR ONE无调焦功能,因此拍照距离需根据番茄实际大小进行调整,使番茄尽可能充满图像以便获得更多细节。拍照功能基于FLIR ONE 官方SDK进行编程,拍照后获得热成像和包括每个像素点温度的数组。

图2 用于获取番茄热成像及温度数组的热激励装置

Fig.2 The excitation-device of obtain thermal imaging and temperature arrays of tomoto

1.2.3 图像处理及损伤计算 算法流程主要包括对热成像的图像处理与基于温度数组进行损伤参数计算两部分,其中白色框表示图像处理步骤,黑色框表示损伤计算步骤(图3)。

图3 图像处理及损伤计算的算法流程

Fig.3 The Process of image and damage calculation

1) 图像处理。图像处理的目的一是找出损伤部位,二是为计算损伤参数做准备。图像处理算法主要基于OpenCV4Android 3.4.3,保证了处理的实时性,主要包括预处理、求轮廓与找损伤3个步骤。

预处理:预处理是为了将番茄从图像中分割出来,先将图像灰度化,然后进行中值滤波消除噪声。由于在热成像中热激励后的番茄与背景有明显差异,用OTSU法对图像二值化即可将番茄分离。

求轮廓:对预处理后的图像进行Canny边缘检测,利用边缘检测结果求出番茄轮廓,进而求出番茄正外接矩形作为ROI。

找损伤:首先,通过番茄轮廓与正外接矩形得到番茄部分点的灰度数组tomatoArray,获取番茄部分点的灰度伪码:

//初始化番茄灰度数组

tomatoArray [];

//遍历正外接矩形tomatoRect中每一个点

for each Point(x,y) in tomatoRect

//点在番茄轮廓contourPoints内部

if(pointPolygonTest(contourPoints,Point(x,y),false) > 0)

{

//将该点灰度值加入到tomatoArray中

tomatoArray.add(grayMat.get(y,x)[0]);

//累加番茄每一点的温度

Tsumtomato+= thermalPixels[y*width+x];

}

end for

此方法只遍历ROI的数据,避免了遍历整个图像,减少了计算量。其次,对图像进行二值化分离损伤。在通过试验比较若干种二值化算法后,发现Reny熵法[20]效果最好。利用tomatoArray计算番茄部分灰度直方图,以此为输入通过Reny熵法进行二值化。最后,依次进行中值滤波去除噪声、Canny边缘检测,最终求出所有轮廓。方法:设原番茄轮廓面积为St,周长为Pt,对求出的轮廓做进一步筛选,主要剔除4种轮廓。一是面积接近的St轮廓,由于热成像中番茄边缘颜色可能相对较暗,在Reny熵法二值化时边缘部分会被视为背景,进而会产生面积稍小于St的番茄轮廓;二是周长接近或大于Pt的轮廓,这种轮廓为与面积接近St的轮廓的类似,但未将番茄包围,而是形成一个条形轮廓,因此周长较大,如图4中②所示;三是原番茄轮廓因二值化被分割成的若干条形轮廓;四是面积过小的轮廓,这种轮廓通常为噪声,如图4中④所指。剔除后得到番茄机械损伤轮廓,并在原热成像中作出标记,完成图像处理。

2) 损伤计算。计算番茄部分温度数据:在获取tomatoArray的同时,累加得到番茄所有点的温度和Tsumtomato(表1)。计算损伤参数:累加每个损伤轮廓包含点的个数得到损伤部分点的总数Cdamage,同时累加每个损伤点的温度得到损伤部分的温度Tsumdamage。设Ctomato为番茄部分包含点的总数,则损伤参数的计算公式分别为损伤占比(Pdamage)、损伤部分平均温度(Tdamage)、正常部分平均温度(Tsound)和正常部分与损伤部分平均温度差(Tdiff)。

图4 番茄损伤轮廓待筛选结果

Fig.4 The awaiting screening results of injury contour of tomoto

Tdiff=Tsound-Tdamage

整个算法最后得到一幅标记出番茄及其损伤的图像及4个损伤参数(图5)。

图5 番茄损伤热成像处理效果及损伤参数

Fig.5 Damage thermal imaging treatment effect and parameter of tomoto

2 方法验证

2.1 针刺损伤

针刺损伤试验用于检测番茄是否有机械损伤。用直径0.8 mm的针在樱桃番茄表面刺1个3 mm深的孔,静置1 h并擦干流出的汁液,对50个果实进行机械损伤检测。所用手机为Android 6.0.1系统的CAT S60,内置的FLIR ONE热成像分辨率为80×60像素、视觉分辨率为640×480像素。对樱桃番茄的拍照距离为10 cm,处理一幅图像的时间为4 s左右。测定结果表明,50个果实中检测到损伤数量为45个,正常数量为5个,损伤果实的识别正确率为90%。由于针刺孔较小及噪声干扰,致使部分损伤未在热成像中呈现,因此出现了将损伤果实识别为正常果实的情况。

2.2 划伤

划伤试验用于检测损伤部位温度数据。在番茄表面用直径0.8 mm的针划一道2 mm深、1~2 cm长的划痕,静置1 h并擦干流出的汁液,对10个果实进行损伤检测,主要测定温度数据。所用手机为Android 9.0系统的Google Pixel 2,FLIR ONE 型号为Pro,热成像分辨率为160×120像素,视觉分辨率为1 440×1 080像素。对番茄的拍照距离为20 cm,每幅图像的处理时间为2 s左右。在获取热成像的同时(热激励后60 s内)对番茄温度进行测量,正常部分实际温度值通过测量其中5个点的温度并计算平均值得到,损伤部分实际温度值通过测量划伤的2个端点及中点共3个点的温度并计算平均值得到。测量工具为Extech IR400红外测温仪,选择该测温仪基于两点原因:番茄的发射率为0.90~0.95[21],而该测温仪的发射率为0.95,二者匹配;该测温仪可以快速、准确的获取温度,满足在60 s内获取多个点温度的要求。

由表1可知,番茄正常部分与损伤部分的温度差在0.42~1.08℃,平均温差0.78℃,略高于IR400所测得的温度差(0.45℃),对损伤部分的区分性更好。另外,测得温度与IR400所测结果误差均在±5%以内,较为准确。

表1 番茄划伤检测的正常与损伤部位温度

3 小结

研究提出了一种基于FILR ONE热成像摄像头、用Android手机进行番茄机械损伤检测的方法。方法适用于不同型号的FLIR ONE及支持FLIR ONE的Android手机,在番茄机械损伤检测方面准确性较高,图像处理耗时满足实时性要求。测定方法成本低,操作简便,易于在农业科技工作者与农户中推广。方法不仅可用于番茄机械损伤定性检测,也可对温度进行定量检测。随着进一步的研究,未来可尝试推广到其他果蔬的机械损伤检测上。

猜你喜欢

图像处理轮廓灰度
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
高速公路主动发光轮廓标应用方案设计探讨
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算