章海亮, 周孝文, 刘雪梅, 罗 微, 詹白勺, 潘 璠
1. 华东交通大学电气与自动化工程学院, 江西 南昌 330013 2. 华东交通大学土木建筑学院, 江西 南昌 330013 3. 华东交通大学对外联络处, 江西 南昌 330013
多宝鱼, 学名大菱鲆(Scophthalmus maximus), 为硬骨鱼纲鲽形目鲆科菱鲆属海洋底栖冷水性鱼类。 因其肉质营养丰富、 独特口感, 深受消费者的青睐。 由于多宝鱼是一种极易腐烂的食物, 商家为了延长产品保存时间而普遍采取冷冻方式进行储藏。 冷冻方式是一种成本较低和操作简单的保存方法, 但多宝鱼在冷冻期间营养物质会逐渐流失, 对品质造成影响, 因此多宝鱼新鲜度判别十分重要。
目前鱼类品质检测方法有微生物检测、 化学检测、 电子鼻等方法, 虽然检测结果精准, 但存在检测过程时间长且会对样本造成破坏等问题, 不利于大规模应用。 高光谱成像技术(hyperspectral imaging, HSI)是一种无损、 快速的新型分析技术, 在鱼类品质检测邻域有一定的研究[1-3]。 近年来, 深度学习技术发展迅速, 已广泛应用在计算机视觉[4]、 语音识别[5]、 无人驾驶[6]等领域。 卷积神经网络作为深度学习的经典模型, 具有强大的特征提取和学习能力, 目前有学者将卷积神经网络与高光谱成像技术相结合检测大米、 柑橘、 棉种等农产品, 但结合两者对鱼类新鲜度检测的研究鲜有报道。
本研究提出了利用卷积神经网络进行基于高光谱成像的多宝鱼新鲜度鉴别方法, 应用于多宝鱼高光谱样本数据集, 验证所提方法的有效性, 为多宝鱼新鲜度鉴别提供新方法。
实验所用多宝鱼样本购于杭州某水产交易中心, 在交易中心现场进行样本前处理, 具体步骤如下: 将每条鲜活多宝鱼从养殖水池中依次捞出, 先用冰水休克, 然后棒击头部致死, 最后去除鱼的头尾和内脏并在冰水中清洗干净。 每条鱼按照背部和腹部进行分割处理, 背部和腹部各2等分, 每条鱼分为4个样本, 整个前期处理时间约为3 h。 用塑料袋放置各样本, 将塑料袋置于装有碎冰的干净泡沫保温箱中, 运输专车迅速将样本输送至实验室。 由于鱼在冷冻情况下保存时间长, 为了保证时间跨度, 分别将鱼的冷藏时间设为30和120 d, 并进行1~2次解冻实验。 160个样本分为5类, 随机划分训练集和测试集(7∶3)。 具体划分详见表1所示。
表1 样本划分
使用的高光谱成像系统主要由高光谱摄像机(N10E, Specim, Finland), 卤素灯光源2个, 镜头, 样本传送装置及移动平台控制器, 计算机组成。 为了保证采集的高光谱图像的数据质量, 需要对样本传送装置的速度、 样本与镜头距离等参数进行调节, 经过多次调试, 本研究中样本传送装置速度为3.2 mm·s-1, 相机曝光时间设为0.08 s, 样本与镜头距离设为45 cm。 采集数据时用纸巾擦干鱼样品表面多余水分, 将样本放置在传送装置上, 垂直于镜头移动, 获取高光谱成像数据。 为了降低采集过程中暗电流和光照不均匀等影响因素造成的影响, 需要对高光谱相机在分析之前进行黑白校正。
选取鱼腹部中央附近约80×80像素的矩形区域作为感兴趣区域(ROI), 得到光谱波长范围为381~1 023 nm, 共计512个波段, 由于在429 nm波长前的光谱存在噪声, 数据失真较为严重。 采用429~1 023 nm波长范围光谱为原始波长范围用于后续建模分析。 采用ENVI软件求取每个样本图像的平均光谱。
VGGNet[7]是牛津大学计算机视觉组和DeepMind公司共同研发的一种深度卷积神经网络, 在2014年ILSVRC大赛上获得了优异的成绩, 选择VGG11作为参考网络结构。 VGG11网络包括8个卷积层, 3个全连接层, 5个池化层, 特点为使用多层小卷积核替代一层较大卷积核进行特征提取, 在减少参数的同时也引入更多非线性因素, 提升网络分类精度, 该网络结构中卷积层和池化层参数基本一致, 结构简洁, 使用广泛, 但原网络是针对图片等二维数据设计的, 本次实验获取的光谱数据为一维数据, 因此将模型中卷积核尺寸由3×3改为1×3, 池化层中窗口尺寸由2×2改为1×2以适应一维数据输入, 原模型的全连接层参数过多, 模型训练难度大, 因此仅保留最后一层全连接层用于分类。
采用预测集准确率为模型性能评价指标。 分类准确率PT表示为
(1)
式(1)中,NC为预测正确样本数量,N为全部样本。
卷积核作用为提取样本特征, 是卷积神经网络的核心组成部分, 为确定最佳卷积核数量, 对比6种不同卷积核数量网络结构模型的分类性能, 网络卷积数量实验详细设置见表2, 模型训练曲线如图1所示。
图1 模型训练曲线
表2 卷积核数量实验
结合表2和图1可知, 卷积核数量与模型参数量成正比, 卷积核数量越多, 模型也就更加复杂, 例如VGG-1至VGG-3的网络模型, 卷积核数量过多, 模型难以训练, 导致分类准确率低, 但当模型过于简单如VGG-6的网络结构, 使得模型不能够学习到足够样本特征, 也会影响到模型的分类性能, 在这6个网络模型中, VGG-5的网络结构能够较好地达到平衡, 其准确率达到了100%。
激活函数为神经网络引入非线性因素, 可提高神经网络对模型的表达能力, 为选出最佳激活函数, 选用了较为常用的3种不同激活函数(Tanh, Sigmoid和Relu)进行比较。
Sigmoid[8]常被用作神经网络的激活函数, 将变量映射到[0, 1]之间。 表达式为
(2)
式(2)中,x为当前隐藏层输入。
Relu[9]为分段线性函数, 将所有负值变为0, 而正值不变, 表达式为
f(x)=relu(x)=max(0,x)
(3)
式(3)中,x为当前隐藏层输入。
Tanh[10]为双曲正切函数, 将输入值转为-1至1之间, 表达式为
(4)
式(4)中,x为当前隐藏层输入。
其中Sigmoid激活函数准确率最低(25%), Relu激活函数次之(72.92%), Tanh激活函数准确率最高(100%)。 因此选择Tanh作为网络模型的激活函数。
结合上述实验分析结果, 建立CNN网络模型结构如图2所示, 模型包含8个卷积层进行光谱特征提取, 其中卷积核大小为1×3, 个数分别为4, 8, 16, 16, 32, 32, 32, 32, 共计5个池化层对特征进行降维, 窗口大小为1×2, 最后1个全连接层负责分类。
图2 CNN网络模型结构
图3中每一条光谱为样本感兴趣区平均光谱, 在整个波长范围内, 最大反射率不高于0.25, 近红外区域的反射率要高于可见光区域的反射率, 在960 nm附近, 近红外光谱存在较大的吸收度, 这是由于鱼样本的C—H功能键在此区域存在吸收峰。
图3 多宝鱼光谱数据
原始光谱数据变量较多, 为了减少建模所用变量个数, 简化模型, 选用了RF和UVE两种方法对光谱波长进行筛选。
(1) RF方法
随机青蛙算法(random frog, RF)在每次建模运行时都会评估参与建模的变量被选频率, 将被选频率高的变量组合并替代原始光谱用于进一步的建模分析[11]。 选择被选概率值大于0.1的变量为特征波长, 实验结果如图4所示, 本研究采用随机青蛙算法获得的特征波长数量为46个。
图4 RF变量被选频率
(2) UVE方法
无信息变量消除(uninformative variable elimination, UVE)方法是建立在PLS回归系数基础上的波长筛选方法, 用回归系数来衡量波段重要性[12]。 将阈值设置为0.99, 建立PLS模型选择变量, 图5是UVE波长筛选后的结果, 其中左侧曲线为鱼光谱变量矩阵, 右侧为添加与鱼光谱变量数相同的随机噪声矩阵, 两条平行虚线的值为+7.554和-7.554,代表阈值筛选的上下限, 两线之间为剔除的无用变量, 两线之外的变量作为建模变量, 通过UVE波段变量筛选后, 共有165个波长变量被选择。
图5 UVE变量筛选结果
为了对比CNN模型性能, 选用了目前常用的LS-SVM[13]和KNN[14]模型作为对比, 将原始数据、 RF、 UVE算法与各模型相结合, 结果如表3所示。 在使用原始光谱数据时CNN即可实现高精渡(100%)分类, 而LS-SVM与KNN精度较低分别为95.83%和60.4%。 经过波长筛选步骤后, 使用UVE提取的165个光谱变量建立的CNN分类模型准确率达到最高的100%, 建立的LS-SVM模型与对应使用原始数据模型准确率不变, 而建立的KNN模型准确率有所下降, 使用RF提取的46个光谱变量建立的三个模型准确率都有不同程度的下降。 不难看出识别效果最优的是UVE-CNN模型, 分类精度高且参与建模波长少。
表3 不同算法总体分类精度
提出了一种基于高光谱成像技术的卷积神经网络分类模型, 对5类不同新鲜度多宝鱼进行了检测。 分析结果表明所提出的CNN模型可直接提取原始光谱特征信息, 实现鱼类新鲜度高精度(100%)分类, 体现了卷积神经网络强大的学习能力。 分别使用UVE和RF方法筛选特征波长后建模, 其中识别效果最优的是UVE-CNN模型, 在保证精度的同时减少了参与建模的波长数量。 在后续研究中, 将尝试增加新鲜度类别和样本数量, 建立更为高效的深度学习模型, 为鱼类新鲜度检测提供技术支持。