您所在的位置: 中期检查 >> 查看详细
一、项目进展情况及取得成果
项目进展情况:按计划进行
主要研究阶段(起止时间) 研究内容 完成情况
2018.05~2018.08图像采集、增强与标注采集菜品超过30类
2018.09~2018.11基于yolo模型训练数据集检测正确率到达89.76%
项目研究成果(已取得的成果)
序号 项目成果名称 成果形式
1菜品数据集Yolo格式的txt文件
2初步训练yolo模型结果训练获得h5文件
 
二、项目中期报告

在第一季度中,按照计划开展样本图像的采集、增强与标注。在深度学习项目中,寻找数据需要花费相当多的时间。但为了要保证完美地完成项目,这两件事情必须做好:一是,寻找更多的数据;二是,对数据进行增强。

在数据采集前期,由于小组人员有限,有限次、有限时段进入食堂取样开展缓慢,对图像采集进度不利。为了快速推进数据采集的完成进度,我们与京元餐厅经理联系自荐,但未最终双方未取得认知的一致,合作失败。后期通过同学联络,请求多位同学帮忙拍摄图像,取得进度上的更快推动。在6月底基本完成对图像的采集,获得图片数量超过一万张。

在采集过程中,我们采用了动态采集与静态采集两种采集方式。动态采集即使用摄像方式获取图像,后期抽帧获得大量样本;静态采集即使用静止拍摄方式获取图像。虽然动态采集为我们的数据集提供了大量样本,但在标注过程中发现动态采集的样本由于拍摄抖动、自动对焦过曝等原因,成像效果过差,手动标注已过于困难,考虑此类样本属于识别上的极端数据,故在后期只是少部分采用。

由于弃用大部分动态采集获得的样本,我们的样本量一定程度减少。为了弥补这个损失,同时也是项目原有计划的一部分,我们需要对数据进行增强。

数据增强即是通过空间、颜色变换等方法,让有限的数据产生更多的等价数据。例如,10张图像是通过对原图做了一些随机的裁剪、旋转操作得来。增强图像的每张图对于网络来说都是不同的输入,这样就将数据扩充到10倍。假如输入网络的图片的分辨率大小是256*256,若采用随机裁剪成224*224的方式,那么一张图最多可以产生32*32张图,数据量扩充将近1000倍。但因许多图相似度太高,实际的效果并不等价。但如果再辅助其他的数据增强方法,将获得更多的数据集,这就是数据增强的本质。

在数据增强过程中,我们使用的主要增强方法为图像翻转、多次随机剪裁、图像旋转、缩放变形、仿射变换、透视变换、噪声叠加、图像模糊、随机擦除、图像锐化等。最终,输出图像样本约3500张。

为了使计算机能够理解我们的识别对象,首先需要给它一个标准答案,也就是我们的数据集。图像数据要转化为数据集仍然需要进一步标注。由于计划采用Yolo3作为深度学习算法,所以我们首先需要制作VOC格式的xml文件,再将VOC格式的xml文件转换成Yolo格式的txt文件。

制作VOC格式的xml文件过程,我们使用了比较经典的LabelImg,这一工具我们组员在大二暑假均已接触过,使用起来也较为熟悉。这项标注任务较少实质技术内容,但由于样本数量较多,耗时较长。最终获得数据集中有共31类食物,每类食物100张训练样本,这些食物是竹笋炖猪肚、黑木耳、红烧扣肉、卷心菜炒肉、胡萝卜炖排骨、鸡心、鸡块、韭黃、凉拌豆皮、玉米排骨汤、鱼丸汤、鱼肉、炸豆子、荷包蛋、薯条、木耳炒山药、铁板豆腐、宫保鸡丁、狮子头、丝瓜、蘑菇炒笋、马铃薯炒肉、酱肘子、洋葱炒蛋、马铃薯炒蛋、蒸蛋、豆腐块、西红柿炒鸡蛋、冬瓜、红烧肉、红烧茄子。

