训练数据的生成方法、对象检测模型的训练方法和装置与流程

文档序号:17246064发布日期:2019-03-30 08:49阅读:249来源:国知局
训练数据的生成方法、对象检测模型的训练方法和装置与流程

本发明涉及对象检测技术领域,尤其是涉及一种训练数据的生成方法、对象检测模型的训练方法和装置。



背景技术:

对象检测(objectdetection)是计算机视觉的重要领域。较为流行的对象检测方法有两种,一种是以fasterr-cnn为代表的二阶段(two-stage)方法,另一种是以yolo为代表一阶段(one-stage)方法。然而,不管哪种对象检测方法,都需要海量的并且带标注的训练数据对模型进行训练,才能得到检测效果较高的对象检测模型。

在实际应用中,获取海量的并且带标注的训练数据并不容易。以商品检测为例,可以直接到超市或者某些特定的商品出售场所(比如药房)拍摄,但这种方式可行性不高;也可以将商品购回,在实验室环境下拍摄。但由于商品的类别非常多,一家药店可能就有上万种药品,而这些药品在空间上的排列又有无穷多种可能,所以想要在实验室环境中尽可能穷举实际应用场景中可能的排列变化,需要耗费较多的人力和时间,方式较为繁琐。另外,即使通过拍摄海量图片的方式获取到了大量的图像,对这些图像进行信息标注同样需要大量的人力和时间,代价较高。



技术实现要素:

有鉴于此,本发明的目的在于提供一种训练数据的生成方法、对象检测模型的训练方法和装置,以提高获取大量训练数据的便捷性,并降低对训练数据标注处理的人力成本。

第一方面,本发明实施例提供了一种训练数据的生成方法,该方法包括:获取包含有多种对象的图像数据;其中,每种对象均标注有对象的种类;从图像数据中抠取多种对象,得到抠取的对象的抠图数据;按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上,得到合成图像;其中,合成参数包括抠图数据对应的对象的种类、抠图数据的尺度信息、旋转角度、遮挡程度和背景图像中的一种或多种;将合成图像作为对象检测模型的训练数据。

在本发明较佳的实施例中,上述获取包含有多种对象的图像数据的步骤:获取从多个角度拍摄的对象的多张图像。

在本发明较佳的实施例中,如果合成参数中包括抠图数据的尺度信息,将抠取的对象的抠图数据合成至对应的背景图像上的步骤,包括:根据尺度信息,调整抠取的对象的抠图数据的尺度;其中,合成至同一张背景图像上的抠图数据尺度相同;将尺度调整后的抠图数据合成至对应的背景图像上。

在本发明较佳的实施例中,如果合成参数中包括抠图数据的旋转角度,将抠取的对象的抠图数据合成至对应的背景图像上的步骤,包括:将每个抠取的对象的抠图数据旋转至对应的旋转角度;将旋转后的抠图数据合成至对应的背景图像上。

在本发明较佳的实施例中,上述将抠取的对象的抠图数据合成至对应的背景图像上的步骤,包括:通过随机的方式,对抠取的对象的抠图数据进行位置排列,将排列后的抠图数据合成至对应的背景图像上。

在本发明较佳的实施例中,如果合成参数中包括抠图数据的遮挡程度,对抠取的对象的抠图数据进行位置排列的步骤之后,方法还包括:根据遮挡程度,判断抠取的对象的抠图数据是否存在应当被遮挡的抠图数据;如果是,移动被遮挡的抠图数据至预设位置;在预设位置上,被遮挡的抠图数据被除被遮挡的抠图数据以外的抠图数据,按照遮挡程度遮挡。

在本发明较佳的实施例中,将合成图像作为对象检测模型的训练数据的步骤之后,方法包括:判断训练数据的数量是否大于或等于预设的数量阈值;如果否,继续执行按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上的步骤,直至训练数据的数量大于或等于数量阈值。

在本发明较佳的实施例中,上述对象为刚体对象。

第二方面,本发明实施例提供了一种对象检测模型的训练方法,方法包括:获取对象的训练数据;训练数据通过上述训练数据的生成方法生成;将训练数据输入至预设的初始模型中进行训练,得到对象检测模型。

