一种适用于嵌入式设备的食材识别方法

文档序号:24785759发布日期:2021-04-23 10:19阅读:90来源:国知局
一种适用于嵌入式设备的食材识别方法
一种适用于嵌入式设备的食材识别方法
1.本发明涉及计算机和深度学习技术领域,更具体的,涉及一种适用于嵌入式设备的食材识别方法。


背景技术:

2.随着社会发展使得生活水平不断提高,人们对衣食住行的要求逐渐增高。吃,是体现生活质量的一个重要方面,所谓民以食为天,人们不再满足于自己日常所食的菜式,开始注重饮食的多元化,而物流领域的快速发展为此提供了物质基础,人们能够接触更广泛多样的食材,食材的种类,这是什么食材,这个食材能烹饪什么菜式,基本通过人的经验来认知。因此,人们能够通过对食材的识别来使生活更加便利,并且美食应用通过互联网搭建起有关美食的生活社区,优化食谱的内容,提高了用户的体验从而提升了用户的粘性,为嵌入式设备相关的美食应用带来了广阔的前景。
3.目前主流的深度学习目标检测方法主要分为以候选框和以回归方法为基础的两大类方法。基于候选框的方法主要有r

cnn[2]、fast rcnn[3]等,这类方法参数多,计算量多,检测速度慢,无法实时检测目标;基于回归的目标检测方法,主要有ssd[4]和yolo[5]两大系列,其中yolov3采用fpn结构,利用多尺寸特征融合进行预测,可同时预测检测对象的类别和位置,但yolov3对小目标检测准确率不高,且训练参数较大,耗费计算资源,在移动端和嵌入式端无法直接使用。
[0004]
cnn已经普遍应用在计算机视觉领域,并且已经取得了不错的效果。随着cnn的发展,其模型深度越来越深,模型复杂度也越来越高。公开号为cn109425190a的中国发明专利申请于2019年3月5日公开了一种冰箱食材管理方法,其中公开了一种深度卷积神经网络的分类算法模型,采用googlenet模型、vgg16模型、resnet模型或者其他卷积网络模型对图像区域进行分类识别。然而,在某些真实的应用场景如移动或者嵌入式设备,如此大而复杂的模型是难以被应用的。首先是模型过于庞大,面临着内存不足的问题,其次这些场景要求低延迟,或者说响应速度要快,


技术实现要素:

[0005]
本发明为克服现有的基于深度卷积神经网络的食材识别模型在应用过程中,存在复杂度高、识别效率低的技术缺陷,提供一种适用于嵌入式设备的食材识别方法。
[0006]
为解决上述技术问题,本发明的技术方案如下:
[0007]
一种适用于嵌入式设备的食材识别方法,包括以下步骤:
[0008]
s1:在不同环境下采集各种类的食材图片,制作初始样本数据集;
[0009]
s2:对初始样本数据集进行预处理和数据增强,得到最终样本数据集;
[0010]
s3:对最终样本数据集进行标注,并划分为训练集和测试集;
[0011]
s4:用mobilenet网络代替darknet

53网络,对yolov3的主干网络进行改进,得到yolov3

mobilenet目标检测模型;
[0012]
s5:用diou

nms算法代替nms算法,对yolov3

mobilenet目标检测模型进行改进,
得到改进yolov3

mobilenet目标检测模型;
[0013]
s6:在训练集上对改进yolov3

mobilenet目标检测模型进行训练,并在测试集上测试改进yolov3

