目标对象的统计方法、装置、计算机设备和存储介质转让专利

申请号 : CN201910960300.7

文献号 : CN110838134B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏睿

申请人 : 北京海益同展信息科技有限公司

摘要 :

本申请涉及一种目标对象的统计方法、装置、计算机设备和存储介质。所述方法包括:从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象;识别当前帧中的目标对象,得到当前目标对象和对应的位置;获取上一帧中的目标对象的位置和上一统计值;根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值。当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。在预设区域的不同位置拍摄的多帧图像进行统计,避免单帧图像统计的区域局限性,提高了统计准确度。

权利要求 :

1.一种目标对象的统计方法,其特征在于,所述方法包括:从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,所述视频序列帧中包含目标对象;

识别所述当前帧中的目标对象,得到当前目标对象和对应的位置;

获取上一帧中的目标对象的位置和上一统计值;

获取区域划分参数,所述区域划分参数用于将所述视频序列帧划分为第一图像区域和第二图像区域;

根据各个所述当前目标对象的位置和所述上一帧的目标对象的位置更新所述上一统计值,得到当前统计值;

所述根据各个所述当前目标对象的位置和所述上一帧的目标对象的位置更新所述上一统计值,得到当前统计值,包括:根据各个所述当前目标对象的位置、所述第一图像区域、所述上一帧的目标对象的位置更新所述上一统计值,得到当前统计值;

当所述当前帧为所述视频序列帧中的最后一帧时,将所述当前统计值作为目标统计值;

所述当所述当前帧为所述视频序列帧中的最后一帧时,将所述当前统计值作为目标统计值,包括:当所述当前帧为所述视频序列帧中的最后一帧时,根据所述当前统计值、所述第二图像区域和各个所述当前目标对象的位置计算所述预设区域内所述目标对象的数量,得到目标统计值。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述当前帧不是所述视频序列帧中的最后一帧时,获取所述当前帧的下一帧,将所述下一帧作为所述当前帧,执行识别所述当前帧中的目标对象,得到当前目标对象和对应的位置。

3.根据权利要求1所述的方法,其特征在于,所述根据各个所述当前目标对象的位置、所述第一图像区域、所述上一帧的目标对象的位置更新所述上一统计值,得到当前统计值,包括:根据所述上一帧的目标对象的位置和所述当前目标对象的位置从所述当前目标对象中筛选出有效对象;

根据所述有效对象的位置和所述当前帧的第一图像区域更新所述第一图像区域对应的上一统计值,得到所述当前统计值。

4.根据权利要求3所述的方法,其特征在于,所述根据所述上一帧的目标对象的位置和所述当前目标对象的位置从所述当前目标对象中筛选出有效对象,包括:计算所述上一帧的目标对象的位置和所述当前目标对象的位置的差异度;

将所述差异度小于预设差异度的当前目标对象作为所述有效对象。

5.根据权利要求3所述的方法,其特征在于,所述根据所述有效对象的位置和所述当前帧的第一图像区域更新所述第一图像区域对应的上一统计值,得到所述当前统计值,包括:统计位于所述上一帧图像中位于所述第二图像区域中的目标对象,且位于所述当前帧的所述第一图像区域中的目标对象的数量,得到第一更新值;

统计所述上一帧图像中位于所述第一图像区域中的目标对象,且位于所述当前帧中的第二图像区域中的目标对象的数量,得到第二更新值;

计算所述上一统计值、所述第一更新值和所述第二更新值的加权和,得到所述当前统计值。

6.根据权利要求1所述的方法,其特征在于,所述识别所述当前帧中的目标对象,得到当前目标对象和对应的位置,包括:采用目标跟踪算法识别所述当前帧中的目标对象,得到第一目标对象和对应的位置;

采用目标检测算法识别所述当前帧中的目标对象,得到第二目标对象和对应位置;

判断所述第一目标对象和所述第二目标对象的数量是否一致;

当一致时,将所述第一目标对象或所述第二目标对象作为所述当前目标对象。

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:当不一致时,判断所述第一目标对象与所述第二目标对象中不一致的目标对象是否位于所述当前帧中的预设边界区域;

当位于时,将所述第一目标对象和所述第二目标对象的并集作为所述当前目标对象;

当不位于时,将所述第一目标对象和所述第二目标对象的交集作为所述当前目标对象。

8.根据权利要求1所述的方法,其特征在于,所述根据所述当前统计值、所述第二图像区域和各个所述当前目标对象的位置计算所述预设区域内所述目标对象的数量,得到目标统计值,包括:根据各个所述当前目标对象的位置,统计位于所述当前帧的所述第二图像区域中的所述当前目标对象的数量,得到第二统计值;

计算所述第二统计值和所述当前统计值的和,得到所述目标统计值。

9.一种目标对象的统计装置,其特征在于,所述装置包括:数据获取模块,用于从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,所述视频序列帧中包含目标对象;

数据获取模块,用于识别所述当前帧中的目标对象,得到当前目标对象和对应的位置;

