目标检测方法及系统与流程

文档序号:18303126发布日期:2019-07-31 10:27阅读:535来源:国知局
目标检测方法及系统与流程

本公开涉及检测技术领域,具体而言,涉及一种目标检测方法及系统。



背景技术:

目标检测作为计算机视觉较为重要的任务之一,在实际应用的过程中扮演着非常重要的角色,通过目标检测能够获知目标所在的位置信息,方便后续的进一步处理。经研究发现,目标检测方法大多数都需要强大的计算能力并且非常耗时,而生产生活中计算能力通常都非常有限,对时间的要求较为苛刻,因此,需要对目标检测方法进行改进。



技术实现要素:

本公开提供一种目标检测方法及系统。

第一方面,本公开提供了一种目标检测方法,包括:

获得针对待检测目标进行拍摄得到的实时视频流;

使用预存的卷积神经网络对所述实时视频流中每隔设定帧的图像进行检测,得到待检测目标的最新位置;

将当前帧图像转换为灰度图,其中,所述当前帧图像为所述实时视频流中当前被所述卷积神经网络进行检测以确定所述待检测目标的最新位置的图像;

对所述灰度图进行图像分析,计算所述待检测目标相较于上一帧图像位置移动的像素点数量;

使用光流金字塔计算所述当前帧图像转换得到的灰度图和上一帧图像转换得到的灰度图中所述待检测目标位置移动的每个像素点的位移;

根据计算得到的所述待检测目标位置移动的每个像素点的位移分析得到所述待检测目标在所述当前帧图像的移动偏移,基于所述移动偏移对所述卷积神经网络的检测规则进行修正。

可选地,所述方法还包括构建所述卷积神经网络的步骤,该步骤包括:

将设定尺寸的三通道图像作为输入,堆叠多个block结构,得到待训练的网络结构;其中,每个所述block结构包括卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu和深度卷积deepwise操作;

采用随机梯度下降法,基于最小化损失函数训练所述网络结构,得到检测模型;

去掉所述检测模型中的批归一化bn、比例缩放和位移scale操作之后,将检测模型进行合并移植,得到用以进行位置检测的卷积神经网络。

可选地,堆叠的多个block结构为16个;每个所述block结构至少由卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu、深度卷积deepwise、批归一化bn、比例缩放和位移scale、线性整流函数relu操作依次组成;

16个所述block的卷积的通道数分别为16、16、32、32、96、96、96、96、128、128、128、128、160、160、160、160、160、160、160、160、160、160、160、160、320、320、128、160、96、128、96、128,所述深度卷积deepwise操作的分组数等于所述深度卷积deepwise操作的通道数;

在block13至block16分别接两个卷积层,该两个卷积层包括用来得到目标位置的目标位置卷积层和用来得到目标类别的目标类别卷积层,其中,目标位置卷积层通道上的每个像素点的值对应一个预先定义好的位置信息,通过像素点对应通道的输出的回归值用预测框回归出目标位置;目标类别卷积层通道上的每个像素点的值代表该目标像素点对应位置的类别概率,不同通道代表不同的类别。

可选地,损失函数根据以下公式计算得到:

其中,lloc(x,l,g)为位置损失,lconf(x,c)为分类损失,α=0.8,位置损失lloc(x,l,g)根据以下公式计算得到:

其中,为第i个预测框与第j个真实框关于类别k是否匹配的值,匹配则为1,不匹配则为0;为预测框,为标注的真实框,根据以下公式计算得到:

分类损失lconf(x,c)根据以下公式计算得到:

其中,p为类别,根据以下公式计算得到:

可选地,对所述灰度图进行图像分析,计算所述待检测目标相较于上一帧图像位置移动的像素点数量的步骤,包括:

针对所述灰度图中的每个像素,以该像素为中心像素,获得第一半径的圆上的待比对像素;

计算各所述待比对像素中、与所述中心像素的像素差超过设定阈值的像素的个数;

判断像素差超过设定阈值的像素的个数是否达到设定数量,若达到所述设定数量,则将该个数进行记录;

分析得到以该中心像素为中心、第二半径的圆上进行记录的所有个数中的最大值,保留所述第二半径的圆上个数为最大值的相应像素,其中,所述第二半径大于所述第一半径;

