一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种复杂场景高空抛物识别方法及系统与流程

2022-08-08 05:23:33 来源:中国专利 TAG:


1.本发明属于智能识别技术领域,特别涉及一种复杂场景高空抛物识别方法及系统。


背景技术:

2.随着社会的不断发展,人们的活动范围从只有地面变为地面及地面以上,因此带来的一个大问题就是高空抛物。无论是住在高层的居民、高楼清洁作业人员,还是攀登电线杆和电力铁架的电力工作人员,一旦不注意规范自身的行为,在高空作业时将相关器件直接扔下来,则很可能导致人员伤亡事故发生。因此,高空抛物识别有助于规范相关人员的行为同时有助于问题的回溯。
3.有别于传统的特征提取方法,深度学习算法鲁棒性好、可迁移性强,能够提取更好表征图像的特征。一般来说,使用基于卷积神经网络(cnn)来提取图片中的信息,但是cnn不能直接处理时序关联的任务,而循环神经网络(rnn)由于在建模过程中,循环处理输入的数据,因此可以较好的弥补cnn的不足。深度学习算法需要使用足量的标注数据来不断迭代训练,进而提升性能,因此,数据是运用深度学习算法的一个重要考量角度。除此之外,深度学习算法一般有着庞大的参数量,而模型(深度学习算法得到的结果)性能跟参数量也存在着一定关系,所以对于一些实时性较高的任务,需要综合考虑性能和效率的关系。
4.中国发明专利申请(公开号:cn112308000a)公开了一种基于时空信息的高空抛物检测方法,该方法基于pixel分割的思想,收集大量的高空抛物的序列图片(各种背景干扰场景、各种光线、各种拍摄角度),对每张图片上抛物使用矩形框进行标注,然后训练一个卷积神经网络。使用的时候,输入n张连续视频帧的图片进入卷积神经网络,预测一个map,该map上显示的是抛物的序列,通过判断该序列是否存在一定长度的竖直方向连通区域决定是否存在高空抛物。此方法存在问题:1)对数据量的需求过高,不但需要采集足量的数据同时还要对每一张数据进行标注;2)由于是基于分割的思想,整体计算量过高,难以满足实时性;3)该方法无法解决上抛物体的误报。
5.中国发明专利申请(公开号:cn113223081a)公开了一种基于背景建模与深度学习的高空抛物检测方法及系统,通过高斯混合模型建立背景模型,成功建立背景模型后,使用新输入的视频帧减去背景模型图片得到差分图像,经过图像预处理得到前景目标的图像及位置信息,使用cnn提出前景中的噪声,重复前述提取前景、提取特征步骤,根据cnn提取的特征进行匹配得到前景集合,再使用lstm进行时序分析,确定是否为高空抛物。此方法存在的问题:1)复杂场景下此背景建模方法失效;2)为了保证cnn能够在不同的应用场景下分辨出背景和前景,且所提取的特征具有判别性(用于两个物体匹配时,如果特征不具备判别性,则无法判断这两个物体是否是一个物体),cnn需要较多数据进行训练,那么就需要获取足够的数据,而且背景和前景是一种动态的概念,并不是固定的。
6.中国发明专利申请(公开号:cn111931719a)公开了高空抛物检测方法以及装置,将视频中的多帧图像输入一经训练的高空抛物检测模型中,所述高空抛物检测模型包括串
联的卷积神经网络模型以及循环神经网络模型,所述卷积神经网络模型用于识别高空物体,所述循环神经网络模型用于检测所述卷积神经网络识别的高空物体是否是高空抛物。此方法存在的问题:1)由于该方法考虑到物体的类别问题,导致模型在迁移到其他物体是需要重新训练模型;2)训练所述的卷积神经网络以及循环神经网络需要大量的真实数据并进行标注,成本非常高。
7.综上所述,常用的高空抛物检测方法有如下几个问题:1)传统算法遇到复杂背景鲁棒性低,深度学习算法需要大量的数据,收集及标注成本高;2)基于深度学习的算法受限于建模方式,难以做到无缝迁移,即难以低成本的无缝迁移到各个场景;3)难以同时保持很快的速度和很好的效果。


技术实现要素:

8.针对上述问题,一方面,本发明公开了一种复杂场景高空抛物识别方法,所述方法包括:将图像序列集合si和物体图片集合so进行合成,得到带抛物的训练图片序列集合di;使用训练图片序列集合di训练时序块分割网络,得到tpsnet;使用训练后得到的tpsnet,对测试视频进行抛物识别预测,判断测试视频中是否存在高空抛物。
9.进一步地,所述图像序列集合si获取的方法包括:收集n1段视频,抽取视频中的每一帧图像;对于每个视频中的所有图像按照时序划分成长度为t的多个图像序列段s;划分所得的所有图像序列段构成图像序列集合si。
10.进一步地,所述图像序列集合si具体为:{(0,1,.....,t-1),(sep,1 sep,.....,t sep-1),......},其中,(sep,1 sep,.....,t sep-1)表示一组图像序列段s内图像的编号集合;sep表示采样的间隔;t表示单个图像序列段s的长度;所述图像序列集合si共包括1 fioor((vl-t)/sep)个图像序列段,其中fioor表示向下取整,vl表示每个视频抽取的图片张数。
11.进一步地,所述物体图片集合so获取的方法包括:收集n2张物体图片,对物体图片进行分割标注;得到分割标注后的物体图片集合so。
12.进一步地,所述对物体图片进行分割标注具体包括:对物体图片中需求的物体进行标注,得到每个需求物体的分割标注labeli;每张物体图片对应产生一个标注集合为{(im1,label1)(im2,label2),......,(imn,labeln)},其中,im1、im2、...、imn指代的是图片索引号;label1、label2、...、labeln指代n个需求物体的标注,(imn,labeln)表示标注集合中第n组标注;所有物体图片进行分割标注之后,将得到的每张物体图片的标注集合进行整合,得到分割标注后的图片与分割标注的集合so,所述图片与分割标注的集合so表示为{(imi,labeli)| i∈[1,m]},其中(imi,labeli)表示图片与分割标注集合中第i组标注,m表示所有
物体图片里面有m个需求物体。
[0013]
进一步地,所述训练图片序列集合di合成的方法包括:从物体图片集合so中随机选取一张物体图片作为前景图片,再从图像序列集合si中选取一个图像序列段作为背景图片;根据高空抛物的特性,将选取的前景图片与选取的背景图片进行合成,获得带抛物的训练图片序列d;重复合成获取多个带抛物的训练图片序列d,多个训练图片序列d构成训练图片序列集合di。
[0014]
进一步地,所述高空抛物的特性具体包括:预设包括k个坐标的符合自由落体定律的纵向间隔序列fall
base
为(fb0,fb1,fb2,......,fb
k-1
),fb
k-1
表示在纵向间隔序列fall
base
中第k个纵向间隔值;预设一组横向扰动xoffset为(xf0,xf1,xf2,......,xfn),其中xfn表示在一组横向扰动xoffset中第n 1个横向扰动值;预设一组面积比值ratios为(r0,r1,r2,......,rn)其中rn表示在一组面积比值ratios中第n 1个面积比值;预设一组纵坐标缩放系数yscale为(ys0,ys1,ys2,......,ysn),其中ysn表示在一组纵坐标缩放系数yscale中第n 1个纵坐标缩放系数。
[0015]
进一步地,所述将选取的前景图片与选取的背景图片进行合成,获得带抛物的训练图片序列d具体包括:在选择的背景图片中,经过高空抛物的特性变换,确定前景图片的位置信息集;根据前景图片和背景图片的面积,确定前景图片的尺寸信息;根据前景图片的位置信息集和尺寸信息,将前景图片与一组背景图片按序合成带抛物的一组训练图片,构成训练图片序列d。
[0016]
进一步地,所述在选择的背景图片中,经过高空抛物的特性变换,确定前景图片的位置信息集具体包括:在选择的背景图片覆盖范围内,随机选取一个坐标作为初始坐标loc
base
;从[0,t-3)的区间中随机选取一个位置索引ind作为初始抛物出现的索引,从纵向间隔序列fall
base
中按序随机选取长为t-ind-1的纵向间隔序列(fbj,...,fb
j t-ind-2
),其中fbj表示fall
base
中第j 1个纵向间隔数值,fb
j t-ind-2
表示fall
base
中第j t-ind-1个纵向间隔数值;从纵坐标缩放系数yscale中随机选取一个缩放系数ys,得到新的纵向间隔序列(ys*fbj,...,ys*fb
j t-ind-2
);从横向扰动xoffset随机选取横坐标扰动序列;其中ki∈n(i={0,1,2,...,t-ind-1}),其中表示xoffset中第k
t-ind-1
个横坐标扰动值;将新的间隔序列和横坐标扰动序列与初始坐标loc
base
对应坐标值相加,得到前景图片在一个图像序列段的背景图片中的位置序列loc=(loc
base
,loc
base
ys*fbj,...,loc
base
ys*fb
j t-ind-3
,loc
base
ys*fb
j t-ind-2
)。
[0017]
进一步地,所述根据前景图片和背景图片的面积,确定前景图片的尺寸信息具体包括:计算前景图片中的物体面积a
fi
以及背景图片中的图片面积a
bi
;从面积比值ratios中随机选取一个比值r,得到新的物体面积=a
bi
*r;进一步得到物体的缩放比例fr=;根据前景图片中的分割标注labeli,生成每个需求物体覆盖的区域maski;根据物体的缩放比例fr对物体图片imi和物体覆盖的区域maski进行缩放,得到带抛物的新的物体图片n_imi和n_maski。
[0018]
进一步地,所述将前景图片与一组背景图片按序合成带抛物的一组训练图片具体包括:对一个图像序列段的背景图片建立索引序号(0,1,2,...,t-1);按序选取背景图片和位置序列loc中的位置坐标;判断背景图片索引序号是否小于位置索引ind;当背景图片索引序号小于位置索引ind,则跳过该背景图片;当背景图片索引序号不小于位置索引ind,对带抛物的新的物体图片n_imi和物体覆盖的区域n_maski同时进行数据变换;根据位置序列loc中的位置坐标将新的物体图片叠加到对应的背景图片中,合成训练图片。
[0019]
进一步地,所述时序块分割网络包括特征提取层、特征变换层、时序特征提取层以及分类层;所述特征提取层基于cnn的网络,用于提取图片的特征,将输入长度为t的通道为3的图片序列按顺序拼接为长度为1通道为3t的数据,然后更改使用的backbone网络的第一层卷积的输入通道数为3t;所述特征变换层用于将特征提取层提取到的图片特征根据划分的块的数目变换为时序特征提取层可接受的输入;所述时序特征提取层用于将变换后的图片特征输入到循环神经网络中,获取时序维度上的特征;所述分类层用于对提取的时序特征进行分类,判断是否有抛物存在。
[0020]
进一步地,所述得到tpsnet的方法包括:将训练图片序列集合di进行数据增强变换,输入到时序块分割网络中,使用损失函数进行优化,得到收敛的网络tpsnet。
[0021]
进一步地,所述对测试视频进行抛物识别预测,判断测试视频中是否存在高空抛物具体包括:获取测试视频,将测试视频分成多个长度为t的序列,使用tpsnet进行识别预测;得到每个序列高空抛物的得分,记录该得分;根据得分,判断测试视频中是否存在高空抛物,若测试视频中存在高空抛物,进行报警并记录对应视频图像片段。
[0022]
进一步地,得到每个序列高空抛物的得分,记录该得分具体包括:得到预测每一个序列的每个块是否包含抛物的分数scores=(score0,score1,...,
score
p
),其中p为对输入图片进行划分的块的数目;对每个patch的分数score进行筛选,若分数score小于设置的第一阈值,则进行过滤,不记录该分数score值;若分数score不小于设置的第一阈值,记录该分数score值,最终得到符合条件的有效分数序列集合。
[0023]
进一步地,所述判断测试视频中是否存在高空抛物具体包括:判断有效分数序列集合中数据的数量是否大于预设序列长度以及有效分数序列集合中大于第二阈值的数据个数是否大于预设个数;当有效分数序列集合中数据的数量大于预设序列长度且有效分数序列集合中大于第二阈值的数据个数大于预设个数,进行报警并记录对应视频图像片段。
[0024]
另外一方面,本发明还公开了一种复杂场景高空抛物识别系统,所述系统包括:训练图片生成模块,用于将图像序列集合si和物体图片集合so进行合成,得到带抛物的训练图片序列集合di;时序补丁分割网络训练模块,用于使用训练图片序列集合di训练时序块分割网络,得到tpsnet;检测识别模块,用于使用训练后得到的tpsnet,对测试视频进行抛物识别预测,判断测试视频中是否存在高空抛物。
[0025]
进一步地,所述训练图片生成模块具体包括:视频抽帧单元,用于收集n1段视频,抽取视频中的每一帧图像;背景图像划分单元,用于对于每个视频中的所有图像按照时序划分成长度为t的多个图像序列段s;划分所得的所有图像序列段构成图像序列集合si;物体图片标注单元,用于收集n2张物体图片,对物体图片进行分割标注;得到分割标注后的物体图片集合so;图片选取单元,用于从物体图片集合so中随机选取一张物体图片作为前景图片,再从图像序列集合si中选取一个图像序列段作为背景图片;图片合成单元,用于根据高空抛物的特性,将选取的前景图片与选取的背景图片进行合成,获得带抛物的训练图片序列d;重复合成获取多个带抛物的训练图片序列d,多个训练图片序列d构成训练图片序列集合di。
[0026]
进一步地,所述时序补丁分割网络训练模块具体用于,将训练图片序列集合di进行数据增强变换,输入到时序块分割网络中,使用损失函数进行优化,得到收敛的网络tpsnet;所述时序块分割网络包括特征提取层、特征变换层、时序特征提取层以及分类层;所述特征提取层基于cnn的网络,用于提取图片的特征,将输入长度为t的通道为3的图片序列按顺序拼接为长度为1通道为3t的数据,然后更改使用的backbone网络的第一层卷积的输入通道数为3t;所述特征变换层用于将特征提取层提取到的图片特征根据划分的块的数目变换为时序特征提取层可接受的输入;所述时序特征提取层用于将变换后的图片特征输入到循环神经网络中,获取时序维度上的特征;所述分类层用于对提取的时序特征进行分类,判断是否有抛物存在。
[0027]
进一步地,所述检测识别模块具体包括:测试视频处理单元,用于获取测试视频,将测试视频分成多个长度为t的序列,使用tpsnet进行识别预测;得到每个序列高空抛物的得分,记录该得分;识别判断单元,用于根据得分,判断测试视频中是否存在高空抛物,若测试视频中存在高空抛物,进行报警并记录对应视频图像片段。
[0028]
与现有技术相比,本发明具有如下有益效果:本发明提供了一种复杂场景高空抛物识别方法,在识别方法执行过程中提出了数据合成方法以及新的建模方式,避免了对数据的大量收集需求、在不同场景中具备很好的泛化性且速度很快:1、根据高空抛物的特性合成数据来解决用于高空抛物领域的深度学习算法需求大量多维度的高空抛物标注数据的问题。
[0029]
2、通过较高的下采样,让网络提取特征时忽略具体的浅层特征,关注相对语义性的序列特征,解决无法低成本无缝迁移到各个场景的问题。
[0030]
3、与普遍采用的强定位不同,本发明采用弱定位的方式,方便后续人工查看的同时,减少对模型的定位要求,从而可以构建高效的模型;通过输入时将序列信息耦合到特征维度后提取特征,保证了提取图像特征时的效率;通过将特征维度变换为序列维度,再使用序列模型可以将提取的语义信息进行序列整合,保证了最终的性能;解决难以同时保持很快的速度和很好效果的问题。
[0031]
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
[0032]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]
图1示出了本发明实施例的数据合成及模型训练流程图;图2示出了本发明实施例的抛物识别预测流程图。
具体实施方式
[0034]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]
基于数据合成和时序块分割的高空抛物识别方法的主要步骤包括:图1所示的数据合成及模型训练流程,如下步骤1-步骤4;以及图2所示的抛物识别预测流程,如下步骤5。
[0036]
步骤1:收集n1段视频,抽取视频中的每一帧,对于每个视频中的图像序列按照长
度t进行划分,得到图像序列集合si;步骤2:收集n2个物体图片,进行分割标注,得到图片与分割标注的物体图片集合so;步骤3:从so中随机选取一个图片,再从图像序列集合si中随机选取一个序列s,根据高空抛物的特性(纵向坐标基本符合自由落体定律、下落过程中发生旋转、下落过程中存在一定的横向偏移)合成带抛物的图片序列d,重复合成最终获取带抛物的图片序列集合di;步骤4:使用合成的图像序列集合di训练时序块分割网络,采用抛物弱定位的方式,即定位到抛物出现在序列的哪一个竖直区域,通过将输入的序列维度整合到特征维度,同时提取图片的特征,再通过特征变换层将序列信息从特征维度中进行拆分,使用序列模型对富含语义信息的特征进行序列建模,最终得到tpsnet (time-sequence patch segmentation network,时序补丁分割网络);所述序列模型指的是可以提取连续序列在时间维度上的相关性的模型。
[0037]
步骤5:输入测试视频,使用上述训练好的tpsnet进行预测,得到预测每个序列高空抛物的得分scores,使用记录器record记录该得分,根据灵敏度判断是否为高空抛物,若是,则进行报警并记录对应视频图像。
[0038]
具体的,对于步骤1,包含如下步骤:步骤1.1,收集n1段视频,对每个视频进行抽帧,每个视频(假设由vl张图片组成)抽取的第一帧从0开始编号,则得到{(0,1,.....,t-1),(sep,1 sep,.....,t sep-1),......},共1 fioor((vl-t)/sep)组图像序列段,其中,sep表示采样的间隔,(sep,1 sep,.....,t sep-1)表示一组图像序列段s内图像的编号集合;t表示单个序列长度,fioor表示向下取整,最终得到所有视频的图像序列的集合si;对于步骤2,包含如下步骤:步骤2.1:收集n2个物体图片,对图片中的需求的物体进行标注,得到每个需求物体的分割标注labeli,假设一个图片im1中有n个需求的物体,im1此时是一个数值,用于索引指定的图片,则该图片产生的标注集合为{(im1,label1)(im2,label2),......,(imn,labeln)},其中,im1、im2、...、imn指代的是图片im1;label1、label2、...、labeln指代n个需求物体的标注。假设所有的n2个物体图片里面有m个需求物体,那么最终,得到所有的图片与分割标注的集合so为{(imi,labeli)| i∈[1,m]},其中(imi,labeli)表示分割标注集合中第i组标注;所述分割标注label为一系列的点坐标集合,imi表示第i组标注中的图片索引号;labeli表示第i个需求物体的分割标注,这些点坐标集合中的点顺次连接将需求的物体所在的区域框选出来或者这些点坐标集合中点顺次连接构成需求物体的外轮廓曲线。
[0039]
对于步骤3,包含如下步骤:步骤3.1:从so中随机选取一个物体标注(imi,labeli)作为前景图片fii,fi是所有的前景图片集合:{(im0,label0),(im1,label1), ....,(imi,labeli)},fii表示第i个物体标注的图片。从si中随机选取一组图像序列(, 1,....., t-1)当作背景图片bij,bi={bi0, bi1, ..., bin}共n组序列,bij表示第j个序列。预先设计包含k个坐标的符合自由落体定律的纵向间隔序列fall
base
为(fb0,fb1,fb2,......,fb
k-1
),fb
k-1
表示在纵向间隔序列fall
base
中第k个纵向间隔值;预设一组横向扰动xoffset为(xf0,xf1,xf2,......,xfn),其中
xfn表示在一组横向扰动xoffset中第n 1个横向扰动值;预设一组面积比值ratios为(r0,r1,r2,......,rn),其中rn表示在一组面积比值ratios中第n 1个面积比值;预设一组纵坐标缩放系数yscale为(ys0,ys1,ys2,......,ysn),其中ysn表示在一组纵坐标缩放系数yscale中第n 1个纵坐标缩放系数。
[0040]
步骤3.2:计算背景图片bij中的图片尺寸,并在图片覆盖范围内随机选取一个坐标作为初始坐标loc
base
,所述初始坐标loc
base
为一个点坐标,具有横纵坐标值。从[0, t-3)的区间中随机选取一个位置索引ind作为初始抛物出现的索引,ind的取值范围为[0, t-3)是为了保证至少能选择三张连续的照片;从fall
base
中随机顺序选取长为t-ind-1的纵向间隔序列(fbj,...,fb
j t-ind-2
),fbj表示fall
base
中第j 1个纵向间隔数值,fb
j t-ind-2
表示fall
base
中第j t-ind-1个纵向间隔数值,再从yscale中随机选取一个放缩系数ys,得到新的间隔序列(ys*fbj,...,ys*fb
j t-ind-2
);随后从xoffset随机选取横坐标扰动序列;其中ki∈n(i={0,1,2,...,t-ind-1}),表示xoffset中第k
t-ind-1
个横坐标扰动值;将新的间隔序列和横坐标扰动与loc
base
对应相加,得到前景图片在一个图像序列段的背景图片中的位置序列loc=(loc
base
,loc
base
ys*fbj,...,loc
base
ys*fb
j t-ind-3
,loc
base
ys*fb
j t-ind-2
);步骤3.3:计算前景图片fii中物体的面积a
fi
,背景图片bij中的图片面积a
bi
,从ratios中随机选取一个比值r,根据=a
bi
*r计算得到新的物体的面积,计算物体的缩放比例fr=;步骤3.4:根据前景图片分割标注labeli,新生成每个需求物体覆盖的区域maski;maski表示第i个物体覆盖的区域,根据步骤3.3中所求物体缩放比例fr对物体图片imi和物体覆盖的区域maski进行缩放,得到带抛物的新的物体图片n_imi和n_maski。
[0041]
步骤3.5:对背景图片建立索引(0, 1, ...,t-1),按照顺序,选取当前的抛物坐标和背景图片,若背景图片索引小于ind,则跳过,否则,对步骤3.4的n_imi和n_maski一起使用数据变换transform进行变换后,根据loc中对应的坐标将物体图片叠加到该背景图片中,得到一张包含抛物的图片;最终,得到一组包含抛物的训练图片序列集合di;所述数据变换包括随机翻转、高斯噪声、随机旋转等。
[0042]
对于步骤4,包含如下步骤:步骤4.1:设计时序块分割网络,时序块分割网络由四部分组成,分别为特征提取层、特征变换层、时序特征提取层以及分类层。
[0043]
步骤4.2:特征提取层是基于cnn的网络,主要目的是提取图片的特征。为了保证最后运行时的整体效率,我们首先将输入长度为t的通道为3的图片序列按顺序拼接为长度为1通道为3t的数据,然后更改普遍使用的backbone网络(神经网络模型,用于提取出图像的高中低层的特征)的第一层卷积的输入通道数为3t,其余维持不变,这样子做,只在第一层增加了计算量(几乎可以忽略不计),而后续的计算量与输入一张图时的计算量一致,再者,我们在保持网络层数不变的前提下增加了多个下采样步骤(由于我们采用的是弱定位方式,所以可以大量采用下采样而不需要过于担心影响效果),进一步保证了网络的运行效
率,最终得到的特征图的尺寸为c*h*w;步骤4.3:特征变换层是将特征提取层提取到的特征根据对输入图片进行划分的块的数目变换为时序特征提取层可接受的输入。以一张图举例说明,对于步骤4.2中提取到的特征c*h*w,先使用kernel(卷积内核)尺寸为(k1, k2)步长为(s1,s2)的池化层对w方向进行降采样,将其高度方向的特征进行全局池化(由于我们采用的是弱定位方式,所以可以在这里将高度空间信息进行全局池化而不需要过于担心影响效果),得到新的特征c*1*p然后将其转换为p*t*(c/t)的特征维度,其中c是t的整数倍,p是对输入图片进行划分的块的数目;步骤4.4:时序特征提取层是将前述转换好的特征输入到循环神经网络中,获取时序维度上的特征,然后使用分类层对提取的时序特征进行分类,判断是否有抛物存在;步骤4.5:将步骤3中获取的包含抛物序列的抛物序列图片di进行一些数据增强变换,输入到时序块分割网络中,使用bce(基础的损失函数 )作为损失函数进行优化,最终得到收敛的网络tpsnet。所述数据增强变换包括高斯模糊、随机裁剪、尺寸变化、随机翻转等。
[0044]
对于步骤5,包含如下步骤:步骤5.1:对于输入的视频,按序列t输入,使用tpsnet进行预测,得到预测每一个序列的每个块是否包含抛物的分数scores=(score0,score1,...,score
p
),其中p为对输入图片进行划分的块(patch)的个数,对每个patch的分数score进行筛选,若分数score小于设置的第一阈值thr1,则进行过滤,否则,进行记录;假设得到某个块i连续符合条件的分数score得到记录下来的有效分数record-scorei=(score
i0
,score
i1
,...,score
ik
),其中k表示记录下来的序列长度;若有效分数record-scorei中得分大于第二阈值thr2的个数大于预设个数highnum,且有效分数record-scorei的序列长度k大于预设个数seqnum,则认为是高空抛物,输出报警并记录对应的视频片段;值得注意的是,highnum、seqnum、thr1和thr2控制的是整个方法的灵敏度,如果希望模型有不同的灵敏度,可以改变他们的数值。
[0045]
根据所述基于数据合成和时序块分割的高空抛物识别方法的一种实施例如下:步骤1:收集n1段视频,对每个视频进行抽帧,每个视频(假设由vl张图片组成)抽取的第一帧从0开始编号,则得到{(0,1,.....,t-1),(sep,1 sep,.....,t sep-1),......},共1 fioor((vl-t)/sep)组图像序列段,其中,sep表示采样的间隔,(sep,1 sep,.....,t sep-1)表示一组图像序列段s内图像的编号集合;t表示单个序列长度,fioor表示向下取整,最终得到所有视频的图像序列的集合si;本实施例中,n1为2,sep为1,t为5;步骤2:收集n2个物体图片,对图片中的需求的物体进行标注,得到每个需求物体的分割标注labeli,假设一个图片im1中有n个需求的物体,则该图片产生的标注集合为{(im1,label1)(im2,label2),......,(imn,labeln)},其中,im1、im2、...、imn指代的是图片im1;label1、label2、...、labeln指代n个需求物体的标注。假设所有的n2个物体图片里面有m个需求物体,最终,得到所有的图片与分割标注的集合so为{(imi,labeli)| i∈[1,m]},其中(imi,labeli)表示分割标注集合中第i组标注;本实施例中,n2为6;步骤3:从so中随机选取一个图片,再从图像序列集合si中随机选取一个序列s,合成带抛物的图片序列d,重复合成最终获取带抛物的图像序列集合di;具体的,步骤3.1:从so中随机选取一个物体标注(imi,labeli)作为前景图片fii,从si中随机选取一组图像序列(, 1,....., t-1)当作背景图片bij,预先设计包含k个
坐标的符合自由落体定律的纵向间隔序列fall
base
为(fb0,fb1,fb2,......,fb
k-1
);预设一组横向扰动xoffset为(xf0,xf1,xf2,......);预设一组面积比值ratios为(r0,r1,r2,......);预设一组纵坐标缩放系数yscale为(ys0,ys1,ys2,......)。本实施例中fall
base
为[0, 1, 4, 9, 16, 25, 36, 49],xoffset为[-20,
ꢀ‑
19, ...,19, 20],ratios是区间为(0.0001,0.005)的均匀分布,yscale为[5, 6, 7,...,50]。
[0046]
步骤3.2:计算背景图片bij中的图片尺寸,并在图片覆盖范围内随机选取一个坐标作为初始坐标loc
base
,所述初始坐标loc
base
为一个点坐标,具有横纵坐标值。从[0, t-3)的区间中随机选取一个位置索引ind作为初始抛物出现的索引,从fall
base
中随机顺序选取长为t-ind-1的纵向间隔序列(fbj,...,fb
j t-ind-2
),再从yscale中随机选取一个放缩系数ys,得到新的间隔序列(ys*fbj,...,ys*fb
j t-ind-2
);随后从xoffset随机选取横坐标扰动序列;其中ki∈n(i={0,1,2,...,t-ind-1});将新的间隔序列和横坐标扰动与loc
base
对应相加,得到前景图片在一个图像序列段的背景图片中的位置序列loc=(loc
base
,loc
base
ys*fbj,...,loc
base
ys*fb
j t-ind-3
,loc
base
ys*fb
j t-ind-2
);步骤3.3:计算前景图片fii中物体的面积a
fi
,背景图片bij中的图片面积a
bi
,从ratios中随机选取一个比值r,根据=a
bi
*r计算得到新的物体的面积,计算物体的缩放比例fr=;步骤3.4:根据前景图片分割标注labeli,新生成每个需求物体覆盖的区域maski;根据步骤3.3中所求物体缩放比例fr对物体图片imi和maski进行缩放,得到带抛物的新的物体图片n_imi和n_maski。
[0047]
步骤3.5:对背景图片建立索引(0, 1, ...,t-1),按照顺序,选取当前的抛物坐标和背景图片,若背景图片索引小于ind,则跳过,否则,对步骤3.4的n_imi和n_maski一起使用数据变换transform进行变换后,根据loc中对应的坐标叠加到该背景图片中,得到一张包含抛物的图片;最终,得到一组包含抛物的序列图片di;本实施例中,transform包含概率为0.5的随机翻转、概率为0.5的高斯噪声、概率为1的随机旋转,叠加方式是抛物内容直接覆盖背景图片内容,当然,transform和叠加方式也可以采取其他的方法,比如叠加方式可以采用泊松融合;步骤4:使用合成的抛物序列集合di训练时序块分割网络,得到tpsnet (time-sequence patch segmentation network)。
[0048]
对于步骤4,具体为:步骤4.1:设计时序块分割网络,时序块分割网络由四部分组成,分别为特征提取层、特征变换层、时序特征提取层以及分类层。
[0049]
步骤4.2:特征提取层是基于cnn的网络,主要目的是提取图片的特征。为了保证最后运行时的整体效率,我们首先将输入长度为t的通道为3的图片序列按顺序拼接为长度为1的通道为3t的数据,然后更改普遍使用的backbone网络的第一层卷积的输入通道数为3t,其余维持不变,这样子做,只在第一层增加了计算量(几乎可以忽略不计),而后续的计算量与输入一张图时的计算量一致,再者,我们在保持网络层数不变的前提下增加了多个下采
样步骤,进一步保证了网络的运行效率;本实施例中采用的t为5,backbone为下采样为1/128的且去除了最后的池化层和全连接层的mobilenet v2,下采样可以根据实际需求的效果和速度修改为其他数目,backbone也可以替换为其他网络比如resnet/desnet/litehrnet等作为基础模型;步骤4.3:特征变换层是将特征提取层提取到的特征根据对输入图片进行划分的块的数目变换为时序特征提取层可接受的输入。以一张图举例说明,对于步骤4.2中提取到的特征c*h*w,先使用kernel尺寸为(1, 2)步长为(1,2)的平均池化层(也可以是其他池化,比如最大值池化;这个kernel尺寸和步长可以控制最终输出的patch的大小,如果希望每个patch精细点,就将kernel尺寸和步长设小一点,如果需要每个patch覆盖较大的区域,可以将kernel尺寸和步长相应的增大)对w方向进行降采样,将其高度方向的特征进行全局平均池化(可以是其他池化),得到新的特征c*1*(w/2),然后将其转换为(w/2)*t*(c/t)的特征维度,其中c是t的整数倍,w/2是对输入图片进行块划分的数目;本实施例中t为5,w/2为输入图片的宽度除以256(步骤4.2的1/128和此处w方向的降采样得到,整体的降采样大小为256);步骤4.4:时序特征提取层是将前述转换好的特征输入到循环神经网络中,获取时序维度上的特征,然后使用分类层是对提取的时序特征进行分类,判断是否有抛物存在;本实施例中,采用的循环神经网络是lstm(长短期记忆网络),也可以采用其他的比如gru(门控循环单元)等。
[0050]
步骤4.5:将步骤3中获取的包含抛物序列的抛物序列图片di进行一些数据增强变换,输入到时序块分割网络中,使用bce作为损失函数进行优化,最终得到收敛的网络tpsnet。本实施例中,数据增强变换为概率为0.5的高斯模糊、概率为0.5的随机裁剪、概率为1的保持面积的长宽比变化、概率为1的尺寸变化(图片的长度调整为512,宽度根据原图长宽比对应变化,可以根据实际需求调整数值)、填充长宽至256的倍数、概率为0.2的随机序列反转(抛落物变为上升物),这些数据增强变换可以采用不同的概率、不同的参数、不同的组合顺序等,同时,还可使用其他的数据增强变换比如色彩变换等;步骤5:对于输入的视频,按连续的5帧输入,进行尺寸变化(长调整为为512,宽度根据原图长宽比对应变化)、填充长宽至256的倍数,使用tpsnet进行预测,得到预测每一个序列的每个块是否包含抛物的分数scores=(score0,score1,...,score
p
),其中p为对输入图片进行划分的块的个数(计算方式上文已说明),对每个块的分数score进行筛选,若分数score小于设置的阈值0.6,则进行过滤,否则,进行记录;假设得到某个块i连续符合条件的分数score得到记录下来的有效分数record-scorei=(score
i0
,score
i1
,...,score
ik
),若有效分数record-scorei中大于预设阈值0.93的得分个数大于预设个数3,且有效分数record-scorei的序列长度k大于预设个数3,则认为是高空抛物,输出报警并记录对应的视频图像。
[0051]
本发明提供了一种复杂场景高空抛物识别方法,在识别方法执行过程中提出了数据合成方法以及新的建模方式,避免了对数据的大量收集需求、在不同场景中具备很好的泛化性且速度很快:1、根据高空抛物的特性(纵向坐标基本符合自由落体定律、下落过程中发生旋转、下落过程中存在一定的横向偏移)合成数据来解决用于高空抛物领域的深度学习算法需求
大量多维度的高空抛物标注数据的问题。
[0052]
2、通过较高的下采样,让网络提取特征时忽略具体的浅层特征,关注相对语义性的序列特征,解决无法低成本无缝迁移到各个场景的问题。
[0053]
3、与普遍采用的强定位(定位到抛物具体出现在图像中的位置)不同,我们采用弱定位(定位到抛物出现在图片的某个竖直区域)的方式,方便后续人工查看的同时,减少对模型的定位要求,从而可以构建高效的模型;通过输入时将序列信息耦合到特征维度后提取特征,保证了提取图像特征时的效率;通过将特征维度解码为序列维度,再使用序列模型可以将提取的语义信息进行序列整合,保证了最终的性能;解决难以同时保持很快的速度和很好效果的问题。
[0054]
为支撑上述方法能够顺利执行,对应的设置一种复杂场景高空抛物识别系统,所述系统包括:训练图片生成模块,用于将图像序列集合si和物体图片集合so进行合成,得到带抛物的训练图片序列集合di;时序补丁分割网络训练模块,用于使用训练图片序列集合di训练时序块分割网络,得到tpsnet;检测识别模块,用于使用训练后得到的tpsnet,对测试视频进行抛物识别预测。
[0055]
具体的,所述训练图片生成模块具体包括以下单元:视频抽帧单元,用于收集n1段视频,抽取视频中的每一帧图像。
[0056]
背景图像划分单元,用于对于每个视频中的所有图像按照时序划分成长度为t的多个图像序列段s;划分所得的所有图像序列段构成图像序列集合si。
[0057]
物体图片标注单元,用于收集n2张物体图片,对物体图片进行分割标注;得到分割标注后的物体图片集合so。
[0058]
图片选取单元,用于从物体图片集合so中随机选取一张物体图片作为前景图片,再从图像序列集合si中选取一个图像序列段作为背景图片。
[0059]
图片合成单元,用于根据高空抛物的特性,将选取的前景图片与选取的背景图片进行合成,获得带抛物的训练图片序列d;重复合成获取多个带抛物的训练图片序列d,多个训练图片序列d构成训练图片序列集合di。
[0060]
具体的,所述时序补丁分割网络训练模块具体用于,将训练图片序列集合di进行数据增强变换,输入到时序块分割网络中,使用损失函数进行优化,得到收敛的网络tpsnet;所述时序块分割网络包括特征提取层、特征变换层、时序特征提取层以及分类层;所述特征提取层基于cnn的网络,用于提取图片的特征,将输入长度为t的通道为3的图片序列按顺序拼接为长度为1通道为3t的数据,然后更改使用的backbone网络的第一层卷积的输入通道数为3t;所述特征变换层用于将特征提取层提取到的图片特征根据划分的块的数目变换为时序特征提取层可接受的输入;所述时序特征提取层用于将变换后的图片特征输入到循环神经网络中,获取时序维度上的特征;所述分类层用于对提取的时序特征进行分类,判断是否有抛物存在。
[0061]
具体的,所述检测识别模块包括以下单元:测试视频处理单元,用于获取测试视频,将测试视频分成多个长度为t的序列,使用tpsnet进行识别预测;得到每个序列高空抛物的得分,记录该得分。
[0062]
识别判断单元,用于根据得分,判断测试视频中是否存在高空抛物,若测试视频中存在高空抛物,进行报警并记录对应视频图像片段。
[0063]
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献