在本发明较佳的实施例中,上述将训练数据输入至预设的初始模型中进行训练的步骤之后,方法包括:获取测试数据;测试数据包括多张包含有对象的图像数据;将测试数据输入至训练后的初始模型中,输出测试结果;测试结果中包含多张标注有对象的位置信息和种类的图像数据;从测试结果筛选对象的位置信息和种类均正确的图像数据;通过筛选出的图像数据,对训练后的初始模型进行微调处理,得到最终的对象检测模型。

第三方面,本发明实施例提供了一种训练数据的生成装置,该装置包括:图像数据获取模块,用于获取包含有多种对象的图像数据;其中,每种对象均标注有对象的种类;对象抠取模块,用于从图像数据中抠取多种对象,得到抠取的对象的抠图数据;图像合成模块,用于按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上,得到合成图像;其中,合成参数包括抠图数据对应的对象的种类、抠图数据的尺度信息、旋转角度、遮挡程度和背景图像中的一种或多种;将合成图像作为对象检测模型的训练数据。

第四方面,本发明实施例提供了一种对象检测模型的训练装置,该装置包括:训练数据获取模块,用于获取对象的训练数据;训练数据通过上述训练数据的生成方法生成;训练模块,用于将训练数据输入至预设的初始模型中进行训练,得到对象检测模型。

第五方面,本发明实施例提供了一种电子系统,电子系统包括:图像采集设备、处理设备和存储装置;图像采集设备,用于获取预览视频帧或图像数据;存储装置上存储有计算机程序,计算机程序在被处理设备运行时执行如上述训练数据的生成方法,或者执行如上述对象检测模型的训练方法。

第六方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理设备运行时执行如上述训练数据的生成方法,或者执行如上述对象检测模型的训练方法的步骤。

本发明实施例带来了以下有益效果:

本发明实施例提供的训练数据的生成方法、对象检测模型的训练方法、装置、电子系统和计算机可读存储介质,获取到包含有多种对象的图像数据后,从该图像数据中抠取多种对象,得到抠取的对象的抠图数据;进而按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上,得到合成图像,从而得到对象检测模型的训练数据;该方式中,通过调整多种合成参数,可以由少量的图像数据合成得到大量的合成图像,从而提高了获取大量训练数据的便捷性。另外,由于图像在合成之前已经对各对象进行了标注,因而无需再对大力的合成图像进行标注处理,降低了对训练数据标注处理的人力成本。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种电子系统的结构示意图;

图2为本发明实施例提供的一种训练数据的生成方法的流程图;

图3为本发明实施例提供的一种对象检测模型的训练方法的流程图;

图4为本发明实施例提供的一种训练数据的生成装置的结构示意图;

图5为本发明实施例提供的一种对象检测模型的训练装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

考虑到现有的对象检测模型的训练数据,获取方式繁琐且信息标注的代价较高的问题,本发明实施例提供了一种训练数据的生成方法、对象检测模型的训练方法、装置和电子系统;该技术可以应用于服务器、计算机、手机、平板电脑等多种终端设备中,以及对药品、食品、烟酒、日用品、书籍等多种商品的检测中;该技术可采用相应的软件和硬件实现,以下对本发明实施例进行详细介绍。

实施例一:

首先,参照图1来描述用于实现本发明实施例的训练数据的生成方法、对象检测模型的训练方法、装置和电子系统的示例电子系统100。

如图1所示的一种电子系统的结构示意图,电子系统100包括一个或多个处理设备102、一个或多个存储装置104、输入装置106、输出装置108以及一个或多个图像采集设备110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子系统100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子系统也可以具有其他组件和结构。

所述处理设备102可以是网关,也可以为智能终端,或者是包含中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子系统100中的其它组件的数据进行处理,还可以控制所述电子系统100中的其它组件以执行期望的功能。

所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理设备102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理设备实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。

所述图像采集设备110可以采集预览视频帧或图像数据,并且将采集到的预览视频帧或图像数据存储在所述存储装置104中以供其它组件使用。

示例性地,用于实现根据本发明实施例的训练数据的生成方法、对象检测模型的训练方法、装置和电子系统的示例电子系统中的各器件可以集成设置,也可以分散设置,诸如将处理设备102、存储装置104、输入装置106和输出装置108集成设置于一体,而将图像采集设备110设置于可以采集到目标图像的指定位置。当上述电子系统中的各器件集成设置时,该电子系统可以被实现为诸如相机、智能手机、平板电脑、计算机等智能终端。

实施例二:

