具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在对本公开的实施例进行详细说明之前,先对本申请的厨房设备进行简要说明。厨房设备可例如为洗碗机、消毒柜或其他类型的厨房设备。以下以洗碗机为例进行说明。
首先参考图1,图1示出根据本申请一实施例的洗碗机100的示意图。如图1所示,本申请实施例的洗碗机100包括内胆10、承载组件20以及门组件30。
具体的,内胆10限定洗涤腔室11及与洗涤腔室11连通的开口13。可选的,内胆10呈长方体状。
具体地,承载组件20可移动地设置在洗涤腔室11内。承载组件20用于放置餐具。承载组件20例如为碗篮。可选的,承载组件20为刀叉托盘及刀叉篮等用于放置待洗涤用品的其它承载组件20。承载组件20可包括多个放置层,每一放置层都可用于放置餐具。餐具可例如为碗、碟、盘、杯等。在一些实施例中,餐具还可包括勺子、叉子、筷子、杯子等,本申请对此不作限制。
门组件30包括门体31和门锁32。门体31可转动地连接内胆10以打开或关闭开口13。当门体31关闭开口13时,门锁32可将门体31锁定至内胆10,且承载组件20被收容在洗涤腔室11内。
摄像头33可如图1所示设置在门体31上。摄像头33可配置成拍摄洗涤腔室11内的餐具图像。可选的,本申请的洗碗机100可包括多个摄像头33以拍摄洗涤腔室11内的餐具图像。其中一些摄像头33可设置在门体31上,一些摄像头33也可设置在内胆10的内壁上。摄像头33也可以布置在具有良好拍摄视野的其他位置。本申请对此不作限制。本领域技术人员应当理解,多个摄像头33中的每个摄像头33可拍摄承载组件20的一部分。多个摄像头33所拍摄的图像可覆盖承载组件20上的所有餐具。
摄像头33优选地为广角摄像头33。摄像头33可例如为彩色摄像头33。可选的,摄像头33可以为深度摄像头33、红外摄像头33等,本申请对此不作限制。
可选的,洗碗机100还可包括至少一个补光灯,用于为摄像头33补光。补光灯优选地为LED补光灯。可选的,补光灯可以为其他类型的补光灯,例如红外补光灯等,本申请对此不作限制。
在一些实施例中,洗碗机100还可以包括至少一个喷头或者喷臂(未示出)。该至少一个喷头可向承载组件20上的餐具喷射清洁液(例如,水或添加了清洁剂的水)。该至少一个喷头的清洁液喷射流量、喷射方向等可根据洗碗机100的工况做出调整。
本领域技术人员应当理解,上文中所述的内胆10、承载组件20、门组件30、摄像头33等结构同样可适用于消毒柜。消毒柜例如为高温消毒柜、红外消毒柜或紫外消毒柜等,本申请对此不作限制。
参考图2,图2示出根据本申请一实施例的餐具检测模型300的框架示意图。该餐具检测模型300用于检测在例如洗碗机100的厨房设备内的餐具,属于一种目标检测模型。该餐具检测模型300是由对应的待训练模型,尤其是待训练神经网络模型经过训练而成的神经网络模型。餐具检测模型300的具体训练方法将在下文中详细描述,本领域技术人员应当理解,餐具检测模型300与对应的待训练模型具有相同的架构。
目前主流的目标检测算法可以归为两大类:两阶段(two_stage)检测算法和单阶段(one_stage)检测算法。two_stage检测算法首先利用RPN网络生成候选区域(regionproposals)进行粗定位,然后在模型头部对候选区域进行精确定位(回归)和分类预测。典型的two_stage检测算法包括Faster RCNN、RFCN等系列方法。而one_stage检测算法则是基于主干网络提取的特征,直接回归目标对象的类别概率和位置信息,不生成候选区域进行粗定位,典型的算法包括YOLO v1/v2/v3、SSD等。两阶段检测算法与单阶段检测算法相比较,单阶段算法的检测速度较快,有助于实现实时环境的目标检测。
优选的,本申请的餐具检测模型300为利用单阶段检测算法的单阶段检测模型,以满足在餐具清洁领域中的实时响应和嵌入端部署需求。在一些实施例中,本申请的餐具检测模型300也可以为利用两阶段检测算法的两阶段检测模型,本申请对此不作限制。
参考图2,本申请的餐具检测模型300主要包括输入(input)模块302、特征提取(backbone)模块304、特征融合(neck)模块306以及模型输出(head)模块308等几部分。
具体的,input模块302的输入为由洗碗机100内部的摄像头33所拍摄的洗碗机100内部的第一图像。可选的,这些第一图像可经过图像预处理步骤得到第一输入图像,以输入input模块302。在一些实施例中,该图像预处理步骤也可以直接由餐具检测模型300的input模块302完成。即,直接由input模块302对第一图像进行预处理。
所述第一图像的预处理步骤可包括如下任意一种:
1)图像大小调整。
以输入图像为RGB彩色图像为例,在餐具检测模型300的输入图像大小为H*W*3的情形中,第一图像的维度可经过放大或缩小以变成H*W*3。在一些实施例中,H为640,W为480。本领域技术人员应当理解,H和W可根据具体情况进行设置,本申请对此不作限制。输入图像为红外图像、深度图像等的情形也类似。
2)图像元素比例调整。
由于洗碗机100内部的空间有限,摄像头33与承载组件20之间的距离往往很近。在摄像头33所拍摄的第一图像中,靠近摄像头33的图像元素(此处主要为餐具)比远离摄像机的图像元素大得多。这种餐具实际大小与餐具在第一图像中的大小之间的不一致会影响对餐具的检测。为此,在一些实施例中,可以对第一图像进行预处理,使得不同的图像元素(尤其是餐具)在输入图像中的大小比例与其在现实世界中的大小比例相对应。
参考图3,图3示出对第一图像41进行图像元素比例调整的示意图。在图3中,对于具有相同大小和倾斜角度的餐具D1和D2,餐具D1距拍摄第一图像41的摄像头33更近。在第一图像41中,餐具D1的像素面积大于餐具D2的像素面积。且在摄像头33为广角摄像头33的情况下,在第一图像41中,餐具D1和餐具D2的形状还发生畸变。在经过图像元素比例调整得到的输入图像42中,餐具D1和餐具D2的像素面积大致相同。可选的,在经过图像元素比例调整的输入图像42中,餐具D1和餐具D2的角度畸变被大致消除。
可选的,如图3所示,上文中所述的识别图案可包括多个第一校准图案401。第一校准图案401可例如设置在承载组件20的表面上或者洗碗机100的内壁上。第一校准图案401可例如为尺寸相同的图案。具体的,第一校准图案401可例如为长度和/或方向相同的线段、椭圆、曲线等。在一些实施例中,第一校准图案401可具有特殊的颜色或模式组合以方便识别。可通过使第一校准图案401在输入图像42中的大小和方向相同,实现该图像元素比例调整过程。
3)图像融合
在洗碗机100包括多个摄像头33的情形中,多个摄像头33所拍摄的第一图像可以被融合以形成反映洗碗机100内部的全景的输入图像。图像融合可防止餐具检测模型300重复检测和计算洗碗机100内部的餐具。
在一些实施例中,上文中所述的识别图案可包括多个第一融合基准图案。第一融合基准图案可例如设置在承载组件20的表面上或者洗碗机100的内壁上。在一些实施例中,第一融合基准图案可具有特殊的颜色或者模式组合以方便识别。本申请可基于第一融合基准图案对洗碗机100内部的不同区域进行分区和融合,具体过程在此不再赘述。
4)其他预处理
在一些实施例中,还可以对第一图像进行图像分割,从而将第一图像中的餐具与诸如洗碗机100内壁、承载组件20的其他区域分开。例如,由于摄像头33位置相对于洗碗机100一般是固定的,可以预先判断摄像头33所拍摄的哪一部分不包含餐具。在对第一图像进行图像分割时,可以将不包含餐具的这些部分预先去除。
在一些实施例中,还可以对第一图像进行图像增强处理。图像增强可例如包括图像亮度改变、饱和度改变、边缘增强或图像翻转等,本申请对此不作限制。
input模块302随后将输入图像发送到backbone模块304。
具体的,作为基本特征提取网络,backbone模块304可充分学习输入图像的信息。backbone模块304可对输入图像进行特征提取,提取输入图像的深层卷积特征,从而获得与输入图像对应的至少一个特征图。backbone模块304可例如使用诸如VGG、Renet、Inception等经典网络。backbone网络也可以例如使用如mobilenet、shufflenet、ghostnet等轻量级网络。
在一些实施例中,backbone模块304采用ResNet网络。若输入图像的大小为H*W*3时,经过ResNet网络后,可得到五层特征图。其中,第一层特征图的大小为(H/2,W/2),第二层特征图的大小为(H/4,W/4),第三层特征图的大小为(H/8,W/8),第四层特征图的大小为(H/16,W/16),第五层特征图的大小为(H/32,W/32)。其中,第一层特征图为最底层特征图,第五层特征图为最顶层特征图。本领域技术人员应当理解,backbone模块304也可以使用其他网络,所得到的特征图的层数也可以不同。
具体的,neck模块306主要是对来自backbone模块304的顶层特征图和底层特征图进行逐级融合,以达到丰富特征表达能力的目的。在从backbone模块304所得的特征图中,低层特征图(例如第一层特征图、第二层特征图等)往往含有较多的细节信息,但往往也包含很多噪声及无关信息。细节信息例如为颜色、轮廓、纹理等信息。高层特征图(例如第四层特征图、第五层特征图等)包含有充分的高级语义信息,但空间分辨率很小,信息丢失较为严重。高级语义信息例如为类别信息等。通过在neck部分对各层特征图进行逐级融合,可以综合各层特征图的长处,丰富模型的特征提取和表达能力。在一些实施例中,neck模块306可输出若干特征图以供head模块308处理。
具体的,head模块308接收从neck模块306输入的特征图,且基于该特征图检测餐具目标。head模块308预测餐具目标的类型、餐具目标的位置以及餐具目标的置信度等。head模块308利用矩形边框(bounding box,下文中也称矩形检测框)逐一标注特征图中的餐具。矩形边框尽可能贴近餐具目标。head模块308例如输出矩形边框的中心点位置以指示餐具目标位置,输出矩形边框的长度和宽度以指示餐具目标的大小,输出矩形边框的倾斜角度以指示餐具目标的倾斜角度。其中,当矩形边框为竖直边框时,宽度为沿特征图的水平方向X的长度,高度为沿特征图的竖直方向Y的长度。当矩形边框为倾斜边框时,宽度为对应竖直矩形边框沿特征图的水平方向X的长度,高度为对应竖直矩形边框沿特征图的竖直方向Y的长度。
参考图4,图4示出矩形边框500的示意图。如图所示,矩形边框500包括餐具目标且尽可能贴合餐具目标。餐具目标以虚线示出。每个矩形边框500对应一组参数(x,y,w,h,θ)和一种餐具类型。其中,x和y分别表示矩形边框500的中心点相对于特征图左上角沿水平方向X和竖直方向Y的偏移。w表示矩形边框500的宽度,h表示矩形边框500的高度。θ表示矩形边框500相对于水平方向X的倾斜角度。利用图4所示的矩形边框500,本申请可以检测厨房设备中餐具的倾斜角度θ,从而允许厨房设备根据餐具的倾斜角度θ设定餐具的清洁模式,实现更好的清洁效果。
在本申请中,head模块308预测目标位置的方式,或者说寻找合适的矩形边框的方式可包括基于锚框和不基于锚框两种方式。以下将分别描述这两种方式。
第一种方式,基于锚框的目标位置检测:
在基于锚框的目标位置检测中,head模块308为特征图生成作为先验框的一系列锚框,且基于这些锚框生成如上文所述的矩形边框或目标检测框。
在本申请中,矩形是指四个内角相等且都为90°的四边形。矩形包括两条相对的宽边和两条相对的高边。其中,宽边的长度可称为宽度,高边的长度可称为高度。矩形可包括正方形和长方形。正方形为宽度和高度相等的特殊矩形。长方形为宽度和高度不相等的一般矩形。换言之,正方形为宽度和高度的比值为1的矩形,长方形为宽度和高度的比值不为1的矩形。下文中,宽度和高度的比值可称为宽高比。例如,竖直长方形锚框即为竖直的宽高比不等于1的矩形锚框,竖直正方形锚框即为竖直的宽高比等于1的矩形锚框。
具体的,参考图5,图5示出在基于锚框的目标位置检测中,锚框如何设置的示意图。在本申请基于锚框的目标位置检测中,对于特征图中的某个像素点或者网格,生成预定数量的矩形框作为锚框。图5中的锚框以虚线示出。锚框可具有不同的尺度、宽高比和倾斜角度。每个锚框可用一组参数(xc,yc,wc,hc,θc)表示。其中,(xc,yc)表示锚框的中心点相对于特征图左上角的偏移坐标。wc表示锚框的宽度,hc表示锚框的高度,θc表示锚框的倾斜角度。在一些实施例中,对于特征图中的每个像素点或网格,都生成预定数量的锚框。在一些实施例中,餐具检测模型300可经过训练,以只对于特征图中的部分像素点或者网格,生成预定数量的锚框。
在一些实施例中,可通过对已经标注好的目标检测框进行聚类来确定锚框的尺度、大小、宽高比和倾斜角度。具体的,可获取从厨房设备内采集的若干餐具图像;利用矩形标注框标注餐具图像中的餐具,其中矩形标注框尽可能贴近图像中的餐具,且矩形标注框具有不同的大小、宽高比和倾斜角度;对这些矩形标注框进行聚类且输出聚类结果的尺度、大小、宽高比和倾斜角度。可选的,所述聚类为K-聚类。聚类结果数可根据具体情况设定,本申请对此不作设定。
在一些实施例中,聚类结果的倾斜角度为60°、75°、90°、105°以及120°。在一些实施例中,聚类结果的宽高比为1:1、2:1、4:1、6:1和8:1。
为了清楚起见,图5仅示出两个锚框,包括一个正方形锚框和一个倾斜锚框。在一些实施例中,对于特征图中的每个特征点或网格,设置21个锚框。具体的,对于特征图中的每个特征点或网格,设置3个不同大小或尺度的竖直正方形锚框。竖直正方形锚框即宽高比为1的竖直锚框。具体的,对于特征图中的每个特征点或网格,设置4个宽高比分别为2:1、4:1、6:1和8:1的竖直长方形锚框。竖直长方形锚框即倾斜角度为90°的锚框。竖直长方形锚框的宽高比根据厨房设备中内拍摄的餐具的统计数据确定,以增强餐具的检出率,减少漏检率。尤其,竖直长方形锚框的宽高比根据厨房设备中内拍摄的餐具的宽高比的聚类结果确定。
具体的,对于上述竖直正方形锚框和竖直长方形锚框中的每一个,分别设置大小和形状相同,倾斜角度不同的多个倾斜锚框。例如,对于上文中所述的倾斜角度的聚类结果,为上述竖直正方形锚框和竖直长方形锚框中的每一个,设置倾斜角度分别为60°、75°、105°以及120°的四个锚框。
可选的,为上述竖直正方形锚框和竖直长方形锚框中的每一个,设置倾斜角度分别为60°和120°的两个倾斜锚框。因此,在该示例中,对于特征图中的每个特征点或网格,设置(3+4)*(1+2)共21个锚框。
根据厨房设备的具体型号和/或承载组件20的具体设计,可以设计具有不同倾斜角度和/或不同数量倾斜矩形锚框,本申请对此不作限制。可选的,这些锚框的中心点与特征图的特征点或网格的中心重合。
在一些实施例中,每一个倾斜矩形锚框的大小和/或形状都与竖直矩形锚框中的至少一个的大小和/或形状分别相同。即,每一个倾斜矩形锚框都对应于一个形状和大小完全相同的竖直矩形锚框。
具体的,在head模块308中,基于上述锚框进行边框回归,以计算包含餐具目标的边框。具体的,如上文所述,每个锚框对应于一组参数(xc,yc,wc,hc,θc)。每个锚框的参数都是固定的。head模块308可以被训练以从锚框生成包含餐具目标的目标检测框。
具体的,基于锚框生成餐具的目标检测框的步骤可包括:从锚框中选取与餐具匹配的锚框作为预选锚框,预测与餐具对应的目标检测框相对于预选锚框的偏移量。此处,偏移量包括目标检测框相对于预选锚框的倾斜角度偏移量、尺度偏移量以及位置偏移量等。
具体的,所述从锚框中选取与餐具匹配的锚框作为预选锚框包括从锚框中选取与餐具最接近的锚框作为与餐具匹配的预选锚框。可选的,与餐具匹配的预选锚框可以为倾斜角度与餐具的倾斜角度差距最小的锚框。餐具检测模型可以被训练以实现该目标。
具体的,参考图6,图6示出从一个倾斜锚框生成一个倾斜目标检测框的示意图。其中,倾斜锚框以实线示出,倾斜目标检测框以虚线示出。此处,该倾斜锚框可视为预选锚框。预选锚框可以被偏移一定的偏移量,以得到目标检测框。
具体的,如图6所示,锚框的中心点c1可沿x方向平移Δx,沿y方向平移Δy以平移到倾斜目标检测框的中心点d1。Δx和Δy可视为位置偏移量。锚框的宽度可以被缩放k1倍以变换到倾斜目标检测框的宽度,锚框的高度可以被缩放k2倍以变换到倾斜目标检测框的高度。k1和k2可视为尺度偏移量。锚框可以被倾斜一定角度θz以变换到倾斜目标检测框的倾斜角度。该倾斜角度θ可视为倾斜角度偏移量。本申请设置倾斜锚框作为先验框,倾斜锚框更容易经过较小的变换生成合适的倾斜目标检测框,提高了餐具监测模型的收敛速度,增加了对餐具目标的检出率,降低了漏检率。
第二种方式,不基于锚框的目标位置检测:
不基于锚框的目标位置检测也称为无锚框(anchor free)目标位置检测。具体的,在不基于锚框的目标位置检测中,餐具检测模型300不依赖于诸如锚框的先验框,而是对于特征图上的特征点或网格直接预测目标检测框。
在一些实施例中,餐具检测模型300的head模块308可包括热点筛选部分和目标检测框预测部分。其中,热点筛选部分配置成对于特征图上的特征点进行筛选,筛选出在该特征点处存在餐具目标的概率大于第一阈值的特征点作为热点。目标检测框预测部分随后基于热点预测目标检测框。
在不基于锚框的目标位置检测的情形中,在从待训练的神经网络模型训练生成餐具目标检测模型的训练过程中,可例如基于目标检测框的中心点、大小和倾斜角度等构建损失函数。在一些实施例中,待训练的神经网络模型可包括第一损失函数项、第二损失函数项和第三损失函数项。第一损失函数项表征在待训练的神经网络模型所预测的餐具目标检测框与对应矩形标注框之间的倾斜角度差异。第二损失函数项表征餐具目标检测框的几何中心点与对应矩形标注框的几何中心点之间的距离。第三损失函数项可表征餐具目标检测框的面积与对应矩形标注框的面积之间的差异。待训练的神经网络模型的总损失函数可以为第一损失函数项、第二损失函数项和第三损失函数项之和。
具体的,在上述基于锚框的目标位置检测或不基于锚框的目标位置检测中,head模块308通过预测目标检测框,输出餐具目标的位置、大小、倾斜角度、餐具类型以及置信度等信息。其中,餐具目标的位置对应于目标检测框的中心点位置,餐具目标的大小对应于目标检测框的宽度和高度,餐具类型对应于目标检测框中的餐具类型,置信度对应于该目标检测框中的餐具属于所述餐具类型的概率。
参考图7,图7示出根据本申请用于厨房设备的训练方法的流程图。如图7所示,该训练方法包括如下步骤。
步骤S101,获取训练图像集。
在一些实施例中,图像训练集包括从厨房设备内采集的若干训练图像。图像训练集还包括图像标注信息。图像标注信息包括与每个训练图像中的餐具对应的矩形标注框(ground truth box)。矩形标注框可以为倾斜标注框。图像标注信息包括矩形标注框的位置、大小、倾斜角度信息以及矩形标注框内的餐具类型信息。
在一些实施例中,厨房设备内部的摄像头33拍摄厨房设备内部的多个第一图像。利用矩形标注框标注多个第一图像内的餐具,获得第一图像的图像标注信息。矩形标注框可以为倾斜标注框。经过标注后的多个第一图像可以被分成图像训练集和图像验证集。其中,图像训练集用于对待训练的神经网络模型进行训练以生成餐具检测模型300,图像验证集用于验证餐具检测模型300。
步骤S102,将图像训练集输入待训练的神经网络模型进行训练,得到厨房设备的餐具检测模型300。
上文中已经描述了餐具检测模型300的网络结构。本领域技术人员应当理解,该待训练的神经网络模型的网络结构与上述餐具检测模型300的网络结构一致。
具体的,对待训练的神经网络模型进行训练需要用到损失函数,以反向调节神经网络模型的参数。具体的,通过使损失函数最小化,可以优化神经网络模型的参数。在一些实施例中,当损失函数的值小于预定阈值时,可结束当前神经网络模型的训练。之后,可以利用验证集对当前神经网络模型进行验证。若验证的结果符合预期,则结束整个训练过程,得到训练好的餐具检测模型300。若验证结果不符合预期,则可更换训练图像集,重新对神经网络模型进行训练。
在本申请中,损失函数可以反映神经网络模型所预测的目标检测框(boundingbox)与对应矩形标注框之间的差异。损失函数还可以反映目标检测框中的餐具类别与对应矩形标注框中标注的餐具类别之间的差异。其中,目标检测框与对应矩形标注框之间的差异包括两者之间的中心点位置差异、大小差异和倾斜角度差异。其中,大小差异可以为宽度差异和高度差异。
在一些实施例中,待训练的神经网络模型的损失函数包括第一损失函数项。第一损失函数项表征在餐具目标检测框与对应矩形标注框之间的倾斜角度差异。在一些实施例中,第一损失函数项表征在餐具目标检测框与对应矩形标注框之间的交并比。
参考图8和图9,图8示出餐具目标检测框与对应矩形标注框的交集的示意图,图9示出餐具目标检测框与对应矩形标注框的并集的示意图。在图8和图9中,左侧的矩形框为餐具检测模型或待训练的神经网络模型所预测的餐具目标检测框,右侧的矩形框为对应矩形标注框。在图8中,餐具目标检测框与对应矩形标注框相交的白色部分为两者的交集S交。在图9中,餐具目标检测框与对应矩形标注框的阴影线部分为两者的并集S并。餐具目标检测框与对应矩形标注框的交并比SIoU定义为SIoU=S交/S并。容易看出,SIoU越接近1,表明餐具目标检测模型与对应矩形标注框之间的重合度越好,餐具检测模型300的预测越准确。本领域技术人员应当理解,餐具目标检测模型与对应矩形标注框之间的重合度越好,表明餐具目标检测模型与对应矩形标注框的倾斜角度越接近。因此,在餐具目标检测框与对应矩形标注框之间的交并比可以反映在餐具目标检测框与对应矩形标注框之间的倾斜角度差异。
在一些实施例中,第一损失函数项为1-SIoU或-ln(SIoU)。
参考图10,图10示出计算在餐具目标检测框与对应矩形标注框之间的交并比的方法的流程图。该方法包括如下步骤。
步骤S201:获得餐具目标检测框与对应矩形标注框的交点以及餐具目标检测框和对应矩形标注框中的一个落在另一个内的顶点。
参考图11的示例,餐具目标检测框B0具有四个顶点P01、P02、P03和P04,矩形标注框B1具有四个顶点P11、P12、P13和P14。餐具目标检测框B0与对应矩形标注框B1具有交点I01、I02、I03和I04。其中,餐具目标检测框B0的顶点P02、P04落入对应矩形标注框B1内。在本实施例中,通过获得餐具目标检测框B0与对应矩形标注框B1的交点以及餐具目标检测框和对应矩形标注框中的一个落在另一个内的顶点的步骤,获得交点I01、I02、I03、I04以及顶点P02、P04。
步骤S202:从所获得的交点和顶点中的一个点向所获得的交点和顶点中的其他点连线,以对餐具目标检测框与对应矩形标注框的重叠区域进行三角剖分。
具体的,如图11所示,从上述交点和顶点中的任一点向上述交点和顶点中的其他点连线。例如,从点I01开始向其他点连线,将餐具目标检测框与对应矩形标注框的重叠区域分成多个三角形T1、T2、T3以及T4。本领域技术人员应当理解,也可以从所获得的交点和顶点中的其他点开始进行连线。
步骤S203:计算三角剖分后的每个三角形的面积之和,作为餐具目标检测框与对应矩形标注框的重叠面积。
具体的,在图11中,多个三角形T1、T2、T3和T4的面积之和即为餐具目标检测框与对应矩形标注框的重叠面积S交。
步骤S204:基于重叠面积计算在餐具目标检测框与对应矩形标注框之间的交并比。
具体的,交并比SIoU=S交/S并。其中,餐具目标检测框与对应矩形标注框的并集为S并=S餐具目标检测框+S矩形标注框-S交。其中,S餐具目标检测框为餐具目标检测框的面积,S矩形标注框为矩形标注框的面积,这两者都容易由对应矩形的宽度和高度的乘积得到。因此,在已知餐具目标检测框与对应矩形标注框的交集S交后,可根据公式交并比SIoU=S交/(S餐具目标检测框+S矩形标注框-S交)得到所需的交并比。
可选的,目标检测过程通常包括非极大值抑制(NMS)操作,以筛选餐具目标检测框。NMS操作需要计算不同餐具目标检测框之间的IoU,上述IoU计算方法也可以应用于NMS操作中IoU的计算,以增加IoU的计算精度,加快模型的收敛速度。
利用上述方式,本申请可容易且快速地计算餐具目标检测框与对应矩形标注框的交集S交,进而计算出两者的IoU以及对应的损失函数项。
参考图12,本申请还提供一种厨房设备的训练装置130。训练装置130包括获取模块132和训练模块134。
具体的,获取模块132配置成获取图像训练集。图像训练集包括从厨房设备内部采集的若干训练图像。图像训练集还包括图像标注信息。图像标注信息包括与每个训练图像中的餐具对应的矩形标注框。矩形标注框可包括倾斜角度。图像标注信息包括矩形标注框的位置、大小、倾斜角度信息以及矩形标注框所包含的餐具类型信息。
具体的,训练模块134配置成将图像训练集输入待训练的神经网络模型进行训练,得到餐具检测模型300。待训练的神经网络模型包括第一损失函数项。第一损失函数项表征在待训练的神经网络模型所预测的餐具目标检测框与对应矩形标注框之间的倾斜角度差异。
参考图13,本申请还提供一种用于厨房设备的训练装置140。该训练装置140包括处理器142和存储器144。存储器144中存储有计算机程序。处理器142用于执行该计算机程序以实现上述训练方法。
参考图14,本申请还提供一种计算机存储装置150。该计算机存储装置150存储有程序数据152。该程序数据152能够被处理器执行以实现上述训练方法。
参考图15,图15示出一种厨房设备的控制方法的流程图。如图15所示,该控制方法包括如下步骤。
步骤S301:获取餐具设备内的餐具图像。
参考图17,图17示出步骤S301的方法的流程图。如图17所示,步骤S301包括如下步骤。
步骤S3011:关上厨房设备的门体31,激活触发器,初始化摄像头33,启动拍照模式。
如上文所述,厨房设备包括至少一个摄像头33,以拍摄厨房设备内部的图像。在一些实施例中,厨房设备还包括触发器。在一些实施例中,响应于厨房设备的门体31被关闭,触发器可以被触发,以初始化摄像头33且启动拍照模式。可选的,用户也可以手动触发该触发器,以初始化摄像头33且启动拍照模式。
在一些实施例中,启动拍照模式的步骤还包括选取补光灯的亮度等级且开启补光灯。补光灯的亮度等级可以为默认亮度等级。可选的,补光灯的亮度等级也可以基于厨房设备内的亮度智能设定。
步骤S3012:拍摄厨房设备内部的图像。可选的,所拍摄的图像被存储在厨房设备的存储器中以等待后续处理。
步骤S302:利用神经网络模型从餐具图像中识别餐具的目标检测框。目标检测框为带有倾斜角度的矩形框。进一步,神经网络模型可识别目标检测框中的餐具的种类、位置、大小和倾斜角度等特征信息。神经网络模型为如上文训练得到的餐具检测模型300。
具体的,利用神经网络模型从餐具图像中识别餐具的目标检测框可包括:提取餐具图像的语义信息以获取特征图;基于特征图中的特征点生成锚框;以及基于锚框生成餐具的目标检测框。具体的,餐具检测模型300的特征提取模块304和特征融合模块306两者可提取餐具图像的语义信息以获取特征图。餐具检测模型300的模型输出模块308可基于特征图中的特征点生成锚框且基于锚框生成餐具的目标检测框。具体的过程可如上文中的描述所述,在此不再赘述。
可选的,厨房设备可包括至少一个作业区域。每个作业区域可对应至少一个作业器。该作业器例如为清洗剂喷头或消毒剂喷头、风机、烘干器等。餐具检测模型300可输出每一个作业区域中的餐具种类、数量、位置、大小和倾斜角度等。
步骤S303:基于目标检测框的倾斜角度确定与厨房设备的餐具对应的作业模式。进一步,可基于包括目标检测框中的餐具的种类、位置、大小和倾斜角度等的特征信息确定与厨房设备内的餐具对应的作业模式。
具体的,基于餐具的种类、位置、大小以及倾斜角度等特征信息计算厨房设备的作业模式。作业模式包括成组的作业参数。作业参数例如为清洁参数、消毒参数或烘干参数等。具体的,厨房设备的处理器内预存有设定好的作业模式算法模型,作业模式算法模型的输入数据为餐具的特征信息,输出参数为厨房设备的作业参数。通过预先设定的算法模型根据输入的数据计算厨房设备的作业参数。
在一些实施例中,清洁模式算法模型为模糊控制算法。可通过该模糊控制算法基于输入的餐具信息计算厨房设备的作业参数。具体地,模糊控制算法的入口参数为餐具信息。在接收到餐具信息之后,模糊控制算法模块根据餐具信息生成模糊控制规则(即厨房设备的作业参数,包括清洁或消毒时间、清洁剂或消毒剂喷射压力、清洁或消毒角度、清洁或消毒强度、蒸汽时间、烘干时间等)作为作业参数。在一些实施例中,模糊控制算法中的隶属度函数选择岭型分布中间型隶属度函数。
在一些实施例中,作业模式算法例如可以为基于统计数据的插值算法。具体地,厨房设备的生产商等可提供优化的作业模式数据库。该数据库可包括多组餐具信息和对应的作业模式。作业模式算法接收输入的餐具信息,基于数据库通过插值得到与输入的餐具信息对应的作业模式。可选的,插值方式可以为线性或非线性插值,本申请对此不作限制。
参考图16,图16示出根据另一实施例的一种厨房设备的控制方法的流程图。如图16所示,该控制方法包括如下步骤。
S401,基于图像训练集训练待训练模式以获得神经网络模型。
其中,基于图像训练集训练待训练模式以获得神经网络模型的过程与上文中所示的训练方法相同,在此不再详细描述。
具体的,图像训练集包括从厨房设备内采集的若干训练图像,图像训练集还包括图像标注信息。图像标注信息包括与每个训练图像中的餐具对应的矩形标注框,图像标注信息还包括矩形标注框的倾斜角度信息。
如上文所述,待训练模型包括第一损失函数项。第一损失函数项表征在待训练模型所预测的目标检测框与对应矩形标注框之间的交并比。该交并比可体现在所预测的目标检测框与对应矩形标注框之间的倾斜角度差异。
S402,获取餐具设备内的餐具图像。
具体的,该步骤S402与图15中所示的步骤S301类似,此处不再赘述。
S403,利用神经网络模型从餐具图像中识别餐具的目标检测框。目标检测框为带有倾斜角度的矩形框。
具体的,该步骤S403与图15中所示的步骤S302类似,此处不再赘述。
S404,基于目标检测框的倾斜角度确定与厨房设备的餐具对应的作业模式。
具体的,该步骤S404与图15中所示的步骤S303类似,此处不再赘述。
步骤S405:基于作业模式对餐具进行作业处理。
具体的,从步骤S303得到的作业模式的作业参数被发送给厨房设备的控制器,用于控制厨房设备按照所述作业参数运行。如上文所述,作业参数可以为厨房设备的清洗剂喷射强度或喷射角度、消毒剂喷射强度或喷射角度、清洗或消毒强度、清洗或消毒时间、蒸汽时间以及烘干时间等。喷射强度例如可以对应开关阀的开度,开度越大,喷射强度越高。在一些实施例中,清洗强度可以对应于清洗剂的数量。消毒强度可对应于消毒剂的数量。清洗或消毒时间例如可以对应厨房设备中的泵的运行时间。清洗或消毒压力例如可以对应泵的运转速度。蒸汽时间例如可以对应蒸汽产生装置的运行时间,产生的蒸汽例如可以用于对餐具进行杀菌等。
本申请根据餐具信息调整厨房设备的作业模式,以达到节能、高效清洁的目的。尤其,餐具的倾斜角度影响清洁剂或消毒剂的流向、流速、干燥速度等。本申请通过在设置厨房设备的作业模式时考虑餐具的倾斜角度,可进一步优化厨房设备的作业参数,从而达到减少作业时间、提高作业效率的技术效果。
厨房设备可例如为洗碗机或消毒柜。如图18所示,厨房设备还包括处理器182和存储器184。存储器中存储有根据上述方式训练的餐具检测模型300。存储器184中还存储有计算机程序。处理器182用于执行该计算机程序以实现上述厨房设备的控制方法。
参考图19,本申请还提供一种计算机存储装置190。该计算机存储装置190存储有程序数据192。该程序数据192能够被处理器执行以实现上述控制方法。
本申请的实施例以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,方式利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。