统计所述灰度图中保留的像素数量,将保留的像素数量作为估算所述待检测目标位置移动的像素点数量。

可选地,计算各所述待比对像素中、与所述中心像素的像素差超过设定阈值的像素的个数,判断像素差超过设定阈值的像素的个数是否达到设定数量,若达到所述设定数量,则将该个数进行记录的步骤,包括:

判断第一数量个待对比像素与所述中心像素的像素差的绝对值是否超过设定阈值,若均未超过所述设定阈值,则结束对该中心像素的处理;

若所述第一数量个待对比像素中存在待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则判断第二数量个待对比像素与所述中心像素的像素差的绝对值是否超过所述设定阈值,若所述第二数量个待对比像素中低于设定比例的待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则结束对该中心像素的处理;

若所述第二数量个待对比像素中超过设定比例的待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则计算第三数量个待对比像素与所述中心像素的像素差的绝对值是否超过设定阈值,若所述第三数量个待对比像素中低于设定数量的待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则丢弃该中心像素;

若所述第三数量个待对比像素中存在设定数量的待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则对与所述中心像素的像素差的绝对值超过所述设定阈值的待比对像素的个数进行记录;

其中,所述第一数量小于所述第二数量,所述第二数量小于所述第三数量,所述第三数量等于所述第一半径的圆上的待比对像素的总量。

可选地,统计所述灰度图中保留的像素数量,将保留的像素数量作为估算所述待检测目标位置移动的像素点数量的步骤,包括:

统计所述灰度图中保留的像素数量,判断统计得到的像素数量是否达到设定量;

若达到所述设定量,则将保留的像素数量作为估算所述待检测目标位置移动的像素点数量;

若未达到所述设定量,则在保留有像素的区域进行均匀撒点,使得撒点之后所述灰度图中保留的像素数量达到所述设定量,将撒点之后所述灰度图中的像素数量作为估算所述待检测目标位置移动的像素点数量。

第二方面,本公开提供一种目标检测系统,包括:

视频流获得模块,用于获得针对待检测目标进行拍摄得到的实时视频流;

图像检测模块,用于使用预存的卷积神经网络对所述实时视频流中每隔设定帧的图像进行检测,得到待检测目标的最新位置;

图像转换模块,用于将当前帧图像转换为灰度图,其中,所述当前帧图像为所述实时视频流中当前被所述卷积神经网络进行检测以确定所述待检测目标的最新位置的图像;

图像处理模块,用于对所述灰度图进行图像分析,计算所述待检测目标相较于上一帧图像位置移动的像素点数量;使用光流金字塔计算所述当前帧图像转换得到的灰度图和上一帧图像转换得到的灰度图中所述待检测目标位置移动的每个像素点的位移;根据计算得到的所述待检测目标位置移动的每个像素点的位移分析得到所述待检测目标在所述当前帧图像的移动偏移,基于所述移动偏移对所述卷积神经网络的检测规则进行修正。

可选地,所述目标检测系统还包括卷积神经网络建立模块,所述卷积神经网络建立模块用于通过以下步骤构建所述卷积神经网络:

将设定尺寸的三通道图像作为输入,堆叠多个block结构,得到待训练的网络结构;其中,每个所述block结构包括卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu和深度卷积deepwise操作;

采用随机梯度下降法,基于最小化损失函数训练所述网络结构,得到检测模型;

去掉所述检测模型中的批归一化bn、比例缩放和位移scale操作之后,将检测模型进行合并移植,得到用以进行位置检测的卷积神经网络。

可选地,堆叠的多个block结构为16个;每个所述block结构至少由卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu、深度卷积deepwise、批归一化bn、比例缩放和位移scale、线性整流函数relu操作依次组成;

16个所述block的卷积的通道数分别为16、16、32、32、96、96、96、96、128、128、128、128、160、160、160、160、160、160、160、160、160、160、160、160、320、320、128、160、96、128、96、128,所述深度卷积deepwise操作的分组数等于所述深度卷积deepwise操作的通道数;

在block13至block16分别接两个卷积层,该两个卷积层包括用来得到目标位置的目标位置卷积层和用来得到目标类别的目标类别卷积层,其中,目标位置卷积层通道上的每个像素点的值对应一个预先定义好的位置信息,通过像素点对应通道的输出的回归值用预测框回归出目标位置;目标类别卷积层通道上的每个像素点的值代表该目标像素点对应位置的类别概率,不同通道代表不同的类别。

