一种基于高光谱成像的苹果品种快速鉴别方法与流程

文档序号:12357839阅读:560来源:国知局
一种基于高光谱成像的苹果品种快速鉴别方法与流程

本发明涉及一种品种快速鉴别方法,具体地说,涉及一种基于高光谱成像的苹果品种快速鉴别方法。



背景技术:

苹果在世界果品市场上占据着重要地位,是备受消费者青睐的“全方位健康水果”。我国苹果的栽培面积和产量均居世界首位,且非常重视良种选育和引进工作,使市场上新品种层出不穷。有些品种成熟期、外形、色泽、风味差异较大,感观易于辩别;有些则成熟期、大小、着色、口感均比较接近,非专业人员品评辩识准确率不高,更难以在采后处理流水线上快速鉴别。由于不同品种的田间栽培条件、采后贮藏特性、价格均差别较大,生产中急需一种简便、无损的苹果品种快速鉴别方法,以期为苹果产中合理管理,售中货真价实,保护生产者和消费者双方的利益提供理论与技术依据。

目前,国内外学者在鉴别物质品种的研究方面主要采用了近红外光谱技术(NIRS),根据全谱段或多波长下的光谱数据对待测物进行定性或定量分析,从而反映待测物的类型或有机物的含量。有人利用近红外光谱技术对葡萄、梨、苹果、草莓、鲜枣和杨梅等水果品种进行鉴别。此外,还有对水稻、玉米和小麦等经济作物品种鉴别的研究报道。然而,近红外光谱技术只提供对检验客体某一较小区域的光谱信息,无法得到样本的空间信息,因而存在检测范围小和信息获取量少的弊端。

高光谱成像技术结合了传统成像技术和现代光谱技术,能够在更大范围内同时获取样本的光谱信息和空间信息,对于生物材料的光谱学特征差别识别的敏感度高,因此能全面的反映被测物的种类及品质。张初等采用高光谱成像技术对西瓜种子品种进行鉴别,发现经过SG平滑算法对光谱进行预处理后,基于特征波长选择所建立的极限学习机(ELM)模型取得了最佳效果,对建模集和预测集的识别准确率均达到100%;Wang等利用高光谱成像对稻米品种进行鉴别,发现基于数据融合的逆反馈人工神经网络(BPNN)对稻米品种的识别率达到最高,为94.45%,优于单独基于光谱数据(89.91%)或图像数据(88.09%)的结果。Liu等利用高光谱成像对3个荔枝品种进行分类,得出支持向量机(SVM)分类模型对校正集和预测集的识别率分别为100%和87.81%。目前,还没有高光谱成像技术应用于苹果品种的鉴别中,苹果品种快速识别技术尚无报道。



技术实现要素:

本发明的目的在于弥补现有技术中苹果品种快速识别技术的空白,提供一种基于高光谱成像的苹果品种快速鉴别方法,该方法是快速鉴别苹果品种的更准确、更简便的新方法,并且采集各品种不同的近红外高光谱谱图也可以用来丰富苹果品种个性资料,作为指纹鉴定、变异鉴别的依据。

其具体技术方案为:

一种基于高光谱成像的苹果品种快速鉴别方法,包括以下步骤:

步骤1、高光谱图像的采集

在高光谱图像数据采集前需要对镜头焦距进行调整而且要保证平台移动的速度、相机的曝光时间和光源的相互匹配以保证采集的图像能够清晰不失真,经过多次调整及参数优化,最终确定高光谱摄像机的各参数如下:平台移动速度为20mm/s,相机的曝光时间为10ms,物距为200mm,采集到的高光谱图像大小为320×256×255(像素×波段数,即每个样品采集255个波长下的像素为320×256的二维图像),采集光谱时,每次将1个苹果样本放于载物台上,保持果柄-花萼轴为垂直方向,使载物台中心对准相机,当平台移动时,近红外高光谱仪从上往下扫描样本,每次扫描得到1行图像的光谱信息,平台带动样本运动的过程中,获取其他位置直至整个样本的光谱信息,为了消除苹果表面形状以及色泽差异对光谱采集的影响,对每个苹果样品均进行2次光谱采集,第1次采集果柄面,第2次采集果顶面,将2次光谱反射平均值作为该样品的光谱数据,以同样的方法依次采集各品种共90个以上苹果(每品种各30个以上)的高光谱图像;

