一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于类间混淆的食物图像层级构造和分类方法

2022-08-21 19:18:12 来源:中国专利 TAG:


1.本发明涉及食物图像分析技术领域,具体涉及一种基于类间混淆的食物图像层级构造和分类方法。


背景技术:

2.食物识别是饮食监测和管理的基础,诸多后续任务,包括卡路里计算,营养成分分析,饮食健康管理等都需要精确识别食物。需要识别的食物种类是众多的,而种类增多会导致识别准确率降低,难以满足现实应用场景的需求。构建层级结构,用层级分类取代平坦分类,先做大类判断,再单独在大类内部做判断,消除各大类类别之间的制约,缓解了种类过多的问题。
3.基于类间混淆层级分类方法对类间层级关系无要求,突破了现有层级分类方法应用场景的狭隘性。由于类间层级关系不明确,给层级分类带来以下挑战:合适的层级结构难以构造;大类判别准确率过低;最终的分类效果较平坦分类难以提升。针对上述问题,本发明提出了一种基于类间混淆的层级结构构造和层级分类方法。


技术实现要素:

4.针对现有技术中存在的不足,本发明的第一个目的在于提供一种基于类间混淆的层级结构构造和层级分类方法。本发明突破现有层级分类方法在层级结构不明显的大规模分类场景下所具有的局限性,使用平坦分类做大类判别,遍历探索最佳类别合并方式。
5.为解决上述技术问题,本发明通过下述技术方案实现:
6.一种基于类间混淆的层级结构构造和层级分类方法,其特征在于:包括如下步骤:
7.s1:获取食物图像数据集food-m,并训练m类平坦分类器,m=m
(1)

