基于深度学习芒果图像在线识别与计数方法研究
来源:用户上传
作者:
摘 要:为实现果树产量的智能评估,本研究对自然环境下的圣心芒果树图像进行果实识别研究,提出基于深度学习算法的芒果图像在线识别计数方法。首先,采用Faster R-CNN深度学习模型构建芒果图像识别算法;接着基于微信小程序与网页平台开发芒果图像上传模块,实现随时随地上传芒果图像至服务器;然后采用基于TCP协议的服务器客户端通信模式,并结合基于MATLAB平台的Faster R-CNN程序集,构建上传图像的在线分析模块,实现线上芒果图像的实时识别与计数;最终,芒果图像的识别与计数结果通过微信小程序和Web页面程序反馈给用户,内容包括单张图片和1个果园区域内所有图片的识别与计数结果,并实现青色芒果和红色芒果的分类统计。应用本研究构建的在线深度学习识别计数方法,在自然环境下采集125幅芒果图像进行测试试验。结果表明:芒果图像识别算法的计数识别准确率达到82.3%,其中漏检率与误检率分别为11.7%和8.6%,平均计数误差与计数误差率分别为4.2和7.9%;芒果图像在线识别计数方法能有效实现果树图像的采集、上传、识别与计数、分类统计和结果反馈,对整个果园区域内结果数量进行统计与分析,为果园的智慧管理提供科学决策依据。
关键词:芒果图像;识别与计数;Faster-RCNN;在線方法
中图分类号:S667.7;TP391.41 文献标识码:A
Online Recognition and Counting with Deep Learning for Mango
Images
CEN Guanjun1, HUA Junda1, PAN Yiying1, LIU Dahe1, SU Beibei1, ZHONG Zheng1, ZHANG Liankuan1*, GAO Yan2*
1. College of Mathematics and Informatics, South China Agricultural University, Guangzhou, Guangdong 510642, China; 2. Plant Protection Research Institute, Guangdong Academy of Agricultural Sciences / Guangdong Provincial Key Laboratory of High Technology for Plant Protection, Guangzhou, Guangdong 510640, China
Abstract: In order to realize the intelligent assessment of fruit yield, this paper carried out an research on the fruit recognition of Shengxin mango image in natural environment, and proposed an online method of recognition and counting with deep learning of mango images. Firstly, the recognition algorithm for mango image was realized using the Faster R-CNN Model, a deep learning framework. Secondly, an upload module for mango images based on Wechat applet and Web platform was developed, which can upload images to a server at all times and places. Thirdly, a server-client communication mode based on the TCP protocol and the Faster R-CNN assembly in MATLAB were adopted to construct an online analysis module, which realized the real-time and online recognition and counting for mango images. Finally, the recognition and counting results for a single picture, or all pictures in an orchard, were feedback to users through the Wechat applet program and Web page program, including the classification statistics of green mango and red mango. A total of 125 mango images in natural environment had been collected and analyzed using the method proposed in the paper. The results showed that the correct recognition and counting rate of mango fruit was 82.3%, among which the rate of missed detection and error detection was 11.7% and 8.6%, respectively, the average counting error was 4.2 and the average counting error rate was 7.9%. The experimental results demonstrated that, the method proposed in the paper was able to provide a scientific decision-making basis for the wisdom management of orchards through results quantity analysis obtained by images recognition and counting. Keywords: mango image; recognition and counting; Faster R-CNN; on-line method
DOI: 10.3969/j.issn.1000-2561.2020.03.002
芒果(Mangifera indica L.)是多年生的漆树科常绿大乔木,原产印度,营养丰富,是东南亚、非洲东西部和美洲许多发展中国家重要的出口经济作物。近年来,我国芒果产业得到快速发展,芒果生产由数量扩展型向质量效益型转变。然而芒果品种多而杂,果园管理水平和采后处理技术落后,直接影响果实商品质量和市场竞争力。芒果园智能化和精细化管理是芒果种植业的未来发展趋势,运用图像识别技术和现代智能算法对果园中芒果植株基础生物学信息进行实时监测和智能分析并指导芒果生产,是实现芒果园智能化和精细化管理的有效途径。
目前,深度学习方法越来越多的应用于水果图像的目标检测研究中。传统的水果图像识别方法通过提取图像中水果的颜色、形状和纹理等特征,然后运用非监督或者监督分类算法,如K-mean算法、K最近鄰法、支持向量机等进行目标判别,其特征是根据特定图像和人类视觉敏感性而人为设计的特征(hand crafted features),健壮性较差,如颜色特征容易受到光照的影响、形状特征容易受到成像距离、枝叶遮挡和果实重叠的影响,这限制了传统的水果图像识别方法的应用效果[1-6]。不同于传统水果图像识别方法,基于深度学习的水果图像识别是通过模型学习图像隐含的独特特征来检测目标,其得到的特征表示具有非常强的泛化能力,可成功的应用于测试集图像的目标检测[7-9]。迄今为止,国内外在芒果图像的识别研究方面只有少量的报道应用了神经网络及深度学习方法。Nanaa等[10]采用反向传播神经网络模型和Hough变换从芒果树图像中识别芒果,对单个芒果识别准确率达到96.26%,但对重叠芒果识别准确率较差Borgoti等[8]对澳大利亚果园中的芒果、苹果和杏仁3种果树图像,运用不同的深度学习框架进行图像识别研究,对芒果图像识别的F1分数最高达到了90.8%;Ramesh等[11]采用深度语义分割和CNN框架构建了识别芒果的MangoNet,对测试集图片的平均识别准确率达到91.4%。上述报道主要聚焦于探讨怎样构建深度学习模型提高芒果图像的识别准确率,因此只统计了识别准确率,未统计计数准确率,而基于深度学习的芒果图像识别计数及在线实时分析的相关研究鲜有报道。
本研究建立自然环境下芒果的深度学习图像识别模型,并结合基于MATLAB平台的Faster R- CNN(Regions with Convolution Neural Network)、微信小程序和腾讯云等技术构建了芒果树图像在线识别计数的方法,实现从手机端采集植株图片和PC端上传图片数据、服务器进行深度学习图像识别计数、客户端查询获取分析结果等功能,为应用人工智能及现代信息技术构建智慧果园提供方法支撑。
1 材料与方法
1.1 图像采集
芒果图像于2018年1月采集,地点位于海南省三亚市的乐东福田的圣心芒果园,在天气晴朗的条件下进行采集。圣心芒(Mangifera indica Linn.)为漆树科植物芒果,原产于热带地区,主要为短椭圆形,皮色分为2种:红色和青色。使用Cannon EOS 700D相机和华为CAZ-AL10型智能手机拍摄成熟期的芒果。Cannon EOS 700D相机的图像分辨率为3456×5184 dpi。华为智能手机的分辨率为1080×1920 dpi。摄像头与目标芒果距离在0.2~5.0 m之间,共采集300张不同角度的芒果树图片,每1张图像有1~50个芒果。
1.2 方法
1.2.1 基于深度学习(Faster R-CNN)的芒果图像识别分析方法 Faster R-CNN算法是当前较为先进的目标检测方法,由Grishick R和He K在2015年提出,该算法是在Grishick R同年较早时候提出的Fast R-CNN基础上增加了区域建议网络(Region Proposal Networks, RPN),通过交替训练,让RPN和Fast R-CNN共享网络参数,极大地减少了区域建议的时间,能够快速生成候选区域,提高目标检测的效率[12-13]。
Faster R-CNN整体框架如图1所示。本研究以采集到的芒果图像作为输入;卷积层为特征提取层,是1个卷积模型,可选择ZFNet或VGG16模型。本研究使用的是ZFNet模型,对输入图像感兴趣区域进行特征提取,得到芒果特征图。由区域建议网络生成矩形目标建议框集合(即图1中芒果感兴趣区域)。把建议窗口映射到特征图上,通过感兴趣区域池化层(Region of Interest Pooling, ROI池化层)使输出特征图尺寸固定,将固定大小的特征图用用Softmax模型进行目标类别的识别分类,并使用L1 Loss进行边框回归(Bounding-Box Regression)得到目标在图片中的精确位置。
从采集图片中随机选取175张图片作为训练集,剩下125张图片作为测试集,首先对芒果植株图像进行标注,标注信息包括芒果位置和成熟度,然后按照PASCAL VOC 2007的数据集格式形成数据集。接着对已经标注的芒果图像进行规整化尺度的调整,输入到Faster R-CNN中进行交替训练,步骤如下:
(1)训练RPN,用ImageNet预训练的模型初始化,并做端到端的微调用于区域建议任务;
(2)利用(1)中的RPN生成的建议框,由Faster R-CNN训练1个单独的检测网络;
(3)用检测网络初始化RPN训练,但固定共享的卷积层,并且只微调RPN独有的层; (4)保持共享的卷积层固定,微调Faster R-CNN的fc层。
将需要识别的芒果树挂果图像,输入到上述训练好的Faster R-CNN网络中,进行目标识别,识别结果进行统计分析,得到每张图像的挂果量统计信息。
1.2.2 芒果树挂果图像数据的传输与存储 用户采集的图像数据通过手机客户端或者PC客户端,经HTTP协议、SSL加密通信和腾讯云对象存储服务(Cloud Object Storage, COS),上传到腾讯云存储服务器上(图2)。对象存储服务是腾讯云提供的面向非结构化数据的分布式存储服务,支持HTTP/HTTPS 协议访问,其能容纳海量数据并保证用户对带宽和容量扩充无感知,具有安全可靠、成本优廉,便于接入等优点,本研究应用该服务实现芒果树挂果图像数据的上传、存储和下载功能。
手机客户端实现芒果树挂果图像数据的实时采集和传输,是基于微信小程序的多个API(Appli- cation Programming Interface)开发的,能将手机采集到的芒果树图像、采集位置的地理信息和用户信息等数据并上传到存储服务器。手机客户端在微信小程序的支持下,只需具备微信程序和网络连接就可以实现数据的上传,同时,其小程序样式代码封装在微信小程序里面,安全性高且运行稳定。PC客户端主要针对相机采集的图像数据进行集中传输,采用基于Bootstrap加JQuery架构开发的Web页面应用,在腾讯云对象存储服务提供的软件开发工具包(COS SDK)支持下实现图像数据的批量上传与下载,并通过腾讯地图录入图片采集位置的地理信息。
1.2.3 芒果树挂果图像实时分析的通信机制 芒果树挂果图像的实时分析过程如图3所示,芒果树挂果图像通过客户端上传到存储服务器并存储完成后,存储服务器将其下载地址返回给控制服务器,控制服务器接收到图片下载地址后,通知深度学习图像分析服务器下载并分析上传的图片。
深度学习图像分析采用Python+MATLAB进行算法开发和服务暴露,包含Python服务器模块和MATLAB模塊。Python服务器模块通过内嵌的TCP服务接受来自控制服务器的用户图片识别分析任务,当接收到新任务通知时,该模块将要检测的图片(任务)从存储服务器下载到MAT LAB模块工作目录下,同时将图片名称传递给MATLAB模块。MATLAB模块通过TCP服务接收Python服务器模块传递过来的图片名称,并调用基于深度学习的Faster R-CNN对该名称指向的图片进行目标识别检测,检测完成后通知Python服务器模块,由Python服务器模块将图片识别分析结果保存到数据库中,同时返回给控制服务器,任务执行完成。
在实时分析时,为防止多用户并发请求出现任务执行阻塞的情况,Python服务器模块的TCP服务采用多线程处理,将接收到的芒果树挂果图像分析任务放入由独立线程维护的任务队列进行缓存。Python服务器模块将定时查询该任务队列,在队列不为空时,取出1个任务派遣给MATLAB模块。如果对于每1个派遣的任务,MATLAB模块都调用1个新MATLAB实例进行处理,这将消耗大量的系统内存资源,系统难以支撑高并发请求的情况。因此,MATLAB模块的TCP服务采用单线程处理,对接收到的所有图像分析任务调用同1个MATLAB实例依次进行目标检测,节约了系统的内存资源,保障了一定的并发处理能力。
1.2.4 芒果树挂果图像在线反馈方法 深度学习服务器统计出的芒果树结果状态信息由控制服务器实时反馈到用户的手机客户端或者PC客户端上。手机客户端采用微信小程序作为人机交互界面(图4),主要针对手机拍摄的单张图片的目标检测结果的统计分析及实时反馈。PC端采用WEB应用页面开发的可视化界面展现分析结果(图4,图5),主要进行图片的批量分析和汇总,界面中不同区域(果园)采集的图片在图像列表中列出,其左边显示该图片的像素、预测产量和青芒果与红芒果预测产量等信息,点击图像列表中单个图片将在界面右侧图像详细图展示其详细信息;界面右侧芒果数量统计图表为选中区域(果园)所有图片的分析结果汇总情况。
2 结果与分析
为检验本研究所构建的Faster R-CNN模型对芒果图像识别的健壮性和准确率,试验分别选取不同尺度、不同光照条件下和不同结果密度的125幅芒果树图像进行测试验证,并采用人工检视的方式计数每张图片上的芒果数目。
本研究构建的Faster R-CNN模型对芒果图像的识别探测效果如图6所示。图6B和图6D分别是逆光和顺光条件下的识别效果,对比其识别前的图像(图6A,图6C),表明2种光照条件下Faster R-CNN模型都有着良好的识别效果。图6B中芒果树的结果位置分散密度低,而图6D中芒果树的结果位置集中,尤其是图像的右下部分结果密度高,从识别后的图像可以看出,Faster R-CNN模型对不同结果密度的芒果树图像同样具有良好的识别效果。图6B和图6D是芒果树完整植株图像,而图6F为部分芒果树冠图像。图6展示的识别结果表明,Faster R-CNN模型对不同尺度的芒果树植株图像亦有良好的识别效果。图6B和图6D中白色箭头指向的水果处在近地面位置,其枯叶背景与水果颜色混杂,但本研究构建的Faster R-CNN模型对近地面的水果均能识别出。对于部分遮挡与重叠芒果,本研究采用的深度学习算法也能够识别出来,如图6B和图6D中黄色箭头所示。同时本研究发现,对于明显小于正常尺寸和严重遮挡并且重叠的芒果,深度学习模型的识别性能受到一定影响,如图6B和图6D中橙色箭头所指向的芒果未被识别出来。
为进一步分析本研究构建的Faster R-CNN模型在芒果树图像识别中的果实识别与计数效果,本研究利用5个指标:平均计数误差(ACE)、平均计数误差率(ACEP)、计数识别准确率(CRP)、漏检率(MP)和误检率(FP)作为参数,来进行识别率的分析。计算公式如下: 式中,PN是由Faster R-CNN模型預测的芒果数,MUN为人工计数的芒果个数,n为测试集包含的图片张数,CN是Faster R-CNN模型正确识别出芒果并正确计数的芒果数,MN是漏检芒果个数,即Faster R-CNN模型未检出的芒果个数,FN为误检个数,即由Faster R-CNN模型预测为芒果而实际上是其他物体的检出个数。
对测试集125幅芒果树图片识别计数的统计结果如表1所示。125幅芒果树图片人工检出2291个芒果,Faster R-CNN模型检出1968个芒果,平均每张图片包含约18个芒果。表中平均计数误差与平均计数误差率分别为4.2和7.9%,表明本研究构建的Faster R-CNN模型芒果识别计数的平均误差较小,计数识别准确率为82.3%,即一旦被Faster R-CNN模型检出为芒果,正确计数的准确率将达到82.3%。表1中漏检率为11.7%,误检率为8.6%,表明本研究方法对芒果图像有较高的识别率,漏检率与误检率较低。总的来说,本研究构建的Faster R-CNN模型对芒果的图像识别探测具有良好地健壮性,能识别出复杂条件下的芒果。
3 讨论
本研究基于Faster R-CNN算法、分布式架构和微信小程序构建芒果树结果状态在线分析方法,实现芒果果树图片采集、上传、存储、识别分析和结果统计与显示的一体化功能。试验结果表明,该方法运行稳定,识别准确率高。本研究构建的在线分析方法采用Faster R-CNN算法作为芒果图像识别算法,其是近年来才提出的一种神经网络算法,在诸多研究领域中正在广泛应用。随着训练集样本量的增加,该算法的识别准确率将大大提高。因此,本研究提出的在线分析方法可在应用中积累图片素材和扩充训练样本集,其统计的芒果结果状态信息的准确性将在应用中迭代提高。本研究提出的在线分析方法采用分布式架构,将控制服务、计算服务和存储服务分别布置在不同服务器中,各服务模块可独立维护和升级,并采用腾讯公司的云存储服务,为以后大规模应用预留了空间。本研究提出的在线分析方法采用微信小程序作为移动客户端的接入程序,移动客户端的部署方便快捷,用户使用手机即可接入,成本低廉。目前在农业图像识别领域,在应用深度学习模型方面,研究热点主要集中于构建高准确率的识别模型[14-15],在线深度学习图像识别方法研究鲜有报道,尤其是针对热带水果的相关报道,本研究提出的芒果在线深度学习识别计数方法采用了分布式架构、云存储服务和微信小程序接入具有一定的创新性。
本研究针对芒果园智能化和精细化管理需求,开发了基于Faster R-CNN模型的自然环境下芒果果实识别算法,对测试集芒果果实的计数识别准确率达到82.3%,其中漏检率与误检率分别为11.7%和8.6%,表明该模型的识别效果较优秀,能准确地识别大部分芒果果实,在果实识别速度上,本算法达到平均0.3 s识别1幅芒果图像,能高效地满足果园管理的要求。研究结果表明,利用Faster R-CNN模型进行参数优化与结构约简,卷积操作可以自动从复杂数据中学习到芒果的特征,有效避免常规目标识别方法中主观选取特征的不足,简约后的模型减少了系统的计算负荷,加强模型在常规性能计算平台上的适应性,同时在系统部署时,引入Python的多线程并发处理机制,使得识别算法可以应对一定的并发处理请求。
本研究构建的Faster R-CNN模型对自然环境下的芒果果实较高的计数识别准确率(82.3%),但对2个或2个以上重叠果实,易被识别为1个果实。由于未成熟果实与树干、叶片颜色接近,区分识别难度较大,识别准确率还需进一步提高。针对未成熟果实的识别,可通过优化Faster R-CNN网络结构和增加训练样本的种类与数量来改进识别效果。而对于重叠果实的识别,则需进一步结合形状学习和主动轮廓模型等图像分割算法来实现单个果实的分割,这将作为本课题未来的研究方向。
果树结果状态动态监测和产量智能评估是果园实现智能化和精细化管理的重要内容,本研究所构建的芒果图像在线识别方法,能够快速有效地实现芒果树挂果状态图像监测和挂果量的统计,同时综合运用了深度学习、分布式架构、云存储和微信小程序等前沿的计算及信息科学技术,为芒果园的智能化和精细化管理提供技术支撑。
参考文献
张亚静, 邓 烈, 李民赞, 等. 基于图像处理的柑橘测产方法[J]. 农业机械学报, 2009, 40(S1): 97-99.
马翠花, 张学平, 李育涛, 等. 基于显著性检测与改进 Hough 变换方法识别未成熟番茄[J]. 农业工程学报, 2016, 32(14): 219-226.
廖 崴, 郑立华, 李民赞, 等. 基于随机森林算法的自然光照条件下绿色苹果识别[J]. 农业机械学报, 2017, 48(S1): 86-91.
傅隆生, 冯亚利, Elkamil Tola, 等. 基于卷积神经网络的田间多簇猕猴桃图像识别方法[J]. 农业工程学报, 2018, 34(2): 205-211.
Kurtulmus F L, Won S V A. Immature peach detection in colour images acquired in natural illumination conditions using statistical classifiers and neural network[J]. Precision Agriculture, 2014, 15(1): 57-79.
Qureshi W S, Payne A, Walsh K B, et al. Machine vision for counting fruit on mango tree canopies[J]. Precision Agriculture, 2017, 18(2): 224-244. Dorj U O, Lee M, Yum S. An yield estimation in citrus orchards via fruit detection and counting using image processing[J]. Computers and Electronics in Agriculture, 2017, 140: 103-112.
Bargoti S, Underwood J. Deep fruit detection in orchards[C]//2017 IEEE International Conference on Robotics and Automation (ICRA), Singapore: IEEE, 2017.
Bargoti S, Underwood J P. Image segmentation for fruit detection and yield estimation in apple orchards[J]. Journal of Field Robotics, 2017, 34(6): 1039-1060.
Nanaa K, Mohamed, Rizon M, Rahman M N A, et al. Detecting mango fruits by using randomized hough transform and back propagation neural network[C]// International Conference on Information Visualisation, Paris: IEEE, 2014: 388-391.
Ramesh K, Avadesh M, Omkar N. MangoNet: A deep semantic segmentation architecture for a method to detect and count mangoes in an open orchard[J]. Engineering Applications of Artificial Intelligence, 2019, 77: 59-69.
He K M, Zhang X Y, Ren S Q, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904-1916.
Ren S Q, He K M, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.
Hamuda E, Glavin M, Jones E. A survey of image processing techniques for plant extraction and segmentation in the field[J]. Computers and Electronics in Agriculture, 2016, 125: 184-199.
DeChant C, Wiesner-Hanks T, Chen S, et al. Automated identification of northern leaf blight-infected maize plants from field imagery using deep learning[J]. Phytopathology, 2017, 107: 1426-1432.
转载注明来源:https://www.xzbu.com/1/view-15165364.htm