第三方面,本公开提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述目标检测方法。

第四方面,本公开提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在电子设备执行上述目标检测方法。

本公开提供的目标检测方法及系统,通过对每隔设定帧的图像进行检测,降低了进行检测的图像数量,从而减小了计算量,进而提升了检测效率。基于计算得到的像素点的位移分析得到待检测目标的移动偏移,进而基于移动偏移对卷积神经网络的检测规则进行修正,确保了在减少计算量,提升检测效率的情况下,检测的准确性。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本公开提供的一种应用场景示意图。

图2为本公开提供的一种目标检测方法的流程示意图。

图3为图2中步骤s22的一种子流程示意图。

图4为图2中步骤s24的一种子流程示意图。

图5为本公开提供的一种目标检测系统的方框示意图。

图标:10-电子设备;11-存储器;12-处理器;13-网络模块;20-目标检测系统;21-视频流获得模块;22-图像检测模块;23-图像转换模块;24-图像处理模块;25-卷积神经网络建立模块。

具体实施方式

现今,生产生活中计算能力通常都非常有限,而对目标检测时间的要求较为苛刻,对功耗也有很大的要求,例如在很多实时场景中,需要快速、高效的对视频流数据进行处理。因此,目前的目标检测方案在实时目标检测中还存在着很多问题,具体表现为:

目前的目标检测方法所使用的模型体积较大,例如几百mb的模型在目标检测领域已经司空见惯,使得在存储空间有限的移动设备上部署相应模型较为困难,特别是在嵌入式设备中,较难实现体积较大的模型的部署,而对时间要求严格的场景中嵌入式设备又占绝大多数。

目前的目标检测方法较为耗时,例如在专用的图形处理器中单帧处理超过百毫秒的时间,而绝大多数场景中都只有普通的通用处理器,这使得实时处理较为艰难。

为了改善上述问题,发明人研究了多种实现方案,例如,可以考虑模型压缩,但压缩模型到能够实时检测的场景模型的准确度无法满足实际生产要求。又例如,可以基于视频的目标检测,利用帧与帧之间的上下文信息基于卷积神经网络不断修正检测的结果,该方案虽然能取得比较好的结果,但计算量大,功耗高,设备发热严重。又例如,可以采用检测网络和跟踪网络相结合的方案,但跟踪网络本身需要比较大计算量,而且跟踪网络容易产生丢失、位置偏移的情况。

基于上述研究,为了满足移动设备实时目标检测的要求,本公开提出了采用“小网络”检测目标位置,利用像素位移修正目标运动导致的位置变化的实现方案,显著降低计算量,达到低功耗实时目标检测的目的。

下面将结合本公开中附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

请参阅图1,是本公开提供的一种应用场景示意图。本公开中的目标检测方案可以应用于图1所示的电子设备10。如图1所示,电子设备10可以包括:存储器11、处理器12和网络模块13。

所述存储器11、处理器12以及网络模块13相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器11中存储有至少一个可以软件或固件(firmware)的形式存储于所述存储器11中的功能模块,所述处理器12通过运行存储在存储器11内的软件或硬件形式的功能模块,从而执行各种功能应用以及数据处理,即实现本公开中由电子设备10执行的目标检测方法。

其中,所述存储器11可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)、磁盘或固态硬盘等。其中,存储器11用于存储程序,所述处理器12在接收到执行指令后,执行所述程序。

所述处理器12可能是一种集成电路芯片,具有数据的处理能力。上述的处理器12可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等。可以实现或者执行本公开中的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

网络模块13用于通过网络建立电子设备10与外部通信终端之间的通信连接,实现网络信号及数据的收发操作。上述网络信号可包括无线信号或者有线信号。

可以理解,图1所示的结构仅为示意,电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

在上述基础上,本公开还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在电子设备10执行下述的目标检测方法。

请结合参阅图2,本公开提供一种目标检测方法,该方法可以由电子设备10实现。所述方法可以通过步骤s21至步骤s26实现。

步骤s21,获得针对待检测目标进行拍摄得到的实时视频流。

步骤s22,使用预存的卷积神经网络对所述实时视频流中每隔设定帧的图像进行检测,得到待检测目标的最新位置。

