一种基于滑动窗口的目标检测位置矫正方法和装置与流程

文档序号:16540591发布日期:2019-01-08 20:20阅读:289来源:国知局
一种基于滑动窗口的目标检测位置矫正方法和装置与流程

本发明涉及图像处理领域,具体涉及一种基于滑动窗口的目标检测位置矫正方法和装置。



背景技术:

众所周知,当前是信息时代,信息的获得、加工、处理以及应用都有了飞跃发展。人们认识世界的重要知识来源就是图像信息,在很多场合,图像所传送的信息比其他形式的信息更丰富、真切和具体。人眼与大脑的协作使得人们可以获取、处理以及理解视觉信息,人类利用视觉感知外界环境信息的效率很高。事实上,据一些国外学者所做的统计,人类所获得外界信息有80%左右是来自眼睛摄取的图像。由此可见,视觉作为人类获取外界信息的主要载体,计算机要实现智能化,就必须能够处理图像信息。尤其是近年来,以图形、图像、视频等大容量为特征的图像数据处理广泛应用于医学、交通、工业自动化等领域。

近年来,机器学习受到学术和工程上的广泛关注。在机器学习中,卷积神经网络(convolutionalneuralnetwork,cnn)是一种深度前馈人工神经网络,通常包括卷积层(convolutionlayer)、归一化层(normalizationlayer)、池化层(poolinglayer)和全连接层(full-connectedlayer),已成功地应用于图像识别。现在,cnn已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像并对图像进行分类等操作,因而得到了更为广泛的应用。

目标检测是图像处理、目标识别领域的重要内容,其主要任务为从一幅给定图像中定位目标和分类,其中基于滑窗搜索的方法在目标检测中得到广泛应用。但传统滑窗(slidingwindow)搜索技术存在缺点有:(1)窗口大小固定,分割图像的大小不会因为目标大小而改变;(2)若有多组大小不同滑动窗口同时工作,势必会增加计算量,影响效率;(3)当滑动步幅密集时,数据量增加,影响速度;当滑动步幅过大时,影响检测准确率。

综上所述,现有技术中对于目标检测的准确率和效率低的问题,尚缺乏有效的解决方案。



技术实现要素:

为了克服上述现有技术的不足,本发明提供了一种基于滑动窗口的目标检测位置矫正方法和装置,针对图像中单一目标,以卷积神经网络和滑动窗口为基础,给出了可组合、裁剪的定位方法,提高目标识别的准确度和速度。

本发明所采用的技术方案是:

本发明的第一目的是提供一种基于滑动窗口的目标检测位置矫正方法,该方法包括以下步骤:

设置滑动窗口的宽度和移动步幅,利用滑动窗口分割待检测目标的图像,得到若干个候选目标区域;

将所有候选目标区域送入cnn神经网络进行训练处理,得到所有候选目标区域的置信度;

选取置信度最大值与该最大值对应的索引区域为基准值;

利用位置矫正方法与基准值对候选目标区域进行裁剪和组合,形成新的目标区域。

进一步的,根据所有待检测物体的平均大小确定滑动窗口的宽度;滑动窗口的移动布幅小于等于滑动窗口宽度的一半。

进一步的,所述将所有候选目标区域送入cnn神经网络进行训练处理的步骤包括:

将与目标区域相关率小于阈值i的候选目标区域作为噪音,将与目标区域相关率大于阈值i的候选目标区域作为目标,分别输入到cnn神经网络中训练;

利用训练好的cnn神经网络得到所有候选目标区域的置信度。

进一步的,当噪音区域过多时,利用随机抽样方法随机删除多个噪音区域,或者删除相应训练集的图片。

进一步的,在cnn神经网络输出的所有置信度中,选取置信度最大值,将该置信度最大值与该置信度最大值对应的索引区域为基准值。

进一步的,根据滑动窗口的宽度与待检测目标的大小,将广度遍历的深度作为遍历约束条件,当广度遍历的最大深度小于等于2时进行位置矫正。

进一步的,所述利用位置矫正方法与基准值对候选目标区域进行裁剪和组合方法为:

以最大置信度对应索引区域为中心点区域;

设置区域强弱阈值t1、置信度激活阈值t2和置信度抑制阈值t3;

以中心点区域为原点,上下左右四个相邻区域为当前候选扩散区域;

以广度遍历算法为基础,将当前扩散区域置信度与索引区域中心点最大置信度做差,并将扩散区域置信度与置信度激活阈值、置信度抑制阈值分别进行比较;

若当前扩散区域某个方向置信度与最大置信度的差值小于t1,且扩散区域置信度大于t2,则将中心区域向该扩散区域对应的方向扩大边界;

若当前扩散区域某个方向置信度小于t3,则说明目标区域在该方向没有延伸,待检测目标在最大值对应的索引区域内,将中心区域对应方向反方向缩小。

本发明的第二目的是提供一种基于滑动窗口的目标检测位置矫正装置,该装置包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤,包括:

设置滑动窗口的宽度和移动步幅,利用滑动窗口分割待检测目标的图像,得到若干个候选目标区域;

