1. AI新视界首页
  2. AI食品

FoodTracker:一种由AI驱动的食品检测移动应用程序

本次介绍的是来自加拿大麦吉尔(McGill)大学电气与计算机工程系,于2019年9月发表在arXiv.org上的文章。文中,作者介绍了一个可利用智能手机内置摄像头,仅使用手机有限的计算资源就可识别餐食中多个食物种类及其营养信息的移动应用程序——FoodTracker。该程序将深度卷积神经网络与YOLOv2结合,实现多对象同时识别和定位,得到的mAP接近80%,同时神经网络结构小巧且计算成本低廉。

本次介绍的是来自加拿大麦吉尔(McGill)大学电气与计算机工程系,于2019年9月发表在arXiv.org上的文章。文中,作者介绍了一个可利用智能手机内置摄像头,仅使用手机有限的计算资源就可识别餐食中多个食物种类及其营养信息的移动应用程序——FoodTracker。该程序将深度卷积神经网络与YOLOv2结合,实现多对象同时识别和定位,得到的mAP接近80%,同时神经网络结构小巧且计算成本低廉。

1 介绍


人们越来越关注身体健康,每日的饮食质量是其中重要的一环,因此记录个人饮食并分析营养信息是迫切需要解决的问题。为了避免手动录入饮食记录的繁琐,应用计算机视觉技术来识别食物,实现自动化记录是理想的解决方案。然而当前的成果都仅能在实验室条件下识别少数特定数据库中的单个食物对象,无法进行实际应用。
作者基于MobileNet构建了深度卷积神经网络(DCNN)模型,并采用YOLOv2来同时生成边框和分类标签。还使用TensorFlow Java API将深度学习模型装配到移动应用程序中,实时对图像进行推论并提供营养信息。

2 背景

2.1 深度可分离卷积

MobileNet基于利用深度可分离卷积来构建轻型深度神经网络的简化架构。深度可分离卷积块将标准卷积分解为深度卷积和1×1点卷积。通过将标准卷积分为两步过程实现了参数数目和计算成本的大幅降低。MobileNet使用3×3过滤的深度可分离卷积,计算量比标准卷积少8到9倍,而准确性仅略有降低。

FoodTracker:一种由AI驱动的食品检测移动应用程序
图1. MobileNet-YOLO架构

3 食物检测

3.1 数据扩充

数据扩充可以防止神经网络过度拟合,且手机在获取实时图像时会有光照、背景等多种干扰因素。因此对图像进行模糊、水平翻转、色偏等操作扩充数据库。虽然训练时间因此增加了5-6倍,但得到的模型更稳健,且过拟合程度更低,有利于后续的实时图像处理。

3.2 YOLOv2

通过MobileNet中的13个深度可分离卷积块将输入分辨率从(224,224)减小到(7,7),再添加了一个卷积层,以重塑输出大小以与YOLO输出层兼容。
将每个输入图像划分为(S,S)网格,并用预测每个单元格中的框数目N,框模型为[bx,by,tw,th],每个框都有框置信度(tw, th是通过聚类算法生成的N个先验框的偏移量)。
利用 k-means 聚类算法寻找先验框(框的尺寸),且使用交并比(IoU)来进行评价。更多的预测框能得到更高的平均IoU,模型的复杂性也会增加,从而导致更高的计算成本,而性能却几乎没有增长。试验发现k=5时,在平均IoU与模型复杂性之间取得了很好的平衡,在图2(b)中表明了5倍k-means产生的先验框。

FoodTracker:一种由AI驱动的食品检测移动应用程序
图 2:(a)URCFood100中k-means 聚类算法得到的先验框。(b)示例图片中的先验框。

3.3 DCNN架构


将深度卷积和点积卷积视为单独的层,得到的 MobileNet-YOLO架构共有30层,总共350万个参数。总体方案如图1所示,其中有两个示例输入结果。训练的输入分辨率为(224,224)。


对两个数据库:UECFood100和UECFood256进行了模型评估,并验证了约1万张食物图像,实现了令人满意的食物检测性能。UECFood100的mAP为76.36%,UECFood256的mAP为75.05%(在验证集上IoU = 0.5),因此模型非常适合用于移动设备。

4 移动应用程序

对于每个推测,输出并选择置信度高于0.4的边界框,按bx,by定位框,并根据生成的具有预测偏移tw,th的先验框进行调整。此外,通过检查是否有重叠面积超过30%的预测框来执行非极大抑制以消除重复框。
营养分析功能类似于NutriVision,使用全球最大的营养数据库之一Nutritionix来分析营养成分。与手动录入不同,作者根据经过训练的DCNN模型的输出来调用Nutritionix API,并在用户界面上返回一个提供食品营养成分的信息,如图4所示。


应用程序中有两种模式,如图3的左侧和右侧所示。一种是实时模式,用于快速推断每帧的摄像机输入并显示检测结果,包括边框,类别标签和框置信度得分。第二种是本地模式,用户可以从本地相册中选择图像进行营养分析以及食物检测。

FoodTracker:一种由AI驱动的食品检测移动应用程序
图 3:左图:实时食物检测结果示例。右图:本地模式进行食物检测及营养分析,用户可从本地相册中选择图像进行分析。
FoodTracker:一种由AI驱动的食品检测移动应用程序
图 4:基于食物检测结果的多对象营养分析的用户界面。


FoodTracker不依靠任何远程服务器进行计算,检测过程仅在移动设备中进行。使用Android 9.0系统的Google Pixel 2和具有Android 8.0系统的OnePlus 5进行实时模式和本地模式的测试,每幅图像的平均时钟时间(Wall Clock time)为75ms,平均CPU时间为15ms,几乎没有延迟。

FoodTracker:一种由AI驱动的食品检测移动应用程序

5 讨论与展望

由于智能手机的广泛普及和可用性,移动应用程序开发是最有前途的领域之一。 另一方面,移动设备的计算资源的限制使得难以应用深度学习技术。现有利用计算机视觉进行的食品检测和营养分析极少能在移动设备上开放使用。作者针对这些问题进行了研究,但仍有许多问题待解决。未来将从体积估计的角度开发模型,并在考虑计算资源限制的情况下研究如何更好地将深度学习应用于移动设备。

参考文献:

  • Sun J, Radecka K, Zilic Z. FoodTracker: A Real-time Food Detection Mobile Application by Deep Convolutional Neural Networks[J]. arXiv preprint arXiv:1909.05994, 2019.

原创文章,作者:ifyoung,如若转载,请注明出处:https://www.drugfoodai.com/foodtracker.html

注意:本站原创指的是原创编译,并不主张对所介绍的工作的版权,如有侵权,请联系删除!

发表评论

邮箱地址不会被公开。 必填项已用*标注