上一帧数据获取模块,用于获取上一帧中的目标对象的位置和上一统计值;

参数获取模块,用于获取区域划分参数,所述区域划分参数用于将所述视频序列帧划分为第一图像区域和第二图像区域;

数据更新模块,用于根据各个所述当前目标对象的位置、所述上一帧的目标对象的位置更新所述上一统计值,得到当前统计值;

所述数据更新模块具体用于根据各个所述当前目标对象的位置、所述第一图像区域、所述上一帧的目标对象的位置更新所述上一统计值,得到当前统计值;

统计模块,用于当所述当前帧为所述视频序列帧中的最后一帧时,将所述当前统计值作为目标统计值;

所述统计模块具体用于当所述当前帧为所述视频序列帧中的最后一帧时,根据所述当前统计值、所述第二图像区域和各个所述当前目标对象的位置计算所述预设区域内所述目标对象的数量,得到目标统计值。

10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。

说明书 :

目标对象的统计方法、装置、计算机设备和存储介质

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种目标对象的统计方法、装置、计算机设备和存储介质。

背景技术

[0002] 现有的对移动的目标对象计数主要采用固定摄像头,整个算法由目标检测、运动目标跟踪和目标计数三部分组成;其中目标检测是基础,它直接影响到后续处理的准确性;运动目标的跟踪则要求具有准确度,能够在部分遮挡时目标不丢失;而目标计数则主要是在视频监测时对某物体通过的数量进行统计。
[0003] 现有的目标对象的统计方法是基于单帧图像的统计方法,而单帧图像的统计方法无法对较大场景中的目标对象进行准确的统计。

发明内容

[0004] 为了解决上述技术问题,本申请提供了一种目标对象的统计方法、装置、计算机设备和存储介质。
[0005] 第一方面,本申请提供了一种目标对象的统计方法,包括:
[0006] 从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象;
[0007] 识别当前帧中的目标对象,得到当前目标对象和对应的位置;
[0008] 获取上一帧中的目标对象的位置和上一统计值;
[0009] 根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值。
[0010] 当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。
[0011] 第二方面,本申请提供了一种目标对象的统计装置,包括:
[0012] 数据获取模块,用于从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象;
[0013] 数据获取模块,用于识别当前帧中的目标对象,得到当前目标对象和对应的位置;
[0014] 上一帧数据获取模块,用于获取上一帧中的目标对象的位置和上一统计值;
[0015] 数据更新模块,用于根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值;
[0016] 统计模块,用于当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。
[0017] 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0018] 从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象;
[0019] 识别当前帧中的目标对象,得到当前目标对象和对应的位置;
[0020] 获取上一帧中的目标对象的位置和上一统计值;
[0021] 根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值。
[0022] 当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。
[0023] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0024] 从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象;
[0025] 识别当前帧中的目标对象,得到当前目标对象和对应的位置;
[0026] 获取上一帧中的目标对象的位置和上一统计值;
[0027] 根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值。
[0028] 当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。
[0029] 上述目标对象的统计方法、装置、计算机设备和存储介质,方法包括:从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象;识别当前帧中的目标对象,得到当前目标对象和对应的位置;获取上一帧中的目标对象的位置和上一统计值;根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值。当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。在预设区域的不同位置拍摄的图像进行统计,避免单帧图像统计的区域局限性,提高了统计准确度。

附图说明

[0030] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0031] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0032] 图1为一个实施例中目标对象的统计方法的应用环境图;
[0033] 图2为一个实施例中目标对象的统计方法的流程示意图;
[0034] 图3为一个实施例中图像划分结果的示意图;
[0035] 图4为一个具体的实施例中目标对象的统计方法的流程示意图;
[0036] 图5为一个实施例中目标对象的融合和抑制的方法的流程示意图;
[0037] 图6为一个实施例中目标对象的对象融合方法的流程示意图;
[0038] 图7为一个实施例中目标对象的虚景抑制方法的流程示意图;
[0039] 图8为一个实施例中目标对象的统计装置的结构框图;
[0040] 图9为一个实施例中计算机设备的内部结构图。

具体实施方式