每隔设定帧的数量可能灵活设定,例如,可以每隔15帧、20帧、25帧、30帧、40帧等,本公开对此不作限制。

本公开中,预存的卷积神经网络可以有多种实现架构,只要能够检测得到待检测目标的最新位置即可。

请结合参阅图3,本公开提供了一种步骤s22的可选实现方式,步骤s22可以通过步骤s221至步骤s223实现。

步骤s221,将设定尺寸的三通道图像作为输入,堆叠多个block结构,得到待训练的网络结构。其中,每个所述block结构包括卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu和深度卷积deepwise操作。

设定尺寸可以灵活设定,例如,设定尺寸可以为2×200×200、3×300×300、4×400×400等,本公开对此不作限制。

在一种实施方式中,堆叠的多个block结构可以为16个。每个所述block结构至少由卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu、深度卷积deepwise、批归一化bn、比例缩放和位移scale、线性整流函数relu操作依次组成。16个所述block的卷积的通道数分别为16、16、32、32、96、96、96、96、128、128、128、128、160、160、160、160、160、160、160、160、160、160、160、160、320、320、128、160、96、128、96、128(一个bolck包括两个卷积,每个卷积分别对应一通道数,相应地,16个卷积对应32个通道数),所述深度卷积deepwise操作的分组数等于所述深度卷积deepwise操作的通道数。

本公开中,每个block包括卷积运算conv和深度卷积deepwise两个卷积,为了便于对“16个所述block的卷积的通道数分别为16、16、32、32、96、96、96、96、128、128、128、128、160、160、160、160、160、160、160、160、160、160、160、160、320、320、128、160、96、128、96、128”进行说明,假设将16个block按1至16进行顺序排序,那么,上述通道数指:block1中,卷积运算conv的通道数为16,深度卷积deepwise的通道数为16;block2中,卷积运算conv的通道数为32,深度卷积deepwise的通道数为32;block3中,卷积运算conv的通道数为96,深度卷积deepwise的通道数为96,以此类推,block16中,卷积运算conv的通道数为96,深度卷积deepwise的通道数为128。

在block13至block16分别接两个卷积层,该两个卷积层包括用来得到目标位置的目标位置卷积层和用来得到目标类别的目标类别卷积层。其中,目标位置卷积层通道上的每个像素点的值对应一个预先定义好的位置信息,通过像素点对应通道的输出的回归值用预测框回归出目标位置。目标类别卷积层通道上的每个像素点的值代表该目标像素点对应位置的类别概率,不同通道代表不同的类别。

步骤s222,采用随机梯度下降法,基于最小化损失函数训练所述网络结构,得到检测模型。

在一种实现方式中,损失函数根据以下公式计算得到:

其中,lloc(x,l,g)为位置损失,lconf(x,c)为分类损失,α=0.8,位置损失lloc(x,l,g)根据以下公式计算得到:

其中,为第i个预测框与第j个真实框关于类别k是否匹配的值,匹配则为1,不匹配则为0;为预测框,为标注的真实框,根据以下公式计算得到:

分类损失lconf(x,c)根据以下公式计算得到:

其中,p为类别,根据以下公式计算得到:

步骤s223,去掉所述检测模型中的批归一化bn、比例缩放和位移scale操作之后,将检测模型进行合并移植,得到用以进行位置检测的卷积神经网络。

步骤s23,将当前帧图像转换为灰度图。

其中,所述当前帧图像为所述实时视频流中当前被所述卷积神经网络进行检测以确定所述待检测目标的最新位置的图像。

步骤s24,对所述灰度图进行图像分析,计算所述待检测目标相较于上一帧图像位置移动的像素点数量。

请结合参阅图4,本公开提供了一种步骤s24的可选实现方式,步骤s24可以通过步骤s241至步骤s245实现。

步骤s241,针对所述灰度图中的每个像素,以该像素为中心像素,获得第一半径的圆上的待比对像素。

步骤s242,计算各所述待比对像素中、与所述中心像素的像素差超过设定阈值的像素的个数。

步骤s243,判断像素差超过设定阈值的像素的个数是否达到设定数量,若达到所述设定数量,则将该个数进行记录。