步骤2、光谱校正

为了消除因苹果形状差异、光源强度在各波段下分布不均以及摄像头中暗电流存在而产生的噪声影响,需对获得的高光谱图像进行黑白标定,首先对反射率为99%标准白色校正板进行图像采集,得到全白的标定图像W,然后关闭光源拧上镜头盖,采集全黑标定图像D。图像校正公式为:

<mrow> <mi>R</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>0</mn> </msub> <mo>-</mo> <mi>D</mi> </mrow> <mrow> <mi>W</mi> <mo>-</mo> <mi>D</mi> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

式中:R0为原始的高光谱图像,R为校正后的图像;

步骤3、ROI区域的选取

利用ENVI 4.7软件,对图像经过滤波和形态学算法处理后,选取苹果的果柄面和果顶面分别作为感兴趣区域,求其反射光谱曲线,将两面的反射光谱的曲线进行数据收集并取反射光谱平均值作为数据集合;

步骤4、K近邻算法计算

K近邻的基本思想很直观,在已知类别的训练样本中为未知类别的待测样本找到最相似的K个训练样本即K个近邻,根据这K个近邻的类别来判断待测样本的类别;

其中K值需要事先指定,一般需要在实验中采用交叉验证来确定合适的取值,根据某固定距离选取该距离内的所有训练样本作为近邻来判断待测样本的类别;

对于n维空间中的两个样本X(X1,X2,···,Xn)和Y(Y1,Y2,···,Yn),采用的距离度量方法及其计算方法如下公式(2)-(11)所示:

<mrow> <msub> <mi>d</mi> <mrow> <mi>c</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mi>b</mi> <mi>l</mi> <mi>o</mi> <mi>c</mi> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>|</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

dchebvchev(X,Y)=max|Xi-Yi|(i=1~n) (3)

<mrow> <msub> <mi>d</mi> <mrow> <mi>c</mi> <mi>o</mi> <mi>r</mi> <mi>r</mi> <mi>e</mi> <mi>l</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>cov</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>V</mi> <mi>a</mi> <mi>r</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mi>V</mi> <mi>a</mi> <mi>r</mi> <msup> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>&prime;</mo> </msup> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>cos</mi> <mi>i</mi> <mi>n</mi> <mi>e</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&times;</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <msqrt> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mo>&times;</mo> <msqrt> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>e</mi> <mi>u</mi> <mi>c</mi> <mi>l</mi> <mi>i</mi> <mi>d</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>h</mi> <mi>a</mi> <mi>m</mi> <mi>min</mi> <mi>g</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>#</mo> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> <mi>n</mi> </mfrac> <mo>,</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>j</mi> <mi>a</mi> <mi>c</mi> <mi>c</mi> <mi>a</mi> <mi>r</mi> <mi>d</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>#</mo> <mo>&lsqb;</mo> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>&cap;</mo> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> <mo>)</mo> <mo>&cup;</mo> <mo>(</mo> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> <mrow> <mo>#</mo> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> <mo>)</mo> <mo>&cup;</mo> <mo>(</mo> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>min</mi> <mi>k</mi> <mi>o</mi> <mi>w</mi> <mi>s</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mroot> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mi>p</mi> </msup> </mrow> <mi>p</mi> </mroot> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>s</mi> <mi>e</mi> <mi>u</mi> <mi>c</mi> <mi>l</mi> <mi>i</mi> <mi>d</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <mi>X</mi> <mo>&OverBar;</mo> </mover> </mrow> <mrow> <mi>V</mi> <mi>a</mi> <mi>r</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mfrac> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <mi>Y</mi> <mo>&OverBar;</mo> </mover> </mrow> <mrow> <mi>V</mi> <mi>a</mi> <mi>r</mi> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>s</mi> <mi>p</mi> <mi>e</mi> <mi>a</mi> <mi>r</mi> <mi>ma</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mn>1</mn> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>k</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mfrac> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> <mn>2</mn> </mfrac> </mrow> <mo>)</mo> <mo>(</mo> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>k</mi> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mfrac> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> <mn>2</mn> </mfrac> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>k</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mfrac> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> <mn>2</mn> </mfrac> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>k</mi> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mfrac> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> <mn>2</mn> </mfrac> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>

