基于SSD的目标检测方法、装置、终端及介质与流程

文档序号:24705868发布日期:2021-04-16 13:06阅读:91来源:国知局
基于SSD的目标检测方法、装置、终端及介质与流程
基于ssd的目标检测方法、装置、终端及介质
技术领域
1.本申请涉及目标检测技术,尤其是涉及一种基于ssd的目标检测方法、装置、终端及介质。


背景技术:

2.ssd(single shot multibox detector,单次多框检测器)目标检测方法使用了单深度神经网络,推理过程中会产生一系列的bounding boxes(目标框),以及每一个box(框)的对应每个分类目标的confidence(置信度)得分。
3.相关技术中,ssd目标检测方法的推理过程中生成数万个的mutilclass scores(多类分数)和bboxregression(bounding box regression,边界框回归数值),bboxregression和default boxes(默认框)计算得得出每个目标的location(位置)。mutilclassscores进行softmax运算后得到每个目标分类的confidence。当目标分类的confidence得分大于设置的置信度阈值,就输出该目标的location和confidence,从而过滤掉confidence未达到对应阈值的location。
4.然而,由于用常规的softmax运算方法计算目标分类的confidence时,n分类的ssd目标检测中每个mutilclassscores需要做n次e
x
运行,每帧图像总共大约需要数十万次的e
x
运算;而e
x
运算通常是用泰勒无穷级数展开实现,这就导致softmax运算耗时较大。


技术实现要素:

5.本申请实施例中提供一种基于ssd的目标检测方法、装置、终端及介质,用于克服相关技术中softmax运算耗时较大的问题。
6.本申请实施例第一方面提供一种基于ssd的目标检测方法,包括:
7.根据各目标分类器的置信度阈值确定共同阈值;
8.根据所述目标分类器的得分与所述背景分类器的得分做减法运算,得到减法运算结果;
9.将所述减法运算结果大于所述共同阈值的目标分类器的相关信息输出。
10.本申请实施例第二方面提供一种基于ssd的目标检测装置,包括:
11.第一处理单元,用于根据各目标分类器的置信度阈值确定共同阈值;
12.第二处理单元,用于根据所述目标分类器的得分与所述背景分类器的得分做减法运算,得到减法运算结果;
13.第三处理单元,用于将所述减法运算结果大于所述共同阈值的目标分类器的相关输出。
14.本申请实施例第三方面提供一种终端,包括:
15.存储器;
16.处理器;以及
17.计算机程序;
18.其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如前述所述的方法。
19.本申请实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如前述所述的方法。
20.本申请实施例提供一种基于ssd的目标检测方法、装置、终端及介质,通过进行运算量相对较小的减法运算,将一部分目标过滤掉,从而利于减少后续过程的耗时,利于提高目标过滤及检测的效率,且能够确保过滤效果。
附图说明
21.此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
22.图1为一示例性实施例提供的方法的流程示意图;
23.图2为一示例性实施例提供的装置的结构框图。
具体实施方式
24.为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
25.相关技术中,ssd目标检测方法的推理过程中生成数万个的mutilclass scores(多类分数)和bbox regression(bounding box regression,边界框回归值),bbox regression和default boxes(默认框)计算得得出每个目标的location(位置,具体可以通过检测框来体现)。mutilclass scores进行softmax运算后得到每个目标分类的confidence。当目标分类的confidence得分大于设置的阈值,就输出该目标的location和confidence,从而过滤掉confidence未达到对应阈值的location。
26.其中,softmax运算过程如下:
27.根据如下公式确定mutilclassscores中所有分类器中的最大值xmax,
28.x
max
=max(x0…
x
n
‑1),
29.其中,x
i
为mutilclassscores中第i类分类器的得分,i=0,1,2,

n

