本申请涉及计算机视觉技术,尤其是一种服饰检测方法和装置、电子设备、存储介质、计算机程序产品。
背景技术:
智能手机和移动互联网的发展产生了海量的图片数据,基于图片数据的计算机视觉相关技术也取得到了飞速的发展。在计算机视觉中,图片中物体的检测是一项重要的任务,是物体识别的基础。目前大数据驱动的深度学习方法是人工智能领域的一大热点,也普遍应用到计算机视觉中物体的检测。在电商图片中,深度卷积神经网络被用来检测图片中的服饰。
技术实现要素:
本申请实施例提供的一种服饰检测技术。
根据本申请实施例的一个方面,提供的一种服饰检测方法,包括:
对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框,每个所述服饰框中包括一个服饰;
获得所述至少一个人脸框中每个人脸框与所述至少一个服饰框中每个服饰框之间的对应关系;
基于每个所述人脸框与每个所述服饰框之间的对应关系确定所述待检测图像中每个人对应的服饰。
可选地,在本申请上述任一方法实施例中,所述方法利用服饰检测网络实现,所述服饰检测网络包括共享部分、第一分支、第二分支和第三分支;
所述对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框,包括:
利用所述共享部分对待检测图像进行处理获得共享特征;
利用所述第一分支和所述第二分支对所述共享特征进行处理,获得至少一个服饰框;
所述获得所述至少一个人脸框中每个人脸框与所述至少一个服饰框中每个服饰框之间的对应关系,包括:
基于所述至少一个人脸框和所述至少一个服饰框获得至少一个关联框,每个所述关联框包括一个人脸框和至少一个服饰框;
利用所述第三分支对所述共享特征和所述至少一个关联框进行处理,获得每个所述人脸框与每个所述服饰框之间的对应关系。
可选地,在本申请上述任一方法实施例中,所述利用所述第一分支和所述第二分支对所述共享特征进行处理,获得至少一个服饰框,包括:
利用所述第一分支对所述共享特征进行处理,获得至少一个备选框,每个所述备选框中包括至少一个服饰;
利用所述第二分支对所述共享特征和所述至少一个备选框进行处理,获得至少一个服饰框,每个所述服饰框中包括一个服饰。
可选地,在本申请上述任一方法实施例中,所述利用所述第二分支对所述共享特征和所述至少一个备选框进行处理,获得至少一个服饰框,包括:
利用所述第二分支获得所述至少一个备选框中每个所述备选框的位置信息和每个所述人脸框的位置信息,基于所述位置信息确定至少一个所述备选框作为所述服饰框;所述位置信息包括坐标信息。
可选地,在本申请上述任一方法实施例中,还包括:利用所述第二分支确定所述至少一个服饰框的服饰类别。
可选地,在本申请上述任一方法实施例中,所述利用所述第三分支对所述共享特征和所述至少一个关联框进行处理,获得每个所述人脸框与每个所述服饰框之间的对应关系,包括:
基于每个所述人脸框的位置信息和每个所述服饰框的位置信息,获得每个所述关联框的位置信息;
将所述共享特征、所述每个关联框的位置信息输入所述第三分支;
通过所述第三分支判断每个所述关联框是否正确,确定每个所述人脸框与每个所述服饰框之间的对应关系。
可选地,在本申请上述任一方法实施例中,所述基于每个所述人脸框与每个所述服饰框的对应关系确定所述待检测图像中每个人对应的服饰,包括:
基于每个所述人脸框与每个所述服饰框之间的对应关系,获得每个所述人脸框对应的至少一个服饰框;
将所述人脸框对应的至少一个服饰框中的服饰作为所述人脸框对应的人的服饰。
可选地,在本申请上述任一方法实施例中,在对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框之前,还包括:
利用样本图像对所述服饰检测网络进行训练,所述样本图像包括标注人脸框、标注服饰框、标注服饰框的位置信息及类别信息和标注人脸框与标注服饰框之间的标注对应关系。
可选地,在本申请上述任一方法实施例中,所述利用样本图像对所述服饰检测网络进行训练,包括:
利用共享部分对所述样本图像进行特征提取,获得样本图像特征;
将所述样本图像特征输入所述第一分支,获得至少一个预测备选框;
将所述样本图像特征和所述预测备选框输入所述第二分支,从所述至少一个预测备选框中获得至少一个预测服饰框和所述预测服饰框的预测位置信息和预测类别;
将所述样本图像特征和所述预测服饰框输入所述第三分支,获得所述至少一个预测服饰框中每个预测服饰框与每个所述标注人脸框之间的预测对应关系;
基于所述预测备选框、所述预测服饰框的预测位置信息和预测类别、及所述预测对应关系,训练所述服饰检测网络。
可选地,在本申请上述任一方法实施例中,所述基于所述预测备选框、所述预测服饰框的预测位置信息和预测类别、及所述预测关联关系,训练所述服饰检测网络,包括:
基于所述预测备选框和所述标注服饰框获得第一损失;
基于所述预测服饰框的预测位置信息和预测类别和所述标注服饰框的位置信息及类别信息,获得第二损失;
基于所述预测对应关系和所述标注人脸框与标注服饰框之间的标注对应关系,获得第三损失;
基于所述第一损失、所述第二损失和所述第三损失,训练所述服饰检测网络。
可选地,在本申请上述任一方法实施例中,所述基于所述第一损失、所述第二损失和所述第三损失,训练所述服饰检测网络,包括:
基于所述第一损失、所述第二损失和所述第三损失求和,获得网络损失;
基于所述网络损失调整所述共享部分、第一分支、第二分支和第三分支的参数。
可选地,在本申请上述任一方法实施例中,在对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框之前,还包括:
通过人脸识别网络对所述待检测图像进行人脸检测,获得至少一个人脸框。
根据本申请实施例的另一方面,提供的服饰检测装置,包括:
服饰框获得单元,用于对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框,每个所述服饰框中包括一个服饰;
对应关系获得单元,用于获得所述至少一个人脸框中每个人脸框与所述至少一个服饰框中每个服饰框之间的对应关系;
服饰确定单元,用于基于每个所述人脸框与每个所述服饰框之间的对应关系确定所述待检测图像中每个人对应的服饰。
可选地,在本申请上述任一装置实施例中,所述装置利用服饰检测网络实现,所述服饰检测网络包括共享部分、第一分支、第二分支和第三分支;
所述服饰框获得单元,用于利用所述共享部分对待检测图像进行处理获得共享特征;利用所述第一分支和所述第二分支对所述共享特征进行处理,获得至少一个服饰框;
所述对应关系获得单元,用于基于所述至少一个人脸框和所述至少一个服饰框获得至少一个关联框,每个所述关联框包括一个人脸框和至少一个服饰框;利用所述第三分支对所述共享特征和所述至少一个关联框进行处理,获得每个所述人脸框与每个所述服饰框之间的对应关系。
可选地,在本申请上述任一装置实施例中,所述服饰框获得单元在利用所述第一分支和所述第二分支对所述共享特征进行处理,获得至少一个服饰框时,用于利用所述第一分支对所述共享特征进行处理,获得至少一个备选框,每个所述备选框中包括至少一个服饰;利用所述第二分支对所述共享特征和所述至少一个备选框进行处理,获得至少一个服饰框,每个所述服饰框中包括一个服饰。
可选地,在本申请上述任一装置实施例中,所述服饰框获得单元在利用所述第二分支对所述共享特征和所述至少一个备选框进行处理,获得至少一个服饰框时,用于利用所述第二分支获得所述至少一个备选框中每个所述备选框的位置信息和每个所述人脸框的位置信息,基于所述位置信息确定至少一个所述备选框作为所述服饰框;所述位置信息包括坐标信息。
可选地,在本申请上述任一装置实施例中,所述服饰框获得单元,还用于利用所述第二分支确定所述至少一个服饰框的服饰类别。
可选地,在本申请上述任一装置实施例中,所述对应关系获得单元在利用所述第三分支对所述共享特征和所述至少一个关联框进行处理,获得每个所述人脸框与每个所述服饰框之间的对应关系时,用于基于每个所述人脸框的位置信息和每个所述服饰框的位置信息,获得每个所述关联框的位置信息;将所述共享特征、所述每个关联框的位置信息输入所述第三分支;通过所述第三分支判断每个所述关联框是否正确,确定每个所述人脸框与每个所述服饰框之间的对应关系。
可选地,在本申请上述任一装置实施例中,所述服饰确定单元,具体用于基于每个所述人脸框与每个所述服饰框之间的对应关系,获得每个所述人脸框对应的至少一个服饰框;将所述人脸框对应的至少一个服饰框中的服饰作为所述人脸框对应的人的服饰。
可选地,在本申请上述任一装置实施例中,所述装置还包括:
网络训练单元,用于利用样本图像对所述服饰检测网络进行训练,所述样本图像包括标注人脸框、标注服饰框、标注服饰框的位置信息及类别信息和标注人脸框与标注服饰框之间的标注对应关系。
可选地,在本申请上述任一装置实施例中,所述网络训练单元,具体用于利用共享部分对所述样本图像进行特征提取,获得样本图像特征;将所述样本图像特征输入所述第一分支,获得至少一个预测备选框;将所述样本图像特征和所述预测备选框输入所述第二分支,从所述至少一个预测备选框中获得至少一个预测服饰框和所述预测服饰框的预测位置信息和预测类别;将所述样本图像特征和所述预测服饰框输入所述第三分支,获得所述至少一个预测服饰框中每个预测服饰框与每个所述标注人脸框之间的预测对应关系;基于所述预测备选框、所述预测服饰框的预测位置信息和预测类别、及所述预测对应关系,训练所述服饰检测网络。
可选地,在本申请上述任一装置实施例中,所述网络训练单元在基于所述预测备选框、所述预测服饰框的预测位置信息和预测类别、及所述预测关联关系,训练所述服饰检测网络时,用于基于所述预测备选框和所述标注服饰框获得第一损失;基于所述预测服饰框的预测位置信息和预测类别和所述标注服饰框的位置信息及类别信息,获得第二损失;基于所述预测对应关系和所述标注人脸框与标注服饰框之间的标注对应关系,获得第三损失;基于所述第一损失、所述第二损失和所述第三损失,训练所述服饰检测网络。
可选地,在本申请上述任一装置实施例中,所述网络训练单元在基于所述第一损失、所述第二损失和所述第三损失,训练所述服饰检测网络时,用于基于所述第一损失、所述第二损失和所述第三损失求和,获得网络损失;基于所述网络损失调整所述共享部分、第一分支、第二分支和第三分支的参数。
可选地,在本申请上述任一装置实施例中,所述装置还包括:
人脸检测单元,用于通过人脸识别网络对所述待检测图像进行人脸检测,获得至少一个人脸框。
根据本申请实施例的又一个方面,提供的一种电子设备,包括处理器,所述处理器包括如上任意一项所述的服饰检测装置。
根据本申请实施例的还一个方面,提供的一种电子设备,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成如上任意一项所述服饰检测方法的操作。
根据本申请实施例的再一个方面,提供的一种计算机存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行如上任意一项所述服饰检测方法的操作。
根据本申请实施例的另一个方面,提供的一种计算机程序产品,包括计算机可读代码,其特征在于,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现如上任意一项所述服饰检测方法的指令。
基于本申请上述实施例提供的一种服饰检测方法和装置、电子设备、存储介质,对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框,每个所述服饰框中包括一个服饰;获得至少一个人脸框中每个人脸框与至少一个服饰框中每个服饰框之间的对应关系;基于每个人脸框与每个服饰框之间的对应关系确定待检测图像中每个人对应的服饰,结合人脸的位置实现对服饰的检测,从而分析出图像中的人的服饰搭配。
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本申请的实施例,并且连同描述一起用于解释本申请的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本申请,其中:
图1为本申请实施例提供的服饰检测方法的一个流程示意图。
图2为本申请实施例提供的服饰检测方法的另一流程示意图。
图3为本申请实施例提供的服饰检测方法的又一实施例中获得至少一个服饰框的流程示意图。
图4为本申请实施例提供的服饰检测方法的还一实施例中获得人脸框与服饰框的对应关系的流程示意图。
图5为本申请实施例提供的服饰检测方法中服饰检测网络的一个结构示意图。
图6为本申请实施例提供的服饰检测方法的一个示例的服饰识别结果图。
图7为本申请实施例提供的服饰检测方法的再一实施例中服饰检测网络的训练流程图。
图8为本申请实施例提供的服饰检测方法一个示例中服饰检测网络的训练结构示意图。
图9为本申请实施例提供的服饰检测方法的一个示例的样本示意图。
图10为本申请实施例提供的服饰检测装置的一个结构示意图。
图11为适于用来实现本申请实施例的终端设备或服务器的电子设备的结构示意图。
具体实施方式
现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为本申请实施例提供的服饰检测方法的一个流程示意图。该方法可以由任意电子设备执行,例如终端设备、服务器、移动设备等等。如图1所示,该实施例方法包括:
步骤110,对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框。
本实施例中,每个服饰框中包括一个服饰,待检测图像中人脸框及其位置可通过人脸识别网络或人工标注的方式实现在待检测图像中获得,本申请实施例对获得人脸框及其位置的具体方式不做限制。
例如,可选地,在步骤110之前,通过人脸识别网络对待检测图像进行人脸检测,获得至少一个人脸框。
为了识别待检测图像中每个人所穿的衣服,需要识别待检测图像中每个包括服饰的服饰框,本申请实施例通过获得待检测图像中的服饰框可对待检测图像中出现的所有服饰进行分解,以便后续与人脸框进行关联,其中服饰不仅包括服装,还可以包括其他配饰等。
步骤120,获得至少一个人脸框中每个人脸框与至少一个服饰框中每个服饰框之间的对应关系。
本实施例可以将待检测图像中的人脸框和服饰框的位置信息作为二者间的对应关系。可通过神经网络确定人脸框与服饰框的对应关系,每个人脸框可以对应一个或多个服饰框,而不存在一个服饰框对应多个人脸框的情况。
步骤130,基于每个人脸框与每个服饰框之间的对应关系确定待检测图像中每个人对应的服饰。
由于待检测图像中每个人所穿的服饰与该人存在对应关系,通过人脸框与服饰框的对应关系,即可确定待检测图像中每个人所穿着的服饰。
本申请上述实施例提供的服饰检测方法,对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框,每个服饰框中包括一个服饰;获得至少一个人脸框中每个人脸框与至少一个服饰框中每个服饰框之间的对应关系;基于每个人脸框与每个服饰框之间的对应关系确定待检测图像中每个人对应的服饰,结合人脸的位置实现对服饰的检测,并分析出图像中的人的服饰搭配。
图2为本申请实施例提供的服饰检测方法的另一流程示意图。本申请实施例提供的方法可利用服饰检测网络实现,该服饰检测网络包括共享部分、第一分支、第二分支和第三分支;如图2所示:
步骤210:利用共享部分对待检测图像进行处理获得共享特征。
可选地,服饰检测网络的共享部分包括至少一层卷积层,通过该共享部分对待检测图像进行特征提取,获得待检测图像的共享特征分别输入第一分支、第二分支和第三分支,通过共享部分对待检测图像进行特征提取,减少了重复特征提取的过程,节省了图像处理的时间,加快了处理速度。
步骤220:利用第一分支和第二分支对共享特征进行处理,获得至少一个服饰框。
本申请实施例利用第一分支和第二分支共同处理,以获得位置较为准确的服饰框,可选地,可基于共享特征先从待检测图像中获得多个备选框(可能包括服饰的矩形框),再从多个备选框中获得包括服饰的服饰框,以提高获得的服饰框的准确性。
步骤230:基于至少一个人脸框和至少一个服饰框获得至少一个关联框。
其中,每个关联框包括一个人脸框和至少一个服饰框,可选地,关联框可是一个人脸框和至少一个服饰框的最小外接框,关联框可表示包括的人脸框对应的人所穿着的所有服饰,通过确定当前获得的关联框是否是正确的,即可确定关联框内的服饰与人脸之间的对应关系,例如:一个关联框中包括一个人脸框和两个服饰框,当该关联框被确定为正确,说明该人脸与两个服饰框中的服饰是对应的。
步骤240:利用第三分支对共享特征和至少一个关联框进行处理,获得每个人脸框与每个服饰框之间的对应关系。
可选地,第三分支可以包括至少一个区域池化层和至少一个全连接层,通过区域池化层对输入的共享特征和至少一个关联框进行处理,可筛选获得正确的关联框,通过正确的关联框即可获得每个人脸框与每个服饰框之间的对应关系。
步骤250:基于每个人脸框与每个服饰框之间的对应关系确定待检测图像中每个人对应的服饰。
可选地,通过对应关系可获得每个人脸框对应的至少一个服饰框,即,确定每个人脸框中的人脸对应的至少一个服饰,即可认为这些服饰为该人脸对应的人所穿着的服饰。
本申请实施例提供的服饰检测网络通过共享部分网络层(共享部分)对待检测图像进行特征提取,获得共享特征,将共享特征分别输入到第一、第二和第三分支中进行相应的处理,节省了重复对图像进行特征提取的过程,提高了图像处理效率,同时提高了服饰检测的准确度。
图3为本申请实施例提供的服饰检测方法的又一实施例中获得至少一个服饰框的流程示意图。如图3所示,利用第一分支和第二分支对共享特征进行处理,获得至少一个服饰框的过程包括:
步骤302,利用第一分支对共享特征进行处理,获得至少一个备选框。
其中,每个备选框中包括至少一个服饰,可选地,第一分支可包括至少两个卷积层,通过至少两个卷积层对共享特征进行处理,获得至少一个可能包括服饰的备选框。
步骤304,利用第二分支对共享特征和至少一个备选框进行处理,获得至少一个服饰框。
其中,每个服饰框中包括一个服饰,第二分支可以包括区域池化层和至少一个全连接层,当共享特征和至少一个备选框输入到区域池化层和至少一个全连接层,即可确定哪个备选框是服饰框,即获得至少一个服饰框。
本申请实施例中通过将待检测图像中每个可能包括服饰的矩形作为备选框,备选框中可能包括一个或多个服饰,并且备选框之间可能存在包含关系或相互重叠;进一步需要对所有备选框进行筛选,以获得对应每个服饰的服饰框。
可选地,步骤304可包括:
利用第二分支获得至少一个备选框中每个备选框的位置信息和每个人脸框的位置信息,基于位置信息确定至少一个备选框作为服饰框。
其中,位置信息可以包括坐标信息,本申请实施例可基于位置信息确定备选框是否为服饰框,该确定过程还可以结合人脸框的位置信息,以保证确定的服饰框与人脸框之间存在关联。
可选地,第二分支还可以确定至少一个服饰框的服饰类别。
其中,服饰类别包括以下至少之一:上装、下装、连体服装、鞋。
通过确定服饰类别,可将多个对应同一人脸框的服饰框进行关联,例如,对应同一人脸框的两个服饰框分别为上装和下装,而不会是上装和连体服装,通过确定服饰类别,可基于服饰之间的既定关系提高服饰检测的准确性。
图4为本申请实施例提供的服饰检测方法的还一实施例中获得人脸框与服饰框的对应关系的流程示意图。如图4所示,利用第三分支对共享特征和至少一个关联框进行处理,获得每个人脸框与每个服饰框之间的对应关系,包括:
步骤402,基于每个人脸框的位置信息和每个服饰框的位置信息,获得每个关联框的位置信息。
可选地,位置信息可以是人脸框和服饰框在待检测图像中的坐标信息,通过坐标确定每个人脸框和每个服饰框的位置,关联框可以是人脸框和至少一个服饰框的最小外接框,通过关联框内的人脸框和服饰框的位置,即可确定关联框的位置信息,例如,确定关联框的四角(当关联框为矩形)的坐标。
步骤404,将共享特征、每个关联框的位置信息输入第三分支。
可选地,第三分支可以包括至少一个区域池化层和至少一个全连接层,例如,区域池化层可以是感兴趣区域池化层(roipooling)。
步骤406,通过第三分支判断每个关联框是否正确,确定每个人脸框与每个服饰框之间的对应关系。
本申请实施例中的关联框可以是人脸框和该人脸框对应的至少一个服饰框构成的最小外接框,每个关联框内包括了一个人脸框和一个或多个服饰框,通过第三分支判断该关联框内的人脸框与服饰框之间是否存在对应关系,即,该关联框是否是正确的,当关联框正确,关联框内的人脸框与关联框内的每个服饰框存在对应关系,否则,关联框内的人脸框与关联框内的至少一个服饰框不存在对应关系。
在一个或多个可选的实施例中,步骤130包括:
基于每个人脸框与每个服饰框之间的对应关系,获得每个人脸框对应的至少一个服饰框;
将人脸框对应的至少一个服饰框中的服饰作为人脸框对应的人的服饰。
本申请实施例实现了结合人脸对服饰的检测,提高了服饰检测的精度,并能对图像中人的着装进行统计,以获得衣着流行趋势,还可以基于服饰实现相似服饰的推荐。
在上述各实施例的一个具体示例中,对服饰的检测还可以采用其他方法实现,例如:利用服饰检测网络,结合人脸来实现服饰检测,并能够给出图片中每个人脸和服饰的关联性,图5为本申请实施例提供的服饰检测方法中服饰检测网络的一个结构示意图。整体的服饰检测网络如图5所示,与服饰检测网络的训练不同,进入关联网络(可包括:共享部分和第三分支)的关联框由检测网络(可包括:共享部分和第二分支)得到的人脸框和服饰框构成,而不是由备选框网络(可包括:共享部分和第一分支)中的备选框生成,具体步骤如下:
1、输入图片卷积层1~7运算,得到图片中的备选框;
2、步骤1中的备选框与共享卷积层的最后一层(如卷积层5)进入区域池化层以及全连接层(如区域池化层1和全连接层1、2)得到最终的人脸和服饰检测框;
3、步骤2中每个检测到的人脸和每个检测到的服饰构建人脸、服饰关联框(如图2-1中所示),该关联框与共享卷积层的最后一层(如卷积层5)加入关联网络区域池化层以及全连接层(如区域池化层2和全连接层3、4),得出关联框中的人脸和服饰是否有属于同一个人。
在一个或多个可选地实施例中,本申请实施例提供的方法还包括:
利用样本图像对服饰检测网络进行训练。
其中,样本图像包括标注人脸框、标注服饰框、标注服饰框的位置信息及类别信息和标注人脸框与标注服饰框之间的标注对应关系。
例如,训练的图片(样本图像)都标注了图片中人脸和服饰的标注框,以及人脸与服饰的对应关系,图6为本申请实施例提供的服饰检测方法的一个示例的服饰识别结果图。如图6中所示,图片中每个待检测物品(人脸、服饰等)标注了物品标识(id)(标注框左上角)和标注框,物品标识(id)一样的属于同一个人,在该示例图片中框采用同一种颜色显示。
图7为本申请实施例提供的服饰检测方法的再一实施例中服饰检测网络的训练流程图。如图7所示,服饰检测网络的训练过程包括:
步骤710,利用共享部分对样本图像进行特征提取,获得样本图像特征。
通过共享部分进行特征提取的步骤,在训练过程中与测试过程类似,区别仅在于输入图像为样本图像,得到样本图像特征。
步骤720,将样本图像特征输入第一分支,获得至少一个预测备选框。
本申请实施例中,通过第一分支对样本图像特征进行处理,获得预测备选框,可选地,第一分支可以包括至少一个卷积层(例如,两个卷积层),通过至少一个卷积层对样本图像特征进行处理,将预测出样本图像中可能包括服饰的预测备选框。
步骤730,将样本图像特征和预测备选框输入第二分支,从至少一个预测备选框中获得至少一个预测服饰框和预测服饰框的预测位置信息和预测类别。
可选地,第二分支可以包括至少一个区域池化层和至少一个全连接层,第二分支在训练过程中处理样本图像特征和预测备选框时,与测试过程中处理共享特征和备选框的过程类似,在此不再赘述。
步骤740,将样本图像特征和预测服饰框输入第三分支,获得至少一个预测服饰框与标注人脸框之间的预测对应关系。
本申请实施例通第三分支对至少一个预测服饰框与标注人脸框之间的对应关系进行预测,获得预测对应关系,这里预测得到的预测对应关系可能与标注的对应关系存在偏差。
步骤750,基于预测备选框、预测服饰框的预测位置信息和预测类别、及预测对应关系,训练服饰检测网络。
本申请实施例利用预测结果与标注信息对服饰检测网络中的共享部分、第一分支、第二分支和第三分支进行训练,可以实现端到端的训练;或分别对共享部分和第一分支进行训练,对共享部分和第二分支进行训练,对共享部分和第三分支进行训练,分别训练可能会影响服饰检测网络的总体检测效果,为了使共享部分的参数符合每个分支的需求,可以利用三个分支得到的损失交替对共享部分进行训练。
服饰检测网络的训练过程与应用过程类似,区别仅在于输入的是样本图像,基于样本图像获得相应的损失,对服饰检测网络中的参数进行训练。具体地,计算服饰检测网络的损失的过程可包括:基于预测备选框和标注服饰框获得第一损失;基于预测服饰框的预测位置信息和预测类别和标注服饰框的位置信息及类别信息,获得第二损失;基于预测对应关系和标注人脸框与标注服饰框之间的标注对应关系,获得第三损失。
为了加快训练过程和提高训练效果,基于第一损失、第二损失和第三损失,训练服饰检测网络。
可选地,基于第一损失、第二损失和第三损失求和,获得网络损失;基于网络损失调整共享部分、第一分支、第二分支和第三分支的参数。
图8为本申请实施例提供的服饰检测方法一个示例中服饰检测网络的训练结构示意图。如图8所示,该服饰检测网络包括三个分支:
(1)备选框生成网络(包括上述实施例中共享部分和第一分支),生成人脸和服饰疑似区域构成备选框;
(2)人脸、服饰检测网络(包括上述实施例中共享部分和第二分支),备选框生成网络得到的备选框在卷积层5上经过区域池化层,得到最终人脸和服饰框的位置和类别;
(3)人脸、服饰关联网络(包括上述实施例中共享部分和第三分支),备选框生成的人脸和服饰框构建人脸关联框,图9为本申请实施例提供的服饰检测方法的一个示例的样本示意图。如图9中所示,人脸关联框为人脸框和服饰框的最小外接框,人脸和服饰id一样的人脸关联框为正样本框(图9a),否则为负样本框(图9b),这个人脸关联框在卷积层5上进行区域池化,该网络识别出人脸和服饰的关联性;
具体训练该服饰检测网络时,三个网络分别有各自的损失函数如下:
备选框损失函数,包括分类损失函数与位置回归损失函数,分类损失函数衡量取得的备选框是否包括物体的得分误差,位置回归损失函数衡量得到的备选框与真实框之间的误差;备选框损失函数通过备选框网络分支回传,如卷积层1~5,卷积层6~7。
人脸、服饰检测损失函数,包括分类损失函数与位置回归损失函数,分类损失函数衡量得到的最终检测框是否正确的分类为了人脸或者服饰的得分误差,位置回归损失函数衡量最终得到的检测框与真实框之间的误差;人脸服饰检测损失函数通过检测网络回传,如卷积层1~5,区域池化层1和全连接层1~2。
人脸、服饰关联网络损失函数,该损失函数衡量每个人脸和每个服饰之间是否正确关联在一起;人脸、服饰关联网络损失函数通过关联网络回传,如卷积层1~5,区域池化层2和全连接层3~4。
这三个损失函数共同组成整个服饰检测网络的损失函数,而且这三个网络共享部分卷积运算,由于三个网络共享部分卷积运算(卷积层1~5)的特点,因此共享部分的卷积网络的回传梯度是有这三个网络共同组成的,这种网络结构会加快了网络的训练和测试速度,使用这种网络结构可以同时输出人脸以及该人脸人物在图片中穿着的服饰位置以及类别信息。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
图10为本申请实施例提供的服饰检测装置的一个结构示意图。该实施例的装置可用于实现本申请上述各方法实施例。如图10所示,该实施例的装置包括:
服饰框获得单元1001,用于对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框。
本实施例中,每个服饰框中包括一个服饰,待检测图像中人脸框及其位置可通过人脸识别网络或人工标注的方式实现在待检测图像中获得,本申请实施例对获得人脸框及其位置的具体方式不做限制。
对应关系获得单元1002,用于获得至少一个人脸框中每个人脸框与至少一个服饰框中每个服饰框之间的对应关系。
本实施例可以将待检测图像中的人脸框和服饰框的位置信息作为二者间的对应关系。可通过神经网络确定人脸框与服饰框的对应关系,每个人脸框可以对应一个或多个服饰框,而不存在一个服饰框对应多个人脸框的情况。
服饰确定单元1003,用于基于每个人脸框与每个服饰框之间的对应关系确定待检测图像中每个人对应的服饰。
本申请上述实施例提供的服饰检测装置,对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框,每个所述服饰框中包括一个服饰;获得至少一个人脸框中每个人脸框与至少一个服饰框中每个服饰框之间的对应关系;基于每个人脸框与每个服饰框之间的对应关系确定待检测图像中每个人对应的服饰,结合人脸的位置实现对服饰的检测,并分析出图像中的人的服饰搭配。
在一个或多个可选的实施例中,本申请实施例提供的装置利用服饰检测网络实现,服饰检测网络包括共享部分、第一分支、第二分支和第三分支;
服饰框获得单元1001,用于利用共享部分对待检测图像进行处理获得共享特征;利用第一分支和第二分支对共享特征进行处理,获得至少一个服饰框;
对应关系获得单元1002,用于基于至少一个人脸框和至少一个服饰框获得至少一个关联框,每个关联框包括一个人脸框和至少一个服饰框;利用第三分支对共享特征和至少一个关联框进行处理,获得每个人脸框与每个服饰框之间的对应关系。
本申请实施例提供的服饰检测网络通过共享部分网络层(共享部分)对待检测图像进行特征提取,获得共享特征,将共享特征分别输入到第一、第二和第三分支中进行相应的处理,节省了重复对图像进行特征提取的过程,提高了图像处理效率,同时提高了服饰检测的准确度。
可选地,服饰框获得单元1001在利用第一分支和第二分支对共享特征进行处理,获得至少一个服饰框时,用于利用第一分支对共享特征进行处理,获得至少一个备选框,每个备选框中包括至少一个服饰;利用第二分支对共享特征和至少一个备选框进行处理,获得至少一个服饰框,每个服饰框中包括一个服饰。
可选地,服饰框获得单元1001在利用第二分支对共享特征和至少一个备选框进行处理,获得至少一个服饰框时,用于利用第二分支获得至少一个备选框中每个备选框的位置信息和每个人脸框的位置信息,基于位置信息确定至少一个备选框作为服饰框;其中,位置信息包括坐标信息。
可选地,服饰框获得单元1001,还用于利用第二分支确定至少一个服饰框的服饰类别。
可选地,对应关系获得单元1002在利用第三分支对共享特征和至少一个关联框进行处理,获得每个人脸框与每个服饰框之间的对应关系时,用于基于每个人脸框的位置信息和每个服饰框的位置信息,获得每个关联框的位置信息;将共享特征、每个关联框的位置信息输入第三分支;通过第三分支判断每个关联框是否正确,确定每个人脸框与每个服饰框之间的对应关系。
在一个或多个可选的实施例中,服饰确定单元1003,具体用于基于每个人脸框与每个服饰框之间的对应关系,获得每个人脸框对应的至少一个服饰框;将人脸框对应的至少一个服饰框中的服饰作为人脸框对应的人的服饰。
本申请实施例实现了结合人脸对服饰的检测,提高了服饰检测的精度,并能对图像中人的着装进行统计,以获得衣着流行趋势,还可以基于服饰实现相似服饰的推荐。
在一个或多个可选的实施例中,本申请实施例提供的装置还包括:
网络训练单元,用于利用样本图像对服饰检测网络进行训练。
其中,样本图像包括标注人脸框、标注服饰框、标注服饰框的位置信息及类别信息和标注人脸框与标注服饰框之间的标注对应关系。
可选地,网络训练单元,具体用于利用共享部分对样本图像进行特征提取,获得样本图像特征;将样本图像特征输入第一分支,获得至少一个预测备选框;将样本图像特征和预测备选框输入第二分支,从至少一个预测备选框中获得至少一个预测服饰框和预测服饰框的预测位置信息和预测类别;将样本图像特征和预测服饰框输入第三分支,获得至少一个预测服饰框中每个预测服饰框与每个标注人脸框之间的预测对应关系;基于预测备选框、预测服饰框的预测位置信息和预测类别、及预测对应关系,训练服饰检测网络。
本申请实施例利用预测结果与标注信息对服饰检测网络中的共享部分、第一分支、第二分支和第三分支进行训练,可以实现端到端的训练;或分别对共享部分和第一分支进行训练,对共享部分和第二分支进行训练,对共享部分和第三分支进行训练,分别训练可能会影响服饰检测网络的总体检测效果,为了使共享部分的参数符合每个分支的需求,可以利用三个分支得到的损失交替对共享部分进行训练。
可选地,网络训练单元在基于预测备选框、预测服饰框的预测位置信息和预测类别、及预测关联关系,训练服饰检测网络时,用于基于预测备选框和标注服饰框获得第一损失;基于预测服饰框的预测位置信息和预测类别和标注服饰框的位置信息及类别信息,获得第二损失;基于预测对应关系和标注人脸框与标注服饰框之间的标注对应关系,获得第三损失;基于第一损失、第二损失和第三损失,训练服饰检测网络。
可选地,网络训练单元在基于第一损失、第二损失和第三损失,训练服饰检测网络时,用于基于第一损失、第二损失和第三损失求和,获得网络损失;基于网络损失调整共享部分、第一分支、第二分支和第三分支的参数。
在一个或多个可选的实施例中,本申请实施例提供的装置还包括:
人脸检测单元,用于通过人脸识别网络对待检测图像进行人脸检测,获得至少一个人脸框。
本申请实施例的另一个方面,还提供了一种电子设备,包括处理器,该处理器包括上述任意一项实施例提供的服饰检测装置。
本申请实施例的又一个方面,还提供了一种电子设备,包括:存储器,用于存储可执行指令;
以及处理器,用于与该存储器通信以执行所述可执行指令从而完成上述任意一项实施例提供的服饰检测方法的操作。
本申请实施例的还一个方面,还提供了一种计算机存储介质,用于存储计算机可读取的指令,该指令被执行时执行上述任意一项实施例提供的服饰检测方法的操作。
本申请实施例的再一个方面,还提供了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在设备上运行时,该设备中的处理器执行用于实现上述任意一项实施例提供的服饰检测方法的指令。
本申请实施例还提供了一种电子设备,例如可以是移动终端、个人计算机(pc)、平板电脑、服务器等。下面参考图11,其示出了适于用来实现本申请实施例的终端设备或服务器的电子设备1100的结构示意图:如图11所示,电子设备1100包括一个或多个处理器、通信部等,所述一个或多个处理器例如:一个或多个中央处理单元(cpu)1101,和/或一个或多个专用处理器,专用处理器可作为加速单元1113,可包括但不限于图像处理器(gpu)、fpga、dsp以及其它的asic芯片之类专用处理器等,处理器可以根据存储在只读存储器(rom)1102中的可执行指令或者从存储部分1108加载到随机访问存储器(ram)1103中的可执行指令而执行各种适当的动作和处理。通信部1112可包括但不限于网卡,所述网卡可包括但不限于ib(infiniband)网卡。
处理器可与只读存储器1102和/或随机访问存储器1103中通信以执行可执行指令,通过总线1104与通信部1112相连、并经通信部1112与其他目标设备通信,从而完成本申请实施例提供的任一项方法对应的操作,例如,对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框,每个服饰框中包括一个服饰;获得至少一个人脸框中每个人脸框与至少一个服饰框中每个服饰框之间的对应关系;基于每个人脸框与每个服饰框之间的对应关系确定待检测图像中每个人对应的服饰。
此外,在ram1103中,还可存储有装置操作所需的各种程序和数据。cpu1101、rom1102以及ram1103通过总线1104彼此相连。在有ram1103的情况下,rom1102为可选模块。ram1103存储可执行指令,或在运行时向rom1102中写入可执行指令,可执行指令使中央处理单元1101执行上述通信方法对应的操作。输入/输出(i/o)接口1105也连接至总线1104。通信部1112可以集成设置,也可以设置为具有多个子模块(例如多个ib网卡),并在总线链接上。
以下部件连接至i/o接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
需要说明的,如图11所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图11的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如加速单元1113和cpu1101可分离设置或者可将加速单元1113集成在cpu1101上,通信部可分离设置,也可集成设置在cpu1101或加速单元1113上,等等。这些可替换的实施方式均落入本申请公开的保护范围。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本申请实施例提供的方法步骤对应的指令,例如,对包括至少一个人脸框的待检测图像进行处理,获得至少一个服饰框,每个服饰框中包括一个服饰;获得至少一个人脸框中每个人脸框与至少一个服饰框中每个服饰框之间的对应关系;基于每个人脸框与每个服饰框之间的对应关系确定待检测图像中每个人对应的服饰。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(cpu)1101执行时,执行本申请的方法中限定的上述功能的操作。
可能以许多方式来实现本申请的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本申请的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本申请的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本申请实施为记录在记录介质中的程序,这些程序包括用于实现根据本申请的方法的机器可读指令。因而,本申请还覆盖存储用于执行根据本申请的方法的程序的记录介质。
本申请的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本申请限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本申请的原理和实际应用,并且使本领域的普通技术人员能够理解本申请从而设计适于特定用途的带有各种修改的各种实施例。