在已知待测样本的K个近邻的类别时,待测样本的类别有不同的判断方法;

dcityblock,dchebychev,dcorrelation,dcosine,deuclidean,dhamming,djaccard,dminkowski,dseuclidean,dspearman分别是10种距离的名称,Xi,Yi分别为两个样本在n维空间各个特征向量。

进一步,步骤4中所述判断方法包括:最直观的方法是找出这K个近邻中出现次数最多的类别来作为待测样本的类别,更完善的方法是将近邻与待测样本间的距离作为权重来计算这K个近邻所属类别的重要程度,加权统计得到最重要的类别来作为待测样本的类别。

进一步,步骤4中K=1时,利用seuclidean和chebychev距离算法,以及K=3,5时,利用chebychev,euclidean和minkowski距离算法在五折交叉验证中的分辨准确率都高达100%。

与现有技术相比,本发明的有益效果:

本发明采用近红外高光谱技术,通过一系列的图像处理,得到三类样品在近红外全波段的平均反射光谱值,然后通过Matalab的函数及运算命令建立了K邻近算法的数学模型,利用该模型进行计算可以正确识别苹果品种,最高识别正确率能达到100%。

本发明并没有使用单纯的化学计量算法进行分类,而是使用了机器学习的方法,可以利用更少的数据量得到更加准确的结果,使过程更加简便,结果更加准确。

以上结果表明生产上可以利用近红外高光谱成像技术在900-1200nm波段下的吸收值结合KNN机器学习的方法来设计检测机器来快速正确的鉴别苹果的品种,以期用于建立一个用于苹果种类鉴别的高光谱指纹图谱。

附图说明

图1是高光谱图像采集系统示意图;

图2是苹果果实的ROI区域的选取示意图,其中图2a为果柄面,图2b为果顶面;

图3是不同波长下三种品种苹果的平均反射强度。

具体实施方式

下面结合附图和具体实施方案对本发明的技术方案作进一步详细地说明。

本发明采用上市期有交叉,并均着红色的‘乔纳金’、‘红富士’和‘秦冠’3个品种的苹果为试材,逐一采用近红外高光谱成像获得各苹果的光谱数据,提取并分析各个苹果感兴趣区域(ROI)的光谱反射平均值,结合K临近算法和支持向量机的建模方法,实现对苹果品种的分类鉴别,该方法是快速鉴别苹果品种的更准确、更简便的新方法,并且采集各品种不同的近红外高光谱谱图也可以用来丰富苹果品种个性资料,作为指纹鉴定、变异鉴别的依据。

1材料与方法

1.1试验材料、设备及软件

试验用苹果‘乔纳金、‘富士’和‘秦冠’分别于2015年9月20日、10月14日、10月20日采于陕西白水县西北农林科技大学苹果试验示范站果园。采后当天运回西北农林科技大学实验室,置于室温下裸果温度平衡24h。对各批采收的苹果均选取大小相近、着色均匀、无机械损伤的果实30个,逐一编号,1~30号代表乔纳金,种类代号为1;31~60代表红富士,种类代号为2。61~90号代表秦冠,种类代号为3。

该研究中高光谱图像采集系统结构如图1所示。该系统由1台近红外光谱仪(ImSpectorN17E型,Spectral Imaging Ltd.,芬兰),1台像素为320×256的面阵CCD相机(XEVA2616型,XenICs Ltd.,比利时),1套高稳定性的卤钨灯白光光源,1台高精度的电控平移台装置和计算机等组成。近红外高光谱成像系统采集光谱范围为900~1700nm,光谱分辨率2.8nm,入射光狭缝宽度为30μm。

