目标检测方法、装置和计算机可读存储介质与流程

文档序号:16856992发布日期:2019-02-12 23:26阅读:182来源:国知局
目标检测方法、装置和计算机可读存储介质与流程

本公开涉及计算机技术领域,特别涉及一种目标检测方法、装置和计算机可读存储介质。



背景技术:

目标检测是计算机视觉中的基本任务之一,通过机器学习模型判断图像中是否有某类物体,及该物体的位置。

目前的一些目标检测算法,可以对一副图像输出多个类别的目标识别结果。针对这种多类别的目标检测算法,需要对训练样本图片中存在的所有的类别的目标进行标注。



技术实现要素:

发明人发现:现有目标检测算法都对训练数据有很高要求,需要大量的标注。而实际问题中,训练数据的获取往往是最困难的,一个常见的状况是,训练数据集往往都是部分标注的,存在交集,但是没有足够的完整标注的训练数据。例如服饰检测中,有的训练数据集只标注了衣服和裤子,而有的训练数据集只标注了鞋子和配饰,而出现鞋子和配饰的图片中衣服裤子部分则没有标注,同样道理,标注了衣服裤子的图片中,人物可能也带着配饰,而这些配饰都没有标注,直接训练会导致目标检测模型难以收敛。

本公开所要解决的一个技术问题是:如何在训练样本标注不完整的情况下,实现对目标检测模型的训练,从而实现对多目标的检测。

根据本公开的一些实施例,提供的一种目标检测方法,包括:识别训练样本图片中标注的目标的类别;根据训练样本图片中标注的目标的类别,将目标检测模型中特征提取子网络中输出的训练样本图片的特征,输入类别对应的目标检测子网络,以对目标检测模型进行训练,目标检测模型包括特征提取子网络和多个类别对应的不同目标检测子网络;将待检测图片输入训练完成的目标检测模型,以检测出待检测图片中的目标。

在一些实施例中,对目标检测模型进行训练包括:根据训练样本图片中的标注信息和类别对应的目标检测子网络输出的训练样本图片的目标检测结果,对类别对应的目标检测子网络和特征提取子网络中的权重进行调整;直至各个类别对应的目标检测子网络输出的目标检测结果和训练样本图片中的标注信息的误差达到预设误差范围,得到训练完成的目标检测模型。

在一些实施例中,将待检测图片输入训练完成的目标检测模型,以检测出待检测图片中的目标包括:将待检测图片输入训练完成的目标检测模型的特征提取子网络,提取待检测图片的特征;将待检测图片的特征输入目标检测子网络;根据目标检测子网络的输出结果,确定待检测图片中的目标。

在一些实施例中,根据各个类别对应的目标检测子网络的输出结果,确定待检测图片中目标的位置和目标的类别包括:根据各个类别对应的目标检测子网络分别输出的待检测图片中属于本类别的目标的位置和目标所属类别为本类别的置信度,确定待检测图片中目标的位置和目标的类别。

在一些实施例中,在检测出待检测图片中多个类别目标的位置重合的情况下,根据多个目标所属类别的置信度,确定该位置的目标所属类别。

在一些实施例中,将待检测图片的特征输入目标检测子网络包括:在待检测图片被设置了待检测目标的情况下,将待检测图片的特征输入待检测目标所属类别对应的目标检测子网络中。

根据本公开的另一些实施例,提供的一种目标检测装置,包括:标注识别模块,用于识别训练样本图片中标注的目标的类别;训练模块,用于根据训练样本图片中标注的目标的类别,将目标检测模型中特征提取子网络中输出的训练样本图片的特征,输入类别对应的目标检测子网络,以对目标检测模型进行训练,目标检测模型包括特征提取子网络和多个类别对应的不同目标检测子网络;目标检测模块,用于将待检测图片输入训练完成的目标检测模型,以检测出待检测图片中的目标。

在一些实施例中,训练模块用于根据训练样本图片中的标注信息和类别对应的目标检测子网络输出的训练样本图片的目标检测结果,对类别对应的目标检测子网络和特征提取子网络中的权重进行调整;直至各个类别对应的目标检测子网络输出的目标检测结果和训练样本图片中的标注信息的误差达到预设误差范围,得到训练完成的目标检测模型。

在一些实施例中,目标检测模块用于将待检测图片输入训练完成的目标检测模型的特征提取子网络,提取待检测图片的特征;将待检测图片的特征输入目标检测子网络;根据目标检测子网络的输出结果,确定待检测图片中的目标。

