基于Android平台的水稻病害智能诊断关键技术研究
2018-04-10刘小红
刘小红
(湖南信息学院电子信息学院,湖南长沙 410151)
水稻病虫害对粮食生产造成极大威胁,对病虫害的准确识别和诊断已成为近年来农业病虫害研究的热点之一。随着手机应用的普及,已有国内外学者利用手机在病虫害诊断方面进行了深入研究。张谷丰等[1]综合害虫体型和危害部位及其特征在手机端进行归类处理,再参照相关虫体图片和文字描述等进行诊断,开发了基于Android的水稻害虫诊断系统。郑姣等[2]在手机端调用OpenCV直接对病害图像进行采集、分割、识别等处理,实现水稻病害图像的识别。由于手机拍摄的图片数据容量大,加大数据处理难度,加上手机端硬件配置及性能问题使得图像处理能力有限,从而影响图像识别的实时性,再加上SQLite数据库不适合大量图像检索计算,因此在手机端上实现图像的准确识别仍然十分困难。针对以上问题,笔者利用手机端图像压缩技术和PC端图像处理优势,提出以手机端对病害图像采集、压缩处理并上传,服务端接收处理、分割、识别图像,并返回结果的方法,并基于Android平台开发了水稻病害智能诊断系统。
1 系统总体设计
根据系统功能需求,具体划分为客户层、通信层、服务层3层。其中,客户层选择JDK+ Eclipse+ Android SDK+ADT 插件等应用技术进行开发;服务层的系统管理平台选择JavaEE应用技术进行开发,并配置Tomcat服务器,利用Servlet技术响应不同客户端发来的HTTP请求;同时,采用MySQL数据库来满足诊断平台对数据库的要求[3]。
2 系统功能模块
2.1手机客户端主要分为3个模块:用户信息管理模块为农业种植人员或技术人员提供用户信息注册、登录等操作;病害图像诊断模块支持图像采集、图像压缩并上传、接收识别结果等功能;病害数据查询模块提供查询相关病害数据、防治措施、服务端发布的指导信息等功能。
2.2服务端服务端包括用户信息管理模块、特征数据模块和病害数据模块、图像处理模块。①用户信息管理模块为农业专家或系统管理员提供用户信息注册、登录及帐号管理等操作。②特征数据模块为植保人员提供病害图像特征存储、更新等操作,植保人员将添加的标准图片进行图像去噪与归一化、分割处理后,提取图像特征值,再将其存入特征数据库。③病害数据模块对病害基本信息、防治方法等信息进行更新和维护。④图像处理模块将接收的图片进行预处理、分割、特征提取和特征匹配,最后将匹配的结果以文字和图像的形式返回到手机客户端。
3 系统实现的关键技术
根据实际需要,智能诊断平台要满足准确性和实时性的性能需求,系统开发过程中使用了图像压缩技术和图像处理等关键技术。
3.1图像压缩关键技术随着人们对拍照质量要求的提高,手机摄像头像素也不断提高,手机拍摄图片占据大量的数据存储空间,如果直接上传至远程服务器中,会导致上传速度缓慢、消耗流量等问题。解决该问题虽有多种方法,但对农户而言,最好的办法是在保证清晰度的前提下压缩图像,以减少图片容量、降低上传数据流量,加快上传速度。由于拍摄光感和像素等原因使水稻病害图像多样化、复杂化,采用改进的JPEG图像压缩算法来操作,可获得更好的压缩效果。JPEG压缩要经历颜色模式转换及采样、离散余弦变换(DCT变换)、量化、哈夫曼编码等步骤[4]。JPEG算法压缩图像过程如图1所示。
图1 JPEG算法压缩图像过程Fig.1 The image compression process based on JPEG algorithm
因为手机收集的实时图像是RGB色彩空间,进行JPEG图像压缩前,要将其转换为Y(亮度)、Cr(色度)、Cb(饱和度)色彩空间。采样时以1∶1∶1的模式进行。转换公式化为:
Y=0.299R+0.587G+0.114B
(1)
Cb=-0.168 7R-0.331 3G+0.5B+128
(2)
Cr=0.5R-0.418G-0.081 3B+128
(3)
颜色模式变换后,产生亮度、色度、饱和度3个分量块,将每分量块分割成8×8的像素块,再对像素块进行DCT计算。同时采用Loeffler算法以减少DCT的运算量,方法如下:先对8×8像素块按行进行DCT变换,再对变换得到的中间矩阵按列进行DCT变换,这样将8×8二维变换变成2次一维的复合DCT运算[4-6]。
DCT变换后,还需进行量化处理。量化的过程是对DCT变换后的数据,利用色度量化表和亮度量化表分别进行量化,对于DCT矩阵中的数据在量化时,采用量化公式如下:
量化值(i,j)=[f(i,j)Π量化矩阵(i,j)]
(4)
数据量化处理后,还需对其进行“Z型”扫描,形成一维数列后便可进行编码处理。为达到图片诊断时的清晰度要求,在图片压缩时采用哈夫曼编码方式进行无损耗数据压缩[4-5]。
3.2图像识别处理关键技术图像处理具有数据量大和处理费时的特点,该系统利用服务端硬件对图像处理的性能优势,选择OpenCV作为图像处理手段,对客户端发来的病虫害图片进行及时处理,可以解决移动端图像处理能力有限、SQLite数据库检索难度大等问题,提高系统识别实时性。
OpenCV由一系列C函数和C++类构成,并提供良好的接口,具有跨平台性,是目前主要的图像识别开发平台[7]。其中,CV核心模块可实现图像处理、模式识别、对运动物体进行描述和跟踪等功能。由于网络传输会对手机端传送的病害图像造成一定网络噪声,该系统中在图像预处理阶段利用滤波算法进行去噪处理;针对拍摄背景、光线及病害特征的不明显性,需利用边缘分割和阈值分割进行分割处理,去除不明显部位,提取图片中感兴趣部分;由于为害部位与周边环境存在颜色上的差异及为害部位发生范围的不规则性,需利用颜色矩和几何参数方法分别提取颜色特征和形状特征;在图像识别阶段为提高图像识别精准度,采用支持向量机的分类器来对提取的特征进行识别[8-9]。OpenCV图像处理过程如图2所示。
图2 OpenCV图像处理过程 Fig.2 OpenCV image processing procedure
4 系统实现
4.1手机客户端系统实现用户可利用友好、简单的人机交互界面,在田间实地图片采集、压缩并上传,进行无采摘式、实时的病害诊断;还可以通过“信息查询”功能,实现在线查询各种病害信息和防治技术等,解决农民在种植过程中遇到的各种问题。该系统充分利用Android SDK中的LinearLayout类、GridView类、ListView类及TabHost组件等优势设计个性化的友好的人机交互界面。手机端系统实现的部分界面如图3所示。
图3 系统界面Fig.3 The interface of the system
4.2系统测试将开发好的系统文件生成apk应用,运行在安装应用系统Android 4.4以上版本的手机上,以常见的稻瘟病、稻曲病、纹枯病为例,进行了初步应用。利用实时拍下有明显特征的100多张图片来测试系统的准确性,并对诊断结果进行统计和分析。结果表明,稻曲病诊断准确率在85%以上,稻瘟病准确率略低,但也在73%以上,纹枯病的诊断准确率次之。由于在客户端采用图像压缩技术,降低了数据的冗余度,上传速度加快,提高了病害图像诊断的效率。
5 结论
在手机端利用图像压缩技术,结合服务端的图像识别处理技术,研发了基于Android平台的水稻病害智能诊断系统。该系统实现了手机端可随时随地采集、压缩、上传病害图像,进行远程病害智能诊断,可为种植人员或技术人员在不受时域、空间等限制情况下提供准确、及时的病害诊断信息和相应的防治方法,有助于合理用药,提高粮食产量和经济收入。由于该系统尚处于应用初级阶段,对于部分问题(如对复杂背景的图像准确诊断率不高、图像压缩效果不理想等)在后续的研究中还需进一步完善和提高。
[1] 张谷丰,罗岗,孙雪梅,等.基于Android的水稻害虫诊断系统[J].应用昆虫学报,2015,52(4):837-843.
[2] 郑姣,刘立波.基于Android的水稻病害图像识别系统设计与应用[J].计算机工程与科学,2015,37(7):1366-1371.
[3] 李晓静,魏振钢.基于Spring与Hibernate的Web应用开发研究[J].软件导刊,2017,16(5):69-71.
[4] 徐唐,王锦,杨丹.基于JPEG算法的Android图像压缩技术研究[J].电脑知识与技术,2016,12(22):176-178.
[5] ZHOU S W,LIU Y H,ZHANG W.Compressed sensing of image signals with threshold processing[J].Optik-international journal for light and electron optics,2017,131:671-677.
[6] 钱鹏鹤.基于JPEG压缩技术在移动终端上手写信息的设计和实现[D].上海:上海交通大学,2007.
[7] 张建华,冀荣华,袁雪,等.基于径向基支持向量机的棉花虫害识别[J].农业机械学报,2011,42(8):178-183.
[8] 林玲,伊力亚尔.自组织映射神经网络(SOM)在图像分类中的应用[J].伊犁师范学院学报(自然科学版),2010(1):46-48.
[9] 徐义鑫,李凤菊,王建春,等.基于OpenCV的Android手机植物叶片几何参数测量系统[J].中国农学通报,2015,31(35):236-244.