mobilenet目标检测模型的算法性能,得到最终目标检测模型;
[0014]
s7:将最终目标检测模型移植到嵌入式平台上;
[0015]
s8:在嵌入式平台中获取待检测的食材图片,并把图片作为最终目标检测模型的输入参数,对食材图片进行识别检测。
[0016]
其中,所述步骤s1包括以下步骤:
[0017]
s11:通过爬虫技术在互联网上或者现场拍照获取各种食材图片;
[0018]
s12:筛选出各种食材图片中不同环境、不同种类适合作为样本的食材图片,得到初始样本数据集。
[0019]
其中,在所述步骤s2中,所述预处理和数据增强具体为:对初始样本数据集进行处理操作,扩充数据集,得到最终样本数据集;所述处理操作包括平移处理、旋转处理、调整饱和度处理和增加噪声处理。
[0020]
其中,在所述步骤s3中,通过labelimg标注软件对最终样本数据集进行标注,根据情况设定种类数及种类名,并制成voc2007标准数据集的格式,然后利用voc_annotation.py文件程序划分训练集和测试集。
[0021]
其中,在所述步骤s4中,运用pycharm集成环境中的keras/tensorflow深度学习框架构建yolov3

mobilenet目标检测模型,用轻量化mobilenet网络代替原darknet

53进行特征提取,得到yolov3

mobilenet目标检测模型。
[0022]
其中,所述步骤s6具体包括以下步骤:
[0023]
s61:调取mobilenet网络的初始权重并设置超参数;
[0024]
s62:将训练集输入到改进yolov3

mobilenet目标检测模型中进行训练,直到损失值达到预设条件或达到最大预设迭代次数后,停止训练,保存最终训练权重;
[0025]
s63:将测试集输入到训练完毕的改进yolov3

mobilenet目标检测模型中,经过卷积层、池化层、mobilenet网络及上采样层,得到多尺度特征图;
[0026]
s64:将多尺度特征图中的预测结果使用diou

nms算法进行处理,挑选出iou阈值最大的预测框作为最终的识别结果;
[0027]
s65:验证识别结果的准确性,若符合要求,则完成步骤s6,得到最终目标检测模型;否则,重新执行步骤s61。
[0028]
其中,在所述步骤s61中,所述超参数包括学习率、步长、迭代次数。
[0029]
其中,所述步骤s64具体为:将多尺度特征图分别与真实框计算iou值,并与iou阈值进行对比,筛选出大于iou阈值的预测框,将iou阈值最大的预测框作为最终的识别结果。
[0030]
其中,在所述步骤s65中,将测试集分别输入改进yolov3

mobilenet目标检测模型中进行性能测试,得到最终对于模型的平均精度均值map、每秒检测帧率fps和召回率的评价指标;分别判断精度均值map、每秒检测帧率fps和召回率的评价指标是否满足实际应用要求。
[0031]
其中,在所述步骤s7中,通过搭建caffe框架实现最终目标检测模型在服务器与嵌入式平台之间的快速移植。
[0032]
与现有技术相比,本发明技术方案的有益效果是:
[0033]
本发明提供的一种适用于嵌入式设备的食材识别方法,通过将yolov3的主干网络darknet

53替换为轻量级网络mobilenet和采用diou

nms算法代替传统nms算法,满足食材多类别检测同时,极大提高检测速度,满足食材的实时性检测需求;且在满足实时性检测需求的同时,提高了检测的精确度,满足了检测的精确度要求。通过实现检测模型在服务器与嵌入式平台之间的快速移植,能够有效确保检测模型在基于嵌入式系统的小型化设备(尤其是移动设备)上的检测性能,具有更加广阔的应用前景。
附图说明
[0034]
图1为本发明所述的方法流程图;
[0035]
图2为mobilenet结构中主要构成单元深度可分离卷积的结构图;
[0036]
图3为yolov3

mobilenet网络结构图;
[0037]
图4为diou

nms中惩罚项的直观图。
具体实施方式
[0038]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0039]
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
[0040]
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0041]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0042]
实施例1
[0043]
本发明的实施方式涉及一种适用于嵌入式设备的食材识别方法,包括:获取图像,构建基于yolov3的基准网络时,使用k

means算法设置anchorbox参数;使用darknet

53网络作为主干网络;引入特征金字塔结构对多尺度目标进行特征提取;将darknet

53网络替换为mobilenet网络;使用diou