1;
30.根据如下公式确定每个分类器的confidence,
[0031][0032]
其中,c
i
为mutilclassscores中第i类分类器的置信度;
[0033]
根据每个分类器的置信度阈值t
i
,过滤掉所有目标分类器的confidence都没超过对应阈值的location。
[0034]
然而,由于用常规的softmax运算方法计算目标分类的confidence时,n分类的ssd目标检测中每个mutilclass scores需要做n次e
x
运行,每帧图像总共大约需要数十万次的e
x
运算;而e
x
运算通常是用泰勒无穷级数展开实现,这就导致softmax运算耗时较大。
[0035]
为了克服上述技术问题,本申请提供一种基于ssd的目标检测方法、装置、终端及
介质,通过进行运算量相对较小的减法运算,将大部分不符合要求的目标过滤掉,从而利于减少后续过程的耗时,利于提高目标过滤及检测的效率,且能够确保过滤效果。
[0036]
下面结合附图对本实施例提供的目标检测方法的功能及实现过程进行举例说明。
[0037]
图1为一示例性实施例提供的方法的流程示意图。
[0038]
本实施例提供的基于ssd的目标检测方法,如图1所示,包括:
[0039]
s101、根据各目标分类器的置信度阈值确定共同阈值;
[0040]
s102、根据目标分类器的得分与背景分类器的得分做减法运算,得到减法运算结果;
[0041]
s103、将减法运算结果大于共同阈值的目标分类器相关信息输出。
[0042]
在步骤s101中,在分析softmax运算过程中发现,只要快速过滤掉不存在c
i!=0
>t
i
的mutilclassscores,就能达到加速的目的。其中,i=0,1,

n

1;n≥2。其中i=0时,对应的0分类器是背景分类,不用计算。
[0043]
分类器数量可以分为2和大于2两种情况处理。下面分别对两种情况进行举例说明。
[0044]
在分类器的总数量大于2时,也即在述目标分类器及背景分类器的总数量大于2时,根据各目标分类器的置信度阈值确定共同阈值。其中,背景分类器可对应于图片的背景;目标分类器分类器可对应于图片中背景之外设定目标的内容,例如对应于图片中的行人或车辆等。
[0045]
具体地,在分类器的总数量大于2时,根据如下公式确定共同阈值,
[0046]
t=г
>2
(t0~t
n
‑1)
[0047]
其中,t表示共同阈值,t
i
表示第i个目标分类器的置信度阈值,i=0,1,2

n

1;该公式表示在分类器的总数量大于2时,以目标分类器的置信度阈值为自变量的伽玛函数关系。
[0048]
在分类器的总数量为2时,两个分类器分别为目标分类器(1分类器)及背景分类器(0分类器)。其中,目标分类器为1个。
[0049]
步骤s101包括:
[0050]
在分类器的总数量为2时,根据目标类器的置信度阈值确定共同阈值,
[0051]
t=г2(t0~t1)
[0052]
其中,t表示共同阈值,t0、t1表示目标分类器的置信度阈值;t0表示0分类器的置信度阈值;t1表示1分类器的置信度阈值;该公式表示在分类器的总数量为2时,以目标分类器的置信度阈值为自变量的伽玛函数关系。
[0053]
在s102中,在分类器的总数量大于2时,目标分类器的数量大于等于2;根据目标分类器的得分与背景分类器的得分做减法运算,得到减法运算结果,具体可包括:
[0054]
获取目标分类器的得分;
[0055]
分别获取各目标分类器的得分与背景分类器的得分的差值,根据差值确定减法运算结果。
[0056]
在分类器的总数量大于2时,可根据如下公式确定分类器i的置信度ci,
[0057][0058]
其中,x
i
为mutilclassscores中第i类分类器的得分;x
max
=max(x0,

,x
n
‑1)。
[0059]
经分析发现存在以下关系:
[0060]
满足c
i!=0
>t
i
的mutilclassscores肯定满足x
i!=max

x
max
>г1(t
i
),
[0061]
满足x
i!=max

x
max
>г1(t
i
)肯定满足x
i!=0

x0>t
[0062]
可选地,对于大于2分类的ssd目标检测模型,mutilclassscores用下面三个公式依次过滤:
[0063]
x
i!=0