高光谱图像采集由Spectral SENS-V17E软件(Gilden Photonics Ltd.,英国)完成,后续的图像数据处理采用ENVI 4.7软件(Research System Inc.,美国),光谱数据分析软件为Matlab7.4(MathWorks,美国)。

1.2试验方法

1.2.1高光谱图像的采集

在高光谱图像数据采集和图像采集前需要对镜头焦距进行调整而且要保证平台移动的速度、相机的曝光时间和光源的相互匹配以保证采集的图像能够清晰不失真。经过多次调整及参数优化,最终确定高光谱摄像机的各参数如下:平台移动速度为20mm/s,相机的曝光时间为10ms,物距为200mm,采集到的高光谱图像大小为320×256×255。采集光谱时,每次将1个苹果样本放于载物台上,保持果柄-花萼轴为垂直方向,使载物台中心对准相机。当平台移动时,近红外高光谱仪从上往下扫描样本,每次扫描得到1行图像的光谱信息,平台带动样本运动的过程中,获取其他位置直至整个样本的光谱信息。为了消除苹果表面形状以及色泽差异对光谱采集的影响对每个苹果样品均进行2次光谱采集,第1次采集果柄面,第2次采集果顶面,将2次光谱反射平均值作为该样品的光谱数据。以同样的方法依次采集90个苹果的高光谱图像。

1.2.2光谱校正

为了消除因苹果形状差异、光源强度在各波段下分布不均以及摄像头中暗电流存在而产生的噪声影响,需对获得的高光谱图像进行黑白标定。首先对反射率为99%标准白色校正板进行图像采集,得到全白的标定图像W,然后关闭光源拧上镜头盖,采集全黑标定图像D。图像校正公式为:

<mrow> <mi>R</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>0</mn> </msub> <mo>-</mo> <mi>D</mi> </mrow> <mrow> <mi>W</mi> <mo>-</mo> <mi>D</mi> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

式中:R0为原始的高光谱图像,R为校正后的图像

1.2.3ROI区域的选取

利用ENVI 4.7软件,对图像经过滤波和形态学算法处理后,选取苹果的果柄面和果顶面分别作为感兴趣区域(range of interest,简称ROI),如图2求其反射光谱曲线。将两面的反射光谱的曲线进行数据收集并取反射光谱平均值作为数据集合。

1.2.4K近邻算法计算

K近邻(K-Nearest Neighbor,KNN)的基本思想很直观,在已知类别的训练样本中为未知类别的待测样本找到最相似的K个训练样本即K个近邻,根据这K个近邻的类别来判断待测样本的类别。

其中K值需要事先指定,一般需要在实验中采用交叉验证来确定合适的取值,还可以根据某固定距离选取该距离内的所有训练样本作为近邻来判断待测样本的类别。

这里的相似性可以采用多种距离度量方法来衡量。对于n维空间中的两个样本X(X1,X2,···,Xn)和Y(Y1,Y2,···,Yn),本文采用的距离度量方法及其计算方法如下公式(2)-(11)所示:

<mrow> <msub> <mi>d</mi> <mrow> <mi>c</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mi>b</mi> <mi>l</mi> <mi>o</mi> <mi>c</mi> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>|</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

dchebvchev(X,Y)=max|Xi-Yi|(i=1~n) (3)