在一种实现方式中,步骤s242和步骤s243可以通过以下方式实现:判断第一数量个待对比像素与所述中心像素的像素差的绝对值是否超过设定阈值,若均未超过所述设定阈值,则结束对该中心像素的处理。若所述第一数量个待对比像素中存在待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则判断第二数量个待对比像素与所述中心像素的像素差的绝对值是否超过所述设定阈值,若所述第二数量个待对比像素中低于设定比例的待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则结束对该中心像素的处理。若所述第二数量个待对比像素中超过设定比例的待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则计算第三数量个待对比像素与所述中心像素的像素差的绝对值是否超过设定阈值,若所述第三数量个待对比像素中低于设定数量的待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则丢弃该中心像素。若所述第三数量个待对比像素中存在设定数量的待比对像素与所述中心像素的像素差的绝对值超过所述设定阈值,则对与所述中心像素的像素差的绝对值超过所述设定阈值的待比对像素的个数进行记录。

其中,所述第一数量小于所述第二数量,所述第二数量小于所述第三数量,所述第三数量等于所述第一半径的圆上的待比对像素的总量。

步骤s244,分析得到以该中心像素为中心、第二半径的圆上进行记录的所有个数中的最大值,保留所述第二半径的圆上个数为最大值的相应像素。

其中,所述第二半径大于所述第一半径。

步骤s245,统计所述灰度图中保留的像素数量,将保留的像素数量作为估算所述待检测目标位置移动的像素点数量。

在一种实现方式中,步骤s245可以通过以下步骤实现:统计所述灰度图中保留的像素数量,判断统计得到的像素数量是否达到设定量,若达到所述设定量,则将保留的像素数量作为估算所述待检测目标位置移动的像素点数量。若未达到所述设定量,则在保留有像素的区域进行均匀撒点,使得撒点之后所述灰度图中保留的像素数量达到所述设定量,将撒点之后所述灰度图中的像素数量作为估算所述待检测目标位置移动的像素点数量。

步骤s25,使用光流金字塔计算所述当前帧图像转换得到的灰度图和上一帧图像转换得到的灰度图中所述待检测目标位置移动的每个像素点的位移。

步骤s26,根据计算得到的所述待检测目标位置移动的每个像素点的位移分析得到所述待检测目标在所述当前帧图像的移动偏移,基于所述移动偏移对所述卷积神经网络的检测规则进行修正。

为了更为清楚地阐述本公开中的目标检测方法,现以下述场景为例,对本公开中的目标检测方法进行举例说明。本公开实施例通过“间歇性”检测与待检测目标所对应的像素帧的运动相结合的方式来达到低功耗实时检测的目的,相较于现有技术中的检测方案,显著降低了计算量和耗时。本公开可以由具有数据处理功能的电子设备执行,具体方案流程如下。

(1)将针对待检测目标进行拍摄得到的实时视频流持续输入到电子设备中,电子设备从而获得针对待检测目标进行拍摄得到的实时视频流。

(2)对于实时视频流中每隔设定帧如25帧的图像,利用训练好的卷积神经网络做一次检测得到待检测目标的最新位置。

其中,训练好的卷积神经网络可以预存在电子设备中,卷积神经网络可以通过以下方式构建。

(a)将设定尺寸如3×300×300的三通道图像作为输入,堆叠多个如16个block结构,得到待训练的网络结构。作为一种可选实现方式,每个block可以由卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu、深度卷积deepwise、批归一化bn、比例缩放和位移scale、线性整流函数relu等操作依次组成。16个block的卷积的通道数分别为16、16、32、32、96、96、96、96、128、128、128、128、160、160、160、160、160、160、160、160、160、160、160、160、320、320、128、160、96、128、96、128。deepwise操作的分组数group等于其通道数目。在block13至block16分别接两个卷积层,该两个卷积层分别用来得到目标位置(待检测目标的位置)和目标类别信息(待检测目标的类别信息)。用来得到目标位置的卷积层通道上的每个像素点的值对应一个预先定义好的位置信息。例如,假设px为位置矩形中心点x坐标,py为位置矩形中心点y坐标,pw为矩形宽度,ph为矩形高度,通过这个像素点对应通道的输出的回归值(dw,dh,dx,dy)用该框回归出目标位置(pred_x,pred_y,pred_w,pred_h),具体回归方法为:

gw=pw*exp(dw)

gh=ph*exp(dh)

gx=px+pw*dx

gy=py+ph*dy