在第二季度中,按照计划开展搭建yolo模型训练数据集。基于第一季度的项目成果——菜品数据集,训练我们的yolo3模型,将经过增强的样本图片及标注文件输入神经网络,我们初步采用了yolo3官方文档建议的配置参数配置yolo-voc.cfg中的batchsubdivisionslearning_ratemax_batches等参数,计算公式的类别数filter = num × classes + coords + 1= 5 ×1+4+1= 30),class = 31

在首次训练中,我们的数据一直未能收敛,各项都是nan。于是我们调小了subdivisions,增大batch,并逐步减小learning_rate,迭代5000次后逐渐收敛。

根据交流得知,初始学习率learning_rate不能过小,太小可能会进入局部最优解,最后无法收敛,在训练过程中,如果训练发散或学习遇到瓶颈loss不变,可以尝试降低learning_rate。增大每一次迭代送到网络的图片数量batch可以让网络在较少的迭代次数内完成一个epoch。在固定最大迭代次数的前提下,增加batch会延长训练时间,但会更好的寻找到梯度下降的方向。batch过小的话会让训练不够收敛,过大会陷入局部最优。同时需要注意,由于资源有限,subdivisions过小、batch过大会导致资源占用高,迭代困难。

最终获得31类菜品的mAPmean average precision,即平均准确率)分别为Bamboo stewed pork belly0.8985)、Black Fungus0.9)、Braised pork0.9)、Cabbage fried meat0.9)、Carrot stewed pork ribs0.9)、Chicken heart0.9)、Chicken nuggets0.9)、Chives0.9)、Cold soy skin0.9)、Corn ribs soup0.9)、Fish ball soup0.9)、Fish meat0.9)、Fried beans0.9)、Fried egg0.9)、Fried potato chips0.9)、Fungus fried yam0.9)、Iron plate tofu0.9)、Kung Pao Chicken0.83548)、Lion head0.89832)、Loofah0.89981)、Mushroom fried bamboo shoots0.9)、Potato crispy meat0.9)、Sauce ribs0.9)、Scrambled eggs with onions0.9)、Scrambled eggs with tomatoe0.89975sSteamed egg0.9)、Tofu block0.9)、Tomato omelette0.9)、Winter melon0.89479)、bouilli0.9)、braised eggplant0.89991)。最终平均mAP达到0.8976

mAP数据略低于预期,后期需要继续增加训练样本、优化网络参数,以提高准确率。

 
三、经费使用明细情况
项目获批总经费(元) 已使用项目研究经费(元) 已报销金额(元) 未报销金额(元)
20000 0 0 0
项目经费开支情况
名目 用途 金额(元) 备注
论文版面费 0
专利申请费 0
调研、差旅费 0
打印、复印费 0
资料费 0
试剂等耗材费 0
元器件、软硬件测试、小型硬件购置费 0
其它 0
 
四、项目后期具体工作计划

前期训练结果准确率未达到预期,需要进行进一步网络结构优化和参数调整,考虑可能影响准确率的原因如下:

一,第一季度中,由于动态采集方式存在的人工和设备操作缺陷,采集所得图像成像效果过差,标注困难,大部分样本被舍弃,样本数下降可能影响训练效果。

二,第二季度中,暂时用于训练网络的机器设备性能较差,计算资源较少导致训练迭代速度较慢,实际上迭代次数可以  增加。

后期需要整理和增加训练数据,图像增强仍有余地,再次基础上再重新训练,继续调整参数,希望提升测试识别准确率。
 
五、指导教师意见
项目团队学生分别实习和考研,在项目上花费时间相对较少,保持当前进度到明年5月结题前仍可完成项目。前期训练结果准确率偏低,需要继续提高。训练样本数太少,单品类包括增强后的样本数据至少应该达到200,后期可继续拍摄更多图片样本增加class,以及更多方式的增强图像,能够使准确率显著改善。
 
附件:未上传
 
主办单位:福建省教育厅高等教育处   技术支持:南京先极科技有限公司