本实施例提供了一种训练数据的生成方法,该方法由上述电子系统中的处理设备执行;该处理设备可以是具有数据处理能力的任何设备或芯片。该处理设备可以独立对接收到的信息进行处理,也可以与服务器相连,共同对信息进行分析处理,并将处理结果上传至云端。

如图2所示,该训练数据的生成方法包括如下步骤:

步骤s202,获取包含有多种对象的图像数据;其中,每种对象均标注有对象的种类;

本实施例中的训练数据可以用于刚体对象或准刚体对象的检测模型的训练;刚体对象可以理解为不能主动发生形变的对象,刚体对象视觉上的外观变化大多是由于摆放角度、外界光照、背景变化等客观因素导致。准刚体对象可以理解为形变有限的对象,如行走状态下的行人;而对于其他状态下的人、动物这些对象,能够主动发生形变,且形变较为剧烈,难以通过改变客观因素模拟对象的各类可能性的形变,因而本实施例中的训练数据更加适用于上述刚体对象或准刚体对象的检测模型的训练。

上述获取的图像数据中,可以仅包括一张图片,该图片中包含多种对象;也可以包括多张图片,每张图片中包含一个或多种对象;可以理解,如果图像数据中仅包含一种对象,对该对象进行替换背景、调整尺度、旋转角度等处理后,得到该对象的大量不同的图片;但由于这些图片包含同一种对象,这些图片组成的训练数据具有较强的倾向性,易导致通过该训练数据训练出的模型检测其他种类对象时,效果很差;因而,不论图像数据中图片的数量是多少,图像数据中均需要包含有多种对象。

需要说明的是,不同种类的对象间可以具有较大的差异,也可以具有较细微的差异。例如饮料、香烟、药品之间可以称为不同种类的对象,再如感冒药、皮肤药、肠胃药之间也可以称为不同种类的对象,再如a品牌感冒药、b品牌感冒药、c品牌感冒药之间也可以称为不同种类的对象,或者主要成分为甲的感冒药、主要成分为乙的感冒药和主要成分为丙的感冒药之间也可以称为不同种类的对象。具体可以根据待训练的检测模型的检测范围确定上述多种对象具体包含哪些对象。

获取到上述图像数据后,可以通过人工标识的方式针对每种对象标注对象的种类;在实际实现时,可以通过标注框确定对象的位置,再输入该标注框对应的对象的种类;该标注框可以为固定形状,如矩形、圆形、椭圆形等,也可以通过边缘检测的方式获取对象的边缘线条,将边缘线条作为对象的标注框。另外,也可以通过标注软件自动对上述图像数据中的对象进行标注,标注完成后,再由人工进行手动调整。

步骤s204,从图像数据中抠取多种对象,得到抠取的对象的抠图数据;

从图像数据中抠取对象,也可以理解为从图像数据中分割出对象对应的图像区域的过程,该过程可以通过目标检测方法fpn(featurepyramidnetwork,特征金字塔网络)实现;具体可以将图像数据输入至训练好的fpn模型中,输出该图像数据中各对象的图像区域,即对象的抠图数据。

在另一种方式中,考虑到图像数据中通常包含对象对应的图像区域和背景区域,其中,相对于背景区域,对象对应的图像区域通常为前景区域;基于该差别,可以通过图像数据中的蒙版通道获取该图像数据的蒙版图像,由于蒙版图像中前景区域和背景区域的像素值差异较大,因而可以得到前景区域的边缘,进而得到对象对应的图像区域的边缘,该边缘所包围的图像区域即为对象的抠图数据。

当然,还可以通过抠图软件(如photoshop等)从上述图像数据中抠取对象,通过抠图软件中的各种抠图工具,如通道抠图,蒙板抠图,钢笔工具抠图等,得到图像数据中各对象的抠图数据。

步骤s206,按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上,得到合成图像;其中,该合成参数包括抠图数据对应的对象的种类、抠图数据的尺度信息、旋转角度、遮挡程度和背景图像中的一种或多种。

具体地,对于合成参数中的抠图数据对应的对象的种类,可以用于表征待合成的合成图像中包含的对象的种类,如抠图数据对应的对象的种类包括对象1、对象2和对象3,则对应的合成图像中包括对象1、对象2和对象3共三种对象;该抠图数据对应的对象的种类也可以仅包括种类数量,如三种,则对应的合成图像中可以随机或按照某种规则从抠取到的抠图数据中选择三种对象。