在一些实施例中,目标检测模块用于根据各个类别对应的目标检测子网络分别输出的待检测图片中属于本类别的目标的位置和目标所属类别为本类别的置信度,确定待检测图片中目标的位置和目标的类别。

在一些实施例中,目标检测模块用于在检测出待检测图片中多个类别目标的位置重合的情况下,根据多个目标所属类别的置信度,确定该位置的目标所属类别。

在一些实施例中,目标检测模块用于在待检测图片被设置了待检测目标的情况下,将待检测图片的特征输入待检测目标所属类别对应的目标检测子网络中。

根据本公开的又一些实施例,提供的一种目标检测装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行如前述任意实施例的目标检测方法。

根据本公开的再一些实施例,提供的一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的目标检测方法。

本公开中目标检测模型包括特征提取子网络和多个类别对应的不同的目标检测子网络。根据训练样本图片中标注的目标的类别,将目标检测模型中特征提取子网络中输出的训练样本图片的特征,输入标注的类别对应的目标检测子网络,对目标检测模型进行训练。进而将待检测图片输入训练完成的目标检测模型,以检测出待检测图片中的目标。本公开设计多个类别对应的目标检测子网络,分别负责识别不同类别的目标,在训练时根据训练样本的标注,对目标检测模型中相应的部分进行训练,而训练样本中没有标注的目标对应的目标检测子网络不会受到训练样本的干扰而造成无法收敛的问题。本公开能够融合不同标签的训练样本,在训练样本标注不完备的情况下,实现多目标的目标检测模型的训练,提高目标检测的准确性。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

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

图1示出本公开的一些实施例的目标检测方法的流程示意图。

图2示出本公开的另一些实施例的目标检测方法的流程示意图。

图3示出本公开的一些实施例的目标检测装置的结构示意图。

图4示出本公开的另一些实施例的目标检测装置的结构示意图。

图5示出本公开的又一些实施例的目标检测装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

本公开提供了一种目标检测方法,下面结合图1进行描述。

图1为本公开方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤s102~s106。

在步骤s102中,识别训练样本图片中标注的目标的类别。

不同的训练样本中可以只标注了部分类别的目标。可以识别已标注的图片中标注的目标的类别,在多张已标注的图片中存在类别相同的目标的情况下,将多张已标注的图片作为训练样本图片,组成训练样本集。可以根据实际需求选取训练样本组成训练样本集。训练样本集中各个训练样本图片标注的目标的类别的并集,作为目标检测模型最终可以检测的目标的类别。

例如,有些图片标注了帽子、衣服和裤子,有些图片标注了裤子和鞋,有些图片标注了帽子和鞋,这些图片组成的训练样本集对目标检测模型进行训练,则目标检测模型可以检测帽子、衣服、裤子和鞋。

在步骤s104中,根据训练样本图片中标注的目标的类别,将目标检测模型中特征提取子网络中输出的训练样本图片的特征,输入类别对应的目标检测子网络,以对目标检测模型进行训练。

目标检测模型包括特征提取子网络和多个类别对应的不同目标检测子网络。可以每个类别对应一个目标检测子网络。也可根据训练样本图片中标注目标的类别的交集中包含最少类别的交集确定目标检测子网络。例如训练样本图片中标注目标的类别的交集包括{a、b},但不包括{a}或{b},即训练样本图片中标注的目标要么都包含a和b,要么就不包含a和b,不会只包含a或只包含b。这种情况下,可以设置{a、b}对应的目标检测子网络,即目标检测子网络可以检测a和b类别的目标。

特征提取子网络用于提取训练样本图片中的特征。目标检测子网络用于根据提取的特征识别训练样本图片中的目标。特征提取子网络和目标检测子网络可以参考现有的目标检测模型进行设置。例如,典型的yolo(youonlylookonce,你只看一次)模型,可以由24个卷积层与2个全连接层构成。如果对yolo进行改进,卷积层可以作为特征提取子网络,全连接层可以作为目标检测子网络,特征提取子网络与各个目标检测子网络进行串联,各个目标检测子网络之间是并联关系。同样的,针对目前常用的fasterrcnn(regionswithconvolutionalneuralnetworkfeature,基于卷积神经网络特征的区域方法)等模型,也可以将其中特征提取的部分作为特征提取子网络,剩余部分作为目标检测子网络进行改进,在此不再赘述。也可以根据实际需求设置特征提取子网络和目标检测子网络。特征提取子网络可以包括卷积层或者特征提取子网络包括卷积层和全连接层。目标检测子网络包括全连接层或者目标检测子网络包括卷积层和全连接层。

可以在将训练样本图片输入目标检测模型之前,执行步骤s102,也可以在特征提取子网络输出训练样本图片的特征后执行步骤s102,从而根据训练样本图片的特征,输入标注的类别对应的目标检测子网络。训练样本图片标注了多个目标类别,则可以被输入多个类别对应的多个目标检测子网络。

在一些实施例中,根据训练样本图片中的标注信息和类别对应的目标检测子网络输出的训练样本图片的目标检测结果,对标注的类别对应的目标检测子网络和特征提取子网络中的权重进行调整;直至各个类别对应的目标检测子网络输出的目标检测结果和训练样本图片中的标注信息的误差达到预设误差范围,得到训练完成的目标检测模型。

训练样本图片中的标注信息例如为目标的位置信息(坐标等)和目标的类别。针对不同的目标检测模型训练样本图片中的标注信息可以不同。将一张训练样本图片输入目标检测模型,经过特征提取子网络输出该图片的特征信息,将该图片的特征信息输入标注的类别对应的目标检测子网络,则输出检测到的该图片中目标的位置信息和目标属于该类别的置信度。将目标检测子网络输出的信息与标注信息进行比对,设置损失函数,根据损失函数例如采用梯度下降算法,调整标注的类别对应的目标检测子网络和特征提取子网络中的各项权重,即卷积层、全连接层等中的权重,直至标注的类别对应的目标检测子网络输出的信息与标注信息的误差达到预设误差范围。对于训练样本图片中没有标注的目标的类别对应的目标检测子网络则不进行调整和计算。针对每一张训练样本图片可以采用上述过程对目标检测模型进行训练,直至完成所有训练样本对模型的训练。如果多张训练样本图片中标注了相同类别的目标,也可以将这些图片输入目标检测模型一起计算损失函数对模型进行调整和训练。具体的调整权重、设置损失函数等可以采用现有技术中的方法,在此不再赘述。

在步骤s106中,将待检测图片输入训练完成的目标检测模型,以检测出待检测图片中的目标。

对待检测图片中检测目标的过程可以参考图2所示的实施例。如图2所示,步骤s106包括:步骤s1061~步骤s1063。

在步骤s1061中,将待检测图片输入训练完成的目标检测模型的特征提取子网络,提取待检测图片的特征。

在步骤s1062中,将待检测图片的特征输入目标检测子网络。

训练好的目标检测模型可以识别多个类别的目标,但是应用时也可以选择针对某一种或多种特定类别的目标进行检测。在待检测图片被设置了待检测目标的情况下,可以将待检测图片的特征输入待检测目标所属类别对应的目标检测子网络中。例如,想要识别待检测图片中是否包含帽子,则可以将待检测图片的特征输入帽子对应的目标检测子网络。这样不需要对所有类别的目标都进行识别,可以减少计算量,提高计算效率。可以根据实际需求配置待检测图片中待检测目标。

在步骤s1063中,根据目标检测子网络的输出结果,确定待检测图片中的目标。

在一些实施例中,根据各个类别对应的目标检测子网络分别输出的待检测图片中属于本类别的目标的位置和目标所属类别为本类别的置信度,确定待检测图片中目标的位置和目标的类别。例如,检测图片中是否存在裤子的目标检测子网络,可以输出待检测图片中裤子的位置,可以以边框(boundingbox)的形式框出裤子,并且输出该位置为裤子的置信度即概率。

每个目标检测子网络都可以输出检测结果,在检测出待检测图片中多个类别目标的位置重合的情况下,可以根据多个目标所属类别的置信度,确定该位置的目标所属类别。即待检测图片中检测出多个类别的目标,并且多个类别的目标的位置重合度超过阈值,则认为一个位置被识别成多个类别的目标,在这种情况下,可以根据该位置对应的各个类别的置信度,选取置信度最高的一个类别作为该位置对应的目标的类别。例如,待检测图片中同一个位置被识别为上衣和裤子,则将该位置为上衣的概率与该位置为裤子的概率进行对比,则可以确定该位置的目标具体为上衣还是裤子。

上述实施例的方法中目标检测模型包括特征提取子网络和多个类别对应的不同的目标检测子网络。根据训练样本图片中标注的目标的类别,将目标检测模型中特征提取子网络中输出的训练样本图片的特征,输入标注的类别对应的目标检测子网络,对目标检测模型进行训练。进而将待检测图片输入训练完成的目标检测模型,以检测出待检测图片中的目标。上述实施例的方法设计多个类别对应的目标检测子网络,分别负责识别不同类别的目标,在训练时根据训练样本的标注,对目标检测模型中相应的部分进行训练,而训练样本中没有标注的目标对应的目标检测子网络不会受到训练样本的干扰而造成无法收敛的问题。本公开能够融合不同标签的训练样本,在训练样本标注不完备的情况下,实现多目标的目标检测模型的训练,提高目标检测的准确性。

本公开提供一种目标检测装置,下面结合图3进行描述。

图3为本公开目标检测装置的一些实施例的结构图。如图3所示,该实施例的装置30包括:标注识别模块302,训练模块304,目标检测模块306。

标注识别模块302,用于识别训练样本图片中标注的目标的类别。

训练模块304,用于根据训练样本图片中标注的目标的类别,将目标检测模型中特征提取子网络中输出的训练样本图片的特征,输入标注的类别对应的目标检测子网络,以对目标检测模型进行训练,目标检测模型包括特征提取子网络和多个类别对应的不同目标检测子网络。

在一些实施例中,训练模块302用于根据训练样本图片中的标注信息和标注的类别对应的目标检测子网络输出的训练样本图片的目标检测结果,对标注的类别对应的目标检测子网络和特征提取子网络中的权重进行调整;直至各个类别对应的目标检测子网络输出的目标检测结果和训练样本图片中的标注信息的误差达到预设误差范围,得到训练完成的目标检测模型。

目标检测模块306,用于将待检测图片输入训练完成的目标检测模型,以检测出待检测图片中的目标。

在一些实施例中,目标检测模块306用于将待检测图片输入训练完成的目标检测模型的特征提取子网络,提取待检测图片的特征;将待检测图片的特征输入目标检测子网络;根据目标检测子网络的输出结果,确定待检测图片中的目标。

在一些实施例中,目标检测模块306用于根据各个类别对应的目标检测子网络分别输出的待检测图片中属于本类别的目标的位置和目标所属类别为本类别的置信度,确定待检测图片中目标的位置和目标的类别。

在一些实施例中,目标检测模块306用于在检测出待检测图片中多个类别目标的位置重合的情况下,根据多个目标所属类别的置信度,确定该位置的目标所属类别。

在一些实施例中,目标检测模块306用于在待检测图片被设置了待检测目标的情况下,将待检测图片的特征输入待检测目标所属类别对应的目标检测子网络中。

上述实施例的装置中目标检测模型包括特征提取子网络和多个类别对应的不同的目标检测子网络。训练模块根据训练样本图片中标注的目标的类别,将目标检测模型中特征提取子网络中输出的训练样本图片的特征,输入标注的类别对应的目标检测子网络,对目标检测模型进行训练。进而目标检测模块将待检测图片输入训练完成的目标检测模型,以检测出待检测图片中的目标。上述实施例的装置中设计多个类别对应的目标检测子网络,分别负责识别不同类别的目标,在训练时根据训练样本的标注,对目标检测模型中相应的部分进行训练,而训练样本中没有标注的目标对应的目标检测子网络不会受到训练样本的干扰而造成无法收敛的问题。上述实施例的装置能够融合不同标签的训练样本,在训练样本标注不完备的情况下,实现多目标的目标检测模型的训练,提高目标检测的准确性。

本公开的实施例中的目标检测装置可各由各种计算设备或计算机系统来实现,下面结合图4以及图5进行描述。

图4为本公开目标检测装置的一些实施例的结构图。如图4所示,该实施例的装置40包括:存储器410以及耦接至该存储器410的处理器420,处理器420被配置为基于存储在存储器410中的指令,执行本公开中任意一些实施例中的目标检测方法。

其中,存储器410例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)、数据库以及其他程序等。

图5为本公开目标检测装置的另一些实施例的结构图。如图5所示,该实施例的装置50包括:存储器510以及处理器520,分别与存储器410以及处理器420类似。还可以包括输入输出接口530、网络接口540、存储接口550等。这些接口530,540,550以及存储器510和处理器520之间例如可以通过总线560连接。其中,输入输出接口530为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口540为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口550为sd卡、u盘等外置存储设备提供连接接口。

本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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