[0041] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0042] 图1为一个实施例中目标对象的统计方法的应用环境图。参照图1,该目标对象的统计方法应用于目标对象的统计系统。该目标对象的统计系统包括终端110和服务器120。终端110或服务器110从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象;识别当前帧中的目标对象,得到当前目标对象和对应的位置;
获取上一帧中的目标对象的位置和上一统计值;根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值。
[0043] 终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0044] 如图2所示,在一个实施例中,提供了一种目标对象的统计方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该目标对象的统计方法具体包括如下步骤:
[0045] 步骤S201,从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧。
[0046] 在本具体实施例中,视频序列帧中包含目标对象。
[0047] 具体地,预设区域是指预先设定的区域范围,该区域范围与拍摄视频序列帧的摄像头的拍摄区域相适应。当前帧为任意一个正准备处理的视频序列帧。其中视频序列帧可以为不同位置拍摄的多少拍摄设备拍摄的图像,或同一个拍摄设备在不同位置拍摄的视频,不同位置的视频帧的曝光时间不同。
[0048] 步骤S202,识别当前帧中的目标对象,得到当前目标对象和对应的位置。
[0049] 具体地,当前目标对象是指在当前帧中识别到的目标对象。当前目标对象的位置是指当前目标对象在当前帧的图像位置。识别当前帧中的目标对象和对应的位置是可以采用常见的目标跟踪算法和目标检测算法中的至少一种算法。其中跟踪算法包括卡尔曼跟踪算法、粒子滤波、mean-shift、帧间差分法和核相关滤波器(Kernelized Correlation Filters,KCF)等,目标检测算法包括但深度学习网络、机器学习网络等等,其中深度学网络包括旋转区域卷积神经网络(Rotational Region Convolutional Neural Networks,R2CNN)、卷积神经网络(Convolutional Neural Networks,CNN)等等。
[0050] 步骤S203,获取上一帧中的目标对象的位置和上一统计值。
[0051] 具体地,上一帧是指在当前帧之前的视频帧,上一帧和当前帧可以是对视频数据分帧后相邻的两个时间序列帧,也可以是指分帧后的多帧进行采样后的两个相邻的采样帧。上一帧中的目标对象的位置是指目标对象在上一帧中的图像位置。上一统计值是指上一帧对应的统计值,该统计值为第一帧到上一帧在第一图像区域中的目标对象的数量的统计结果,即统计出现的目标对象和消失在目标对象,对于新出现的目标对象统计结果加上对应的出现值,对于消失的目标对象统计结果减去对应的消失值。
[0052] 步骤S204,根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值。
[0053] 具体地,根据各个当前目标对象的位置判断各个当前目标对象是否为新出现的对象,统计新出现的目标对象的数量和或消失的目标对象的数量,统计新出现和消失的目标对象的数值,根据新出现的目标对象的数值和消失的目标对象的数值更新上一统计值,得到当前统计值。新出现的目标对象属于增加的目标对象,消失的目标对象属于减少的目标对象。其中消失是指消失在图像的特定位置消失的目标对象。
[0054] 步骤S205,当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。
[0055] 具体地,若当前帧为视频序列帧中的最后一帧,即为对预设区域的拍摄的最后一帧有效图像,当前统计值为全部视频帧中目标对象的统计结果,故直接将当前统计值作为目标统计值。避免了单帧图像统计带来的区域限制,且提高了统计的准确度。
[0056] 上述目标对象的统计方法,包括:从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象,区域划分参数将视频序列帧划分为第一图像区域和第二图像区域;识别当前帧中的目标对象,得到当前目标对象和对应的位置;获取上一帧中的目标对象的位置和上一统计值;根据各个当前目标对象的位置、第一图像区域、上一帧的目标对象的位置更新上一统计值,得到当前统计值;当当前帧为视频序列帧中的最后一帧时,根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内目标对象的数量,得到目标统计值。在预设区域的不同位置拍摄的图像进行统计,避免单帧图像统计的区域局限性,提高了统计准确度。
[0057] 在一个实施例中,上述目标对象的统计方法,还包括:
[0058] 步骤S301,获取区域划分参数。
[0059] 再本具体实施例中,区域划分参数用于将视频序列帧划分成第一图像区域和第二图像区域。
[0060] 具体地,区域划分参数是用于对视频序列帧进行划分的参数,该参数可以为一直线参数,该直线参数所表示的直线可以与图像中的其中一边平行,也可以不与图像的边平行。第一图像区域和第二图像区域组成单个视频序列帧。第一图像区域和第二图像区域的分割线的方向和位置可以根据根据拍摄视频时的拍摄位置确定。其中拍摄位置之间的距离和摄像头的监控区域相关,相邻位置拍摄的图像存在一定的重叠区域。目标对象是指被统计的对象,目标对象包括动物、人和设备、物体等中的至少一种。如目标对象为猪、羊、牛等中的一种或多种。
[0061] 在一个实施例中,视频序列帧是通过移动设备上搭载的摄像头拍摄的图像,第一图像区域和第二图像区域的分割线与移动设备的运行方向成一定夹角,其中夹角不为0,如夹角为60°或90°等。夹角可以根据需求自定义。如分割线与移动设备的移动方向的夹角为90°,分割线在图像的位置可以根据需求自定义,如图3所示,分割线310位于为图像中Y轴的中线、分割线320位于图像中Y轴的2/3之处等。
[0062] 在实施列中,步骤S204,包括:根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值。
[0063] 具体地,根据各个当前目标对象的位置判断各个当前目标对象是否位于第一图像区域,判断位于第一图像区域的各个当前目标对象是否为新出现的对象,统计新出现的目标对象的数值,统计第一图像区域出去的目标对象的数值,根据新出现的目标对象的数值和第一图像区域出去的目标对象的数值更新上一统计值,得到当前统计值。新出现的目标对象属于增加的目标对象,出去的目标对象属于减少的目标对象。
[0064] 在本实施例中,步骤S205,包括:当当前帧为视频序列帧中的最后一帧时,根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内标对象的数量,得到目标统计值。
[0065] 具体地,若当前帧为视频序列帧中的最后一帧,即为对预设区域的拍摄的最后一帧有效图像,当前统计值为全部视频帧中出现在第一区域中目标对象的统计结果,为了统计预设区域内的目标对象的数据,需要加上当前帧的第二图像区域中的目标对象的数量。其中第二图像区域的目标对象的数量,可以通过当前帧的第二图像区域在图像中的区域位置和各个当前目标对象的位置确定。当当前帧的第二图像区域存在当前目标对象时,统计当前目标对象的第二图像区域对的统计值,计算第二图像区域对的统计值和当前统计值得和,得到目标统计值。通过对图像进行区域划分,统计各帧在同一区域中出现的目标对象的值,得到当前统计值,最后一帧时,将剩余区域的目标对象的值与当前统计值进行求和,得到目标统计值,避免了单帧图像统计带来的区域限制,且提高了统计的准确度。
[0066] 在一个实施例中,当当前帧不是视频序列帧中的最后一帧时,获取当前帧的下一帧,将下一帧作为当前帧,执行识别当前帧中的目标对象,得到当前目标对象和对应的位置。
[0067] 具体地,当前帧不是视频序列帧中的最后一帧,表示需要进行下一帧的统计过程,将当前帧的下一帧作为当前帧,执行步骤S202直至视频序列帧中的全部帧都统计完成,即直至当前帧为视频序列帧中的最后一帧时,执行步骤S205。执行将当前统计值作为目标统计值或执行根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内目标对象的数量,得到目标统计值。
[0068] 在一个实施例中,步骤S203,包括:根据上一帧的目标对象的位置和当前目标对象的位置从当前目标对象中筛选出有效对象,根据有效对象的位置和当前帧的第一图像区域更新第一图像区域对应的上一统计值,得到当前统计值。
[0069] 具体地,位置包括中心位置、区域框等可以用于表示位置的参数中的一个或多个表示。如当位置仅用中心位置表示时,采用中心位置直接判断当前目标对象是否为有效对象,当位置仅用区域框表示时,采用区域框直接判断当前目标对象是否为有效对象,当当位置用中心位置和区域框同时表示时,采用中心位置和区域框同时判断当前目标对象是否为有效对象。在确定了当前帧中的有效对象后,判断各个有效对象是否位于第一图像区域,统计位于第一图像区域的有效对象的数量,根据位于第一图像区域的有效对象的数量更新上一统计值,得到当前统计值。根据需求可以采用不同的位置参数表示目标对象的位置信息,不同位置参数可以从不同的维度对目标对象进行描述。根据位置参数判断当前目标对象是否为有效对象,能够提高判断的准确度。
[0070] 在一个实施例中,根据上一帧的目标对象的位置和当前目标对象的位置从当前目标对象中筛选出有效对象,包括:计算上一帧的目标对象的位置和当前目标对象的位置的差异度;将差异度小于预设差异度的当前目标对象作为有效对象。
[0071] 具体地,计算上一帧中的各个目标对象的位置和当前帧中的各个当前目标对象的位置的差异度,判断差异度是否小于预设差异度,当当前目标对象存在与上一帧中的其中一个目标对象的位置的差异度小于预设差异度时,将当前目标对象作为有效对象。其中预设差异度可以根据需求或技术人员的经验值确定。通过差异度判断当前目标对象是否有效对象,减少目标检测算法带来的误检测,进而提高了目标对象的统计准确度。
[0072] 在一个实施例中,将与当前目标对象的位置差异度小于预设差异度的上一帧的目标对象的标识作为当前目标对象的标识,即表示不同帧中的同一目标对象。
[0073] 在一个实施例中,当当前目标对象与上一帧的各个目标对象的差异度大于预设差异度时,判断当前目标对象的位置是否位于预设的图像区域,当位于预设的图像区域时,当前目标对象为有效的对象,反之,则为误检测到的无效对象。
[0074] 具体地,预设的图像区域是指图像的边缘区域,其中边缘区域的定义根据需求确定,如可以根据目标对象的运动速度、巡检车的运行速度、拍摄参数等等中的一个或多个确定。由于边缘区域会检测到新的目标对象,故无法采用单一的位置判断新出现的对象是否为有效对象,且边缘区域出现新的目标对象的概率较大,故定义新出现的对象为有效对象。
[0075] 在一个实施例中,根据有效对象的位置和当前帧的第一图像区域更新第一图像区域对应的上一统计值,得到当前统计值,包括:统计位于上一帧图像中位于第二图像区域中的目标对象,且位于当前帧的第一图像区域中的目标对象的数量,得到第一更新值,统计上一帧图像中位于第一图像区域中的目标对象,且位于当前帧中的第二图像区域中的目标对象的数量,得到第二更新值,计算上一统计值、第一更新值和第二更新值的加权和,得到当前统计值。
[0076] 具体地,当同一目标对象在上一帧的位置位于第二图像区域,而在当前帧的位置位于第一图像区域时,表示该目标对象从第二图像区域进入了第一图像区域,统计该类型目标对象的数量,得到第一更新值,同理,统计同一目标对象在上一帧的位置位于第一图像区域,而在当前帧的位置位于第二图像区域的数量,得到第二更新值。对视频帧进行区域划分可以增加统计的准确度,即在判断目标对象是否为有效对象,使得统计更为准确。
[0077] 在一个实施例中,步骤S202,包括:采用目标跟踪算法识别当前帧中的目标对象,得到第一目标对象和对应的位置;采用目标检测算法识别当前帧中的目标对象,得到第二目标对象和对应位置;判断第一目标对象和第二目标对象的数量是否一致;当一致时,将第一目标对象或第二目标对象作为当前目标对象。
[0078] 具体地,目标跟踪算法和目标检测算法可以采用常规的目标跟踪算法和常规的目标检测算法。采用任意一种目标跟踪算法识别当前帧中的目标对象,得到第一目标对象和对应的位置,采用目标检测算法检测当前帧中的的目标对象,得到第二目标对象和对应位置,判断第一目标对象和第二目标对象是否一致。第一目标对象和第二目标对象一致包括位置和数量一致,当一致时,则将第一目标对象和第二目标对象中一致的目标对象作为当前目标对象。采用两种不同类型的算法确定当前目标对象,避免误检测对统计结果带来的影响。
[0079] 在一个实施例中,当不一致时,判断第一目标对象与第二目标对象中不一致的目标对象是否位于当前帧中的预设边界区域,当位于时,将第一目标对象和第二目标对象的并集作为当前目标对象,当不位于时,将第一目标对象和第二目标对象的交集作为当前目标对象。
[0080] 具体地,对于第一目标对象与第二目标对象不一致的目标对象,则继续判断目标对象的位置,判断第一目标对象和第二目标对象是否位于预先设定的边界区域(预设边界区域),其中边界区域是指图像的边界区域。如位于巡检车移动方向所指向的边附近的边缘区域。若位于预先设定的边界区域,将第一目标对象和第二目标对象的并集组成的目标对象作为当前目标对象。反之,若不位于预设边界区域将第一目标对象和第二目标对象的交集组成的目标对象作为当前目标对象。
[0081] 在一个实施例中,识别当前帧中的目标对象的方法包括目标跟踪算法和目标检使用R2CNN模型。目标追踪使用KCF算法,即利用上一帧对象的ID信息对应位置信息,结合当前帧的图像特征把当前帧的对象信息融合进去测算法,其中目标跟踪算法为KCF,目标检测算法为R2CNN。R2CNN对密集场景的非极大值抑制(Non-Maximum Suppression,NMS)相对不敏感,利用目标检测模型对当前帧进行推理运算,得到所有对象的位置信息。
[0082] 在一个实施例中,步骤S205包括:根据各个当前目标对象的位置,统计位于当前帧的第二图像区域中的当前目标对象的数量,得到第二统计值;计算第二统计值和当前统计值的和,得到目标统计值。
[0083] 具体地,第二统计值是指位于视频帧中的最后一帧中的第二图像区域中的目标对象的数量,计算当前统计值和第二统计值得和,得到目标对象的目标统计值。
[0084] 在一个具体的实施例中,如图4所示,上述目标对象的统计方法,包括:
[0085] 步骤S301,采用巡检车的图像采集方式,同时在视频中央设置一条计数线。
[0086] 步骤S302,对第一帧的目标对象进行初始化。通过目标检测识别出当前帧目标对象的位置和个数,建立目标对象追踪信息档案包括id和坐标。
[0087] 步骤S303,判断目标对象的位置是否位于计数线内(第一图像区域内)。是进入步骤S304,否,进入步骤S305。
[0088] 步骤S304,进行计数得到当前统计值。对计数线以内(视角运动方向的反方向内)的目标对象进行计数,同时更新档案。如[{‘ID’:0,‘loc’:[x0,y0,w0,h0]},{‘ID’:1,‘loc’:[x1,y1,w1,h1]},…,{‘ID’:n,[xn,yn,wn,hn]}]其中,ID用于区分不同的对象,loc代表该对象在图像中的位置。目标检测返回的结果为[loc0,loc1,…,locn],其中每个loc信息形如:[[x1,y1],[x2,y2],[x3,y3],[x4,y4]]。目标追踪返回的结果为[loc0,loc1,…,locn],其中每个loc的信息形如:[x,y,w,h],与目标检测不同的是,追踪的结果是按照追踪对象信息的顺序来的。上述表达式中的x表示目标框的中心点横坐标,y表示目标框的中心点纵坐标,w表示目标框的宽度,h表示目标框的高度,x1表示目标框左上角点的横坐标,y1–目标框左上角点的纵坐标,x2表示目标框右上角点的横坐标,y2表示目标框左下角点的横坐标,y3表示目标框左下角点的纵坐标,x4表示目标框右下角点的横坐标,y4表示目标框右下角点的纵坐标。
[0089] 步骤S305,获取视频序列帧中的下一帧。即巡检车的滑动进入下一帧时。对图像进行两部分运算,1.目标检测,使用R2CNN模型,因为该模型对密集场景的nms相对不敏感,利用目标检测模型对当前帧进行推理运算,得到所有对象的位置信息。2.目标追踪,使用KCF算法,即利用上一帧对象的ID信息对应位置信息,结合当前帧的图像特征把当前帧的对象信息融合进去。
[0090] 步骤S306,对当前帧目标检测到的目标对象的信息与追踪方法得到的目标对象的信息进行相互校验。校验的逻辑是计算目标检测结果和追踪结果的IOU和中心点距离,如果有虚警出现,一定是检测器出现的问题,通过逻辑来保留一个和实际物体最近的框信息,从而达到抑制的效果。排除虚景对实验结果的影响,并更新档案。
[0091] 如图5所示,其中,步骤S306,包括:
[0092] 步骤S3061,通过追踪KCF算法得到下一帧的所有目标对象,得到第一目标对象。
[0093] 步骤S3062,通过R2CNN检测得到下一帧的所有目标对象,得到第二目标对象。
[0094] 步骤S3063,判断第一目标对象和第二目标对象是否一致。一致进入步骤S3064,不一致进入步骤S3065。
[0095] 步骤S3064,一致时,执行对象融合算法。即得到更新的对象信息,即下一帧的目标对象和位置。
[0096] 如6所示,其中,步骤S3064,包括:
[0097] 步骤S30641,获取已有的目标对象的信息。其中已有的目标对象的信息包括统计到的各个目标对象和对应的位置、标识等等。
[0098] 步骤S30642,获取当前帧的当前目标对象和对应的位置。
[0099] 步骤S30643,计算已有的目标对象和当前目标对象的最小距离和IOU。
[0100] 步骤S30644,根据已有的目标对象和当前目标对象的最小距离和IOU对目标对象进行融合。即合并相同的目标对象,更新相同的目标对象的位置信息等。
[0101] 步骤S3065,不致时,执行虚景抑制算法。
[0102] 参照图7,步骤S3065,包括:
[0103] 步骤S30651,获取第一目标对象和对应的位置。
[0104] 步骤S30652,获取第二目标对象和对应的位置。
[0105] 步骤S30653,计算第一目标对象和第二目标对象是否与已有的目标对象的最小距离和IOU。
[0106] 步骤S30654,根据最小距离和IOU判断第一目标对象和第二目标对象是否为有效对象。当为有效对象时,进入步骤S30655,反之进入步骤S30656。
[0107] 步骤S30655,融合有效对象。即对于第一目标对象和第二目标对象与已有的目标对象的距离小于预设距离,且IOU大于预设IOU时,将已有的目标对象的标识分配对应的有效对象,并根据第一目标对象和第二目标对象的位置更新已有的目标对象的位置。
[0108] 步骤S30656,去除无效对象。即对于第一目标对象和第二目标对象与已有的目标对象的距离大于或等于预设距离,或IOU小于或等于预设IOU的目标对象进行去除。
[0109] 步骤S307,计数器判断。计数线随着巡检车移动时,如果巡检车运动的方向上计数线检测到目标对象通过,则计数器+1,如果有目标对象沿着巡检车运动方向返回,则目标对象的数量-1。
[0110] 步骤S308,计数器变化,根据变化更新档案。
[0111] 步骤S309,如果不是,进入步骤S305;如果是进入步骤S310。
[0112] 步骤S310,则计数器加上计数线判断下一帧是否为最后一帧外的目标对象数量,即为最后的结果。
[0113] 本发明可以有效地解决无边界场景目标对象的只计数问题,防止大规模误检及漏检现象的发生。
[0114] 图2、4-7为一个实施例中目标对象的统计方法的流程示意图。应该理解的是,虽然图2、4-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0115] 在一个实施例中,如图8所示,提供了一种目标对象的统计装置200,包括:
[0116] 数据获取模块201,用于从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象。
[0117] 识别模块202,用于识别当前帧中的目标对象,得到当前目标对象和对应的位置。
[0118] 上一帧数据获取模块203,用于获取上一帧中的目标对象的位置和上一统计值。
[0119] 数据更新模块204,用于根据各个当前目标对象的位置和上一帧的目标对象的位置更新上一统计值,得到当前统计值。
[0120] 统计模块205,用于当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。
[0121] 在一个实施例中,上述目标对象的统计装置200,还包括:
[0122] 参数获取模块,用于获取区域划分参数,区域划分参数用于将视频序列帧划分为第一图像区域和第二图像区域。
[0123] 数据更新模块204,用于根据各个当前目标对象的位置、第一图像区域、上一帧的目标对象的位置更新上一统计值,得到当前统计值。
[0124] 统计模块205,用于当当前帧为视频序列帧中的最后一帧时,根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内目标对象的数量,得到目标统计值。
[0125] 在一个实施例中,统计模块205还用于当当前帧不是视频序列帧中的最后一帧时,获取当前帧的下一帧,将下一帧作为当前帧,执行识别当前帧中的目标对象,得到当前目标对象和对应的位置,直至当前帧为视频序列帧中的最后一帧。
[0126] 在一个实施例中,数据更新模块204具体用于根据上一帧的目标对象的位置和当前目标对象的位置从当前目标对象中筛选出有效对象;根据有效对象的位置和当前帧的第一图像区域更新第一图像区域对应的上一统计值,得到当前统计值。
[0127] 在一个实施例中,数据更新模块204还用于计算上一帧的目标对象的位置和当前目标对象的位置的差异度,将差异度小于预设差异度的当前目标对象作为有效对象。
[0128] 在一个实施例中,数据更新模块204还用于统计位于上一帧图像中位于第二图像区域中的目标对象,且位于当前帧的第一图像区域中的目标对象的数量,得到第一更新值,统计上一帧图像中位于第一图像区域中的目标对象,且位于当前帧中的第二图像区域中的目标对象的数量,得到第二更新值,计算上一统计值、第一更新值和第二更新值的加权和,得到当前统计值。
[0129] 在一个实施例中,识别模块202具体用于采用目标跟踪算法识别当前帧中的目标对象,得到第一目标对象和对应的位置,采用目标检测算法识别当前帧中的目标对象,得到第二目标对象和对应位置,判断第一目标对象和第二目标对象的数量是否一致,当一致时,将第一目标对象或第二目标对象作为当前目标对象。
[0130] 在一个实施例中,识别模块202还用于当不一致时,判断第一目标对象与第二目标对象中不一致的目标对象是否位于当前帧中的预设边界区域,当位于时,将第一目标对象和第二目标对象的并集作为当前目标对象,当不位于时,将第一目标对象和第二目标对象的交集作为当前目标对象。
[0131] 在一个实施例中,统计模块205具体用于根据各个当前目标对象的位置,统计位于当前帧的第二图像区域中的当前目标对象的数量,得到第二统计值,计算第二统计值和当前统计值的和,得到目标统计值。
[0132] 图9示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图9所示,该计算机设备通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现目标对象的统计方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行目标对象的统计方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0133] 本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0134] 在一个实施例中,本申请提供的目标对象的统计装置可以实现为一种计算机程序的形式,计算机程序可在如图9所示的计算机设备上运行。计算机设备的存储器中可存储组成该目标对象的统计装置的各个程序模块,比如,图8所示的数据获取模块201、识别模块202、上一帧数据获取模块203、数据更新模块204和统计模块205。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的目标对象的统计方法中的步骤。
[0135] 例如,图9所示的计算机设备可以通过如图8所示的目标对象的统计装置中的数据获取模块201执行从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象。计算机设备可以通过识别模块202执行识别当前帧中的目标对象,得到当前目标对象和对应的位置。计算机设备可以通过上一帧数据获取模块203执行获取上一帧中的目标对象的位置和上一统计值。计算机设备可以通过数据更新模块204执行根据各个当前目标对象的位置和上一帧的目标对象的位置更新上一统计值,得到当前统计值。计算机设备可以通过统计模块205执行当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。
[0136] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧,视频序列帧中包含目标对象;识别当前帧中的目标对象,得到当前目标对象和对应的位置;获取上一帧中的目标对象的位置和上一统计值;根据各个当前目标对象的位置和上一帧的目标对象的位置更新上一统计值,得到当前统计值;当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值。
[0137] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取区域划分参数,区域划分参数用于将视频序列帧划分为第一图像区域和第二图像区域;根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值,包括:根据各个当前目标对象的位置、第一图像区域、上一帧的目标对象的位置更新上一统计值,得到当前统计值;当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值,包括:当当前帧为视频序列帧中的最后一帧时,根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内目标对象的数量,得到目标统计值。
[0138] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:当当前帧不是视频序列帧中的最后一帧时,获取当前帧的下一帧,将下一帧作为当前帧,执行识别当前帧中的目标对象,得到当前目标对象和对应的位置,直至当前帧为视频序列帧中的最后一帧。
[0139] 在一个实施例中,根据各个当前目标对象的位置、第一图像区域、上一帧的目标对象的位置更新上一统计值,得到当前统计值,包括:根据上一帧的目标对象的位置和当前目标对象的位置从当前目标对象中筛选出有效对象;根据有效对象的位置和当前帧的第一图像区域更新第一图像区域对应的上一统计值,得到当前统计值。
[0140] 在一个实施例中,根据上一帧的目标对象的位置和当前目标对象的位置从当前目标对象中筛选出有效对象,包括:计算上一帧的目标对象的位置和当前目标对象的位置的差异度;将差异度小于预设差异度的当前目标对象作为有效对象。
[0141] 在一个实施例中,根据有效对象的位置和当前帧的第一图像区域更新第一图像区域对应的上一统计值,得到当前统计值,包括:统计位于上一帧图像中位于第二图像区域中的目标对象,且位于当前帧的第一图像区域中的目标对象的数量,得到第一更新值,统计上一帧图像中位于第一图像区域中的目标对象,且位于当前帧中的第二图像区域中的目标对象的数量,得到第二更新值;计算上一统计值、第一更新值和第二更新值的加权和,得到当前统计值。
[0142] 在一个实施例中,识别当前帧中的目标对象,得到当前目标对象和对应的位置,包括:采用目标跟踪算法识别当前帧中的目标对象,得到第一目标对象和对应的位置;采用目标检测算法识别当前帧中的目标对象,得到第二目标对象和对应位置;判断第一目标对象和第二目标对象的数量是否一致;当一致时,将第一目标对象作为当前目标对象。
[0143] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:当不一致时,判断第一目标对象与第二目标对象中不一致的目标对象是否位于当前帧中的预设边界区域;当位于时,将第一目标对象和第二目标对象的并集作为当前目标对象;当不位于时,将第一目标对象和第二目标对象的交集作为当前目标对象。
[0144] 在一个实施例中,根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内目标对象的数量,得到目标统计值,包括:根据各个当前目标对象的位置,统计位于当前帧的第二图像区域中的当前目标对象的数量,得到第二统计值;计算第二统计值和当前统计值的和,得到目标统计值。
[0145] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:从位于预设区域内的多个不同位置拍摄的视频序列帧中获取当前帧和对应的区域划分参数,视频序列帧中包含目标对象,区域划分参数将视频序列帧划分为第一图像区域和第二图像区域;识别当前帧中的目标对象,得到当前目标对象和对应的位置;获取上一帧中的目标对象的位置和上一统计值;根据各个当前目标对象的位置、第一图像区域、上一帧的目标对象的位置更新上一统计值,得到当前统计值;当当前帧为视频序列帧中的最后一帧时,根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内目标对象的数量,得到目标统计值。
[0146] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取区域划分参数,区域划分参数用于将视频序列帧划分为第一图像区域和第二图像区域;根据各个当前目标对象的位置、上一帧的目标对象的位置更新上一统计值,得到当前统计值,包括:根据各个当前目标对象的位置、第一图像区域、上一帧的目标对象的位置更新上一统计值,得到当前统计值;当当前帧为视频序列帧中的最后一帧时,将当前统计值作为目标统计值,包括:当当前帧为视频序列帧中的最后一帧时,根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内目标对象的数量,得到目标统计值。
[0147] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当当前帧不是视频序列帧中的最后一帧时,获取当前帧的下一帧,将下一帧作为当前帧,执行识别当前帧中的目标对象,得到当前目标对象和对应的位置,直至当前帧为视频序列帧中的最后一帧。
[0148] 在一个实施例中,根据各个当前目标对象的位置、第一图像区域、上一帧的目标对象的位置更新上一统计值,得到当前统计值,包括:根据上一帧的目标对象的位置和当前目标对象的位置从当前目标对象中筛选出有效对象;根据有效对象的位置和当前帧的第一图像区域更新第一图像区域对应的上一统计值,得到当前统计值。
[0149] 在一个实施例中,根据上一帧的目标对象的位置和当前目标对象的位置从当前目标对象中筛选出有效对象,包括:计算上一帧的目标对象的位置和当前目标对象的位置的差异度;将差异度小于预设差异度的当前目标对象作为有效对象。
[0150] 在一个实施例中,根据有效对象的位置和当前帧的第一图像区域更新第一图像区域对应的上一统计值,得到当前统计值,包括:统计位于上一帧图像中位于第二图像区域中的目标对象,且位于当前帧的第一图像区域中的目标对象的数量,得到第一更新值,当前帧的第一图像区域中的新增的目标对象的数量,得到第一更新值,统计上一帧图像中位于第一图像区域中的目标对象,且位于当前帧中的第二图像区域中的目标对象的数量,得到第二更新值;计算上一统计值、第一更新值和第二更新值的加权和,得到当前统计值。
[0151] 在一个实施例中,识别当前帧中的目标对象,得到当前目标对象和对应的位置,包括:采用目标跟踪算法识别当前帧中的目标对象,得到第一目标对象和对应的位置;采用目标检测算法识别当前帧中的目标对象,得到第二目标对象和对应位置;判断第一目标对象和第二目标对象的数量是否一致;当一致时,将第一目标对象作为当前目标对象。
[0152] 在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当不一致时,判断第一目标对象与第二目标对象中不一致的目标对象是否位于当前帧中的预设边界区域;当位于时,将第一目标对象和第二目标对象的并集作为当前目标对象;当不位于时,将第一目标对象和第二目标对象的交集作为当前目标对象。
[0153] 在一个实施例中,根据当前统计值、第二图像区域和各个当前目标对象的位置计算预设区域内目标对象的数量,得到目标统计值,包括:根据各个当前目标对象的位置,统计位于当前帧的第二图像区域中的当前目标对象的数量,得到第二统计值;计算第二统计值和当前统计值的和,得到目标统计值。
[0154] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0155] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0156] 以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。