上述合成参数中的抠图数据的尺度信息,可以用于表征合成图像中包含的对象的尺度。对于卷积神经网络搭建的检测模型,卷积神经网络中的全连接层通常要求输入的图像为固定尺度。而受对象本身的大小、以及拍摄距离、拍摄角度的影响,上述对象的抠图数据尺度可能大小不同。为了在检测模型的训练过程中,便于调整输入至卷积神经网络的各对象对应的图像区域的尺度,往往需要在合成上述合成图像之前,将同一合成图像中的各个对象的抠图数据调整成相同的尺度,但该尺度不一定要求与上述全连接层要求的固定尺度相同。上述合成参数中的抠图数据的尺度信息即可用于规定当前的合成图像中的各个对象的抠图数据的尺度。另外,为了提高尺度的丰富性,不同的合成图像之间可以具有不同的尺度参数,以提高检测模型在尺度方面的检测鲁棒性。

上述合成参数中的旋转角度,可以用于表征合成图像中包含的对象的拍摄角度;在实际实现时,获取到的图像数据中可能仅包含对象有限个角度的图像数据;通过将对象的抠图数据旋转至上述旋转角度,可以增加对象的拍摄角度的丰富性。该旋转角度可以为二维平面内的旋转角度,也可以为三维空间内立体的旋转角度。同一张合成图像中各个对象的旋转角度可以相同,也可以不同。

上述合成参数中的遮挡程度,可以包含多项参数,如合成图像中包含的对象是否被遮挡、遮挡的位置以及遮挡区域占该对象总的抠图数据的百分比等;在默认情况下,同一张合成图像中的各个对象彼此之间互不遮挡;如果上述遮挡程度中表征出某一对象需要被遮挡,可以通过其他对象对被遮挡对象进行遮挡处理,如移动其他对象的位置,或者移动该被遮挡对象的位置,以使该被遮挡对象的遮挡状况满足上述遮挡程度中规定的各项参数。

上述合成参数中的背景图像,可以用于表征当前合成图像所使用的背景图像。可以预先获取多种背景图像,当需要合成图像时,随机或按照预设规则从预先获取的背景图像中选择对应的背景图像。

在合成上述合成图像的过程中,可以仅使用上述多种合成参数中的一部分参数,其他参数不使用或使用其默认值。在将对象的抠图数据合成至对应的背景图像上的过程中,具体可以将对象的抠图数据所处的背景图像的位置上的像素值,替换成对象的抠图数据中的像素值,以实现图像的合成过程。

步骤s208,将上述合成图像作为对象检测模型的训练数据。

通常,为了保证对象检测模型的训练效果,通常需要大量的训练数据进行训练;因而,可以通过改变合成参数,得到大量的彼此之间不同的合成图像,这些合成图像的集合即可作为对象检测模型的训练数据。

本发明实施例提供的训练数据的生成方法,获取到包含有多种对象的图像数据后,从该图像数据中抠取多种对象,得到抠取的对象的抠图数据;进而按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上,得到合成图像,从而得到对象检测模型的训练数据;该方式中,通过调整多种合成参数,可以由少量的图像数据合成得到大量的合成图像,从而提高了获取大量训练数据的便捷性。

另外,由于图像在合成之前已经对各对象进行了标注,因而无需再对大力的合成图像进行标注处理,降低了对训练数据标注处理的人力成本。

实施例三:

本实施例提供了另一种训练数据的生成方法,该方法在上述实施例的基础上实现;上述实施例中,提到了合成参数包括抠图数据对应的对象的种类、抠图数据的尺度信息、旋转角度、遮挡程度和背景图像中的一种或多种;本实施例中,重点描述通过各种合成参数处理多个对象的抠图数据的具体过程。下面对每种合成参数的处理过程分别进行描述。

(1)关于抠图数据对应的对象的种类

对于一张合成图像,可能包含一个或多个种类的对象,因此,在合成一张图像时,可以随机地或者按照预设的规则从获取到的多种对象中选择该待合成的图像中包含的对象的种类。例如,获取到的多种对象共有十种,分别为对象1至对象10;从这十种对象中随机地选择对象,对象种类的数量和具体的种类均可以随机选择。

另外,如果已经预设了合成图像的数量,可以预先设置每张合同图像应当包含的对象种类,如预设的合成图像为100个,其中,10张合成图像包含2个对象,10张合成图像包含3个对象,依此类推。至于每张图像中具体包含哪些种类的对象,可以顺序地从上述对象1至对象10选择,如,对于合成图像a,选择对象1和对象2,对于合成图像b,选择对象3和对象4,当前也可以按照预设的间隔选择具体的对象。