nms对nms算法进行改进,得到改进后的yolov3的模型,把模型移植到嵌入式设备中,在嵌入式设备中输入图片对食材目标进行识别。
[0044]
更具体的,如图1为本发明实施方式中结构流程示意图。在训练之前,首先通过爬虫技术或者现场拍照收集各种食材图片,筛选出适合作为数据集的照片作为初始样本数据集,对初始样本数据集进行处理生成最终样本数据集,对最终样本数据集进行标注,并划分为训练集、测试集和验证集,构建yolov3

mobilenet目标检测模型并对nms算法进行改进,训练和测试改进yolov3

mobilenet目标检测模型,得到最终的模型,把模型移植到嵌入式设备中,在嵌入式设备中输入图片,完成食材图片的识别。
[0045]
在具体实施过程中,本发明提供一种适用于嵌入式设备的食材识别方法,包括以下步骤:
[0046]
s1:在不同环境下采集各种类的食材图片,制作初始样本数据集;
[0047]
s2:对初始样本数据集进行预处理和数据增强,得到最终样本数据集;
[0048]
s3:对最终样本数据集进行标注,并划分为训练集和测试集;
[0049]
s4:用mobilenet网络代替darknet

53网络,对yolov3的主干网络进行改进,得到yolov3

mobilenet目标检测模型;
[0050]
s5:用diou

nms算法代替nms算法,对yolov3

mobilenet目标检测模型进行改进,得到改进yolov3

mobilenet目标检测模型;
[0051]
s6:在训练集上对改进yolov3

mobilenet目标检测模型进行训练,并在测试集上测试改进yolov3

mobilenet目标检测模型的算法性能,得到最终目标检测模型;
[0052]
s7:将最终目标检测模型移植到嵌入式平台上;
[0053]
s8:在嵌入式平台中获取待检测的食材图片,并把图片作为最终目标检测模型的输入参数,对食材图片进行识别检测。
[0054]
更具体的,所述步骤s1包括以下步骤:
[0055]
s11:通过爬虫技术在互联网上或者现场拍照获取各种食材图片;
[0056]
s12:筛选出各种食材图片中不同环境、不同种类适合作为样本的食材图片,得到初始样本数据集。
[0057]
更具体的,在所述步骤s2中,所述预处理和数据增强具体为:对初始样本数据集进行处理操作,扩充数据集,得到最终样本数据集;所述处理操作包括平移处理、旋转处理、调整饱和度处理和增加噪声处理。
[0058]
更具体的,在所述步骤s3中,通过labelimg标注软件对最终样本数据集进行标注,根据情况设定种类数及种类名,并制成voc2007标准数据集的格式,然后利用voc_annotation.py文件程序划分训练集和测试集。
[0059]
更具体的,利用k

means聚类方法进行食材图片的anchorbox值的计算,步骤如下:读取已标注好的训练数据集,随机取出其中一个图片的宽度和高度值作为坐标点并作为初始聚类中心,再使用k

means聚类方法进行迭代计算得到具体的anchorbox值;
[0060]
更具体的,在所述步骤s4中,运用pycharm集成环境中的keras/tensorflow深度学习框架构建yolov3

mobilenet目标检测模型,用轻量化mobilenet网络代替原darknet

53进行特征提取,得到yolov3

mobilenet目标检测模型。
[0061]
在具体实施过程中,使用mobilenet作为主干网络能减少计算量的原因是mobilenet用深度可分离卷积替代原卷积层,其基本单位对比图如图2所示。将一层普通卷积改为一层深度卷积和一层可分离卷积,假设一次卷积计算量变为原来的l倍,则其中n为通道数,d
k
为深度卷积的卷积核大小。
[0062]
在具体实施过程中,yolov3

mobilenet网络结构如图3所示,图中cbr为图2中的普通卷积,dbr为深度可分离卷积,y1、y2、y3为最后所得的三种尺寸的特征图。由图可知,若把深度卷积和点卷积看作同一层的话,mobilenet包含14层网络,第一个卷积为普通卷积,之后全部使用depthwise convolution和pointwise convolution。用mobilenet替代darknet

53作为yolov3主干网络,并保留yolov3的fpn结构,分别从mobilenet的第6、12和14层输出52*52、26*26、13*13的特征图,通过当前特征图经上采样后与上层特征图融合,提高多重scale目标的识别精度。
[0063]
更具体的,所述步骤s6具体包括以下步骤:
[0064]
s61:调取mobilenet网络的初始权重并设置超参数;
[0065]
s62:将训练集输入到改进yolov3

mobilenet目标检测模型中进行训练,直到损失值达到预设条件或达到最大预设迭代次数后,停止训练,保存最终训练权重;
[0066]
s63:将测试集输入到训练完毕的改进yolov3

mobilenet目标检测模型中,经过卷积层、池化层、mobilenet网络及上采样层,得到多尺度特征图;
[0067]
s64:将多尺度特征图中的预测结果使用diou

nms算法进行处理,挑选出iou阈值最大的预测框作为最终的识别结果;
[0068]
s65:验证识别结果的准确性,若符合要求,则完成步骤s6,得到最终目标检测模型;否则,重新执行步骤s61。
[0069]
在具体实施过程中,diou

nms能使模型更精确的原因是使用了惩罚项如图4所示,d为两边界框的中心距离,c为最小包围两个边界框的对角线长度。在nms算法中iou项可以改为iou

r
diou
,当iou

r
diou
小于阈值时,分类置信si不变,保留边界框;当iou

r
diou
大于或等于阈值时,分类置信si变0,删除边界框。在原始的nms中,iou指标用于抑制多余的检测框,但由于仅考虑了重叠区域,经常会造成错误的抑制,特别是在边界框包含的情况下。因此,可以使用diou作为nms的标准,不仅考虑重叠区域,还考虑了中心点距离。
[0070]
更具体的,在所述步骤s61中,所述超参数包括学习率、步长、迭代次数。
[0071]
在具体实施过程中,在步骤s2中,对于训练集中标注的待识别目标的真实目标边框进行聚类,采用iou值作为评价指标以获得训练集中的预测目标的初始候选框,将初始候选框作为初始参数输入到改进yolov3

mobilenet网络模型中,其中采用k

means方法,以距离公式d=1

iou对训练数据的真实边框聚类当两框iou值不小于0.5时,将此时预测的候选框作为初始目标边框。
[0072]
更具体的,所述步骤s64具体为:将多尺度特征图分别与真实框计算iou值,并与iou阈值进行对比,筛选出大于iou阈值的预测框,将iou阈值最大的预测框作为最终的识别结果。
[0073]
在具体实施过程中,采用logistic函数对网络预测的x、y、置信度、类别概率进行激活,并与真实框计算iou值,经阈值判断,得到所有预测框坐标、置信度和类别概率;将得到的结果通过diou

nms去除冗余检测框,产生最终目标检测框和识别结果。
[0074]
更具体的,在所述步骤s65中,将测试集分别输入改进yolov3

mobilenet目标检测模型中进行性能测试,得到最终对于模型的平均精度均值map、每秒检测帧率fps和召回率的评价指标;分别判断精度均值map、每秒检测帧率fps和召回率的评价指标是否满足实际应用要求。
[0075]
更具体的,在所述步骤s7中,通过搭建caffe框架实现最终目标检测模型在服务器与嵌入式平台之间的快速移植。并且在嵌入式设备中获取待检测的食材图片,图片的获取途径可以有很多种,比如采用相机获取,然后通过usb端口将图片传输至嵌入式平台。然后把图片作为模型的输入参数,对食材图片进行检测。
[0076]
在具体实施过程中,本发明提出的目标识别方法泛化能力强,实现了对食材的有效检测,为嵌入式设备后续的服务提供了基础,减小参数计算量的同时,提高了原yolov3目标检测模型的检测速度及准确度。
[0077]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本
发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1