萤火虫算法优化CNN在移动端食物识别系统中的应用
2020-09-10王永奇
摘要:传统的图像识别技术在食物识别上有着准确率不高、计算速度慢的缺陷。深度学习自诞生以来,凭借其强大的机器学习特性,极大地推动了图像识别的发展。近年来,随着人工智能的高度发展,深度学习得到了更深入的发展。因此,采用深度学习技术进行食物识别的研究,既有实现的基础,又有实际的意义。本文通过设计基于优化卷积神经网络算法的移动端食物识别系统,解决了食物识别系统在移动设备中准确率低、存储量高的难题,为食物识别技术的再发展提供借鉴与参考。
关键词:移动端;食物识别;深度学习;CNN
食物是人类赖以生存的生命之源。随着生活质量的提高与科技水平的快速发展,人们对食物的需求从摄入食物的数量向质量与营养均衡上转移。如何实现均衡饮食,在保证人体营养需求充分且均衡的前提下使食物的利用率达到最大化,从而达到满足各类人对食物摄取的个性化需求、减少食物浪费的目的,将成为当今饮食文化与科技创新结合的重难点与研究的目标[1]。而遗传算法、蚁群算法、神经网络等复杂人工智能算法的应用无疑为食物识别技术注入新的活力、提供研究方向,也让移动端食物识别系统的设计成为可能。
1.传统图像识别技术与食物识别
1.1传统图像识别技术在食物识别的应用
图像识别是人工智能应用于实际生活的重要领域之一,其主要依托图像采集、图像预处理、特征提取、图像识别等四个关键步骤来进行图像的传统识别。自上世纪50年代开始,图像识别就从文字识别层面发展起来,经过数字图像处理与识别的过渡阶段,向着更精细化的物体识别深入,并广泛地应用于各类物体之中,其中以人物识别最为广泛,并随着人类的生活需求,扩展到对食物的识别中[2]。传统的图像识别技术主要依赖于图像分割方法如直方图、遗传算法或小波变换的实现[3]。
1.2传统图像识别技术应用的优劣势
传统图像識别技术的图像分割方法在食物识别上的准确性和精确度并不显著,还远远达不到人们对食物识别的要求。但相比于人工识别手段,利用智能算法,可节省大量的人工成本,亦是人类在人工智能研究的阶段性成果。而经过了较长时间的调试与大量的试验,该类技术保有良好的稳定性。由于同一食物的外在特征与内在属性的差异,仅有的缺陷也是在于其较低的食物识别准确率。
2.CNN技术与食物识别
2.1CNN技术在食物识别的应用可行性
CNN(卷积神经网络)算法[4]拥有输入、卷积、激活、池化、全连接FC等五个不同类别的层次结构,是多分类的神经网络。其中,卷积层通过局部感知来提取图片的每个特征从而形成对图片的全局训练,并利用权值共享机制来减少模型计算参数;池化层通过降低图片特征维度来降低过拟合风险、提高模型的容错性;由于食物识别需要大量测试,这就需要随机删除神经网络中的部分神经元来解决过拟合难题,这同时提高图像的识别精度。因此,从理论上说,CNN技术完全适用于食物识别系统的设计与开发,并且拥有广阔的开发前景与应用市场。
2.2CNN技术应用的优劣势
CNN相比于传统图像处理技术,因其能随机删除神经元来保证高度拟合的复杂特性,更能满足人们对食物识别的准确度要求。但由于大量的训练和庞大的计算量,往往难以移植到移动设备。为此,在保证食物识别准确率的同时,降低计算量、精简模型成为应用到移动设备的首要研究难题。
3.CNN技术在移动端食物识别中的优化设计
CNN食物识别技术结合食物颜色和形状的两大特征来分类食物。为降低移动端的计算量并显著提高分辨率,应针对原始CNN算法进行如下优化:其一,利用DepthWise Separable(深度可分离卷积)方式卷积来降低计算量和存储空间,使技术应用于小空间的移动设备上;其二,基于萤火虫算法的迭代寻优特性来优化卷积神经网络的初始阈值和权值,提高CNN的准确率。
3.1针对降低CNN计算量的优化
根据VGG思想和特点,降低CNN计算量的原理就是将大卷积转化为多个串联的相同小卷积来减少计算次数,从而达到降低总运算量的目的。Depthwise Separable卷积[5]对降低计算量有显著效果,其主要分为两步,先是进行Depthwise卷积,再是进行Pointwise卷积。区别与常规卷积的每个卷积核对每个通道都进行计算的方式,Depthwise卷积中每个卷积核只对每个通道进行一次计算。由上可知,计算的通道数没有改变,DW卷积各通道间的信息没有得到交换,而引入Pointwise卷积可以保留关键信息、剔除冗余信息,这极大地降低了计算开销。
这里假设CNN模型将物体DF*DF*M切割成N个DK*DK*M的大卷积核,DW再将每个大卷积核转化为M个DK*DK*1的小卷积核,令DK*DK*1的张量为DN*DN,通过常规卷积CS和DWS卷积出来的计算开销分别为:
由上述结果可知,DWS卷积通过Depthwise和Pointwise两种卷积结合作用的方式,能在保留各通道信息的同时,降低计算开销。
3.2针对提高CNN分辨率的优化
萤火虫算法[6]是复杂性的启发式优化算法,通过萤火虫种群的迭代寻优机制,搜索最佳的目标值,使其更逼近于最优解,既可进行单纯算法的独立使用,亦可与其他算法混合使用,常见的有离散萤火虫算法、混合算法、Memetic算法等。因此,它的应用领域非常广泛。本文通过利用萤火虫算法对CNN算法进行改进,可优化CNN因易陷入局部优解而造成整体识别精度较低的缺点。具体的优化步骤如下所示:
初步设置萤火虫种群的各参数:萤火虫种群大小N、种群最大可迭代次数M等;
初步设置卷积神经网络的各参数:权值、阈值、隐含层个数等;
由CNN的误差RMSE计算萤火虫个体的绝对发光强度,并将发光强度进行排序,构造个体间的相对吸引度函数[7];
判断萤火虫个体是否移动,若移动,则根据上述函数更新个体间相对位置。其中,每次群体位置更新后,最亮的萤火虫位置为;
若迭代次数达到最大迭代次数M,则停止迭代。否则,继续循环迭代;
将迭代后的最优萤火虫个体代入到CNN中计算结果并进行排序,并将最大亮度的萤火虫个体的权值和阈值代入网络进行训练[8]。
通过以上优化过程,可显著提高CNN技术在食物识别中的分辨率,提高计算性能。
4.基于优化CNN技术的移动端食物识别系统
优化CNN技术以达到适应食物识别系统在移动设备中低存储量、高分辨率的目标。针对以上两点进行优化,首先进行技术的计算量改进,通过改良模型的卷积方式来降低整体的计算次数来达到效果,这是针对算法的内部优化;其次进行算法的混合使用,善用优化算法改善网络本身计算缺陷,这是针对算法的外部优化。两种优化方式互不干扰,共同优化整个神经网络结构。移动端食物识别系统的整体设计理念如下图所示:
5.结论
通过以上对移动端食物识别系统的详细设计,本文的研究内容可概括为以下三点:
傳统的机器学习图像识别有其存在的研究意义与参考价值,是未来研究方向的铺垫与借鉴的里程碑;
CNN本身强大的识别优势和可混合性使其在食物识别有着巨大的应用前景;
CNN智能技术与传统识别技术不是对立的,而是基础与扩展的统一关系,两者各有特点,而技术替代并非一朝一夕,更需要大量的尝试与训练。
本文验证了引入CNN技术设计食物识别系统的方案是可行的,并且对其进行针对性改进与优化,使其良性地适用于移动设备也是可行的。但从理论应用到完全技术实现,需要不断地改进与优化,探究CNN的无限创造性和包容性,打造更为适用的移动端食物识别系统。
参考文献:
[1]汪聪. 基于机器视觉的菜品智能识别技术研究[D].华南理工大学,2019.
[2]张家怡.图像识别的技术现状和发展趋势[J].电脑知识与技术,2010,6(21):6045-6046.
[3]杨迪. 基于随机森林和SVM的食物图像识别的研究[D].安徽理工大学,2017.
[4]杨洪臣,郝韵.卷积神经网络的人脸超分辨率重建算法[J].中国刑警学院学报,2020(05):104-109.
[5]鞠聪,李涛.基于深度可分离卷积结构的人脸表情识别研究[J].电脑与电信,2020(06):1-5.
[6]纪子龙,冀俊忠,刘金铎,杨翠翠.基于萤火虫算法的脑效应连接网络学习方法[J].哈尔滨工业大学学报,2019,51(05):76-84.
[7] LOKESH J,RAHUL K.Discover opinion leader in online social network using firely algorithm [J]. Expert Syst Appl,2019,122:1-15.
[8]孙永盛,刘镇.萤火虫算法优化的卷积网络在图像显著性检测中的应用[J].计算机与数字工程,2020,48(06):1474-1478.
基金项目:本文属2019年国家级大学生创新创业训练计划项目:“基于CNN的移动端食物识别系统设计”(编号:201910378329)研究成果。
作者简介:王永奇(1999-)男,汉族,安徽淮南人,单位:安徽财经大学管理科学与工程学院,2017级本科生,计算机科学与技术专业。