8.s2:根据m
(k)
类平坦分类器获得食物各类别之间的发生分类混淆的难易程度,k∈[1,k]且k∈z;将m
(k)
个食物类别分成两大类,两大类具有的类别数目分别为其中且遍历探索得到最佳合并方式,使得m
(k)
类平坦分类器具有最高的大类判别准确率;
[0009]
s3:为与两个大类分别训练平坦分类器;
[0010]
s4:令重复步骤s2至s3,直到满足
[0011]
s5:为食物图像数据集food-m逐层级共设置了k个大类判别器,最终训练得到k个类平坦分类器和一个类平坦分类器,还训练得到k个大类判别器,分别由类平坦分类器充当,其中k∈[1,k]且k∈z。
[0012]
进一步的:在步骤s1中,使用的数据集food-m,可为任意大规模数据集,与传统的层级分类方法不同,不要求类间固有明确的层级结构,且在m为上千类时同样适用;将数据集food-m按6:1:3划分训练集、验证集和测试集,不考虑类间层级关系,训练一个m类平坦分
类器;
[0013]
用平坦分类器做大类判断,是在假定某种类间合并方式之后,将平坦分类器所做的小类别的判断转换为该小类所属大类的判断。
[0014]
进一步的:在步骤s2中,
[0015]
s2-1:使用m
(k)
类平坦分类器在验证集上做推理,将验证集中每一张图片的真实标签与m
(k)
类平坦分类器给出的预测类别保存到文本文件predval.txt;并输出m
(k)
类平坦分类器预测的类间混淆,并按照混淆程度,降序输出混淆类别对,保存到log.txt中;
[0016]
s2-2:选取步骤s2-1得到的log.txt中排序靠前的若干混淆类别对,直到生成初始类别合并的较大类将剩余个类别全部归类到较小类,得到初始的类别合并方式;上述较随机初始化类别合并方式,该初始方式的设置极大缩短了步骤s2-3遍历探索最佳类别合并方式的时间;
[0017]
s2-3;以步骤s2-2获得的初始的类别合并方式为起始状态,迭代遍历探索最佳类别合并方式;迭代方式分两步,先交换遍历,再加一(即减一),两步迭代交替进行;在不改变较大类的类别数量的前提下,较大类与较小类交换一个类别,遍历所有种交换之后的合并方式,并结合步骤s2-1保存的predval.txt文件,计算每种合并方式下大类判别准确率,并保存最佳合并方式;在结束交换遍历得到的最佳合并方式的基础上,从中任取一个类别放入中;交换遍历与加一交替进行,直到等于且最后一个步骤为迭代方式中的交换遍历。
[0018]
s2-4;m
(k)
类平坦分类器做层级判断将m
(k)
类划分为两个大类和和的选取有很大的灵活性;要使得大类判别准确率高,则将设置得越大,相应的越小;要提高推理的效率,则将设置得越小,相应的越大;和的选取在大类判别准确率和推理的效率二者之间权衡;在选取时坚持两个原则:acc》acc
threshold
;为人为设置的较大类别所包含的类别数量的上界限值;acc为当前层级结构对应的大类判别准确率;acc
threshold
为人为设置的期望得到的大类判别准确率的下界限值;
[0019]
根据可负荷的层级数量设置;在步骤s2-3中,交换遍历测大类判别准确率时,若满足acc》acc
threshold
,则此时的即为若直到都不满足acc》acc
threshold
,则
[0020]
进一步的:在步骤s3中,
[0021]
按照步骤s2-3得到的最佳合并方式为较小类训练类平坦分类器,用来做最终的类别判断;为较大类训练类平坦分类器;对于类平坦分类器,若满足
则该类平坦分类器用来做最终的类别判断,若不满足则该类平坦分类器用来充当大类判别器,继续将该类拆分成两个大类,直到满足也就是说,对于较大类始终用类层级分类来代替类平坦分类,直到满足最终形成的层级结构可参见图2。
[0022]
在得到最佳合并方式后,即可以最小代价将m类分成两个大类和因为大类判断是由平坦分类器来完成的,这种大类判别方式不会在平坦分类器的基础上增加任何分类错误,即被m类平坦分类器正确分类的样本,大类判别器同样能将其分类到正确的大类,从而进一步用对应的或平坦分类器来判断。而m类平坦分类器做了错误分类小类判断的样本,如果是在(或)类内部的小类别之间发生的判断错误,相应的大类判断是正确的,进而用比m类平坦分类器更有针对性的(或)类平坦分类器来判断,就有可能把m类平坦分类器分类错误的样本正确分类。但是在与之间发生混淆的样本,在做大类判断时就已经出现错误了,再进入到错误的(或)类平坦分类器,必然会做出错误的类别判断。这一部分错误是将所有类别分成两个大类必定要付出的代价,而探索最佳类别合并方式已经使得这部分代价最小。
[0023]
进一步的:在步骤s4中,令重复执行步骤s2至s3,对于较大类始终用类层级分类来代替类平坦分类,直到满足
[0024]
进一步的:在步骤s5中,最终训练得到k个类平坦分类器和一个类平坦分类器,此外还有k个大类判别器,分别是类平坦分类器充当的,其中k∈[1,k]且k∈z;再结合逐层遍历探索得到的层级结构,即可做出最终的类别判断。
[0025]
本发明的第二个目的在于,提供一种电子设备,其特征在于:包括:
[0026]
一个或多个处理器;
[0027]
存储装置,用于存储一个或多个程序,
[0028]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述中任一所述的方法。
[0029]
本发明的第三个目的在于,提供一种计算机可读介质,其上存储有计算机程序,其特征在于:该程序被处理器执行时实现如上述中任一所述的方法。
[0030]
本发明与现有技术相比,具有以下优点及有益效果:
[0031]
本发明结合了平坦分类器做层级判断,层级结构初始化,层级结构遍历探索,损失函数锐化,其中层级结构遍历探索使得层级结构达到最优,构建层级结构的代价降到最低。本发明针对类别层级关系不明显、大类准确率过低、层级分类不适用等挑战提出的解决方案,实现了通用的层级构造和层级分类方法。具体而言,使用平坦分类器来充当大类判别器,遍历探索最佳类别合并方式,提升大类判别准确率的同时,较平坦分类器不增加任何分类错误,而后续大类内部的平坦分类可以消除其他大类内部类别的影响,较平坦分类可提
升分类效果。此外,大类内部的分类也是平坦分类,同样可以用上述层级分类方法来替代,不断提升分类效果。本发明对类别间的层级结构无要求,在所有平坦分类场景下具有普遍适用性。
附图说明
[0032]
图1为本发明方法的总体框架图;
[0033]
图2为本发明方法中层级结构图;
[0034]
图3为本发明方法中模型推理流程图;
[0035]
图4为本发明方法在food-m数据集上m类平坦分类器与类平坦分类器的grad-cam热力图对比示例;
[0036]
图5为本发明方法的流程图。
具体实施方式
[0037]
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合具体实施例对本发明的优选实施方案进行描述,但是应当理解,附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。
[0038]
下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
[0039]
如图1至5所示,一种基于类间混淆的层级结构构造和层级分类方法,基于平坦分类器充当大类判别器来实现,该方法包括平坦分类器训练、平坦分类器充当大类判别器、遍历探索最佳类别合并方式、各大类平坦分类器训练;可参见图1,是一个简单而通用的层级结构构造和层级分类模型。
[0040]
包括以下步骤:
[0041]
s1:获取食物图像数据集food-m,并训练m类平坦分类器,m=m
(1)

