基于卷积神经网络的菜品识别研究与实现
2022-01-11陈小娥李慧敏陈德涛
陈小娥,李慧敏,陈德涛
(福建船政交通职业学院信息与智慧交通学院,福州 350007)
0 引言
随着“新零售”概念的提出,应用互联网大数据、人工智能技术等方法,重构商圈构造与生态链,并对线上线下服务项目、线下推广感受及其智慧物流开展创新发展的零售新方式,各销售行业掀起了全新的发展浪潮。在校园餐厅、企业和政府餐厅、连锁快餐等地方,餐饮消费时间段相对集中,高峰期的排队大大降低了顾客就餐体验。在餐饮行业中占比较大是中小商家,众多中小商家面临经营成本高、利润低等问题。餐饮的信息化和自动化是餐饮“新零售”的重要体现,而自助结算实现的自动化可以有效地降低餐饮商家的人工成本和经营效率。
目前比较常见的餐厅自动结算系统主要有基于RFID 的射频技术和图像识别技术。基于RFID技术的系统主要是由一个显示屏、读写器和读卡器的智能自助结算终端构成,每一个根据不同菜品定制的餐盘内都植入一个RFID 芯片,结算时将装有智慧菜碟的托盘放到能自助结算终端的“结算区”,读取芯片信息,经过显示屏向就餐顾客显示本次饭菜份数、金额,由此进行结算,如文献[1]选用STM 32 作为主控板,TFT-LCD 作为显示模块,实现了基于二进制算法的RFID 射频技术的无人结算[1]。而图像识别技术应用于自助结算,早期主要是采用传统的机器学习方法,根据餐具的大小、形状、颜色或菜品等图像信息,先通过图像分割,后提取相应的特征,再选取分类器进行分类。随着深度学习的流行,现在逐步地采用深度学习中的目标检测算法实现自助结算功能。当前比较主流的目标检测方法有以RCNN、Faster R-CNN[2]系列为代表的Two-Stage 方法和以YOLO[3]和SSD[4]系列为代表的One-Stage方法。文献[5]实现的系统通过餐盘的颜色和形状对不同的菜品进行分类计价并算出总价,再进行自动扣款。文献[6]通过对YOLOv3目标检测模型进行改进,去除中小尺度的边界框检测,结合传统图像处理技术,实现了鲁棒性更高的菜品识别算法。
本文主要采用MMDetection 框架[7],通过Faster R-CNN目标检测模型实现菜品定位、分类。在预测网络的设计中,通过模块化设计初筛+细分类的方式对一些易混淆的菜品类别单独分类处理,避免多尺度环境下引起的误识别,有效地提高了预测精度并且降低了数据集的需求量。
1 相关技术及原理
1.1 Faster R-CNN
Faster R-CNN 由两个模块组成。第一个模块叫候选区域生成网络(region proposal network,RPN),它是深度全卷积网络,对于本文的应用场景,可以输出可能存在餐盘的区域。第二个模块叫Faster R-CNN 检测器,判断每个区域是餐盘或不是餐盘。RPN 使用近年来流行的“注意力机制”告诉Faster R-CNN 检测器应该关注哪些区域。图1引用文献[3]中的图3简述RPN。
图1 候选区域生成网络(RPN)
在特征图的每一片区域,我们并行地预测多个候选区域。用k表示每一片区域能预测的最大候选区域数量。每个候选区域要用4 个数字表示坐标轴位置,用2 个数字判断这个区域属于前景还是背景。所以reg layer 要输出4k个输出,cls layer 要用2k个输出。这k个候选区域将根据k个“锚框”编码。锚框位于每个3×3区域的中心,我们用3 组大小和3 组长宽比组合出9 个不同的锚框。
1.2 目标检测框架MMDetection
当预测值与真实值一样时,预测值为正样本(真实值为正样本)记为‘TP’,预测值为负样本(真实值为负样本)记为‘TN’;当预测值与真实值不一样时,预测值为正样本(真实值为负样本)记为‘FP’,预测值为负样本(真实值为正样本)记为‘FN’。
1.3 评估指标
准确率(Accuracy)用分对的样本数除以所有的样本数,计算公式如下:
综上所述,该区隐伏岩体埋藏深,上覆地层厚度大,区域重磁异常规模大,区域磁异常反映有NE和NW向构造存在,地表浅部有大范围锑、汞等低温热液矿床存在,上述特征显示该地带找矿空间广阔,具备寻找中大型低-中-高温热液矿床的条件。
MMDetection 是一个基于PyTorch 的开源目标检测工具箱。它提供了多种视觉检测核心模块,我们可以组合这些模块搭建出各种检测框架。它的主要特性有:进行了模块化设计,通过组合不同的组件,可以容易地构建定制的对象检测框架;支持当前流行的检测框架,如Faster RCNN、Mask R-CNN、RetinaNet 等;具有高效性,所有基本的bbox 和掩码操作现在都在GPU 上运行。
2 基于卷积神经网络的智能结算算法
2.1 算法基本思路
采用MMDetection 目标检测框架进行模型构建、训练。使用LabelMe 进行目标检测数据标注。具体的步骤如下:①采集真实餐厅托盘数据,对采集到的图片进行清洗、用LabelmMe进行图片标注。②采用MMDetection 框架进行搭建,采用Faster R-CNN 目标检测模型实现。③目标检测模型的测试与应用。
在航道区域取18个采样点,分析工程后沿深槽方向水流分布特征。将各采样点横流分布绘于图5,同时由于篇幅有限,将部分采样点的特征流速、流向统计值列于表3。
2.2 算法设计
2.2.1 改进的预测网络
在预测网络的设计中,我们通过模块化设计粗筛+细分类的方式对米饭、炒饭等易混淆的类别单独分类处理,避免多尺度环境下大托盘引起的误识别,图2是预测网络流程示意图。
图2 预测网络流程
实验过程中,设置优化器的类型为SGD,学习率初始值为0.01,动量为0.9,权重衰减率为0.0001。图4 为模型训练的training loss 折线图。图5 为菜品识别实验过程中获得的accuracy top1的折线图。
使用OpenCV 与摄像头交互,由于OpenCV 不支持GBK 编码的文件系统,所以采用NumPy读取图片,再用OpenCV 解码的方式。由于OpenCV 默认使用BGR 颜色通道,而其他程序包大多使用RGB 颜色通道,所以我们为读取图片和保存图片的函数都加上了”rgb”标志,用于指示图片的颜色通道。以下为读取函数的代码。
2.2.3 数据集格式转换
Accuracy=(TP+TN)/(TP+TN+FP+FN)
MMDetection 使用数据集是COCO 格式,所以先将LabelMe 格式的标注数据转换为COCO 格式的数据。COCO 数据集可以分解为一个数据库里的3张表,图片表、标注表、类别表。
下面以关系模式描述这些表:
全固态离子选择性电极因为不含内充液,极易微型化、阵列化和制备成一次性的纸质电极和塑料柔性电极,受到越来越多研究人员的关注。
选入“少儿万有经典文库”的原典在人类科学史上的重要性和经典性不容置疑,但其厚重的篇幅和深邃的理论体系,让一般读者都可能望而却步,更不要说理解能力有限的少年儿童。而在这套文库里,少儿彩绘版呈现出生机勃勃的气息,吸引着小读者从容地走进经典。
图片表(图片ID,宽,高,文件名);
标注表(标注ID,图片ID,类别ID,面积,x,y,宽,高,群聚标识);
将数据集转换成COCO 格式后,还需要编写数据集类,具体做法为继承COCO 类,然后将类别列表修改成我们数据集的类别列表。以下为部分代码。
类别表(类别ID,类别名,超类名)。
(3)提升施工技术人员的专业素质。施工人员在工程施工建设中,是第一梯队的人才,是工程质量的基本保障,因此施工技术人员的专业素质以及技术水平会对工程的质量以及工程的施工进度起到直接影响。所以建筑企业需要对管理人员、技术人员以及施工人员的专业素质培养进行关注。为了更好地提升工作人员的专业技能以及素质,企业可以定期分批对相关施工技术人员等进行培训教育工作,帮助施工人员以及技术人员的专业知识进行提升,缩小队伍内部的专业差距。建筑企业在对相关工作人员进行选择的时候,需要提升要求,做好岗前教育以及后期的提升培训,让施工人员和技术人员积极主动的接受培训和指导,使得企业人力资源配置达到最优。
3 实验过程及分析
3.1 餐厅数据采集与处理
首先,采集真实的结算场景图片。如图3 所示,采集2302 幅托盘图片,总计63 道菜。采集过程中,调整摄像头的位置到结算台面固定50厘米的高度,同时在摄像头旁放置一个补光灯,避免由于不同采集时间引起的一些干扰因素影响实验结果。采集完成后,我们进行一定的数据清洗并标注。
图3 数据集样本示例
3.2 模型搭建与训练
2.2.2 图像的读写设计
图4 training loss结果分析
图5 accuracy top1折线
3.3 模型应用
(六)药敏试验 按常规纸片法进行药敏试验,不同场分离的菌株,其敏感性有明显不同,但多数的菌株对硫酸新霉素、恩诺沙星、氨苄青霉素、氯霉素、丁胺卡那霉素敏感,对常用的青霉素、土霉素、金霉素不敏感。
针对采集的结算场景,利用计算机视觉算法,利用标注的位置信息和类别信息,训练多个能够检测图像中菜品的模型。选择精准度最高的模型作为应用程序使用的模型。设计的软件界面如图6所示。
图6 结算界面
用户只需将选好菜品的托盘放进摄像头下,系统主显示区最终显示每道菜的价格,结算区显示就餐者所有菜加起来的应付的总价格。程序运行过程中,会不断读取视频帧,对每一帧进行预测,当图片中出现餐盘时,识别接口会将餐盘区域裁剪下来,输入到分类网络进行分类。再将识别的结果绘制在摄像头读入的图片上,最后再绘制到界面上。经过实测,菜品正确识别率达95%。如果能够避免同一餐中出现过于相似的菜品,准确率更高。
[译文1]Observing abnormal behavior of animals suggests a particular disease problem or bad feeding management.
4 结语
针对餐厅自助结算的应用场景,本文实现了基于Faster R-CNN 的菜品识别检测算法。对于添加新菜,现阶段我们仍需通过迁移学习训练模型实现,在未来,我们考虑通过孪生网络的方式实现更快更简易的添加菜品,以更好地适用于自助结算等场景。