<mrow> <msub> <mi>d</mi> <mrow> <mi>c</mi> <mi>o</mi> <mi>r</mi> <mi>r</mi> <mi>e</mi> <mi>l</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>cov</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>V</mi> <mi>a</mi> <mi>r</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mi>V</mi> <mi>a</mi> <mi>r</mi> <msup> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>&prime;</mo> </msup> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>cos</mi> <mi>i</mi> <mi>n</mi> <mi>e</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&times;</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <msqrt> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mo>&times;</mo> <msqrt> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>e</mi> <mi>u</mi> <mi>c</mi> <mi>l</mi> <mi>i</mi> <mi>d</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>h</mi> <mi>a</mi> <mi>m</mi> <mi>min</mi> <mi>g</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>#</mo> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> <mi>n</mi> </mfrac> <mo>,</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>j</mi> <mi>a</mi> <mi>c</mi> <mi>c</mi> <mi>a</mi> <mi>r</mi> <mi>d</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>#</mo> <mo>&lsqb;</mo> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>&cap;</mo> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> <mo>)</mo> <mo>&cup;</mo> <mo>(</mo> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> <mrow> <mo>#</mo> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> <mo>)</mo> <mo>&cup;</mo> <mo>(</mo> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>min</mi> <mi>k</mi> <mi>o</mi> <mi>w</mi> <mi>s</mi> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mroot> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mi>p</mi> </msup> </mrow> <mi>p</mi> </mroot> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>s</mi> <mi>e</mi> <mi>u</mi> <mi>c</mi> <mi>l</mi> <mi>i</mi> <mi>d</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <mi>X</mi> <mo>&OverBar;</mo> </mover> </mrow> <mrow> <mi>V</mi> <mi>a</mi> <mi>r</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mfrac> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <mi>Y</mi> <mo>&OverBar;</mo> </mover> </mrow> <mrow> <mi>V</mi> <mi>a</mi> <mi>r</mi> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>d</mi> <mrow> <mi>s</mi> <mi>p</mi> <mi>e</mi> <mi>a</mi> <mi>r</mi> <mi>ma</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mn>1</mn> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>k</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mfrac> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> <mn>2</mn> </mfrac> </mrow> <mo>)</mo> <mo>(</mo> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>k</mi> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mfrac> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> <mn>2</mn> </mfrac> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>k</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mfrac> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> <mn>2</mn> </mfrac> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msup> <mrow> <mo>(</mo> <mrow> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>k</mi> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mfrac> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> <mn>2</mn> </mfrac> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>

在已知待测样本的K个近邻的类别时,待测样本的类别有不同的判断方法。最直观的方法是找出这K个近邻中出现次数最多的类别来作为待测样本的类别。更完善的方法是将近邻与待测样本间的距离作为权重来计算这K个近邻所属类别的重要程度,加权统计得到最重要的类别来作为待测样本的类别。

因为KNN算法采用了待测样本与其近邻间的距离来衡量待测样本与其近邻间的相似度,所以该算法对数据的数值范围比较敏感,数值范围较大的特征会对相似度起较大影响,这是不合理的。因此我们需要先对样本数据进行归一化后再进行距离的计算和判断。在实际应用中,如果某种特征的确比其他特征对分类起到更重要作用的话可以根据实际情况增大其数值范围。

KNN算法具有很强的适应性,具体表现在分类结果取决于多个近邻而不是少量噪声,这大大提高了算法对噪声的鲁棒性/抗变换性;KNN算法还可以用在类域相互交叉区分不明显的情形中。

2结果与分析

三种苹果的高光谱近红外吸收值在波长为900~1600nm之间的数据如图3所示

乔纳金苹果的平均反射强度曲线和另外两种苹果有明显的分离,而富士和秦冠苹果的平均反射强度有交叉部分。

通过建立KNN模型计算品种的识别正确率:在KNN算法中利用不同的距离方法在不同的k取值的条件下,将各个品种的吸光值分为训练样本和校正样本并进行计算,苹果品种识别正确率如表1所示(K取值分别为1,3,5,7,9)。可以看出除hamming和jaccard距离算法外,其余距离算法的在交叉验证中的分辨结果的平均准确率都在90%以上。其中用K=1时,利用seuclidean和chebychev距离算法以及K=3,5时,利用chebychev,euclidean和minkowski距离算法在五折交叉验证中的分辨准确率都可以取得高达100%。而hamming和jaccard距离算法在交叉验证中分辨准确率都比较低,不适用于这几种苹果品种的识别,相对而言利用Chebychev,Euclidean,Minkowski,Seuclidean四种距离算法分辨结果准确率比较高,可以用于苹果品种的识别。

表1不同K取值下各种距离算法的正确识别率

Table1The resolution of applevarieties indifferent K values and range algorithm

(%)

以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1