技术领域
[0001] 本申请属于图像处理技术领域,尤其涉及一种样本生成方法、样本生成装置、电子设备及计算机可读存储介质。
相关背景技术
[0002] 近年来,深度学习方法由于其学习能力强、覆盖范围广及适应性好等优点,在目标检测任务中取得了优异的性能,因此也在工业界得到了广泛的应用。主流的深度学习目标检测算法都采用了有监督学习的机制,这导致其算法性能大大受限于训练样本集中样本的丰富程度。例如,单一或背景简单的训练样本所训练出来的目标检测算法,在背景发生了更改或者背景复杂的情况下,很可能发生漏检(也即目标检测不到)或者误检(也即将出现在画面中的其他背景物体识别为目标)的情况。
[0003] 实际上,发生漏检和误检的根本原因之一就在于训练样本不充分:模型在训练过程中有很多背景都没有见过,导致模型的泛化能力不足。当前,如果完全依靠人力进行足够丰富的背景下的充分样本采集,将耗费大量人力资源。并且,由于人本身所处的环境是受限的,完全依靠人力进行数据采集基本不可能达到开发人员所期望的效果。
具体实施方式
[0026] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0027] 为了说明本申请所提出的技术方案,下面通过具体实施例来进行说明。
[0028] 下面对本申请实施例提供的一种样本生成方法进行描述。请参阅图1,该样本生成方法包括:
[0029] 步骤101,获取目标物体的至少一张物体图像。
[0030] 在本申请实施例中,可先通过相机的摄像头对目标物体进行拍摄,并将拍摄所得到的至少一张物体图像传输到电子设备中;或者,在电子设备搭载有摄像头的基础上,电子设备也可通过该摄像头对目标物体进行拍摄而获得至少一张物体图像。需要注意的是,在每次对目标物体进行拍摄之前,应更换目标物体的姿态;也即,尽可能罗列目标物体的所有姿态进行图像采集,以采集到不同姿态下的目标物体的物体图像,使得电子设备所获得的每张物体图像对应该目标物体的一个姿态,且不同物体图像对应的该目标物体的姿态不同。
[0031] 举例来说,针对目标物体i,可通过步骤101获得物体图像I1_i,I2_i,……,In_i这n张物体图像,其中,物体图像I1_i对应目标物体i的姿态1,物体图像I2_i对应目标物体i的姿态2,……,物体图像In_i对应目标物体i的姿态n。请参阅图2,图2给出了基于一目标物体(汽车)在简单纯色背景下所获得的物体图像的示例,该简单纯色背景具体为灰色背景。
[0032] 步骤102,基于上述目标物体,分别对各张物体图像进行目标分割,得到至少一张分割图像。
[0033] 在本申请实施例中,电子设备可继续基于目标物体来对该目标物体的每张物体图像均进行目标分割,也即,将所拍摄的目标物体本身从对应的各张物体图像中分割出来。由此可知,每张物体图像都将对应获得一张分割图像,该分割图像仅包含有对应的物体图像中的目标物体的相关信息。
[0034] 举例来说,基于物体图像i对物体图像I1_i,I2_i,……,In_i这n张物体图像分别进行目标分割后,可得到物体图像I1_i对应的分割图像K1_i,物体图像I2_i对应的分割图像K2_i,……,物体图像In_i对应的分割图像Kn_i;也即,由n张物体图像对应得到n张分割图像。请参阅图3,图3给出了基于图2所示出的物体图像所获得的分割图像的示例。
[0035] 步骤103,基于至少一张分割图像与预设的背景图像,生成训练样本集。
[0036] 在本申请实施例中,电子设备可基于所获得的分割图像,与预设的背景图像一起进行图像处理,由此获得至少一张训练样本,构建得到训练样本集。具体地,上述图像处理可以是粘贴操作;也即,可将至少一张分割图像分别粘贴至背景图像中,由此得到至少一张训练样本。
[0037] 可以理解的是,此处并不限定背景图像的数量;也即,背景图像可以有多张,电子设备可以先基于至少一张分割图像与第1张背景图像生成多张训练样本,再基于至少一张分割图像与第2张背景图像生成多张训练样本,以此类推,即可得到丰富背景下的不同姿态的目标物体的图像作为训练样本。
[0038] 进一步地,可以针对多个不同的目标物体均执行步骤101‑103,使得每个目标物体均可对应得到一训练样本集,也即得到多个训练样本集;这多个训练样本集可合并为一个总训练集,并以该总训练集为基础实现对待训练的目标检测模型的训练。
[0039] 在一些实施例中,电子设备可预先完成对显著目标分割算法的训练,以得到已训练的显著目标分割算法。其中,该显著目标分割算法可模拟人眼的视觉特性,分割出图像中最与众不同及吸引眼球的对象,该对象可以是任何不确定对象,所分割出的所有显著对象所在的区域的像素点均标注为1,其背景区域的像素点均标注为0。需要注意的是,本申请实施例中的显著目标分割算法所采用的训练方法与传统的训练方法不同,这是因为本申请实施例并不追求该显著目标分割算法的泛化能力,只需要保证可以将简单背景下的目标分割出来即可。因此,本申请可只使用背景非常单一的图像对显著目标分割算法进行训练,例如,可以是利用开源的coco数据集进行显著目标分割算法的初步训练,也可以是使用后续增加的任意检测目标的数据集进行数据集的扩充,进行显著目标分割算法的进一步训练。可以理解的是,该显著目标分割算法本质上属于一个2分类的图像分割算法,可以使用的分割模型包括但不限于UNet及UNet++,此处不作限定。基于此,可知步骤101所获取的物体图像应优选为纯色背景下的物体图像,也即,在对目标物体进行拍摄时,可将该目标物体放置于纯色背景下。相应地,步骤102可具体包括:
[0040] A1、基于已训练的显著目标分割算法,分别得到各张物体图像所对应的掩码图像。
[0041] 其中,通过前文对显著目标分割算法的描述可知,其可将物体图像中的显著对象(也即目标物体)所在的区域的像素点均标注为1,背景区域的像素点均标注为0;也即,在掩码图像中,属于目标物体所在区域的像素点的像素值为1,属于背景区域的像素点的像素值为0。
[0042] 举例来说,基于已训练的显著目标分割算法,可得到物体图像I1_i对应的掩码图像M1_i,物体图像I2_i对应的掩码图像M2_i,……,物体图像In_i对应的掩码图像Mn_i;也即,由n张物体图像对应得到n张掩码图像。请参阅图4,图4给出了基于图2所示出的物体图像所获得的掩码图像的示例。
[0043] A2、基于各张物体图像所对应的掩码图像,分别对各张物体图像进行目标抠像操作,得到至少一张分割图像。
[0044] 其中,通过步骤A1可知,每张物体图像都对应有一掩码图像,则可基于各张物体图像所对应的掩码图像,分别对各张物体图像进行目标抠像操作,由此获得至少一张分割图像。具体地,针对每对相对应的物体图像及掩码图像,该目标抠像操作为:将该物体图像与该掩码图像进行逐点点乘,其中,逐点点乘的含义是:两个宽、高一致的图像,相同位置的像素点的像素值进行点乘,将点乘结果作为该像素点新的像素值,通过遍历所有像素点,即可得到新的图像。由于掩码图像中属于目标物体所在区域的像素点的像素值为1,属于背景区域的像素点的像素值为0,因而通过该逐点点乘的操作,可将属于目标物体的像素点从物体图像中抠取出来。
[0045] 在一些实施例中,在刚开始使用本申请实施例所提出的样本生成方法来进行数据扩充时,由于用来训练显著目标分割算法的数据量本身也较少,因而可能导致显著目标分割算法的初始版本(例如v1.0版本模型)的效果达不到预期,此时,可以将基于v1.0版本模型所获得的物体图像及对应的掩码图像进行微调,使得微调后的数据有更好的训练效果,并使用微调后的数据对显著目标分割算法进行进一步优化;电子设备由此也可基于优化后的显著目标分割算法获得更优的分割图像,使得前文所提到的总训练集也得以优化。
[0046] 在一些实施例中,步骤103中将至少一张分割图像分别粘贴至背景图像中的操作可具体包括:
[0047] B1、针对每张分割图像,在上述背景图像中随机选定目标位置。
[0048] B2、分别将每张分割图像粘贴至上述背景图像中对应的目标位置处,得到至少一张训练样本。
[0049] 其中,分割图像仅包含有物体图像的信息,也即,分割图像中属于背景区域的像素点的像素值已为0,分割图像中的目标物体处于空白背景下。对于任一张分割图像来说,均可在背景图像中选定随机一个位置作为该分割图像所对应的目标位置,由此,可将每张分割图像分别粘贴至背景图像中对应的目标位置处,使得目标物体在图像中的背景由空白变为了背景图像,由此可获得至少一张训练样本。进一步地,该粘贴操作可以基于泊松融合实现,以防止所获得的训练样本中目标物体的边缘锐化。请参阅图5,图5给出了一背景图像的示例。请参阅图6,图6给出了基于图3所示出的分割图像及图5所示出的背景图像所获得的训练样本的示例。
[0050] 当然,针对同一张分割图像及同一张背景图像,电子设备也还可以在该背景图像中随机选定多个不同的目标位置并分别进行粘贴操作,同样可得到多张训练样本。通过这种方式所得的多张训练样本虽然背景以及目标物体的姿态相同,但目标物体在图像中的位置不同。
[0051] 在一些实施例中,在通过粘贴操作获得了新的训练样本后,还可根据所选定的目标位置(也即粘贴位置),记录下该训练样本的检测框标记,在后续基于该训练样本对目标检测模型(也即目标检测算法)进行训练时进行使用。该检测框标记的数据形式可根据所要训练的目标检测算法的不同而进行设定,本申请实施例不作限定。举例来说,若所使用的目标检测算法是基于VOC格式的数据集的,则数据集的标记文件可能是一个XML文件,其保存有检测框的坐标(左上和右下顶点坐标,或者,左下和右上顶点坐标)以及检测框的类别名称等。也有一些目标检测算法,所使用的标记文件为JSON格式或者TXT格式,则其保存的是检测框的中心点、宽和高,以及检测框的类别名称等。
[0052] 在一些实施例中,电子设备所使用的背景设备可在该电子设备联网后从互联网中获得,例如,随机从互联网中抓取一张或多张互联网图像,然后对所抓取的互联网图像进行检测,具体为检测这些互联网图像是否满足预设的背景条件,只有满足该背景条件的互联网图像才可被确定为背景图像。其中,该背景条件可以是:画面中的目标个数少于预设的数量阈值,该数量阈值由用户而确定。也即,若某一互联网图像所呈现的内容过于复杂,其画面中有多个目标,则该互联网图像不满足背景条件,不会被确定为背景图像。
[0053] 由上可见,通过本申请实施例,首先获取目标物体的至少一张物体图像,然后基于该目标物体,分别对各张物体图像进行目标分割,得到至少一张分割图像,最后基于至少一张分割图像与预设的背景图像,生成训练样本集。由于所获得的每张物体图像对应了目标物体的一个姿态,且不同物体图像对应的目标物体的姿态不同,因而,通过上述目标分割的过程可以快速分割得到不同姿态下的目标物体的图像(也即分割图像)。开发人员只需要控制预设的背景图像的数量,通过这些背景图像及各张分割图像,不仅可获得不同姿态下的目标物体在同一背景下的图像作为训练样本,还可获得相同姿态下的物体在不同背景下的图像作为训练样本,大大提升了训练样本集中训练样本的丰富程度。
[0054] 对应于前文所提出的样本生成方法,本申请实施例提供了一种样本生成装置。请参阅图7,本申请实施例中的样本生成装置700包括:
[0055] 获取单元701,用于获取目标物体的至少一张物体图像,其中,每张物体图像对应上述目标物体的一个姿态,且不同物体图像对应的上述目标物体的姿态不同;
[0056] 分割单元702,用于基于上述目标物体,分别对各张物体图像进行目标分割,得到至少一张分割图像;
[0057] 生成单元703,用于基于至少一张分割图像与预设的背景图像,生成训练样本集。
[0058] 可选地,上述分割单元702,包括:
[0059] 掩码获取子单元,用于基于已训练的显著目标分割算法,分别得到各张物体图像所对应的掩码图像;
[0060] 目标抠像子单元,用于基于各张物体图像所对应的掩码图像,分别对各张物体图像进行目标抠像操作,得到至少一张分割图像。
[0061] 可选地,上述掩码图像中,属于上述目标物体所在区域的像素点的像素值为1,属于背景区域的像素点的像素值为0;上述目标抠像子单元,具体用于针对每对相对应的物体图像及掩码图像,将上述物体图像与上述掩码图像进行逐点点乘,以得到至少一张分割图像。
[0062] 可选地,上述生成单元703,包括:
[0063] 粘贴子单元,用于将上述至少一张分割图像分别粘贴至上述背景图像中,得到至少一张训练样本;
[0064] 构建子单元,用于基于上述至少一张训练样本构建上述训练样本集。
[0065] 可选地,上述粘贴子单元,包括:
[0066] 位置选定子单元,用于针对每张分割图像,在上述背景图像中随机选定目标位置;
[0067] 图像粘贴子单元,用于分别将每张分割图像粘贴至上述背景图像中对应的目标位置处,得到至少一张训练样本。
[0068] 可选地,上述图像粘贴子单元,具体用于分别将每张分割图像基于泊松融合粘贴至上述背景图像中对应的目标位置处,得到至少一张训练样本。
[0069] 可选地,上述样本生成装置700包括:
[0070] 互联网图像获取单元,用于随机从互联网中获取互联网图像;
[0071] 互联网图像检测单元,用于检测上述互联网图像是否满足预设的背景条件;
[0072] 背景图像确定单元,用于若上述互联网图像满足上述背景条件,则将上述互联网图像确定为上述背景图像。
[0073] 由上可见,通过本申请实施例,首先获取目标物体的至少一张物体图像,然后基于该目标物体,分别对各张物体图像进行目标分割,得到至少一张分割图像,最后基于至少一张分割图像与预设的背景图像,生成训练样本集。由于所获得的每张物体图像对应了目标物体的一个姿态,且不同物体图像对应的目标物体的姿态不同,因而,通过上述目标分割的过程可以快速分割得到不同姿态下的目标物体的图像(也即分割图像)。开发人员只需要控制预设的背景图像的数量,通过这些背景图像及各张分割图像,不仅可获得不同姿态下的目标物体在同一背景下的图像作为训练样本,还可获得相同姿态下的物体在不同背景下的图像作为训练样本,大大提升了训练样本集中训练样本的丰富程度。
[0074] 本申请实施例还提供了一种电子设备,请参阅图8,本申请实施例中的电子设备8包括:存储器801,一个或多个处理器802(图8中仅示出一个)及存储在存储器801上并可在处理器上运行的计算机程序。其中,存储器801用于存储软件程序以及单元,处理器802通过运行存储在存储器801的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器802通过运行存储在存储器801的上述计算机程序时实现以下步骤:
[0075] 获取目标物体的至少一张物体图像,其中,每张物体图像对应上述目标物体的一个姿态,且不同物体图像对应的上述目标物体的姿态不同;
[0076] 基于上述目标物体,分别对各张物体图像进行目标分割,得到至少一张分割图像;
[0077] 基于至少一张分割图像与预设的背景图像,生成训练样本集。
[0078] 假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述基于上述目标物体,分别对各张物体图像进行目标分割,得到至少一张分割图像,包括:
[0079] 基于已训练的显著目标分割算法,分别得到各张物体图像所对应的掩码图像;
[0080] 基于各张物体图像所对应的掩码图像,分别对各张物体图像进行目标抠像操作,得到至少一张分割图像。
[0081] 在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述基于上述目标物体,分别对各张物体图像进行目标分割,得到至少一张分割图像,包括:
[0082] 基于已训练的显著目标分割算法,分别得到各张物体图像所对应的掩码图像;
[0083] 基于各张物体图像所对应的掩码图像,分别对各张物体图像进行目标抠像操作,得到至少一张分割图像。
[0084] 在上述第一种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述基于至少一张分割图像与预设的背景图像,生成训练样本集,包括:
[0085] 将上述至少一张分割图像分别粘贴至上述背景图像中,得到至少一张训练样本;
[0086] 基于上述至少一张训练样本构建上述训练样本集。
[0087] 在上述第四种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述将上述至少一张分割图像分别粘贴至上述背景图像中,得到至少一张训练样本,包括:
[0088] 针对每张分割图像,在上述背景图像中随机选定目标位置;
[0089] 分别将每张分割图像粘贴至上述背景图像中对应的目标位置处,得到至少一张训练样本。
[0090] 在上述第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述分别将每张分割图像粘贴至上述背景图像中对应的目标位置处,得到至少一张训练样本,包括:
[0091] 分别将每张分割图像基于泊松融合粘贴至上述背景图像中对应的目标位置处,得到至少一张训练样本。
[0092] 在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础,或者上述第五种可能的实施方式作为基础,或者上述第六种可能的实施方式作为基础而提供的第七种可能的实施方式中,在上述基于至少一张分割图像与预设的背景图像,生成训练样本集之前,处理器802通过运行存储在存储器801的上述计算机程序时实现以下步骤:
[0093] 随机从互联网中获取互联网图像;
[0094] 检测上述互联网图像是否满足预设的背景条件;
[0095] 若上述互联网图像满足上述背景条件,则将上述互联网图像确定为上述背景图像。
[0096] 应当理解,在本申请实施例中,所称处理器802可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0097] 存储器801可以包括只读存储器和随机存取存储器,并向处理器802提供指令和数据。存储器801的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器801还可以存储设备类别的信息。
[0098] 由上可见,通过本申请实施例,电子设备首先获取目标物体的至少一张物体图像,然后基于该目标物体,分别对各张物体图像进行目标分割,得到至少一张分割图像,最后基于至少一张分割图像与预设的背景图像,生成训练样本集。由于所获得的每张物体图像对应了目标物体的一个姿态,且不同物体图像对应的目标物体的姿态不同,因而,通过上述目标分割的过程可以快速分割得到不同姿态下的目标物体的图像(也即分割图像)。开发人员只需要控制预设的背景图像的数量,通过这些背景图像及各张分割图像,不仅可获得不同姿态下的目标物体在同一背景下的图像作为训练样本,还可获得相同姿态下的物体在不同背景下的图像作为训练样本,大大提升了训练样本集中训练样本的丰富程度。
[0099] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0100] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0101] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0102] 在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0103] 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0104] 上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
[0105] 以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。