第3章病害图像预处理及其病变识别 我国是一个水果生产大国,果树种植面积庞大,行业主体地位明显。从1993年开始,在世界水果生产行业中,我国的份额和比重迅速攀升,最近几年,就水果年产量和种植面积而言,我国排名均居世界第一。从国家统计局了解到: 国家的水果单产、总产量、果园种植面积总体上都表现出平稳上升态势。2012年,果园面积1214万公顷,占全国耕地面积的729%,产能首次突破2.4亿吨,居世界首位。栽培果树多达300余种,考虑温度等环境适宜因素,有50余种具备经济栽培价值,如草莓、猕猴桃、苹果、葡萄类、柑橘类和蜜柚等。我国为全世界提供了超过40%的苹果、梨、李、桃产量,同时,也贡献了高于60%的柿子、板栗、荔枝的生产份额,为改善全人类生活水平和提高全世界水果生产能力作出了巨大贡献[120]。 然而,在总产量一直保持较快增长、位居世界榜首的同时,单产水平没有同步提升。例如,和美国相比较,2012年,美国果类单产达到2333t/hm2,中国单产只有11.58t/hm2,仅为前者的1/2。此外,如图31 [120]所示,这几年水果销售连续走低,价格疲软下滑,效益利润下降,一些地方出现卖果难,甚至果农痛心“砍树倒果”的个别现象,扣除地区、城乡和季节之间的供需矛盾等市场因素和果品专业化和区域化生产格局等行业因素的影响之后,水果栽培生产管理低效因素也难辞其咎。因此,改进创新生产管理方法和技术手段,降低生产管理人力成本对于提高水果生产质量效益有着积极意义。 图311996—2012 年中国苹果、柑橘平均出售价格以及平均收益 近10年来,随着农业信息化建设的发展,基于知识库(Knowledge DataBase,KDB)的专家系统得到了广泛应用[121]。然而,最近5年,农业物联网在水果种植基地得到了大量普及,生产环境的结构化、非结构化数据的采集速度,迸发量级,涉及的领域发生了巨大变化,KDB系统的局限性愈发突出。①对于基于知识的专家系统,病害特征提取及表达主要靠人类专家手工完成[1],表达精度和规范化程度受人为因素干扰很大,直接影响诊断效率。②农场信息化和传感器网络建设实现了信息采集和传输的实时化,因实时信息的描述方式(视频、图片)和KDB支持的数据格式(规范的、术语化的文字表述)的差异,系统无法及时响应,或者因格式转换产生时间差常常给果农造成损失。③视频感知设备和物联网在设施化农场和果园的大量普及使得作物生长发育的实时视频和图像信息的获取和传送变得极为便利,果体、叶片、枝体、树干等器官的病害外在表象信息完全处在后台监控当中,然而,人类专家的培养速度慢、社会成本高、血肉之躯的工作方式决定其有限的工作效率,因此,巨量信息的处理任务已经远远超出人类专家的承受极限,如何智能地、自动地从这些信息中分离出病害情报成为了新型生产环境下的一个突出问题。 针对这些问题,病变模式特征的机器提取及实时识别方法成为农业信息化技术的研究热点,机器学习方法应用于果类模式特征提取和识别吸引了人们的关注。有人利用主成分分析(PCA)方法研究近红外漫反射光谱技术对苹果霉心病进行了识别[122]。苹果生长周期中,农户更关心果体体外疾病的防治。有学者利用色差和色差比相结合的方法,对不同光照情况下的图像进行有效分割,准确地实现苹果圆心坐标等特征的提取,并对苹果图像进行识别,识别率达97%[123]。有研究人员针对苹果冻干含水率监测,提出了含水图像纹理处理方法[124]。这些都为果体病变图像处理分析及特征提取研究提供了有益参考。 基于此,考虑到自身实验环境,以苹果为对象,自本章开始探讨基于机器学习的病害图像识别方法。苹果病害图像数据在国内外尚未存在标准的基准数据集合,同时,从物联网果园环境中,无论是定点还是移动采集都充满多种干扰,而且在受限的条件和有限样本次数下,无法保证在各种干扰状态都能采集具备代表性的图像样本,因此,在形成规格化的样本之前,需要一个合适的处理过程。本章以图32为路线图,讨论了苹果病害图像的采集处理和特征提取方法。 图32本章研究工作路线图 3.1苹果病害图像采集及识别 3.1.1苹果病害及其病变图像特征 果类作物在生长周期当中,由于肥料、虫害的影响[126],或者受气象条件(气温、日照、湿度等)、土壤条件(含水量、重金属含量等)以及生物学特性(根系、叶面吸水能力等)、农业措施等因素的关联,常常会发生病变。常见的发病部位为树干、树叶、果体和树根,病变器官的视频图像信息可通过物联网的图像传感器和手持移动成像设备获取。 以苹果轮纹病为例[127],在基于知识库的专家系统里,其特征提取和治疗的文字描述如图33 所示。 该病主要发病在华北、东北; 一般果园发病率为20%~30%。症状: 病位为枝干及果实。初期表现为暗褐色水渍状的小斑点,慢慢扩大长成椭圆形深褐色的瘤状组织; 后期病位组织干枯并翘起,中央向上凸出,周围可见散生的黑色小斑点,慢慢扩大发展为轮纹斑。治疗: 强化肥水管理,休眠季节清除病残体和刮除病斑。果体用果套袋进行保护,预防烂果病滋生。刮祛病毒组织处,涂适量的浓度75%甲基硫菌灵粉剂和植物油,治疗效果更佳。 图33苹果轮纹病的症状及其防治 某个部位发生病变,在器官的外貌上一般有比较显著的表现。苹果的常见疾病及其代表性的病害图片如图34 所示。有些病变,单个病斑比较小,但是会出现较大面积的病斑分布, 图34苹果常见疾病的标签树 例如苦痘病和黑星病; 有些病变,一般只发生单个病斑,但是病斑面积较大,它的识别需要采集完整的病斑,例如轮纹病; 还有一些既可能有单个,也可能有多个,同染病个体、疾病成长不同阶段时期都有联系,如炭疽病初期以星状小斑的形式出现,中期开始溃疡,后期相邻病斑点合并呈现溃疡状,植保专家往往将其划分为轻度、中度和重度,疫腐病就是如此; 有些病斑形状比较规则,呈圆面状,如轮纹和疫腐病,圆心显著的圆面状如炭疽,似圆孔状如黑星和苦痘病,有些病变形状和区域呈现不规则的云状,例如锈果病; 病变往往也会表现出不同颜色,黑星病在青果上呈现深青,在熟果上呈现深红色乃至黑色,锈果病有褐色斑和绿褐色斑。 不同病害,在果体体表留下不同病斑,根据病斑在斑点大小、形状、颜色、纹理分布等可视化特征,可以对果体所感染的病变类别做出一定置信度的判别,再结合果园气象感知、土壤墒情感知以及其他环境感知等信息,也能对当前果园生长环境下某病变发生概率给出一定置信度的预测,综合二者就可能得到关于病果较为科学的诊断结论,为后续响应和预警提供依据。因此,病害图像的识别和分类成为解决问题的关键。 3.1.2基于图像的病害识别 基于图像的果体病变模式识别,必须提取图片的某些特征,如颜色特征和纹理等,并且反复训练机器,力争使机器学会建立从特征空间到目标病害空间的正确映射,执行类似植保专家根据纹理和特征从疾病角度对其进行分类和识别。 纹理是被人们普遍接受的一种视觉现象,但是其精确定义尚未形成。它起源于表征纺织品表面性质的纹理概念,可以用来描述物质组成成分的排列情况。例如,医学上X射线照片中的肺纹理、血管纹理、航天(或航空)地形照片中的岩性纹理等。图像处理中的视觉纹理通常理解为某种基本模式(色调基元)的重复排列。纹理指的是图元(element)呈现一定布局或者排列所形成的重复模式。图元指的是肉眼所能观察和界定的认知和描述单位,分布排列指的是彼此之间的相对空间关系、病变形状,以及多个病变所构成更大的感染区域。纹理模式可以通过亮度图片来表达,而颜色特征具体分解为RGB分量,也可以亮度图片的形式表达,通过已知标签样本的这些特征训练神经网络得到多个分类器。从未知标签的样本提取同样特征,输入多个分类器,得到结果,再通过一个表决算法来确定最终标签。图35 展示了一个抽象的病害识别网络。 图35基于病变图像的病害识别网络 考虑到模型的简化,一些知名的识别模式都没有考虑颜色特征,而只考虑了其他可视化特征,例如字符和人脸、表情的识别,也包括一些病变模式识别。然而,对于人脸和字符等,颜色特征对其标签确定的贡献和影响甚微,或者不相关,而且字符和人脸的标签体系简单,变化复杂性相对有限; 病变模式作为一种生命现象,变化复杂而多样,采集环境也有复杂性,不同时期,果体颜色会随之变化,颜色特征对识别又有一定的影响。 大体来讲,苹果疾病类型为10个,而发病之后的病斑表象千变万化,往往受到颜色、病期、形状、果期等诸多因素影响,而有成十上百种可能。必须用分布在尽可能多的情况下的大量样本训练分类机器,机器才可能分类识别在不同情况下的测试样本。例如,图35 的模型就从原始图像分离出R分量、G分量、B分量和亮度分量,分别输入4个分类器,给出4个判别向量,再汇入到表决器,表决得到模式最大似然类别。 3.2病害图像的预处理 3.2.1图像整形和采集方位多样性仿真 在果园中,视频感知设备(摄像头)和感知对象(病果)从数量上是多对多的关系。理论上,设备可以在任意点位置对目标进行图像采集,但是,考虑到最佳的成像距离和成像角度,则设备位置受到一定约束,只能在成像效果较好的位置进行拍摄。在设备和目标都固定的情况下,设备拥有最佳的监控空间,而目标则拥有多个最佳成像位置,这就是成像方位多样性,这种多态是三维空间的多样性。如图36 (a)所示,对于远处的病果目标,中心位置的设备,即在等高正对位置拍摄,能得到最好的图像,但是在一定范围内移动位置,也能采集到近似于最佳的图像。然而,限于成本考虑,人们无法通过加装设备得到最佳成像空间的连续图像采样,而人类专家可以通过自身移动采集到连续图像样本,并接受样本训练,从那里获得知识,最终得到正确判断。要让机器也学到类似人类专家的知识,必须提供一个类似肉眼采集的连续样本集合。如何解决物联网环境下这个矛盾,这里提出了二维空间的旋转变换,在一定程度上仿真方位多样性。 图36成像的多态性 1. 模式的2D旋转变换 某个病变部位,可以构造一条轴心线,镜头可从不同的角度对其拍摄,这样取景框长边和轴心线就构成角度α,α不同就在取景框中得到不同的病变图像,标记为img_αi。如图37 (a)所示,这些病变图像都是同一疾病在不同参数下在图像传感器上的体现,本质上,应该被识别为同类疾病。 但是对于学习网络而言,却意味不同的图像,有着不同的类标签,对于采集测试样本和训练样本,α是随机的。病变部分生长的空间位置是不确定的,其三维坐标影响α,视频传感器取景镜头的安装满足一定布局规则,它和病变部位的相对位置也制约α。这样,训练和测试样本采集都带有很大的随机性,相比之下,基准图像集合的采集环境的可控性有很多优势。例如: 拍摄人脸时,可以要求受试对象坐正,改变表情和局部动作来采集不同图片,旋转变换基本上没有干扰图片。特别是,当α间隔大于某个值时,目标类别的受训样本常被遗漏,网络就没有接受过对应的训练,找不到相似度显著的样本,错误判别就急剧上升。 在不能保障任意α的样本为网络所学习的情况下,应该确保与之α最近的样本训练过网络,而且这个训练样本会与前者有显著相似度,这样就能在测试前者时具有较佳的匹配目标,而不至于游离出错。在实验中,主要采用了低密度和高密度两种方式的旋转变换,对于方形整形的图像,以重力方向为参考,感知的图像呈现某个旋转夹角,病变类别没有改变,而识别系统感知得到不同的图像模式。为了消除旋转对识别的干扰,同时忽略旋转产生的区域溢出,在数据集加入4个角度旋转,以90°为旋转间隔,得到不同的样本集合,首行前4个没有旋转,其右4个顺时针旋转了90°。如图37 (a)所示,这种方式简单直接,样本集合小,适合训练较慢的学习算法; 对于圆形整形的图像,旋转间隔可以是360°的任意因子,如图37 所示,得到以72°为间隔的仿真图像集合,这种方式产生样本集合大,适合训练较快的算法,较好地仿真方位多样性。 图37病变图像的整形和旋转 2. 图像整形处理 取景框采集到的图片都为矩形,如 图37 (c)所示,用户关心的是果体外表的某个局部发生了病变,并呈现了异常的外貌特征,通过传感器捕获的图片和识别关注的病变部位相比,往往包含了诸多杂物信息和其他元素,如叶片、枝条、果梗、天空等一些和病变识别无关的信息。显然,它们无助于识别,且容易对识别产生干扰,这里通过矩形抓取过程剔除无关信息,得到 图37(d)。手工截取方式获得的图片大小不一,不适宜于用规格化的矩阵来保存和机器统一学习测试,因而重构为28×28的方形矩阵,得到方形图片,如图37(e)和图38所示,从外观上保证了相似性,这就是病变图像的整形处理。 图38方向干扰的病变图像 在旋转变换过程中,方形无法做到无损变换。 图37 (a)展示了45°旋转前后的图片对比,旋转之后,方形之外的4个三角区域的有效信息被截除,方形之内的4个白底色的三角区域替代进来,得以维持原来的方形,这样,旋转后的图片与旋转之前相比丢失了很多有效信息,严重失真,并且不同的旋转角度,失真信息量完全不同,直接影响识别。为了避免因旋转而造成的图像信息失真,方法之一就是前面所提到的低密度旋转变换,将间隔固定在90°,但是,该变换简单,过于稀疏,离真实的方位多样性相差甚远。 为了消除因旋转而造成的失真,设计了病变图像的圆形区域截取方法。在方形区域,以方形中心为圆心和方形边长为直径的圆形区域截取出来,作为病斑图像样本,圆形和方形之间的区域被0亮度填充,如 图37(f)所示,这个过程就是圆形截取方法。圆形截取之后的样本以任意角度旋转之后,有效区域没有失真,溢出部分都是0亮度填充区域子集,旋转前后的方形围成的三角形区域还是为0亮度填充,维持旋转之前的无效区域的现状,如图37(b)所示。这样的旋转变换,信息没有任何失真,完全满足模拟任意角度取景得到不同的 img_αi 的要求。圆形截取算法如图39 所示。 算法: 求边长为nOutputSize像素的方形RGB图片A的圆形截取,圆形直径为nOutputSize像素 [y] = meshgrid( 1 :1:nOutputSize); r=nOutputSize/2; x=x-r; y=y-r; circle_mat = x.^2 + y.^2; L=(circle_mat<=r*r);%得到逻辑圆形过滤矩阵 L=uint8(L); B(:,:,1)=A(:,:,1).*L;%对RGB 分量进行过滤 B(:,:,2)=A(:,:,2).*L; B(:,:,3)=A(:,:,3).*L; return; 图39病变图像圆形截取算法 3.2.2图像采集亮度多样性和多样性组合 受多种因素干扰,果园光照条件也比较复杂。例如,太阳光照角度的周期性运动,遮挡云层的随机变化,阴晴雨雾天气的不可期性,还有传感器和目标果体的相对方位等因素都影响病变图像的亮度和平衡。如图36 (b)所示,果体背光一面和当阳一面明显有着不同的亮度,再如图36 (c)所示,在天气阴暗时,监控环境的亮度也明显不同,同样病变类别,识别系统会感知得到不同的图像模式。 对于某个目标,在不同的亮度环境下,图像感知设备采集得到不同的图像样本,这就是亮度多样性,它受光照周期性变化影响,也受很多其他随机性因素的影响。对应样本的亮度多态性,人类专家同样会接受亮度多态的病变样本训练,从中提取得到和亮度干扰无关的病害类别信息,建立对亮度多态的适应能力。亮度过强和过弱都不利于图像识别,然而,在合理区间中,不会对图像识别造成干扰。显然,在“合理区间”的亮度多态,是一个连续采样空间,图像感知设备很难通过变换时间采样来获得因随机性因素所导致的亮度多态性,从成本考虑,对于各类病害的病果,获取合理区间的不同亮度的图像样本,在实际操作中也很不现实。 为了仿真图像采集的亮度多样性,消除光照环境对识别系统的扰动,模拟施加若干级别的亮度干扰,对处于某个区间的像素点亮度进行提升调整,对区间之外的像素亮度进行降低或者保持不变,保证在亮度多态性环境下,病变模式的对比度保持合理的稳定性,不至于对识别造成很大的干扰。亮度区间的长度一般取0.5,如式(31) ,n为仿真的亮度级别,i为n级仿真下的亮度序号,当n=5,分别仿真4级亮度: [0.32,82],[0.38,88],[0.44,94],[0.50,1.00]和默认值。例如,图310 示意了在5级亮度多态下,6个病害的苹果病变图像样本。 0.26+ 0.24 n-1 i,0.76+ 0.24 n-1 i , 1≤i≤n-1 (31) 实际情况下,样本往往存在多态性组合情形。结合方位和亮度两类多态性的仿真,假设方位有m级模拟,亮度有n级模拟,这样1个原始样本就得到n×m个干扰后的图像模式,它们是在不同环境下对同一病害病变的刻画。要准确地识别病害,训练系统必须在携带不同表象的模式中进行,才可能提取到稳定的病变本质特征,确保物联网系统在复杂多变的监控环境下都能对病害异常图像执行准确识别并作出及时响应和预警。 图310亮度干扰的病变图像 3.2.3图像灰值化和稀疏化 图像的颜色分量有3个,因为颜色分量作为输入参数过多,同时,基于非颜色特征的图像识别颜色参数并不发挥作用,因此,在考虑非颜色特征的训练模型上,忽略颜色参数不会影响模式的训练识别,而且减少模式输入能降低不相干特征对训练网络的干扰,因此,通常的做法是将图像灰值化得到灰度图,这个过程就是图像灰值化。如图311 (b)所示就得到了原始病斑图311 (a)的灰值图。 图311图像灰值化和稀疏化及其特征点 病斑图像的纹理、边线、轮廓等目标特征点和图像背景的对比有着密切的关系,如图311 (d)所示,但是从像素数量上,一般远远小于背景。当背景的平均亮度远远大于目标特征值,背景信息对学习网络的作用,淹没了目标特征对学习网络的影响,这非常不利于模式特征提取; 在任何时间,人们都希望网络主要接受目标特征的训练,才能对基于目标特征表达的样本表现很好的识别性能。图像上大部分的像素点具备很小的亮度值(甚至近似于0),而很小的一部分像素具备较为显著的亮度值,从矩阵的视角,图像就成为一个稀疏矩阵,以此为目标的变换过程称为图像稀疏化。在图像样本的训练网络中,常常执行稀疏化步骤,如MNIST的手写字符图像样本就是典型的稀疏化图像,如图311 (e)所示。一般而言,与原始图像相比,稀疏化的图像能有效减少冗余信息造成的识别误差,提高识别精度。 疫腐病病变图像PCA稀疏化后如图311 (c)所示。注意到: 灰度图的矩阵中,值=0为黑点,值=255为白点。轮廓和纹理特征隐约可见,冗余区域为黑,和图311 (b)相比,冗余信息基本去掉,稀疏化程度明显,模式的无效数据数量大大降低。 3.3病变图像特征提取及方法 毋庸置疑,特征提取在模式识别和分类过程中扮演着重要角色,很大程度上决定了最终性能。一直以来,人们习惯于依赖人工经验来抽取样本的特征,进而追求框架的分类或预测功能,这时,特征的好坏就成为整个系统性能的瓶颈。事实上,发现一个好的特征架构,要求开发者对亟待解决的行业问题要有很深入准确的理解,这往往达到了“资深专家”水平,而要触及这个“火候”,往往需要长期反复摸索,甚至是“十年磨一剑”。因此,人工设计样本特征框架不是一个可泛化的途径,而且效率很低。 在人类对图像的理解过程中,认知结果是由形象思维活动得到的,这种思维以具体的形象或图像为思维内容的思维形态。图像是形象思维的主要表达载体,它对问题的反映是“粗线条式”的反映,对问题的把握是大体上的把握,对问题的分析是定性的或半定量的,所以,形象思维通常用于问题的定性分析,而抽象思维可以给出精确的数量关系。基于图像的特征提取,带来了很大的伸缩性和灵活性,不能再局限于使用精确定量的方法来提取特征和表达相似性。 假设知道图片“左上水平方向”存在端点,“右上”区域有个“下弯拐角”,下部沿着垂直方向有个端点。我们就大致可以判断该输入数字模式为“7”; 如果角落在正上方,模式可能为“1”。“左上水平方向”“右上”“下弯拐角”这些特征都是比较模棱两可,可能存在成百上千种多态性,精细地表达极其困难。在形象思维里面,“7”就是“7”,一看就知道,简单而直接。大脑已经通过反复的学习,记住了这个“模式”,大脑比较输入模式和记忆模式就能在很短的时间给出判断。 如何通过机器学习来模拟人脑对图像模式的学习和特征提取成为人工智能领域的研究热点。其中,线性分析降维方法、半监督学习降维方法和深度学习方法受到了学者的广泛关注。 3.3.1数据相关性分析降维的特征提取 由于物联网和传感器设备在生产中大量应用,数据产生的速度越来越快,数据规模也越来越庞大、结构愈发复杂。由于维数过高,在分析处理这些数据时会出现“维数灾难”问题。例如: 在可视化分析时,由于维数过多,使得投射后的视图杂乱无章,难以发现主要特征; 在分类和聚类时,高维数据使得学习网络的连接参数剧增,网络收敛对训练次数和训练样本数量、均匀性,以及训练时间的需求也急剧增加,经常超出实际承受能力,而不可行。降维是解决这一问题的直接方法,通过行之有效的方法将样本降至维度可接受的低维空间,同时,希望降维过程样本保持目标分析方面的不变性,再在低维空间对数据精细可视化、聚类等分析,从而发现原高维空间数据隐藏的规律,因此,探索降维效果明显、目标分析相关不变性维持度高的降维方法成为数据处理分析领域的一大研究热点。 降维往往出于满足多方面的目标: 压缩、可视化数据、聚类、分类等。它去掉了一些特征,也保留了部分特征,但是,剔除特征的依据是基于算法本身的分析,而不是考虑到最终目标任务。我们的任务是提取病变模式特征,识别病害类型,它保留下来的特征是不是病变模式识别任务所欲提取的特征,还是一个疑问。 PCA方法是应用很广的降维方法,方法的基础是方差分析,其中一个最基本的假设: 在投影方向上观测数据分布的方差,方差大则其特征值越大,则该特征向量该方向越能体现数据中的主要信息。由于特征向量所要求的正交性,以及特征向量个数小于或等于空间维数,原始观测数据投影到这个空间里时保留了原始方差较大的方向的信息,就可以选出原始观测数据的主要成分,也就是主要特征,剔除非主要特征,达到降维和特征提取的目标。能否将PCA方法应用于病变模式识别的特征提取,将在第4章进一步研究。 3.3.2半监督学习的降维特征提取 基于数据自身相关性分析的降维,能服务于多个目标任务,却没有结合任何一个任务,或者降维过程接受任何一个任务的指导,往往在各个任务执行过程中的表现都是差强人意。有学者丢开了基于数据分析的老路,提出了以玻尔兹曼机半监督学习为基础,预备训练降维网络,得到初始状态良好的网络,再以数据降维重构为目标,反复精细训练网络,最后得到具备降维功能的网络,称之为稀疏自动编码网络。实验数据显示,这种降维在重构、可视化等目标应用方面都表现了较好的性能。 玻尔兹曼机是基于能量函数的抽象模型,在能量服从玻尔兹曼麦克斯韦分布的气体封闭空间,在恒温状态下,气体分子能态变迁(运动速度变迁)不是从高能态变迁到低能态,而是从低概率能态变迁到高概率能态,在永无休止的分子碰撞中,分子的速率总是朝着发生概率最大的速率变迁。“概率最大化”方向的梯度上升方法就是玻尔兹曼机网络学习的方向,这个方向没有接受“输出”的指导,故称之为无监督学习,该过程为网络参数(连接权值和偏置)准备好了一个良好的初始状态。再用这些参数初始化一个结构与降维网络对称的重构网络,它与降维网络串联得到了一个完整的监督学习网络,它通过比较重构样本和原样得到网络误差,误差最小化的网络参数就是学习的方向,考虑到误差向量和原始样本有相同的高维度,梯度训练方法复杂度高,参数训练采样最优值更新方法,误差函数实验交叉熵,这个过程就是精细训练。训练过程既有监督学习,也有无监督学习,所以称之为半监督学习网络,也就是稀疏自动编码网络。 降维之后的维度,由网络结构决定,不像PCA和重构精度相关; 降维的性能可以通过反复监督训练而优化,但监督是基于非识别任务(重构),而PCA性能由样本本身数据的相关性决定而和过程无关,从特征提取的视角,上述过程就是半监督学习的降维特征提取。这是一个面貌一新的特征提取方法,其提取的特征是否适合病变模式识别,将在第5章详细讨论。 3.3.3监督深度学习提取特征和卷积网络 特征是样本的属性,属性是样本的维度,采用什么样的属性取决于观察的角度; 简单属性可以通过特征变换得到复杂属性,特征是“无穷特质”的概念。特征提取和样本分析任务密切相关,某个分析过程中,常常重视强调某些属性,而无视忽略其他属性。例如,“项目评审”过程中,学术水平、科研成果和能力的特征(如论文数量和级别、专利、获奖、指导硕士或博士等)受到重点关注; 而申请者的其他特征(如身高、体重、脸型等)基本被忽略。特征提取的准确度和任务完成的科学性直接相关。专家人工凭借经验抽取样本的特征,进而分类或预测功能,这时,特征提取的好坏,专家资源供应量和培养成本,劳动时间和效率就成为大数据分析系统性能的瓶颈。 病变图像识别需要提取图像特征,提取图像特征要瞄准病变识别任务。能否通过机器学习来模拟专家的培养过程,反复学习理解已经识别的模式,进一步学习“识别”任务必须重点关注的特征集合,从而自动提取特征集合,在提取过程中,自觉维持和目标任务的一致性,避免“提取”与“识别”的脱节。这种方法,就是监督学习的特征提取,如图312 所示,深度卷积网络就实现了类似的功能,并在手写数字识别应用方面取得成功。 图312Lecun 卷积网络 卷积运算作用于图像非常适合提取图像样本的特征,能在某种程度上维持特征提取对于平移、缩放、扭曲的不变性,而这些变换是图像采集元件常见的、难以回避的,却和图像表达目标不相关,本不该干扰图像模式识别。而浅层网络的实验证明,它是影响准确率和收敛的主要因素。一般而言,检测得到某个特征,则它和其他特征的近似相对位置影响着识别,而它的精确位置和识别关系不大。 当处理对象是图像时,能够使用深度网络学习到“部分整体”的分解关系。例如,第一层可以学习如何将图像中的像素组合在一起来检测边缘。第二层可以将边缘组合起来检测更长的轮廓。在更深的层次上,可以将这些轮廓进一步组合起来以检测更为复杂的特征。实现这个学习过程,卷积运算的作用相当重要。 深度神经网路已经在语音识别、病变模式图像识别等领域取得前所未有的成功。“深度”首先指的是隐藏层的数量。学习网络“越深”,训练的误差越小。隐藏层的大小即隐藏层含有的元件的数量。过少,则模型的灵活性可能不够; 过多,则模型趋于复杂; 一般取5~100的某个值。一个包括输入层、隐藏层以及输出层的三层神经网络很容易构造,尽管该网络对于MNIST手写数字数据集的识别非常有效,但是它还是一个非常“浅”的网络。“浅”指的是特征(隐藏层的激活值)只使用一层计算单元(隐藏层)来“得到”,或者说“提取”。反过来,通过引入深度网络,我们可以计算更多复杂的输入特征。因为每一个隐藏层可以对上一层的输出进行非线性变换,因此深度网络拥有比“浅层”网络更加优异的表达能力(例如可以学习到更加复杂的层次更高的模式特征)。 由卷积网络承担特征提取元件,执行特征提取功能,由高斯连接网络承担决策元件,执行识别功能,识别输出和观察值的误差函数,通过梯度下降方法,不断更新识别元件参数,继续相关更新提取元件参数,从而实现网络学习。网络在目标任务误差的监督下不断完善特征提取学习,更有潜力提取到符合目标任务的特征集。和PCA方法相比,它实现了机器学习,为特征提取性能的增长提供了空间; 和半监督学习提取相比,它的学习是识别任务监督下的学习,具有更强的针对性,理论上具有更大的优势。这是一个让人鼓舞的特征提取方法,其能否在病变模式识别过程,表现出提取识别的优越综合性能,将在第6章深入探讨。 3.4卷积运算和深度卷积神经网络 多层感知元网络是受仿生学启发而提出的学习网络,其单层功能单一,只能被动地根据误差调整权值,不能自动提取模式特征并逐步深层加工基础性特征,更不能根据误差自动优化特征提取算子,以至于在处理非结构化模式时表现低效。其次,学习网络的权值取决于各层权数量的累加,如式(32) ,n为层节点数量。学习图像模式需要数以万计的权,如此大量的自由参数增加了网络表达空间的容量,从而需要更大容量的训练集去覆盖所有可能的参数变化。再者,膨胀的存储需求使得算法不能运行于存储受限的嵌入式系统,也制约了层数和元件增长,使之难以胜任更加复杂的学习问题,因此有学者提出基于卷积的学习网络。 wn= ∑Li=2 ni-1×ni (32) 3.4.1像卷积运算 离散域的二维卷积如式(33)所示。其中,K是卷积核矩阵,其与矩阵A卷积得到A*K。卷积核又称为滤波器,不同的滤波器提取得到不同的特征。简单滤波器通过复合得到复杂的滤波器。 ∑ +∞ v=-∞ ∑ +∞ u=-∞ A[u,v]*K [m-u,n-v]=A*K (33) 式(34) 中,K是可分解的滤波器。 K′=aTb=a1 a2 a3·b1b2b3 (34) 则其作用于X的一次卷积如(35)所示 ,它可分解为2个卷积。 XK′=X(aTb)=(XaT)b (35) 一个灰度矩阵(图像)A(r×c的矩阵)与另一个矩阵K(n为奇数,n×m的矩阵称为卷积核)卷积运算大部分运用在图像处理上。例如用一个模板去对一幅图像进行卷积,把模板K旋转180°或者水平方向和垂直方向对折后放在矩阵上,平移使其中心元素对准要处理的元素,用模板的每个元素对位乘矩阵中所覆盖的元素,各个乘积累加之和就是卷积矩阵的对应元素。如此,遍历了全部元素就得到了卷积矩阵,简称卷积。 如图313 (a)所示,左边为卷积核K,K转180°后得右边,中心元素为1。原矩阵A为4×4的矩阵,如图313 (b)所示。K的中心元素“1”对准原矩阵A的(1,1)元素即“2”,核的边界相对于A则有溢出1列1行,为了方便对位乘,将A扩充1列“0”和1行“0”; 填充后的A的行数变为r+n-1,即6; 列数变为c+n-1,即6,这样卷积结果得到6×6的矩阵(见图313(c))。 图313矩阵卷积核的180°旋转和0扩充 根据卷积矩阵和A的大小关系,有3种类型的卷积: full卷积、same卷积 和valid卷积。 full卷积: 如果卷积后的矩阵大小为c+n-1,比A大,则得到末行的如图314 (a)所示的表。在MATLAB代码中用 conv2 (A,K,'full')表示,实际上卷积结果的行和列数量都在A的基础上有所增加。根据卷积定义,其第1行第二个元素3=1×2+1×1,其余类似。 图314矩阵的3种形式的卷积 same卷积: 如果卷积后的矩阵大小和A相等,则得到如图314 (b)所示的表; MATLAB中用函数conv2(A,K,'same')表示。其第1行第二个元素4=-1+3+1-2+1+2; 其余类似。 valid卷积: 如果卷积后的矩阵大小和A比缩小了,原矩阵不扩充,也不许卷积核溢出,只允许卷积核在A的里面滑动,卷积结果的行数为c-n+1,则如图314 (c)所示。 3.4.2卷积的局部、全局连接 BP神经网络是一个全连接网络。BP网络每一层节点是一个线性一维排列(从上到下)状态,层与层的网络节点之间是全连接的。这样设想一下,如果BP网络中层与层之间的节点连接不再是全连接,而是局部连接的。这就是一种最简单的一维卷积网络的雏形。如果把上述这个思路扩展到二维,这就是在大多数参考资料上看到的卷积神经网络。 全连接网络如图315(a)所示,如果有1000×1000像素的图像,作为输入,且第1隐藏层设计为1000000个隐藏层神经元,每个隐藏层神经元都连接图像的每一个像素点,输入和隐藏层之间就有10000002=1012个连接,即1012个权值参数。 局部连接网络如图315(b)所示,输入平面和隐藏层平面用同样的垂直切割为10×10大小的窗口,窗口在输入层平面的投影区域称为微格感知域数据,在隐藏层平面的投影区域称为微格感知域,同一投影下的输入数据和隐藏层元件全连接,不同投影的数据和隐藏层元件没有连接,两者之间的连接参数有100×100个。从整体的数据和隐藏层来看,则是局部连接。显然,这样的窗口有1002个,也就是说有10000个不同的投影,总体而言,连接参数总量为10000×10000=108,相对于全连接参数数量,减为其万分之一。 图315全连接和局部连接 3.4.3LeNet卷积神经网络及其特征图多对多组合 在经典的模式识别中,一般是事先提取特征。提取诸多特征后,再对这些特征进行相关性分析,找到最能代表字符的特征,去掉对分类无关和自相关的特征。然而,这些特征的提取太过依赖人的经验和主观意识,提取特征的不同对分类性能影响很大,甚至提取的特征的顺序也会影响最后的分类性能。同时,图像预处理的好坏也会影响提取的特征。那么,如何把特征提取这一过程作为一个自适应、自学习的过程,通过机器学习找到分类性能最优的特征呢? 卷积神经元每一个隐藏层的单元提取图像局部特征,将其映射成一个平面,特征映射函数采用 sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。每个神经元与前一层的局部感受域相连。注意前面我们说了,不是局部微格内连接(输入神经元、神经元神经元、神经元输出)的权值相同,而是同一平面层的连接权值相同,有等量位移、旋转不变性。每个特征提取后都紧跟着一个用来求局部平均与二次取样层。这种特有的二次特征提取结构使得网络对输入样本有较高的畸变容忍能力。也就是说,CNN通过微格感知、共享权值、下采样保证图像对位移、缩放、扭曲的鲁棒性。 在前面3.3节中,图312 展示了一个5层的深度卷积学习网络,它最早在手写数字字符模式识别方面得到成功应用,简称LeNet5[128]。 (1) C1(卷积层1)。输入图像是32×32的大小,局部滑动窗(微格窗口,用patch表示对应权值称为patch矩阵,用Pk表示)的大小 是5×5的,由于是valid卷积,则卷积后的矩阵大小为28×28,32-5+1=28,也就是C1层的特征图(feature maps,不同于image,其指的是通过透镜或镜子而形成的视觉复制品) fmapk 大小是28×28。微格窗口有5×5个权值,相邻的patch的列(行)中,有4列(行)相同,patch当中的点加权和得到单个点,因为patch重叠,而不具备压缩功能,相对于原图,特征图有稍微缩小。这里采用6个不同的patch矩阵 Pk,得到6帧不同的特征图。堆叠一起,成为特征图长方体。用“C1 f. maps 6@28×28 28×28 ”表示。 (2) S2(下采样层2)。S2层是一个下采样层(subsampling layer)。简单地说,由4个点(2×2,为1 patch)下采样为1个点,也就是4个数的加权之和。因为每窗不重叠,不是卷积,这过程的压缩比为4∶1。在一些关于深度学习的教程中,这个过程叫做Pooling(有学者称为池化、淤积)[35]。28×28= (2×2)(14×14),卷积后的1个特征图下采样得到1个(14×14)采样特征图,这样,此层就有6个特征图,连同分辨率用“S2 f. maps 6@14×14”表示。 (3) C3 (卷积层3)。根据对前面C1层的理解,很容易得到C3层的特征图大小为10×10,不同的是C3层输出了16个特征图,它们由10个采样特征图卷积而来。没有采用“一对一”的变换,而是“多对多”。S2层有多个特征图,那么,只需要按照一定的规则组合特征图将得到16个组合,然后,每个组合参与一个卷积得到特征图,多个组合则可以得到多个C2卷积特征图。要求得到16个图,“S2 f. maps16@10×10”的表示同理可得。 具体的组合规则如图316所示。6个特征图按顺序编号排列成环形队列,先取相邻3个为一组得6组; 再取相邻4个一组得6组; 再取相邻5个一组,剔除中间位置的特征图,还是4个1组,只取前面3组,得3组; 最后6个一组,总计可得16组的16个卷积特征图。LeNet5系统中 的组合关系图如图316所示,X: 表示连接。 例如,对于C3层第0张特征图,其每一个节点与S2层的第0,1,2张特征图,它们用P0的卷积核卷积之后累加得到C3层第0张特征图; S2层的第0,1,2张特征图共用了P0,这种现象就是权值共享。后面依次类推。这里,特征图的组合可以变化,卷积算子也可以变化。 图316S2C3的组合和特征图连接 (4) S4层。是在C3层基础上下采样,特征图数量不变,边长缩小到一半,即5=10/2,分辨率变为5×5。 (5) C5层。卷积后的特征图变单点,称之为特征值(feature value),16个图形成120组,每组参与卷积,得到120个特征值。组合规则同前,不再赘述。 (6) F6层。此层有84个输出特征值,同BP网络的一样,输入和输出之间为全连接,全连接权值矩阵记为FFW,其结构为120×84。 (7) 输出层。10类标签,对应于10个数字字符(0~9),此层也为全连接,其FFW的结构为84×10,激励函数采用高斯函数[113],而没有sigmoid函数[129]。 这样,两类神经元复合组成多层CS层次结构,逐步地加深特征的提取加工,利用BP算法训练C算子和S算子,该网络称为卷积神经网络 (Convolutional Neural Network,CNN),可以看出:其完全不同于基于感知元学习的传统神经网络。CNN理念来自视网膜研究的最新成果,实际上,卷积算子模拟C神经元[130]功能自动进行感知域特征提取,用采样算子模拟S神经元过滤模式的冗余信息,从而消除其对学习网络的干扰。通过卷积算子对局部感知域的响应,神经元能提取诸多基础性视觉特征,如: 方向性边沿、端点、角落等。这些特征在后继层中不断被加工、组合,而且加工层次不断加深,进而提取高阶特征,这个过程称为深度卷积学习。理论上,它完全可以使用于病害模式的监督学习特征提取,但是,性能和效果上的表现因相关研究实验工作缺失,尚不可知,然而,它在相关应用上的成功让人们对它充满期待。 3.5本章小结 基于作物病害图像的病变模式识别对于提高物联网化的、设施化的农场、果园的作物生产管理的智能化、自动化水平和管理效率有着积极意义。与广泛使用的基准数据集相比,农场果园视频感知设备采集环境复杂,充满着多种干扰,定点、移动方式都难以保证在受限条件和有限样次数下,采集到代表性图像在各状态下分布均匀的样本,同时,在形成适于实验样本之前,必须完成消除噪声、规格化大小等操作。本章以苹果为例,介绍了病害图像采集和病变识别,提出了病害图像预处理过程及其方法: 整形算法、方位多样性仿真、亮度多样性仿真、灰值化和稀疏化方法,阐述了基于计算和机器学习的特征提取方法。