将所有候选目标区域送入cnn神经网络进行训练处理,得到所有候选目标区域的置信度;

选取置信度最大值与该最大值对应的索引区域为基准值;

利用位置矫正方法与基准值对候选目标区域进行裁剪和组合,形成新的目标区域。

与现有技术相比,本发明的有益效果是:

(1)本发明根据待检测物体的平均大小设置滑动窗口的大小,使得在组合和裁剪目标区域时有较好的弹性,能够在较少的组合、裁剪操作下检测出目标所在的区域;并将移动步幅设置为低于滑动窗口的大小的一半,保证窗口有较大重叠区的前提下,提高目标检测的速度;

(2)本发明以广度遍历方法为基础,根据滑动窗口大小与检测目标真实大小添加广度遍历的深度为遍历约束条件,即广度遍历最大深度小于等于2时进行组合、裁剪,进而将待检测目标的高矮胖瘦进行描述,而非是一个原始的正方形,有效提高目标检测的准确度。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1是本发明实施例一的基于滑动窗口的目标检测位置矫正方法流程图;

图2是本发明实施例二的基于滑动窗口的目标检测位置矫正方法流程图;

图3是图像候选目标区域属性值示意图;

图4是最大深度示意图;

图5是裁剪候选区域示例图;

图6是组合候选区域示例图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

正如背景技术所介绍的,现有滑窗(slidingwindow)搜索技术存在窗口大小固定,分割图像的大小不会因为目标大小而改变,若有多组大小不同滑动窗口同时工作,势必会增加计算量,影响效率,当滑动步幅密集时,数据量增加,影响速度,当滑动步幅过大时,影响检测准确率的不足。

针对上述的不足,本发明实施例一提供了一种基于滑动窗口的目标检测位置矫正方法。如图1所示,该方法包括如下步骤:

s101,设置滑动窗口大小和移动步幅,利用滑动窗口分割图像。

先采集待检测物体的图像;然后设置滑动窗口大小和移动步幅。

设置滑动窗口大小时,通常默认滑动窗口为方形,滑动窗口的大小要依据检测物体的平均大小而确定,不应该选择过大,虽然大的窗口会在一定程度内减少窗口数量,提高检测速度,但滑动窗口过大,导致窗口内噪音过多,影响识别准确度。

选取移动步幅s时,移动步幅s要低于滑动窗口的一半,即0<s<=slide.width,slide.width为滑动窗口的宽度;保证滑动窗口有较大重叠区,提高识别准确度。

设置好滑动窗口大小和移动步幅后,利用滑动窗口开始分割目标检测的原始图像,得到若干个候选目标区域。

s102,将得到的所有候选目标区域送入cnn神经网络进行训练处理,得出所有候选目标区域的置信度。

在训练cnn神经网络权重时,将除目标区域以外的所有滑动窗口所得候选目标区域做为噪音,将与目标区域相关率iou(intersectionoverunion)大于阈值i的所有滑动窗口所得候选目标区域做为目标,放入cnn神经网络中训练。

所述目标区域相关率iou的表达式为:

式中,areaofoverlap表示正确结果区域与检测结果区域交集;areaofunion表示正确结果区域与检测结果区域并集;detectionresult表示目标检测位置;groundtruth表示目标真实位置。

当噪音区域过多时,可以利用随机抽样random()方法随机删除一些噪音区域,或者减少相应训练集的一些图片。

其中阈值i(0<i<1)的选择需要根据实际训练情况而调整,即向有较高准确率的方向做出调整。

最后,做为cnn神经网络的输出是滑动窗口所得所有候选目标区域的置信度score[1]、score[2]、...、score[n]。

s103,在cnn神经网络输出的所有置信度中,选择最大值max_score=max{score[1],score[2]...score[n]}与最大值对应的索引区域v∈(1,n)为基准值。

本实施例中,在cnn神经网络输出的所有置信度中选择最大值,即选出待检测目标最有可能在的位置,然后以此位置为中心点,再进行调整。

在滑动窗口顺序分割原始图像的时候,有一个数组bounds也顺序的记录了每一个分割后图像块的信息,其与score[i]是一一对应的。假如socre[v]为最大值,那么bounds[v]就是对应的图像块,称为索引区域。

s104,利用位置矫正方法bsf_revise_bounds()与基准值max_score、v对候选目标区域进行裁剪和组合,形成新的目标区域。

本发明以bfs(breadth-firstsearch)广度遍历为基础,根据滑动窗口大小与检测目标真实大小添加广度遍历的深度extent为遍历约束条件,即广度遍历最大深度extent<=2来进行位置矫正。

该裁剪和组合方法具体为:

以最大置信度max_score对应索引区域为中心,以广度遍历bfs方法向四周扩散;

将扩散区域置信度score[w]与索引区域的最大置信度max_score比较;其中本发明设置了三个阈值,分别为t1、t2、t3,t1表示扩散区域置信度score[w]与最大置信度max_score的差值,表示两个区域的联系强弱;t2为置信度激活阈值,若当前扩散区域置信度score[w]大于t2,表示当前区域可信度较高;t3为置信度抑制阈值,若当前扩散区域置信度score[w]小于t3,表示当前区域置信度较低;t1、t2、t3大小设置可以根据cnn神经网络得出的实际置信度与检测目标的联系灵活设置。

