CN116030455A - 一种基于Yolo-EfficientNet双层模型的食物热量测算算法 - Google Patents
一种基于Yolo-EfficientNet双层模型的食物热量测算算法 Download PDFInfo
- Publication number
- CN116030455A CN116030455A CN202211741975.0A CN202211741975A CN116030455A CN 116030455 A CN116030455 A CN 116030455A CN 202211741975 A CN202211741975 A CN 202211741975A CN 116030455 A CN116030455 A CN 116030455A
- Authority
- CN
- China
- Prior art keywords
- food
- detection
- image
- algorithm
- yolo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
本发明提供一种基于Yolo‑EfficientNet双层模型的食物热量测算算法,涉及计算机视觉技术领域。该基于Yolo‑EfficientNet双层模型的食物热量测算算法,包括以下步骤:S1、首先通过手机拍摄获取待识别图像,将图像输入经过大数据训练的YoloV5模型,进行图像检测,将待识别图像中的每个食物检测出来,得到第一识别图像组。通过从而计算出食物体积V=L*W*H,无需外部质量测量工具即可计算食物的质量,通过EfficientNetV2网络的二次增强分类,实现了超过85%的识别准确率,高于基于CNN的食物识别算法平均65%的准确率效果,测距和数学计算,将检测出的食物目标框大小转换成食物质量,结合百万级食物营养数据库,计算得到食物热量。
Description
技术领域
本发明涉及计算机视觉技术领域,具体为一种基于Yolo-EfficientNet双层模型的食物热量测算算法。
背景技术
随着人工智能和图像处理技术的不断进步,图像识别和图像检测算法被应用于越来越多的场景中,例如,安防系统应用图像检测算法区分出入人群、交通执法系统应用图像识别算法识别违规驾驶行为,等等。其中Yolo算法模型被应用甚广。
现有技术方案中包括了:基础的人工识别方案:通过使用质量测量工具对食物进行质量测量,并在人工判断食物类别后,通过查询单位食物热量值进行计算,得到食物热量,人工识别方案的最大优势是食物类别识别准确率高,但其缺点非常明显:质量测算流程复杂,且极大程度上依赖质量测量工具,单位食物热量值查询流程复杂,且查询数值权威性、准确性无法保证。
根据专利文献CN112070077B提供的一种基于深度学习的食物识别方法和装置,该技术方案应用卷积神经网络模型对食物图像进行类别识别,应用场景为图像中只包含单一食物,且并未进一步实现对食物体积、质量、热量的量化测算,但也有很大的受限性:应用场景仅限图像中包含单一食物这一场景,面对多食物图像的场景,准确率和召回率都有很大程度的降低;方案终点为食物的类别识别,并不能满足用户的真正需求:识别食物营养含量;食物类别识别准确率和效率都低于人工识别。
发明内容
针对现有技术的不足,本发明提供了一种基于Yolo-EfficientNet双层模型的食物热量测算算法,解决了现有人工识别食物热量质量测算流程复杂,且极大程度上依赖质量测量工具的问题。
为实现以上目的,本发明通过以下技术方案予以实现:一种基于Yolo-EfficientNet双层模型的食物热量测算算法,包括以下步骤:
S1、首先通过手机拍摄获取待识别图像,将图像输入经过大数据训练的YoloV5模型,进行图像检测,将待识别图像中的每个食物检测出来,得到第一识别图像组;
S2、将第一识别图像组中的每个图像输入训练完成的EfficientNetV2分类模型,进行二次分类,增强分类效果、提高食物分类准确率,并得到第二识别图像组;
S3、通过调用手机测距接口与摄像头信息,将第二识别图像的检测框大小转换成食物的面积与厚度,进而计算出食物的质量;
S4、链接自建的百万级食物营养云数据库获取第二识别图像中食物的单位热量值,根据食物类别,在数据库中匹配食物密度数据,计算得到食物质量M;
S5、将计算的热量和食物分类识别结果展示给用户,用户后续根据实际情况进行调整,拍摄图像及调整内容将自动输入服务器存储,作为下一周期模型参数更新的补充训练数据,提供给模型进行自训练强化。
优选的,所述S1步骤中,获取手机拍摄的图像后,并对图像进行base64编码压缩,以利于图像的传输、存储、及处理。
优选的,所述S1步骤中,将base64编码后的图像传入Flask服务,判断是否为string字符串类型编码,如是,使用TurboJPEG对图片进行解码,以匹配模型的输入格式;否则返回错误码,同时部署在Triton分布式服务器上的基于YoloV5的tensorRT模型对图像进行推理,即识别,如有检测结果,则进行后处理;否则返回错误码。
优选的,所述S2步骤中,第一识别图像组中的每个图像输入至fficientNet分类模型前,对图像分别进行置信映射、重叠消除、重复检测消除三步后处理步骤,使得输出图片符合EfficientNet分类模型的标准输入。
优选的,所述S2步骤中,进行二次分类识别后,保留所有达到设定阈值以上的高概率检测数据。
优选的,所述置信映射包括以下详细步骤:
a、Yolo模型推理识别后的食物图像检测列表,在置信映射模块中先被判断是否仍有检测类别,若有,即获取检测类别,否则返回处理后的列表;
b、基于数据库对获取检测类别进行判断,若食物类别存在于数据库中,则置信度为对应的比例参数,否则处理下一个检测类别,以获得最终对应比例参数。
优选的,所述重叠消除包括以下详细步骤:
I、首先预设一个初始化空字典d,对置信映射输出的检测列表进行判断,若列表内仍有检测类别,并且检测类别在d中,则将检测类别加入列表中;若检测类别不在d中,则在d中初始化一个列表,列表key为检测类别,直到列表中没有检测类别,d的构造完成;
II、对d进行处理:依次处理d中所有检测类别,若两检测框存在内包围情况(如检测框x在检测框y内),则删除被内包含的检测框。直至处理完所有检测类别的检测框,返回处理后的列表。
优选的,所述重复检测消除包括以下详细步骤:在本步骤中,食物检测列表中的每个检测值都被两两比较判断。当出现一个检测框的中心在另一个检测框内部时,删除该检测框。例如,x的中心点在y检测框内部,则删除x。直到检测列表中不存在此情况,则返回处理后的列表。
优选的,所述S3步骤中,食物的面积与厚度计算包括以下详细步骤:
[1]、通过调取手机测距接口和摄像头信息获得物距u1、u2和手机相距v,依赖垂直拍摄的图像长l、宽w和水平拍摄的图像高h,并获得公式:
[2]、根据公式计算得到食物的长L、宽W、高H,从而计算出食物体积V=L*W*H。
本发明提供了一种基于Yolo-EfficientNet双层模型的食物热量测算算法。具备以下有益效果:
1、本发明首先通过手机拍摄获取待识别图像,获取手机拍摄的图像后,并对图像进行base64编码压缩,以利于图像的传输、存储、及处理,将图像输入经过大数据训练的YoloV5模型,YoloV5进行食物检测实现多食物图像场景的食物类别识别和食物位置检测。
2、本发明通过置信映射输出、重叠消除以及重复检测消除使得输出图片符合EfficientNet分类模型的标准输入,将第一识别图像组中的每个图像输入训练完成的EfficientNetV2分类模型,进行二次分类,增强分类效果、提高食物分类准确率,并得到第二识别图像组,进行二次分类识别后,保留所有达到设定阈值以上的高概率检测数据发明,通过EfficientNetV2网络的二次增强分类,实现了超过85%的识别准确率。高于基于CNN的食物识别算法平均65%的准确率效果。
3、本发明通过调取手机测距接口和摄像头信息获得物距u1、u2和手机相距v,依赖垂直拍摄的图像长l、宽w和水平拍摄的图像高h,并获得公式计算得到食物的长L、宽W、高H,从而计算出食物体积V=L*W*H,无需外部质量测量工具即可计算食物的质量,通过测距和数学计算,将检测出的食物目标框大小转换成食物质量,结合百万级食物营养数据库,计算得到食物热量。
附图说明
图1为本发明的系统总架构示意图;
图2为本发明的算法架构示意图;
图3为本发明的置信映射模块架构示意图;
图4为本发明的重叠消除模块架构示意图;
图5为本发明的重复检测消除架构示意图;
图6为本发明的Yolo-EfficientNet神经网络架构示意图;
图7为本发明的测距换算机制架构示意图;
图8为本发明的实际实施效果曲线示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
如图1所示,本发明实施例提供一种基于Yolo-EfficientNet双层模型的食物热量测算算法,包括以下步骤:
S1、首先通过手机拍摄获取待识别图像,获取手机拍摄的图像后,并对图像进行base64编码压缩,以利于图像的传输、存储、及处理,将图像输入经过大数据训练的YoloV5模型,如图2所示,将base64编码后的图像传入Flask服务,判断是否为string字符串类型编码,如是,使用TurboJPEG对图片进行解码,以匹配模型的输入格式;否则返回错误码,同时部署在Triton分布式服务器上的基于YoloV5的tensorRT模型对图像进行推理,即识别,如有检测结果,则进行后处理;否则返回错误码,进行图像检测,将待识别图像中的每个食物检测出来,得到第一识别图像组;
S2、第一识别图像组中的每个图像输入至fficientNet分类模型前,对图像分别进行置信映射、重叠消除、重复检测消除三步后处理步骤;
如图3所示,置信映射包括以下详细步骤:
a、Yolo模型推理识别后的食物图像检测列表,在置信映射模块中先被判断是否仍有检测类别,若有,即获取检测类别,否则返回处理后的列表;
b、基于数据库对获取检测类别进行判断,若食物类别存在于数据库中,则置信度为对应的比例参数,否则处理下一个检测类别,以获得最终对应比例参数;
如图4所示,重叠消除包括以下详细步骤:
I、首先预设一个初始化空字典d,对置信映射输出的检测列表进行判断,若列表内仍有检测类别,并且检测类别在d中,则将检测类别加入列表中;若检测类别不在d中,则在d中初始化一个列表,列表key为检测类别,直到列表中没有检测类别,d的构造完成;
II、对d进行处理:依次处理d中所有检测类别,若两检测框存在内包围情况(如检测框x在检测框y内),则删除被内包含的检测框。直至处理完所有检测类别的检测框,返回处理后的列表,重叠消除的功能是删除掉重叠的同类食物,只保留最大的检测框,即识别食物的总体积,避免热量重复测算;
如图5所示,重复检测消除包括以下详细步骤:在本步骤中,食物检测列表中的每个检测值都被两两比较判断,当出现一个检测框的中心在另一个检测框内部时,删除该检测框。例如,x的中心点在y检测框内部,则删除x,直到检测列表中不存在此情况,则返回处理后的列表,重复检测消除模块的目的是让临近的检测框保留高的置信结果,删除掉整体食物中的子食物情况(如,辣椒炒肉中的辣椒),避免出现热量测算偏高情况。以相对牺牲召回率为代价提高检测准确率;
三个步骤完成后,使得输出图片符合EfficientNet分类模型的标准输入,将第一识别图像组中的每个图像输入训练完成的EfficientNetV2分类模型,进行二次分类,增强分类效果、提高食物分类准确率,并得到第二识别图像组,进行二次分类识别后,保留所有达到设定阈值以上的高概率检测数据;
S3、通过调用手机测距接口与摄像头信息,将第二识别图像的检测框大小转换成食物的面积与厚度,进而计算出食物的质量,如图8所示,食物的面积与厚度计算包括以下详细步骤:
[1]、通过调取手机测距接口和摄像头信息获得物距u1、u2和手机相距v,依赖垂直拍摄的图像长l、宽w和水平拍摄的图像高h,并获得公式:
[2]、根据公式计算得到食物的长L、宽W、高H,从而计算出食物体积V=L*W*H;
S4、链接自建的百万级食物营养云数据库获取第二识别图像中食物的单位热量值,根据食物类别,在数据库中匹配食物密度数据,计算得到食物质量M;
S5、将计算的热量和食物分类识别结果展示给用户,用户后续根据实际情况进行调整,拍摄图像及调整内容将自动输入服务器存储,作为下一周期模型参数更新的补充训练数据,提供给模型进行自训练强化。
如图8所示,本发明实施例提供一种基于Yolo-EfficientNet双层模型的食物热量测算算法的实施数据:
将模型应用于包含500类食物和5万张数据的场景中,实现高于85%的食物类别识别准确率、高于70%的食物识别召回率和高于75%的食物热量测算精准率,其中食物识别召回率甚至高于MIT于2020年提出的Pic2recipe系统,后者的食物识别召回率达到65%。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (9)
1.一种基于Yolo-EfficientNet双层模型的食物热量测算算法,其特征在于:包括以下步骤:
S1、首先通过手机拍摄获取待识别图像,将图像输入经过大数据训练的YoloV5模型,进行图像检测,将待识别图像中的每个食物检测出来,得到第一识别图像组;
S2、将第一识别图像组中的每个图像输入训练完成的EfficientNetV2分类模型,进行二次分类,增强分类效果、提高食物分类准确率,并得到第二识别图像组;
S3、通过调用手机测距接口与摄像头信息,将第二识别图像的检测框大小转换成食物的面积与厚度,进而计算出食物的质量;
S4、链接自建的百万级食物营养云数据库获取第二识别图像中食物的单位热量值,根据食物类别,在数据库中匹配食物密度数据,计算得到食物质量M;
S5、将计算的热量和食物分类识别结果展示给用户,用户后续根据实际情况进行调整,拍摄图像及调整内容将自动输入服务器存储,作为下一周期模型参数更新的补充训练数据,提供给模型进行自训练强化。
2.根据权利要求1所述的一种基于Yolo-EfficientNet双层模型的食物热量测算算法,其特征在于:所述S1步骤中,获取手机拍摄的图像后,并对图像进行base64编码压缩,以利于图像的传输、存储、及处理。
3.根据权利要求1所述的一种基于Yolo-EfficientNet双层模型的食物热量测算算法,其特征在于:所述S1步骤中,将base64编码后的图像传入Flask服务,判断是否为string字符串类型编码,如是,使用TurboJPEG对图片进行解码,以匹配模型的输入格式;否则返回错误码,同时部署在Triton分布式服务器上的基于YoloV5的tensorRT模型对图像进行推理,即识别,如有检测结果,则进行后处理;否则返回错误码。
4.根据权利要求1所述的一种基于Yolo-EfficientNet双层模型的食物热量测算算法,其特征在于:所述S2步骤中,第一识别图像组中的每个图像输入至fficientNet分类模型前,对图像分别进行置信映射、重叠消除、重复检测消除三步后处理步骤,使得输出图片符合EfficientNet分类模型的标准输入。
5.根据权利要求1所述的一种基于Yolo-EfficientNet双层模型的食物热量测算算法,其特征在于:所述S2步骤中,进行二次分类识别后,保留所有达到设定阈值以上的高概率检测数据。
6.根据权利要求4所述的一种基于Yolo-EfficientNet双层模型的食物热量测算算法,其特征在于:所述置信映射包括以下详细步骤:
a、Yolo模型推理识别后的食物图像检测列表,在置信映射模块中先被判断是否仍有检测类别,若有,即获取检测类别,否则返回处理后的列表;
b、基于数据库对获取检测类别进行判断,若食物类别存在于数据库中,则置信度为对应的比例参数,否则处理下一个检测类别,以获得最终对应比例参数。
7.根据权利要求3所述的一种基于Yolo-EfficientNet双层模型的食物热量测算算法,其特征在于:所述重叠消除包括以下详细步骤:
I、首先预设一个初始化空字典d,对置信映射输出的检测列表进行判断,若列表内仍有检测类别,并且检测类别在d中,则将检测类别加入列表中;若检测类别不在d中,则在d中初始化一个列表,列表key为检测类别,直到列表中没有检测类别,d的构造完成;
II、对d进行处理:依次处理d中所有检测类别,若两检测框存在内包围情况,则删除被内包含的检测框。直至处理完所有检测类别的检测框,返回处理后的列表。
8.根据权利要求1所述的一种基于Yolo-EfficientNet双层模型的食物热量测算算法,其特征在于:所述重复检测消除包括以下详细步骤:在本步骤中,食物检测列表中的每个检测值都被两两比较判断,当出现一个检测框的中心在另一个检测框内部时,删除该检测框。例如,x的中心点在y检测框内部,则删除x。直到检测列表中不存在此情况,则返回处理后的列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211741975.0A CN116030455A (zh) | 2022-12-30 | 2022-12-30 | 一种基于Yolo-EfficientNet双层模型的食物热量测算算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211741975.0A CN116030455A (zh) | 2022-12-30 | 2022-12-30 | 一种基于Yolo-EfficientNet双层模型的食物热量测算算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116030455A true CN116030455A (zh) | 2023-04-28 |
Family
ID=86073600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211741975.0A Pending CN116030455A (zh) | 2022-12-30 | 2022-12-30 | 一种基于Yolo-EfficientNet双层模型的食物热量测算算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116030455A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117237745A (zh) * | 2023-11-13 | 2023-12-15 | 合肥天帷信息安全技术有限公司 | 一种提升灭火器状态识别准确率的方法、装置及介质 |
-
2022
- 2022-12-30 CN CN202211741975.0A patent/CN116030455A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117237745A (zh) * | 2023-11-13 | 2023-12-15 | 合肥天帷信息安全技术有限公司 | 一种提升灭火器状态识别准确率的方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107563433B (zh) | 一种基于卷积神经网络的红外小目标检测方法 | |
CN110580428A (zh) | 图像处理方法、装置、计算机可读存储介质和电子设备 | |
CN108897786A (zh) | 应用程序的推荐方法、装置、存储介质及移动终端 | |
CN111382298B (zh) | 基于图片内容的图像检索方法、装置与电子设备 | |
CN109360179B (zh) | 一种图像融合方法、装置及可读存储介质 | |
CN113034444A (zh) | 一种基于MobileNet-PSPNet神经网络模型的路面裂缝检测方法 | |
CN111325169A (zh) | 基于胶囊网络的深度视频指纹算法 | |
CN114360067A (zh) | 一种基于深度学习的动态手势识别方法 | |
CN116030455A (zh) | 一种基于Yolo-EfficientNet双层模型的食物热量测算算法 | |
CN113420794B (zh) | 一种基于深度学习的二值化Faster R-CNN柑橘病虫害识别方法 | |
CN115063326B (zh) | 基于图像压缩的红外夜视图像高效通讯方法 | |
CN116469100A (zh) | 一种基于Transformer的双波段图像语义分割方法 | |
CN115393690A (zh) | 一种轻量化神经网络的空对地观测多目标识别方法 | |
CN116704585A (zh) | 一种基于质量感知的人脸识别方法 | |
CN111950476A (zh) | 基于深度学习的复杂环境下河道船舶自动识别方法 | |
CN110490053B (zh) | 一种基于三目摄像头深度估计的人脸属性识别方法 | |
CN116563748A (zh) | 一种高层施工建筑物高度测量方法及系统 | |
CN114663307B (zh) | 基于不确定性网络的集成图像去噪系统 | |
CN115661904A (zh) | 数据标注和域适应模型训练方法、装置、设备及介质 | |
CN116310474A (zh) | 端到端关系识别方法、模型训练方法、装置、设备及介质 | |
CN113298102B (zh) | 一种目标分类模型的训练方法及装置 | |
CN114120056A (zh) | 小目标识别方法、装置、电子设备、介质及产品 | |
CN115242293B (zh) | 一种图片特征的传输方法、装置、电子设备及存储介质 | |
CN116778376B (zh) | 内容安全检测模型训练方法、检测方法和装置 | |
CN116866589B (zh) | 一种野外红外相机无线网络的视频图像压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |