目标检测方法和装置与流程

文档序号:13290827阅读:189来源:国知局

本申请涉及计算机技术领域,尤其涉及一种目标检测方法和装置。



背景技术:

目标检测是计算机视觉领域的重点研究课题,并且应用范围越来越广泛。例如:可以通过目标检测技术在复杂的视频中检测到目标商品,从而进一步为用户推送该商品相关的广告、促销信息等等。目前,主要通过人工对视频中检测到的目标商品进行打点标记,如目标商品出现在视频的20分10秒,则可对20分10秒进行打点,可以在该时间点插入该商品对应的促销信息。但是,随着信息化的高速发展,视频海量的增加,且视频中的场景复杂多变,通过传统的人工检测目标的方法,已无法满足快速、准确检测的需求,工作量巨大。

申请内容

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请的一个目的在于提出一种目标检测方法,能够快速、准确地检测出图片中的目标,提高检测的准确率。

本申请的第二个目的在于提出一种基于目标检测的信息推荐方法。

本申请的第三个目的在于提出一种目标检测装置。

为了实现上述目的,本申请第一方面实施例提出了一种目标检测方法,包括:接收输入的图片;基于预设算法从所述图片中提取多个候选区域;通过预先训练的基于节点级联的深度学习神经网络模型,确定所述多个候选区域中与目标对象对应的目标区域;根据所述目标区域生成输出结果。

本申请实施例的目标检测方法,通过预先训练的基于节点级联的深度学习神经网络模型确定出目标区域,再根据目标区域生成输出结果,能够快速、准确地检测出图片中的目标,减少了误检,提高了检测的准确率。

本申请第二方面实施例提出了一种基于目标检测的信息推荐方法,包括:接收输入的视频;将所述视频切分为多帧图像;基于预设算法从每一帧图像中提取多个候选区域;通过预先训练的基于节点级联的深度学习神经网络模型,确定所述多个候选区域中与目标对象对应的目标区域;根据所述目标区域确定包含所述目标对象的图像;确定包含所述目标对象的图像在所述视频中的播放时间点;在所述播放时间点插入与所述目标对象对应的推荐信息。

本申请实施例的基于目标检测的信息推荐方法,采用级联的方式,通过预先训练的基于节点级联的深度学习神经网络模型确定出与目标对象对应的目标区域,再根据目标区域确定包含目标对象的图像及其在视频中的播放时间点,以及在播放时间点插入与目标对象对应的推荐信息,快速、准确地定位目标对象并插入与目标对象对应的推荐信息,节省人工插入推荐信息的成本,提高准确率。

本申请第三方面实施例提出了一种目标检测装置,包括:接收模块,用于接收输入的图片;提取模块,用于基于预设算法从所述图片中提取多个候选区域;确定模块,用于通过预先训练的基于节点级联的深度学习神经网络模型,确定所述多个候选区域中与目标对象对应的目标区域;生成模块,用于根据所述目标区域生成输出结果。

本申请实施例的目标检测装置,通过预先训练的基于节点级联的深度学习神经网络模型确定出目标区域,再根据目标区域生成输出结果,能够快速、准确地检测出图片中的目标,减少了误检,提高了检测的准确率。

附图说明

图1是根据本申请一个实施例的目标检测方法的流程图;

图2是训练基于节点级联的深度学习神经网络模型的流程图;

图3是根据本申请一个实施例的基于目标检测的信息推荐方法的流程图;

图4是根据本申请一个实施例的目标检测装置的结构示意图一;

图5是根据本申请一个实施例的目标检测装置的结构示意图二。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的目标检测方法和装置。

图1是根据本申请一个实施例的目标检测方法的流程图。

如图1所示,目标检测方法可包括:

s1、接收输入的图片。

其中,图片可以是视频文件中的截图。例如,可将视频分解成多帧静态图片,然后将静态图片作为输入。

s2、基于预设算法从图片中提取多个候选区域。

其中,预设算法可以是但不限于edgebox算法、bing算法、selectivesearch算法中的一种。

在本实施例中,可采用edgebox算法,检测图片中的边沿,利用检测出的边沿从图片中提取出多个候选区域。

s3、通过预先训练的基于节点级联的深度学习神经网络模型,确定多个候选区域中与目标对象对应的目标区域。

具体地,可依次判断多个候选区域是否为与目标对象对应的目标区域。

其中,深度学习神经网络模型可具有多个输出节点。当多个输出节点均确定候选区域为目标区域时,则可将该候选区域作为目标区域;否则该候选区域为非目标区域。

举例来说,假设深度学习神经网络模型的输出节点有20个。可先提取候选区域的图像特征,并将其输入至深度学习神经网络模型,依次通过深度学习神经网络模型的输出节点进行判断。首先通过第一个输出节点进行判断,如果第一个输出节点判断候选区域为非目标区域,则可确定该候选区域为非目标区域。如果第一个输出节点判断候选区域为目标区域,则可进一步通过第二个输出节点进行判断。如果第二个输出节点判断候选区域为非目标区域,则可确定该候选区域为非目标区域。如果第二个输出节点判断候选区域为目标区域,则可进一步通过第三个输出节点进行判断。以此类推,直至最后一个输出节点判断候选区域为目标区域时,才确定该候选区域为目标区域。否则,该候选区域为非目标区域。采用节点级联的方式,所有输出节点共用同一个深度学习神经网络模型,先用第一个输出节点过滤掉非目标区域,再用第二个输出节点进一步过滤掉非目标区域,能够有效地减少误检,提高目标检测效果。

其中,深度学习神经网络模型可以是但不限于卷积神经网络的r-cnn模型、fasterr-cnn模型、spp-net模型。

s4、根据目标区域生成输出结果。

具体地,当目标区域为一个时,可直接将该目标区域作为输出结果。当目标区域为多个时,可利用非极大值抑制算法合并多个目标区域,从而生成输出结果。生成的输出结果即目标对象。

下面详细介绍一下训练基于节点级联的深度学习神经网络模型的过程。

具体地,如图2,可包括以下步骤:

s5、预训练基于节点级联的深度学习神经网络模型的隐层参数。

更具体地,预训练基于节点级联的深度学习神经网络模型的隐层参数可包括:

s51、获取图像识别数据库中的n个类别的图片样本。

其中,本实施例中,可采用imagenet数据库,imagenet数据库是目前世界上最大的图像识别数据库。

s52、训练具有n个节点的分类网络模型,并将分类网络模型的隐层参数作为基于节点级联的深度学习神经网络模型的初始化隐层参数。

假设图片样本具有1000个类别,则训练生成的分类网络模型的节点数为1000个,然后直接将分类网络模型的隐层参数作为基于节点级联的深度学习神经网络模型的初始化隐层参数。

s6、训练基于节点级联的深度学习神经网络模型中输出节点的参数。

本实施例中,可从检测数据集中获取相同数量的目标区域样本和非目标区域样本,然后依次对基于节点级联的深度学习神经网络模型中输出节点的参数进行训练。

应当注意的是,初始化隐层参数为基于节点级联的深度学习神经网络模型初始化时的隐层参数,在训练输出节点的参数时,也会一起进行训练。而本实施例中,则采取保持隐层参数不变的方法,对输出节点的参数进行训练。

其中,检测数据集为人工标注的图片样本集合。

在实际运用中,非目标区域样本的数量是远多于目标区域样本的数量的,如果按照实际的样本比例训练基于节点级联的深度学习神经网络模型,会导致训练出的参数发生偏移,从而在进行目标检测时,可能产生将非目标区域判断为目标区域的情况,准确率变低。因此,本实施例中,采用相同数量的目标区域样本和非目标区域样本,可避免上述问题。

具体地,可根据目标区域样本和非目标区域样本对基于节点级联的深度学习神经网络模型中的第一个输出节点的参数进行训练。当目标区域样本的召回率大于第一预设阈值,且非目标区域样本的误判率低于第二预设阈值时,获取基于节点级联的深度学习神经网络模型的第一个输出节点对应的第一参数。然后可根据刚刚训练好的第一参数过滤掉已正确识别的非目标区域样本,并获取新的非目标区域样本。然后再根据目标区域样本和新的非目标区域样本对基于节点级联的深度学习神经网络模型中的第二个输出节点的参数进行训练。当目标区域样本的召回率大于第一预设阈值,且非目标区域样本的误判率低于第二预设阈值时,可获取基于节点级联的深度学习神经网络模型的第二个输出节点对应的第二参数。重复以上步骤,直至基于节点级联的深度学习神经网络模型的所有输出节点的参数训练完成。

举例来说,假设某一深度学习神经网络模型具有20个节点。首先,可训练第一个节点。调整第一个节点对应的第一参数,使得目标区域样本的召回率大于第一预设阈值如99.9%,且非目标区域样本的误判率低于第二预设阈值如0.1%,记录该参数。然后利用该参数过滤掉已经能够正确识别的非目标区域样本。假设目标区域样本数量为1000个,利用第一参数可过滤掉300个非目标区域样本,再补充300个新的非目标区域样本对第二参数进行训练。调整第二个节点对应的第二参数,使得目标区域样本的召回率大于第一预设阈值如99.9%,且非目标区域样本的误判率低于第二预设阈值如0.1%,从而训练得到第二参数。利用第一参数和第二参数过滤掉500个非目标区域样本,再补充500个新的非目标区域样本对第三参数进行训练。以此类推,直至将20个节点的参数全部训练完成。

在基于节点级联的深度学习神经网络模型训练完成后,即可利用该基于节点级联的深度学习神经网络模型对图片中的与目标对象对应的目标区域进行检测。采用级联的训练方式,采用相同数量的目标区域样本和非目标区域样本训练深度学习神经网络模型中每个输出节点,可有效地避免深度学习神经网络模型发生偏移的情况,且提高目标检测准确率。

本申请实施例的目标检测方法,采用级联的方式,通过预先训练的基于节点级联的深度学习神经网络模型确定出目标区域,再根据目标区域生成输出结果,能够快速、准确地检测出图片中的目标,减少了误检,提高了检测的准确率。

为实现上述目的,本申请还提出一种基于目标检测的信息推荐方法。

图3是根据本申请一个实施例的基于目标检测的信息推荐方法的流程图。

如图3所示,目标检测方法可包括:

s31、接收输入的视频。

其中,视频可以是rmvb、mp4、flv等格式的可播放视频。

s32、将视频切分为多帧图像。

具体地,可根据视频的长度切分图像。例如:视频长10分钟,可以以0.5秒每帧截取图像。

s33、基于预设算法从每一帧图像中提取多个候选区域。

例如,可采用edgebox算法检测图片中的边沿,利用检测出的边沿从图像中提取出多个候选区域。

s34、通过预先训练的基于节点级联的深度学习神经网络模型,确定多个候选区域中与目标对象对应的目标区域。

其中,本步骤与上一实施例中的步骤s3描述一致,此处不再赘述。

s35、根据目标区域确定包含目标对象的图像。

s36、确定包含目标对象的图像在视频中的播放时间点。

s37、在播放时间点插入与目标对象对应的推荐信息。

举例来说,目标对象为某款衣服,可通过预先训练的基于节点级联的深度学习神经网络模型确定该款衣服对应的图像在视频中的播放时间点,例如视频中的第20分钟第25秒播出现了该款衣服对应的图像,则可在第20分钟第25秒插入该款衣服对应的广告,或者与该款衣服相似的衣服的广告。

本申请实施例的基于目标检测的信息推荐方法,采用级联的方式,通过预先训练的基于节点级联的深度学习神经网络模型确定出与目标对象对应的目标区域,再根据目标区域确定包含目标对象的图像及其在视频中的播放时间点,以及在播放时间点插入与目标对象对应的推荐信息,快速、准确地定位目标对象并插入与目标对象对应的推荐信息,节省人工插入推荐信息的成本,提高准确率。

为实现上述目的,本申请还提出一种目标检测装置。

图4是根据本申请一个实施例的目标检测装置的结构示意图一。

如图4所示,目标检测装置可包括:接收模块110、提取模块120、确定模块130和生成模块140。

接收模块110用于接收输入的图片。其中,图片可以是视频文件中的截图。例如,可将视频分解成多帧静态图片,然后将静态图片作为输入。

提取模块120用于基于预设算法从图片中提取多个候选区域。其中,预设算法可以是但不限于edgebox算法、bing算法、selectivesearch算法中的一种。

在本实施例中,提取模块120可采用edgebox算法,检测图片中的边沿,利用检测出的边沿从图片中提取出多个候选区域。

确定模块130用于通过预先训练的基于节点级联的深度学习神经网络模型,确定多个候选区域中与目标对象对应的目标区域。

具体地,可依次判断多个候选区域是否为与目标对象对应的目标区域。

其中,深度学习神经网络模型可具有多个输出节点。当多个输出节点均确定候选区域为目标区域时,则可将该候选区域作为目标区域;否则该候选区域为非目标区域。

举例来说,假设深度学习神经网络模型的输出节点有20个。可先提取候选区域的图像特征,并将其输入至深度学习神经网络模型,依次通过深度学习神经网络模型的输出节点进行判断。首先通过第一个输出节点进行判断,如果第一个输出节点判断候选区域为非目标区域,则可确定该候选区域为非目标区域。如果第一个输出节点判断候选区域为目标区域,则可进一步通过第二个输出节点进行判断。如果第二个输出节点判断候选区域为非目标区域,则可确定该候选区域为非目标区域。如果第二个输出节点判断候选区域为目标区域,则可进一步通过第三个输出节点进行判断。以此类推,直至最后一个输出节点判断候选区域为目标区域时,才确定该候选区域为目标区域。否则,该候选区域为非目标区域。采用节点级联的方式,所有输出节点共用同一个深度学习神经网络模型,先用第一个输出节点过滤掉非目标区域,再用第二个输出节点进一步过滤掉非目标区域,能够有效地减少误检,提高目标检测效果。

其中,深度学习神经网络模型可以是但不限于卷积神经网络的r-cnn模型、fasterr-cnn模型、spp-net模型。

生成模块140用于根据目标区域生成输出结果。具体地,当目标区域为一个时,可直接将该目标区域作为输出结果。当目标区域为多个时,可利用非极大值抑制算法合并多个目标区域,从而生成输出结果。生成的输出结果即目标对象。

此外,如图5所示,目标检测装置还可包括预训练模块150和训练模块160。其中,预训练模块150可包括获取单元151和预训练单元152。

预训练模块150用于预训练基于节点级联的深度学习神经网络模型的隐层参数。

具体地,获取单元151可获取图像识别数据库中的n个类别的图片样本。其中,本实施例中,可采用imagenet数据库,imagenet数据库是目前世界上最大的图像识别数据库。

预训练单元152可训练一个具有n个节点的分类网络模型,并将分类网络模型的隐层参数作为基于节点级联的深度学习神经网络模型的初始化隐层参数。

假设图片样本具有1000个类别,则训练生成的分类网络模型的节点数为1000个,然后直接将分类网络模型的隐层参数作为基于节点级联的深度学习神经网络模型的初始化隐层参数。

训练模块160用于训练基于节点级联的深度学习神经网络模型中输出节点的参数。

本实施例中,训练模块160可从检测数据集中获取相同数量的目标区域样本和非目标区域样本,然后依次对基于节点级联的深度学习神经网络模型中输出节点的参数进行训练。

应当注意的是,初始化隐层参数为基于节点级联的深度学习神经网络模型初始化时的隐层参数,在训练输出节点的参数时,也会一起进行训练。而本实施例中,则采取保持隐层参数不变的方法,对输出节点的参数进行训练。

其中,检测数据集为人工标注的图片样本集合。

在实际运用中,非目标区域样本的数量是远多于目标区域样本的数量的,如果按照实际的样本比例训练基于节点级联的深度学习神经网络模型,会导致训练出的参数发生偏移,从而在进行目标检测时,可能产生将非目标区域判断为目标区域的情况,准确率变低。因此,本实施例中,采用相同数量的目标区域样本和非目标区域样本,可避免上述问题。

具体地,可根据目标区域样本和非目标区域样本对基于节点级联的深度学习神经网络模型中的第一个输出节点的参数进行训练。当目标区域样本的召回率大于第一预设阈值,且非目标区域样本的误判率低于第二预设阈值时,获取基于节点级联的深度学习神经网络模型的第一个输出节点对应的第一参数。然后可根据刚刚训练好的第一参数过滤掉已正确识别的非目标区域样本,并获取新的非目标区域样本。然后再根据目标区域样本和新的非目标区域样本对基于节点级联的深度学习神经网络模型中的第二个输出节点的参数进行训练。当目标区域样本的召回率大于第一预设阈值,且非目标区域样本的误判率低于第二预设阈值时,可获取基于节点级联的深度学习神经网络模型的第二个输出节点对应的第二参数。重复以上步骤,直至基于节点级联的深度学习神经网络模型的所有输出节点的参数训练完成。

举例来说,假设某一深度学习神经网络模型具有20个节点。首先,可训练第一个节点。调整第一个节点对应的第一参数,使得目标区域样本的召回率大于第一预设阈值如99.9%,且非目标区域样本的误判率低于第二预设阈值如0.1%,记录该参数。然后利用该参数过滤掉已经能够正确识别的非目标区域样本。假设目标区域样本数量为1000个,利用第一参数可过滤掉300个非目标区域样本,再补充300个新的非目标区域样本对第二参数进行训练。调整第二个节点对应的第二参数,使得目标区域样本的召回率大于第一预设阈值如99.9%,且非目标区域样本的误判率低于第二预设阈值如0.1%,从而训练得到第二参数。利用第一参数和第二参数过滤掉500个非目标区域样本,再补充500个新的非目标区域样本对第三参数进行训练。以此类推,直至将20个节点的参数全部训练完成。

在基于节点级联的深度学习神经网络模型训练完成后,即可利用该基于节点级联的深度学习神经网络模型对图片中的与目标对象对应的目标区域进行检测。采用级联的训练方式,采用相同数量的目标区域样本和非目标区域样本训练深度学习神经网络模型中每个输出节点,可有效地避免深度学习神经网络模型发生偏移的情况,且提高目标检测准确率。

本申请实施例的目标检测装置,采用级联的方式,通过预先训练的基于节点级联的深度学习神经网络模型确定出目标区域,再根据目标区域生成输出结果,能够快速、准确地检测出图片中的目标,减少了误检,提高了检测的准确率。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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