一、项目实施情况:
一、研究目标
实现食堂结算场景下,通过摄像头获取餐盘图像,对菜品进行识别,得出菜品类别、结算金额、营养价值。
二、研究过程
2018年5月-2018年8月,理论学习阶段。
团队成员进行yolov3算法的理论学习,具体形式:1、包括广泛阅读国内外关于yolov3算法的研究现状,比较相比于yolov2的改进点与创新点、比较与CNN、F-CNN、R-CNN等主流算法的区别于联系,并研究yolov3的优势与思考其与项目之间更好的结合点;2、向研究生学长学姐对于算法原理方面的学习,如卷积过程、算法实现过程等,对yolov3算法有了比较整体的理解;3、使用yolov3进行一些简单场景的应用,如人脸识别、具体物种的识别,能够做到较好的识别率;
2018年9月-2018年10月,数据采集阶段。
团队成员前往福州大学食惠餐厅、京元餐厅、丁香园餐厅的共三十类菜品样本,共计样本数据超过10000个;采集过程对照片质量进行不断的筛选,舍弃不符合要求的图片并进行照片的补充;同时将照片结果向研究生学长学姐、指导老师请教,最终达到数量和质量上的要求;
2018年11月-2019年2月,理论优化阶段。
团队成员主要完成:
使用图像处理方法增强待检测图像,强调目标特征信息。输入的待检测图像的特征表现力影响模型识别的准确度,通过对比基于直方图均衡化、伽马变换、对数Log变换、点算子的图像增强方法在提升图像质量方面的效果,选择适应本实验场景的图像增强方法,提高图像整体对比度。
利用图像处理实现数据增强,扩充数据集大小。为了降低模型过拟合风险,训练集样本特征表现过于优越,导致测试集表现较差的问题,提出使用计算机视觉领域中的图像增广方法,对训练集样本进行翻转、旋转、高斯模糊、添加噪声等处理,增加样本数量,提高模型的泛化能力。
采用帧间差分法检测餐盘目标,排除摄像头场景下无关目标的干扰。通过连续图像序列中的两帧差分,经过阈值化处理和形态学处理,获得连通区域,对连通区域进一步判断以确认餐盘目标。
提出基于拉普拉斯算子的清晰度评价方法,选择较为清晰的图像被检测结果作为输出,提高视频检测场景下的准确率。为了处理视频场景下,图像短暂的模糊、失焦、曝光,部分特征信息消失的问题,通过对连续帧使用拉普拉斯算子卷积运算,以图像灰度值的方差作为测量清晰程度的参考依据。
2019年2月-2019年4月,模型训练和检验阶段。
团队成员基于Darknet-53网络通过YOLOv3算法对菜品目标进行检测和识别。为了在输入的待检测图像中获得目标对象的位置与所属类别,使用YOLOv3构建算法模型,用自己的数据集训练网络权重,使用网络对测试集数据获得目标位置与类别。
最终,通过对本模型进行评估,分析结果准确率达到93.12%,实验结果表明该系统可对菜品完成较为可靠的检测识别并简单分析。
2019年5月,项目总结阶段
根据将近一年的结果,团队成员对整个项目执行阶段进行总结,并与指导老师共同研究过程中的一些不足,书写个人心得;完成解题部分需要提交的材料,包括结题表、总结ppt等材料;总结经费使用情况,完成报账等内容。
三、研究成果
本项目经过前期开发以及不断的改进,已经可以对摄像头下中的菜品进行识别,给出菜品的类别并计算菜品价格、菜品营养价值。实验过程中,使用实验图像来自福州大学食惠餐厅、京元餐厅、丁香园餐厅的共三十类菜品样本,共计样本数据超过10000个,通过对本模型进行评估,分析结果准确率达到94.55%,实验结果表明该系统可在识别菜品的基础上,自动给出营养分布图以及膳食建议。
四、研究心得全面总结
项目组:项目进展的过程中遇到了许多的问题,各成员由于大四,考研、找工作等事情使得项目前期进展缓慢。后来在各自事情结束后,三个人积极得参与到项目中,并在指导老师的帮助下,逐渐赶上了项目进度,并进行了测试,使得项目顺利进行。
在数据的采集过程中状况百出,由于在未考虑背景先验信息的情况下采集的数据训练效果差,后期才真正积累下理想的数据集。数据集采集、增强与标注对模型的准确度有很大的影响,早期在这方面走了较多弯路,如果能够更早意识到该问题的影响性,应该尽早制定实验计划,测试数据集中各类因素对训练结果的影响以提高最终测试的准确度,包括单个菜品类需要包含多少个样本,图像的翻转、噪声、模糊、旋转、色彩抖动等增强情况对模型的实际提升,应用场景中的背景信息对识别的影响,以及照度等因素的实际环境测试的影响等。
除此之外,在模型训练阶段电脑硬件问题曾经成为较大的制约因素,由于各成员的电脑均无独立显卡和充足的现存,在内存也较小的情况下,仅使用CPU计算做权值训练,训练进度十分缓慢,这一因素也造成对数据集各类因素的测试实验困难。后期更换电脑设备,从核显无显存换成1060 6G独立显卡,使用GPU对计算进行加速后,每次训练时间大幅缩短,实验进度得到大程度的推进。
如果能再次进行此类项目,在开展项目前不应该盲目开展,而是应该花费更长的时间对最终的验证场景进行考察和实验测试,对采用的核心算法做更加深入的理解,对各类参数有目的性的实验和调整。
叶海辉:在yolov3算法与食堂场景的结合过程中,小组成员从采集数据到训练数据,到达最终的识别菜品,团队成员付出了自己的努力。虽然在真实场景下仍然受到特殊环境的干扰,但是其中凝结的团队成员的汗水和辛勤并取得较高的菜品识别率,是团队成员一起努力的结果!
黄旭:由于考研确实前期没有对这个项目很上心,需要对其他组员道个歉。在后来组员们和老师帮助我迅速学习项目相关知识并带我迅速进入项目中,使我在短时间内上手负责的模块。在这个过程中出了学习了深度学习相关知识更让我收获了和大家一起拼搏的快乐,收获了再解决困难后的激动!
王雨勤:作为组长的统筹能力远远没达到个人预期,项目推进主要依靠里程碑带来的压力和个人努力,没有很好发挥出团队的力量,在完成项目后回头看,其实正确的统筹完全可以实现系统的更早成型。
在反复多次的模型训练中也取得一些训练心得,好的训练集对模型拟合速度又极大的影响,除此之外,在训练过程中适时地调整网络参数也能带来极大的速度提升,根据经验,对于10000左右的训练集,初期可以0.01这一较大的学习率开始训练,在1000次以内一般会出现loss曲线的明显震荡,这时候将学习率降低到0.005继续训练;在接下来的1500~2500次迭代中,当训练到一定程度时会再次出现更小区间内的震荡,如果震荡中心的下降幅度很小,可以看出loss下降较慢,可以再次进行学习率的调整;此后再进行训练可以看到loss曲线极小幅度震荡下降,这时下降较慢时正常的,当训练到一定程度时最后一次调整学习率,这次调整可能取得很快的下降,直接逼近我们理想的收敛情况,也可能没什么用,后者说明数据集还有提升空间。
二、项目创新点与特色:
现如今很多高校食堂、企业食堂中多运用餐盘底部芯片识别感应,给出价格或人工计价,前者耗费较大财力,后者浪费人力。本项目可依托于一个摄像头,对摄像头下餐盘中的菜品进行识别,直接给出价格并有营养分析功能,省时省力,节省开销。
三、项目成果:
项目申请书中的预期成果及成果提交形式
公开发表论文:1(篇),专利:1(项),调查报告:0(份),软件、著作:1(份)实物:0(件),竞赛获奖:0(次),其它:
项目结题时取得的成果
公开发表论文:0(篇),专利:0(项),调查报告:0(份),软件、著作:1(份)实物:0(件),竞赛获奖:0(次),其它:
项目主要研究成果情况
序号 | 成果名称 (获奖名称及等级) | 成果形式 | 作者(获奖者) | 出版社、发表刊物 或颁奖单位 | 时间(刊期) |
四、研究体会和心得:
YOLOv3作为检测速度和准确率较为平衡的深度学习算法,在本课题的实验场景下取得了较好的表现,但存在对菜品的色彩特征较为敏感,对色彩显示但形态迥异的菜品存在误检。
此外,在反复多次的模型训练中也取得一些训练心得,好的训练集对模型拟合速度又极大的影响,除此之外,在训练过程中适时地调整网络参数也能带来极大的速度提升,根据经验,对于10000左右的训练集,初期可以0.01这一较大的学习率开始训练,在1000次以内一般会出现loss曲线的明显震荡,这时候将学习率降低到0.005继续训练;在接下来的1500~2500次迭代中,当训练到一定程度时会再次出现更小区间内的震荡,如果震荡中心的下降幅度很小,可以看出loss下降较慢,可以再次进行学习率的调整;此后再进行训练可以看到loss曲线极小幅度震荡下降,这时下降较慢时正常的,当训练到一定程度时最后一次调整学习率,这次调整可能取得很快的下降,直接逼近我们理想的收敛情况,也可能没什么用,后者说明数据集还有提升空间。
五、经费使用明细情况:
项目获批总经费:20000(元),项目实际投入经费:20000(元),实际使用资金:12000(元),结余资金:8000(元)
项目经费开支情况
名目 | 用途 | 金额(元) | 备注 |
论文版面费 | | | |
专利申请费 | | | |
调研、差旅费 | | | |
打印、复印费 | 日常资料、阶段性汇报材料的资料、项目书等复印、打印、装订费用,以及需要彩印的部分资料、采集食堂的照片等 | 7000 | |
资料费 | 技术研究所需书籍购买 | 2000 | |
试剂等耗材费 | | | |
元器件、软硬件测试、小型硬件购置费 | 升级深度学习计算加速所需硬件,实际场景下测试所需摄像头、支架,实验器具测量菜品重量等 | 3000 | |
其它 | | | |
指导教师意见:
该项目在执行过程中,小组成员能够较好地按照项目计划书规定的时间完成项目的要求,所采用的yolov3算法不同于传统的目标检测与识别算法,结合了当前较前沿的目标检测算法,体现了科学性与先进性;并将该算法与食堂场景相结合,在结账处理上体现出十分重要的现实意义;在项目发展发面,希望团队成员能够在营养数据分析与社会生活实际相结合,根据不同人的身体素质提出更加适合膳食建议;另一方面,还希望团队成员将菜品识别能够应用到具体的食堂场景中,真正把算法用在生活的食堂里,去研究算法在不同具体挑战下的准确率和稳定性,同时以此为切入点,继续进行相关算法的研究;总的来说,团队成员的完成情况十分优秀,同意结题!