pred_x=gx-gw*0.5f+0.5f

pred_y=gy-gh*0.5f+0.5f

pred_w=gw-1

pred_h=gh-1

用来得到目标类别的卷积层通道上的每个像素点的值代表该像素点对应位置的类别概率,不同通道代表不同的类别。

(b)根据步骤(a)设计的网络结构,采用随机梯度下降法,利用最小化损失函数的方式训练该网络结构,得到检测模型。

其中,损失函数定义为:

其中,lloc(x,l,g)为位置损失,lconf(x,c)为分类损失,α=0.8,位置损失的计算方式为:

其中,为第i个预测框与第j个真实框关于类别k是否匹配的值,匹配则为1,不匹配则为0;为预测框,为标注的真实框,的计算方式为:

分类损失的计算方式为:

当预测框i与真实框j关于类别p匹配,则p的概率预测越高,损失越小,如果预测框中没有包含真实物体,则预测为背景概率越高,损失越小,其中的计算方式为:

(c)通过最小化损失函数的方式得到了检测模型,去掉检测模型中的bn和scale操作之后,将模型进行合并移植,进而得到用以进行位置检测的卷积神经网络。

通过上述步骤得到卷积神经网络之后,将当前帧图像作为卷积神经网络的输入,即可得到待检测目标的位置。

(3)将当前帧图像转换为灰度图,当前帧图像为视频流中当前被卷积神经网络进行检测以确定待检测目标的最新位置的图像。

(4)通过以下方式得到用来计算待检测目标的位置移动的像素点。

(a)以步骤(3)得到的灰度图的每个像素为中心像素p,计算第一半径的圆上的待比对像素,例如,第一半径可以为3,待比对像素可以为半径为3的圆上的16个像素,为了便于后续说明,对该16个待对比像素进行编号,如以0度上的待对比像素编号为1,顺时针进行编号,得到编号为p1至p16的16个待对比像素。

(b)计算p1与p的像素差的绝对值,以及p9与p的像素差的绝对值是否超过设定阈值如20,如果均小于20,则p不作为后续计算的像素点;否则,进行下一步骤(c)。

(c)计算p1、p9、p5和p13与p的像素差的绝对值,若计算得到的绝对值中有至少3个超过设定阈值20,则进行下一步骤(d);否则p不作为后续计算的像素点。

(d)计算p1到p16这16个像素点与p的像素差的绝对值,若计算得到的绝对值中有至少10个超过设定阈值20,则将p作为进行后续计算的像素点,将计算得到的绝对值中超过设定阈值20的像素点个数计为s,进行下一步(e);否则丢弃p。

上述步骤(a)至步骤(d)描述了将灰度图中的一个像素作为中心像素p的处理流程,通过对灰度图中的每个像素均按上述方式进行处理,从而能够得到需要进行后续计算的所有像素点。

(e)判断以该p的5x5的邻域内是否存在多个符合条件(保留进行后续计算)的像素点,若有多个符合条件的像素点,则保留这些像素点中s值最高的像素点。

(5)若执行上述步骤(4)得到保留的像素点的个数少于设定量如30,则在该检测出目标的目标区域(保留有像素的区域)按照行列均匀撒点,使得撒点之后保留的像素数量达到设定量30,得到30个可以用于计算待检测目标的位移的像素点。

上述步骤(1)至步骤(5)描述了对实时视频流中每隔25帧的其中一幅图像进行处理后得到用于计算待检测目标的位移的像素点的实现流程,通过对实时视频流中每隔25帧的每幅图像均按上述方式进行处理,即可得到每幅图像中用于计算待检测目标的位移的像素点。

(6)使用光流金字塔计算当前帧图像转换得到的灰度图和上一帧图像转换得到的灰度图中,用于计算待检测目标的位移的每个像素点的位移。在一种可选的实施方式中,金字塔层级使用两级,搜索窗口大小定义为17×17,之后利用用于计算待检测目标的位移的每个像素点的位移的均值作为待检测目标的位置在当前帧图像的移动偏移,目标位置加上偏移,从而得到新的待检测目标的位置。

(7)重复上述步骤(3)至步骤(6),直到步骤(2)有间隔性的再次检测出待检测目标的位置信息。其中,检测为隔25帧做一次,但是这25帧之间的时间会利用步骤(3)至步骤(6)对目标位置进行修正,使得用户看起来像每帧均有做检测一样。