(2)关于抠图数据的尺度信息

如果合成参数中包括抠图数据的尺度信息,根据该尺度信息,调整抠取的对象的抠图数据的尺度;将尺度调整后的抠图数据合成至对应的背景图像上。其中,合成至同一张背景图像上的抠图数据尺度相同。

考虑到训练对象检测模型需要大量的训练数据,因而可以预先建立一个尺度信息集合或尺度信息范围,该尺度信息集合或范围中包括多种尺度,每合成一张图像时,从该尺度信息集合中随机或顺序地获取一个尺度信息,也可以按照预设的尺度间隔从上述尺度信息中获取一个尺度信息,以获取到的尺度信息调整抠图数据的尺度。由于卷积神经网络搭建的检测模型中,全连接层要求输入的图像为固定尺度,为了便于调整同一张合成图像中各对象对应的图像区域的尺度,往往需要将合成至同一张背景图像上的抠图数据调整成相同的尺度,但该尺度不一定要求与上述全连接层要求的固定尺度相同。

如果对象的抠图数据的尺度小于上述尺度信息中规定的尺度,则需要对该抠图数据进行拉伸,拉伸过程中可以通过插值的方式填充拉伸出的像素位置;如果对象的抠图数据的尺度大于上述尺度信息中规定的尺度,则需要对该抠图数据进行压缩或截图处理;其中,在压缩过程中,可以按照预设间隔删减像素行或像素列,从而以得到符合尺度信息的抠图数据。

(3)关于抠图数据的旋转角度

如果合成参数中包括抠图数据的旋转角度,将每个抠取的对象的抠图数据旋转至对应的旋转角度;将旋转后的抠图数据合成至对应的背景图像上。

与上述尺度信息类似,可以预先建立一个旋转角度集合或旋转角度范围,该旋转角度集合或范围中包括多种旋转角度,每合成一张图像时,从该尺度信息集合中随机或顺序地获取一个或多个旋转角度,也可以按照预设的角度间隔从上述旋转角度范围中获取一个或多个旋转角度,以调整待合成至一张图像的多个对象的旋转角度。可以理解,同一合成图像中的对象的旋转角度可以相同,也可以不同。上述旋转角度,可以为二维平面下的旋转角度,例如,顺时针旋转10度、90度、逆时针旋转20度等;也可以为三维空间下的旋转角度,如在xy平面内顺时针旋转10度,在z轴方向旋转90度等。

(4)关于抠图数据的遮挡程度

上述将抠图数据合成至对应的背景图像时,通常需要预先设置各抠图数据在背景图像上的位置;其中一种方式是,通过随机的方式,对抠取的对象的抠图数据进行位置排列,再将排列后的抠图数据合成至对应的背景图像上。在位置排列过程中,具体可以根据对象的数量,将各个对象的抠图数据均匀地分布抠图数据。至于对象间的相邻关系,即哪个对象和哪个对象相邻,可以通过随机的方式设置。

上述在位置设置过程中,可以默认对象间彼此互不遮挡,因此初始的位置排列结果是,各个对象的抠图数据互补遮挡;而如果合成参数中包括抠图数据的遮挡程度,则根据遮挡程度,判断抠取的对象的抠图数据是否存在应当被遮挡的抠图数据;如果是,移动被遮挡的抠图数据至预设位置;在预设位置上,被遮挡的抠图数据被除被遮挡的抠图数据以外的抠图数据,按照遮挡程度遮挡。

上述遮挡程度,可以对待合成图像中的各个对象分别进行设置;例如,可以预先建立一个遮挡程度的参数矩阵,该参数矩阵可以包含遮挡百分比和遮挡方向两个维度的信息;其中,遮挡百分比也可以为一个范围;遮挡方向可以为左侧、右侧、上侧、下侧、左上侧、右下侧,也可以为更细粒度的方向划分,如上侧方向顺时针旋转10度的方向等。每合成一张图像时,分别针对每个对象,从所述参数矩阵选择对应的参数,例如,对象a对应的遮挡百分比为零,说明该对象a的抠图数据无需被遮挡,对象b对应的遮挡百分比为50%,遮挡方向为上侧,则说明该对象b需要被遮挡,此时可以通过对象a或其他无需被遮挡的对象遮挡该对象b。具体而言,当各个对象以互不遮挡的形式排列好后,可以移动该被遮挡对象的抠图数据,即对象b的抠图数据,将对象b的抠图数据移动至对象a的抠图数据附近。由于遮挡程度中的遮挡方向为上侧,说明对象b的抠图数据的上侧需要被遮挡,此时可以将对象b的抠图数据移动至对象a的抠图数据的下侧,并继续向上移动,直至对象a按照上述遮挡百分比遮挡对象b的抠图数据,此时对象b到达上述预设位置。