x0>t;
[0064]
x
i!=max

x
max
>г1(t
i
)
[0065]
c
i!=0
>t
i

[0066]
其中,x
i!=0
表示非0类分类器的得分;x
i!=max
表示去掉得分最大的分类器之后的分类器的得分;c
i!=0
表示非0类分类器的置信度。
[0067]
也即,x
i!=0
表示除去0类分类器之外的第i个分类器的得分;x
i!=max
表示去掉得分最大的分类器之后的第i分类器的得分;c
i!=0
表示非除去0类分类器之外的第i个分类器的置信度。
[0068]
经进一步分析验证,满足x
i!=0

x0>t的mutilclassscores基本都满足c
i!=0
>t
i
,只有少数不符合要求的。
[0069]
对于较优的ssd目标检测模型,0类分类器也即背景分类和存在的目标分类器i的置信度confidence比较高,其他分类器的置信度很小;x
i!=0

x0>t基本上能做到完全过滤。
[0070]
由于t是常量,过滤掉一个mutilclassscores,只需要做n

1减法运算,替代了n

1次的e
x
指数运算,也即n分类下将每个mutilclassscores的n次e
x
运算简化为n

1次减法运算,从而加速了运算。
[0071]
步骤s102还可包括:
[0072]
在分类器的总数量为2时,获取目标分类器的得分与背景分类器的得分的差值,根据差值确定减法运算结果。
[0073]
目标分类器(也即1分类器)的置信度c1的计算公式如下:
[0074][0075]
经研究分析存在下面关系:
[0076]
x1‑
x0>t等价于c1>t1。
[0077]
其中,t=г2(t0~t1)
[0078]
也即:
[0079]
满足x1‑
x0>t的mutilclassscores也能满足c1>t1;
[0080]
2分类下,将每个mutilclassscores的2次e
x
运算简化为1次减法运算。
[0081]
在步骤s103中,将减法运算结果大于共同阈值的目标分类器的相关信息输出,也即将减法运算结果小于或等于共同阈值的目标分类器过滤掉。其中,相关信息可以包括:目
标分类器的confidence及location。
[0082]
在步骤s103之后,再进行softmax运算时,能大大减少softmax运算的运算量,从而提高目标过滤及检测的效率。
[0083]
换句话说:本实施例提供的方法可以作为softmax运算之前的初步过滤,将大部分不符合要求的mutilclassscores过滤掉,大大减少了后续softmax运算的运算量,从而既利于确保过滤效果,又能大大减少耗时,利于提高目标过滤及检测的效率。
[0084]
下面对结合示例来说明。
[0085]
示例1:获取人脸图片信息,经卷积神经网络处理,得到一系列的mutilclassscores和bounding box regression,此外还有固定的default boxes。这些mutilclassscores中每组包括背景分类器及人脸分类器,确定分类器数量为2,背景分类器的得分为x0,人脸分类器的得分为x1;每组mutilclassscores都通过x1‑
x0>t来过滤,过滤后剩下的mutilclassscores,再进行softmax运算,得到目标的confidence得分;从所有的bounding box regressiondefault boxes中分别取出对应的bounding box regression和default boxes,根据取出的bounding box regressio及default boxes确定location;在目标是人脸图片时,确定的location为人脸框。根据人脸图像的confidence得分和location,通过nms算法去重框,得到最后的location。采用本示例的方法,无需进行大量softmax运算,只需要对过滤后目标分类器进行softmax运算即可,大大减少了softmax运算的耗时。
[0086]
示例2:获取行人车辆图片信息,经卷积神经网络处理,得一系列的mutilclassscores和bounding box regression,此外,还有固定的default boxes。这些mutilclassscores中每组包括背景分类器、行人分类器及车辆分类器,分类器数量大于2,背景分类器的得分为x0,行人分类器的得分为x1,车辆的得分是x2;每组mutilclassscores若x1‑
x0>t、x2‑
x0>t都不能满足就筛掉,过滤后剩下的mutilclassscores,再进行softmax运算,得到行人和车辆的confidence得分;将行人confidence小于t1,车辆confidence小于t2的目标过滤掉,再从bounding box regression和default boxes中分别取出该对应的bounding box regression和default boxes,得出确定的行人框和车辆框,通过nms算法去重框,得到最终的行人框和车辆框。采用本示例的方法,无需进行大量的softmax运算,只需要对过滤后剩下的mutilclassscores进行softmax运算即可,大大减少了softmax运算的耗时。
[0087]
本实施例提供一种基于ssd的目标检测方法,通过进行运算量相对较小的减法运算,将一部分目标过滤掉,从而利于减少后续过程的耗时,利于提高目标过滤及检测的效率,且能够确保过滤效果。
[0088]
本实施例还提供一种基于ssd的目标检测装置,其是与前述示例的方法对应的产品。下面结合附图对本实施例提供的装置的结构及功能进行举例说明,其中与前述实施例相同之处,本实施例此处不再赘述。
[0089]
图2为一示例性实施例提供的装置的结构框图。
[0090]
本实施例提供的基于ssd的目标检测装置,如图2所示,包括:
[0091]
第一处理单元21,用于根据各目标分类器的置信度阈值确定共同阈值;
[0092]
第二处理单元22,用于根据目标分类器的得分与背景分类器的得分做减法运算,
得到减法运算结果;
[0093]
第三处理单元23,用于将减法运算结果大于共同阈值的目标分类器的相关信息输出。
[0094]
在其中一种可能的实现方式中,第一处理单元21具体用于:
[0095]
在目标分类器及背景分类器的总数量大于2时,根据如下公式确定共同阈值,
[0096]
t=г
>2
(t0~t
n
‑1)
[0097]
其中,t表示共同阈值;t
n
‑1表示第n