(8)利用上述步骤(7)中得到的待检测目标的位置信息重新初始化步骤(3)至步骤(6)中框的初始位置,从而基于移动偏移实现对卷积神经网络的检测规则的修正。

本公开中,对待检测目标进行拍摄的设备如相机,以及待检测目标都可以处于运动状态,在使用上述步骤(2)得到待检测目标的初始位置后,基于上述步骤(3)至步骤(6)进行修正,实现对步骤(2)检测结果的间歇性修正,从而实现对待检测目标的检测。

在上述基础上,请结合参阅图5,本公开还提供了一种目标检测系统20,所述目标检测系统20包括视频流获得模块21、图像检测模块22、图像转换模块23和图像处理模块24。

视频流获得模块21用于获得针对待检测目标进行拍摄得到的实时视频流。

关于视频流获得模块21的实现方式可以参阅图2中步骤s21的相关描述,在此不作赘述。

图像检测模块22用于使用预存的卷积神经网络对所述实时视频流中每隔设定帧的图像进行检测,得到待检测目标的最新位置。

关于图像检测模块22的实现方式可以参阅图2中步骤s22的相关描述,在此不作赘述。

图像转换模块23用于将当前帧图像转换为灰度图,其中,所述当前帧图像为所述实时视频流中当前被所述卷积神经网络进行检测以确定所述待检测目标的最新位置的图像。

关于图像转换模块23的实现方式可以参阅图2中步骤s23的相关描述,在此不作赘述。

图像处理模块24用于对所述灰度图进行图像分析,计算所述待检测目标相较于上一帧图像位置移动的像素点数量;使用光流金字塔计算所述当前帧图像转换得到的灰度图和上一帧图像转换得到的灰度图中所述待检测目标位置移动的每个像素点的位移;根据计算得到的所述待检测目标位置移动的每个像素点的位移分析得到所述待检测目标在所述当前帧图像的移动偏移,基于所述移动偏移对所述卷积神经网络的检测规则进行修正。

关于图像处理模块24的实现方式可以参阅图2中步骤s24的相关描述,在此不作赘述。

在一种示例性实现方式中,所述目标检测系统20还包括卷积神经网络建立模块25。

所述卷积神经网络建立模块25用于通过以下步骤构建所述卷积神经网络:将设定尺寸的三通道图像作为输入,堆叠多个block结构,得到待训练的网络结构;其中,每个所述block结构包括卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu和深度卷积deepwise操作;采用随机梯度下降法,基于最小化损失函数训练所述网络结构,得到检测模型;去掉所述检测模型中的批归一化bn、比例缩放和位移scale操作之后,将检测模型进行合并移植,得到用以进行位置检测的卷积神经网络。

在一种示例性实现方式中,堆叠的多个block结构为16个。每个所述block结构至少由卷积运算conv、批归一化bn、比例缩放和位移scale、线性整流函数relu、深度卷积deepwise、批归一化bn、比例缩放和位移scale、线性整流函数relu操作依次组成。16个所述block的卷积的通道数分别为16、16、32、32、96、96、96、96、128、128、128、128、160、160、160、160、160、160、160、160、160、160、160、160、320、320、128、160、96、128、96、128,所述深度卷积deepwise操作的分组数等于所述深度卷积deepwise操作的通道数。

在block13至block16分别接两个卷积层,该两个卷积层包括用来得到目标位置的目标位置卷积层和用来得到目标类别的目标类别卷积层,其中,目标位置卷积层通道上的每个像素点的值对应一个预先定义好的位置信息,通过像素点对应通道的输出的回归值用预测框回归出目标位置;目标类别卷积层通道上的每个像素点的值代表该目标像素点对应位置的类别概率,不同通道代表不同的类别。

本公开中,目标检测系统20的实现原理与前述目标检测方法中的实现原理类似,相应内容可以参阅前述方法中的描述,因而在此不作赘述。

本公开中的目标检测方法及系统,采用“小网络”检测目标位置,利用像素位移修正目标运动导致的位置变化,达到了低功耗实时目标检测的目的,满足移动端实时低功耗检测的要求,经验证,在实际运用中功耗能保持在30mh以内,满足实际需求。

在本公开所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本公开的可选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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