若当前扩散区域置信度score[w]与最大区域置信度max_score差值小于t1且当前扩散区域置信度score[w]大于t2,说明扩散区域与索引区域联系密切,且扩散区域w为高可信度区域。此时应向扩散区域w对应方向扩大边界,并考虑与扩散区域w相邻的周围区域是否还包含目标区域。

若当前扩散区域置信度score[w]小于t3,则说明w区域与目标区域联系较弱,且目标区域在max_score对应候选区域内,此时应缩减扩散区域w对应方向的边界,同时放弃考虑扩散区域w对应方向的延伸。

s105,输出矫正后目标区域坐标。

本发明实施例提出了一种基于滑动窗口的目标检测位置矫正方法,根据检测物体的大小设置滑动窗口的大小,使得分割图像的大小会因为目标的大小而改变;并将移动布幅设置为低于滑动窗口的大小的一半,保证窗口有较大重叠区,提高识别准确度;根据滑动窗口大小与检测目标真实大小添加广度遍历的深度为遍历约束条件,即广度遍历最大深度小于等于2时进行位置矫正,有效提高目标检测的准确度。

为了让本领域的技术人员更好地了解本发明,本发明实施例二提供了一种基于滑动窗口的目标检测位置矫正方法,如图2所示,该方法包括以下步骤:

s201,选取滑动串口的宽度slide.width和移动步幅s,利用滑动窗口对待检测物体的图像进行处理,得到1~n候选区域。

s202,将得到的所有候选区域送入cnn神经网络进行训练,使用训练好的cnn神经网络得到候选区域置信度score[i],如图3所示。

s203,采用最大值max方法在所有候选区域置信度score[i]中选取最大置信度max_score以及该最大置信度对应索引区域v;将该最大置信度max_score和索引区域v作为基准值。

s204,调用位置矫正方法bfs_revise_bounds()矫正候选区域的边界区域。

bfs_revise_bounds()位置矫正方法具体为:

s2041,初始化队列q;初始化候选区域深度extent[1,2,3....n]=∞。

队列q是一个一维队列具有先进先出的特点,存放当前广度遍历的中心点,刚开始存放最大值对应的区域v,extent=0,然后经过循环,会存放v的左、上、右、下几个点,组合、裁剪结束后,此时循环结束extent=1,进入下一次循环;下一次循环以左点为中心点,分别加入左点的左、上、右、下,组合、裁剪,以上为中心,分别加入上点的左、上、右、下,裁剪组合,依次循环,直到下点的左、上、右、下遍历完成,此时extent=2;队列q里没有新的元素了,退出循环。

extent数组存放索引点距离最大值v的距离,初始化为正无穷。

s2042,访问最大置信度对应索引区域点v;visited[v]=1,extent[v]=0;将中心点v入队列q中。

visited数组表示区域是否访问过,若visited[v]=1表示访问过;visited[v]=0;表示未访问过。

s2043,若队列q非空时,继续执行,否则跳转到s20413。

s2044,队列q的队头元素出队,赋值给temp。

s2045,w等于temp的左\上\右\下索引点。

左\上\右\下的意思是每次访问一个,只是访问的顺序是不一样的,比如第一次访问左,第二次访问上,第三次访问右,第四次访问下。这是循环语句里的,若第一次左不存在,就访问上。

s2046,若w存在,则向下执行,否则跳转到s2044;

s2047,若w未为访问,则向下执行,否则跳转到s20412;

s2048,访问w,将visited[w]设置为1,extent[w]=extent[w]+1;如图4所示;

s2049,若扩散区域w的置信度score[w]与最大置信度max_score的差值max_score-score[w]≤t1并且扩散区域w的置信度score[w]≥t2,则从中心点v对应区域左/上/右/下边界扩大到扩散区域w对应左/上/右/下边界,如图5所示;

s20410,若extent[w]<2,则w入队列q;

s20411,若扩散区域w的置信度score[w]≤t3,并且扩散区域w左/右/上/下边界没扩大;则最大置信度max_score对应区域左/右/上/下边界缩小d1;如图6所示;

s20412,w=v的下一个(上\右\下)相邻置信点,跳转到s2046;直到w不存在,跳转到s2044;

s20413,返回修正后目标区域边界坐标。

其中,t1、t2、t3大小设置可以根据cnn神经网络得出的实际置信度与检测目标的联系灵活设置,d1根据滑动窗口大小与目标物体大小灵活设置。

本发明实施例提出了一种基于滑动窗口的目标检测位置矫正方法,根据检测物体的平均大小确定滑动窗口的大小,移动步幅低于窗口的一半,保证窗口有较大重叠区,提高识别准确度;以最大置信度对应区域为中心,以bfs方法向四周扩散,根据cnn神经网络得出的实际置信度与检测目标的联系灵活设置阈值t1、t2、t3来矫正边界区域,提高目标识别的准确度和速度。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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