1目标分类器的置信度阈值。
[0098]
在其中一种可能的实现方式中,第二处理单元具体用于:
[0099]
获取目标分类器的得分;
[0100]
分别获取各目标分类器的得分与背景分类器的得分的差值,根据差值确定减法运算结果。
[0101]
在其中一种可能的实现方式中,第一处理单元21具体用于:
[0102]
在目标分类器及背景分类器的总数量等于2时根据如下公式确定共同阈值,
[0103]
t=г2(t0~t1)
[0104]
其中t表示共同阈值,t1表示目标分类器的置信度阈值。
[0105]
在其中一种可能的实现方式中,第二处理单元22具体用于:
[0106]
获取目标分类器的得分的连乘值;
[0107]
获取述连乘值得分与背景分类器的得分的差值,根据差值确定减法运算结果。
[0108]
在其中一种可能的实现方式中,目标分类器的相关信息,包括:目标分类器的置信度及位置。
[0109]
本实施例提供一种基于ssd的目标检测装置,通过进行运算量相对较小的减法运算,将一部分目标过滤掉,从而利于减少后续过程的耗时,利于提高目标过滤及检测的效率,且能够确保过滤效果。
[0110]
本实施例提供一种终端设备,包括:
[0111]
存储器;
[0112]
处理器;以及
[0113]
计算机程序;
[0114]
其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现相应的方法。其具体实现可参见方法实施例,在此不再赘述。
[0115]
存储器用于存储计算机程序,处理器在接收到执行指令后,执行计算机程序,前述相应实施例揭示的流过程定义的装置所执行的方法可以应用于处理器中,或者由处理器实现。
[0116]
存储器可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non

volatile memory),例如至少一个磁盘存储器。存储器可通过至少一个通信接口(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0117]
处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,实施例一揭示的方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、
网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的相应方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0118]
结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0119]
本实施例提供一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以相应的方法。其具体实现可参见方法实施例,在此不再赘述。
[0120]
需要说明的是:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。在这里示出和描述的所有示例中,除非另有规定,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
[0121]
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段或代码的一部分,单元、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0122]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0123]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0124]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0125]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0126]
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0127]
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1