在另一种实现方式中,可以在各个对象排列在背景图像之前,为各个对象设置遮挡程度,再按照该遮挡程度对各个对象的抠图数据进行位置排列。

需要说明的是,为了便于各个对象的排列,可以预设每合成一张图像时,该合成图像对应的所有对象中的至少一部分无需被遮挡,以避免被遮挡的对象过多导致对象的位置排列过于复杂或根本无法实现的情况。例如,如果对象的总数为5个,则可以预设其中的3个对象无需被遮挡,2个对象可以被遮挡。

通过设置遮挡程度这一合成参数,可以提高对象检测模型对轻微遮挡的检测鲁棒性。

(5)关于背景图像

该背景图像通常为没有对象图像,如桌面图像、纸张图像、墙图像等;同样可以预先建立一个背景图像的集合,每合成一张图像时,从该集合中随机或顺序地获取一个背景图像,进而将各个对象的抠图数据合成在该背景图像上。

需要说明的是,虽然主要通过各合成图像中对象的抠图数据对模型进行训练,但合成对象的背景图像也会影响模型训练的效果,如果训练数据中所有的合成图像使用同样的背景,如munpy数组,即纯白色背景,则会导致严重过拟合训练数据中的背景,使得最终训练得到的对象检测模型的检测效果较差。

上述描述了每种合成参数对处理对象的抠图数据的具体过程,当合成一张图像时,如果合成参数包含有多种,则可以按照随机或预设的顺序,分别按照每种合成参数对对象的抠图数据进行处理,下述训练数据的生成方法提供了一个示例,该示例中以刚体对象为例,但不作为对合成参数处理顺序以及处理对象种类的限定,该方法包括如下步骤:

步骤302,获取从多个角度拍摄的对象的多张图像;其中,每种对象均标注有对象的种类;

以刚体对象为例,上述多个角度可以为刚体对象的正面、左侧、右侧、上侧、下侧、左上侧、左下侧、右上侧、右下侧等;在选择角度时,尽量能够从该角度拍摄到该刚体对象的特征,如该刚体对象为药品时,从各角度拍摄的图像能够体现该药品的品牌、商标、药品名称等;如果某一角度,例如左侧角度,仅能拍摄到该药盒的盒体一侧,没有任何能够体现该药品特征的文字,此时则无需从左侧角度拍摄该药品。

在实际实现时,对于一种刚体对象,每个角度拍摄一个图像,进而得到该刚体对象的多张图像。当然,也可以同时为多个刚体对象同时进行拍摄,同一张图像中的多个刚体对象的拍摄角度相同或不同。所有的刚体对象拍摄完毕后,可以逐一对每个刚体对象标注该对象的种类;标注的对象的种类可以用于后续合成图像时,选择对应的对象种类,也可以用于训练对象检测模型时,对训练结果进行测试。

步骤304,从图像数据中抠取多种对象,得到抠取的对象的抠图数据;

步骤306,判断预设的合成参数中是否包含抠图数据对应的对象的种类,如果是,执行步骤308,如果否,执行步骤310;

步骤308,根据抠图数据对应的对象的种类,从抠取的对象的抠图数据中选择该种类对应的对象的抠图数据;

步骤310,判断预设的合成参数中是否包含抠图数据的尺度信息,如果是,执行步骤312,如果否,执行步骤314;

步骤312,根据该尺度信息,调整抠取的对象的抠图数据的尺度;其中,合成至同一张背景图像上的抠图数据尺度相同。

步骤314,判断预设的合成参数中是否包含抠图数据的旋转角度,如果是,执行步骤316,如果否,执行步骤318;

步骤316,将每个抠取的对象的抠图数据旋转至对应的旋转角度;

步骤318,通过随机的方式,对抠取的对象的抠图数据进行位置排列;

步骤320,判断预设的合成参数中是否包含抠图数据的遮挡程度,如果是,执行步骤322,如果否,执行步骤324;