[0042]
food-m物图像数据集共有m个食物类别,按6:3:1将所有数据划分为训练集、测试集和验证集。验证集用来挑选最佳模型,防止模型在训练集上过拟合,根据大类准确率选择类别合并方式只在验证集上进行,测试集上的混淆情况不可作为先验知识。训练模型时均使用resnet101在imagenet上的预训练模型作为初始化模型,训练得到的m类平坦分类器作为大类判别器来遍历探索最佳合并方式。此外,该m类平坦分类器是最终实现的层级分类方法所需要对比的基准。
[0043]
s2:根据m
(k)
类平坦分类器获得食物各类别之间的发生分类混淆的难易程度,k∈[1,k]且k∈z;将m
(k)
个食物类别分成两大类,两大类具有的类别数目分别为其中且遍历探索得到最佳合并方式,使得m
(k)
类平坦分类器具有最高的大类判别准确率,即,使得m类平坦分类器的大类判别错误最低,使得m类分成两个大类的代价最小。
[0044]
在步骤s2中,
[0045]
s2-1:使用m
(k)
类平坦分类器在验证集上做推理,将验证集中每一张图片的真实标签与m
(k)
类平坦分类器给出的预测类别保存到文本文件predval.txt;并输出m
(k)
类平坦分类器预测的类间混淆,并按照混淆程度,降序输出混淆类别对,保存到log.txt中;
[0046]
s2-2:选取步骤s2-1得到的log.txt中排序靠前的若干混淆类别对,直到生成初始类别合并的较大类将剩余个类别全部归类到较小类,得到初始的类别合并方式;
[0047]
s2-3;以步骤s2-2获得的初始的类别合并方式为起始状态,迭代遍历探索最佳类别合并方式;迭代方式分两步,先交换遍历,再加一(即减一),两步迭代交替进行;在不改变较大类的类别数量的前提下,较大类与较小类交换一个类别,遍历所有种交换之后的合并方式,并结合步骤s2-1保存的predval.txt文件,计算每种合并方式下大类判别准确率,并保存最佳合并方式;在结束交换遍历得到的最佳合并方式的基础上,从中任取一个类别放入中;交换遍历与加一交替进行,直到等于且最后一个步骤为迭代方式中的交换遍历。
[0048]
s2-4;m
(k)
类平坦分类器做层级判断将m
(k)
类划分为两个大类和和的选取有很大的灵活性;要使得大类判别准确率高,则将设置得越大,相应的越小;要提高推理的效率,则将设置得越小,相应的越大;和的选取在大类判别准确率和推理的效率二者之间权衡;在选取时坚持两个原则:acc》acc
threshold
;为人为设置的较大类别所包含的类别数量的上界限值;acc为当前层级结构对应的大类判别准确率;acc
threshold
为人为设置的期望得到的大类判别准确率的下界限值;
[0049]
根据可负荷的层级数量设置;在步骤s2-3中,交换遍历测大类判别准确率时,若满足acc》acc
threshold
,则此时的即为若直到都不满足acc》acc
threshold
,则
[0050]
以上步骤s2-1,s2-2,s2-3,s2-4为单次大类层级探索,将执行k次,m
(k)
分别取其中k∈[1,k]且k∈z。可以将k设置得更大,以更深的层级结构,更多的分类器数量,换取准确率更大幅度的提升。且每次的设置具有很大的灵活性,对初始类别数m数千的分类场景同样适用,具有很强的适应性。遍历探索层级结构,对类间固有的关系无要求,较传统的层级分类方法,具有普遍适用性。
[0051]
s3:为与两个大类分别训练平坦分类器;与步骤s1训练m类平坦分类器相同,训练类平坦分类器和类平坦分类器均加载resnet101在imagenet上的预训练模
型作为初始化模型。
[0052]
s4:令重复步骤s2至s3,直到满足最终得到的类间层级结构如图2所示;
[0053]
s5:为食物图像数据集food-m逐层级共设置了k个大类判别器,最终训练得到k个类平坦分类器和一个类平坦分类器,还训练得到k个大类判别器,分别由类平坦分类器充当,其中k∈[1,k]且k∈z。在推理阶段,如图3所示,输入图片经过层层大类判别器(m
(k)
类平坦分类器),做出大类判别,再根据对应的大类判别进入到对应的类或者类判别器。只有类平坦分类器和最后一个层级的类平坦分类器才可给出最终的类别判断,其他平坦分类器只能作为大类判别器,决定图片要送入下一层级中的哪一个分类器。
[0054]
用平坦分类器充当大类判别器,与传统的大类判别不同,不再需要学习大类特征,不要求类间具有明显的层级结构。传统的层级分类方法要求类间具有好的层级关系,能够学到好的大类特征,有足够高的大类判别准确率,大类判别的错误率不能太大,这样才能将低层级分类器因为类别数目减少准确率上升的优势真正发挥出来。用平坦分类器充当大类判别器,这种大类判别方式不会在平坦分类器的基础上增加任何分类错误,即被m
(k)
类平坦分类器正确分类的样本,大类判别器同样能将其分类到正确的大类,从而进一步用对应的类或者类平坦分类器来判断。而m
(k)
类平坦分类器做了错误分类小类判断的样本,如果是在(或)类内部的小类别之间发生的判断错误,相应的大类判断是正确的,进而用比m
(k)
类平坦分类器更有针对性的(或)类平坦分类器来判断,就有可能把m
(k)
类平坦分类器分类错误的样本正确分类。对于单个层级k,较m
(k)
类平坦分类器,类平坦分类器和类平坦分类器效果更佳;对于整体来说,较m类平坦分类器,k个类平坦分类器和一个类平坦分类器所做出的最终类别判断准确率更高。
[0055]
测试模型效能:如图4所示为实施例中测试时的代表示例,第一行是原始图像的三个示例,分别是清蒸大闸蟹,如图4-(1),芹菜炒虾仁,如图4-(2),紫菜包饭,如图4-(3);图4-(4)、4-(5)、4-(6)是与三张原始图像一一对应的在类平坦分类器上的grad-cam热力图;4-(7)、4-(8)、4-(9)是与三张原始图像一一对应的在m类平坦分类器上的grad-cam热力图;这三张图像均在原始m类平坦分类器上出现了分类错误,但按照大类合并方式能逐层做出正确的大类判别,直到经过类平坦分类器做出正确的最终类别判定;grad-cam热力图可视化了模型做出对应的预测类别时,关注的图像区域,红色部分为重点关注的图像区域,蓝色则相反。从grad-cam热力图可以看出,在做出对应类别判定时,类平坦分类器重点关注到了大闸蟹,虾仁,紫菜包饭区域,从而做出了正确类别预测;相反,m类平坦分类器关注到是周边区域,从而做出了错误类别预测,将清蒸大闸蟹预测成了粉蒸肉,将芹菜炒虾仁
预测成了玉米沙拉,将紫菜包饭预测成了米饭。显然,类平坦分类器较m类平坦分类器,需要分类的类别少,更具有针对性,能学习到更好的特征,分类准确率更高。
[0056]
本发明在vireofood-172公开数据集上进行了实验,所发明的层级分类方法被证明在类间无明显层级结构的大规模分类任务中优于平坦分类的效果,突破了传统层级结构构造和层级分类方法在类间无明确层级结构分类任务中的不适用性。
[0057]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明的设施可借助软件加必需的通用硬件平台的方式来实现。本发明的实施例可以使用现有的处理器来实现,或者由被用于此目的或其他目的用于适当系统的专用处理器来实现,或者由硬接线系统来实现。本发明的实施例还包括非暂态计算机可读存储介质,其包括用于承载或具有存储在其上的机器可执行指令或数据结构的机器可读介质;这种机器可读介质可以是可由通用或专用计算机或具有处理器的其他机器访问的任何可用介质。举例来说,这种机器可读介质可以包括ram、rom、eprom、eeprom、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储设备,或任何其他可用于以机器可执行指令或数据结构的形式携带或存储所需的程序代码,并可被由通用或专用计算机或其它带有处理器的机器访问的介质。当信息通过网络或其他通信连接(硬接线、无线或硬接线或无线的组合)传输或提供给机器时,该连接也被视为机器可读介质。
[0058]
依据本发明的描述及附图,本领域技术人员很容易制造或使用本发明的一种生物序列处理和模型训练方法,并且能够产生本发明所记载的积极效果。
[0059]
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献