步骤322,根据遮挡程度,判断抠取的对象的抠图数据是否存在应当被遮挡的抠图数据;如果是,移动被遮挡的抠图数据至预设位置;在预设位置上,被遮挡的抠图数据被除被遮挡的抠图数据以外的抠图数据,按照遮挡程度遮挡。

步骤324,将抠取的对象的抠图数据合成至预设的合成参数中包含的背景图像上,得到合成图像;将该合成图像作为对象检测模型的训练数据。

步骤326,判断训练数据的数量是否大于或等于预设的数量阈值;如果是,结束流程,如果否,继续执行步骤306,以继续按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上,直至训练数据的数量大于或等于数量阈值。

例如,如果获取到的对象种类为十种,每种对象对应十张不同角度的图像,通过自动对上述各种合成参数进行调整(各种合成参数均可以以随机的方式进行调整),可以获取数万张合成图像,这些合成图像组成对象检测模型的训练数据。由于训练数据的数量可以直接影响模型的检测准确性,如一千张训练图片训练得到的模型检测准确度,可能比一万张训练图片训练得到的模型检测准确度低约10%。因而通过本实施例获得大量的训练数据可以有助于提高对象检测模型的准确度。

上述训练数据的生成方法,通过自动调整多种合成参数,可以由少量的图像数据合成得到大量的合成图像,从而提高了获取大量训练数据的便捷性,同时无需再对大力的合成图像进行标注处理,降低了对训练数据标注处理的人力成本。

实施例四:

本实施例提供了一种对象检测模型的训练方法,该方法在上述实施例提供的训练数据的生成方法的基础上实现;如图3所示,该方法包括如下步骤:

步骤s302,获取对象的训练数据;该训练数据通过上述训练数据的生成方法生成;

步骤s304,将训练数据输入至预设的初始模型中进行训练,得到对象检测模型。

其中,该初始模型具体可以为卷积神经网络,并通过fpn对该卷积神经网络输出的特征数据进行进一步的特征提取和分析。另外,在模型的训练过程中,还需要通过测试数据测试模型的初步训练效果,并基于测试结果对初步训练的模型进行进一步微调,因此,上述将训练数据输入至预设的初始模型中进行训练的步骤之后,上述方法还包括如下步骤:

步骤1,获取测试数据;该测试数据包括多张包含有对象的图像数据;该测试数据具体可以为真实拍照的包含有对象的图像数据。

步骤2,将测试数据输入至训练后的初始模型中,输出测试结果;该测试结果中包含多张标注有对象的位置信息和种类的图像数据;

其中,对象的位置信息可以通过矩形框标识,对象的种类可以以文字或符号的形式标识在矩形框的附近,并与矩形框一一对应。

步骤3,从测试结果筛选对象的位置信息和种类均正确的图像数据;

步骤4,通过筛选出的图像数据,对训练后的初始模型进行微调处理,得到最终的对象检测模型。

上述将测试数据输入至训练后的初始模型中并输出测试结果的过程,可以理解为通过训练后的初始模型对测试数据中的对象进行标注的过程,如果训练后的初始模型对测试数据中的某些图像数据的标注的位置信息和种类均正确,说明这些图像数据更加符合训练后的初始模型的检测倾向,因而,根据这些图像数据,对训练后的初始模型进行微调处理,可以使最终的对象检测模型更加符合对象检测的预期效果。

具体而言,上述微调处理也可以称为fine-tune过程;将上述筛选出的图像数据再次输入至训练后的初始模型,可以根据这些图像数据调整出初始模型中各网络层的权重,以及最后几层网络层的相关参数;由于上述测试数据为真实环境下拍摄的包含有对象的图像数据,通过这些测试数据中的部分图像数据对模型进行微调,可以弥补上述训练数据中合成图像在光照和背景方面与实测环境的差异,使对象检测模型的检测效果更具有鲁棒性。经试验证明,使用上述训练数据的生成方法得到训练数据训练得到的对象检测模型,再经上述微调处理后,模型的检测准确度可以达到98%。

本实施例提供的上述对象检测模型的训练方法,通过上述训练数据的生成方法得到训练数据后,将该将训练数据输入至预设的初始模型中进行训练,得到对象检测模型。该方式通过使用合成图像作为训练数据,提高了获取大量训练数据的便捷性,从而在保证模型检测准确性的同时,提高了模型训练的效率。

实施例五:

对应于上述方法实施例,参见图4所示的一种训练数据的生成装置的结构示意图,该装置包括:

图像数据获取模块40,用于获取包含有多种对象的图像数据;其中,每种对象均标注有对象的种类;

对象抠取模块41,用于从图像数据中抠取多种对象,得到抠取的对象的抠图数据;

图像合成模块42,用于按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上,得到合成图像;其中,合成参数包括抠图数据对应的对象的种类、抠图数据的尺度信息、旋转角度、遮挡程度和背景图像中的一种或多种;将合成图像作为对象检测模型的训练数据。

本发明实施例提供的训练数据的生成装置,获取到包含有多种对象的图像数据后,从该图像数据中抠取多种对象,得到抠取的对象的抠图数据;进而按照预设的合成参数,将抠取的对象的抠图数据合成至对应的背景图像上,得到合成图像,从而得到对象检测模型的训练数据;该方式中,通过调整多种合成参数,可以由少量的图像数据合成得到大量的合成图像,从而提高了获取大量训练数据的便捷性。另外,由于图像在合成之前已经对各对象进行了标注,因而无需再对大力的合成图像进行标注处理,降低了对训练数据标注处理的人力成本。

进一步地,上述图像数据获取模块,还用于:获取从多个角度拍摄的对象的多张图像。

进一步地,如果合成参数中包括抠图数据的尺度信息,上述图像合成模块还用于:根据尺度信息,调整抠取的对象的抠图数据的尺度;其中,合成至同一张背景图像上的抠图数据尺度相同;将尺度调整后的抠图数据合成至对应的背景图像上。

进一步地,如果合成参数中包括抠图数据的旋转角度,上述图像合成模块还用于:将每个抠取的对象的抠图数据旋转至对应的旋转角度;将旋转后的抠图数据合成至对应的背景图像上。

进一步地,上述图像合成模块还用于:通过随机的方式,对抠取的对象的抠图数据进行位置排列,将排列后的抠图数据合成至对应的背景图像上。

进一步地,如果合成参数中包括抠图数据的遮挡程度,上述图像合成模块还用于:根据遮挡程度,判断抠取的对象的抠图数据是否存在应当被遮挡的抠图数据;如果是,移动被遮挡的抠图数据至预设位置;在预设位置上,被遮挡的抠图数据被除被遮挡的抠图数据以外的抠图数据,按照遮挡程度遮挡。

进一步地,上述装置还包括判断模型,用于判断训练数据的数量是否大于或等于预设的数量阈值;继续执行模型,用于如果训练数据的数量小于预设的数量阈值,继续触发上述图像合成模块运行,直至训练数据的数量大于或等于数量阈值。

进一步地,上述对象为刚体对象。

本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

参见图5所示的一种对象检测模型的训练装置的结构示意图,该装置包括:

训练数据获取模块50,用于获取对象的训练数据;训练数据通过上述训练数据的生成方法运行生成;

训练模块51,用于将训练数据输入至预设的初始模型中进行训练,得到对象检测模型。

本实施例提供的上述对象检测模型的训练装置,通过上述训练数据的生成方法得到训练数据后,将该将训练数据输入至预设的初始模型中进行训练,得到对象检测模型。该方式通过使用合成图像作为训练数据,提高了获取大量训练数据的便捷性,从而在保证模型检测准确性的同时,提高了模型训练的效率。

进一步地,上述装置还包括:

测试数据获取模块,用于获取测试数据;测试数据包括多张包含有对象的图像数据;

数据输入模块,用于将测试数据输入至训练后的初始模型中,输出测试结果;测试结果中包含多张标注有对象的位置信息和种类的图像数据;

筛选模块,用于从测试结果筛选对象的位置信息和种类均正确的图像数据;

微调模块,用于通过筛选出的图像数据,对训练后的初始模型进行微调处理,得到最终的对象检测模型。

本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

实施例六:

本发明实施例提供了一种电子系统,该电子系统包括:图像采集设备、处理设备和存储装置;图像采集设备,用于获取预览视频帧或图像数据;

存储装置上存储有计算机程序,计算机程序在被处理设备运行时执行上述训练数据的生成方法,或者上述对象检测模型的训练方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

进一步地,本实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理设备运行时执行如上述训练数据的生成方法,或者执行上述对象检测模型的训练方法的步骤。

本发明实施例所提供的训练数据的生成方法、对象检测模型的训练方法、装置和电子系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1