基于onceshotdetection的目标检测方法及系统与流程

文档序号:17491260发布日期:2019-04-23 20:33阅读:206来源:国知局
基于once shot detection的目标检测方法及系统与流程

本发明涉及图像检测技术领域,具体涉及神经网络的目标检测技术,更为具体地,涉及一种基于onceshotdetection的目标检测方法及系统。



背景技术:

目标检测是指检测图像中是否存在待检测的目标,如图像中移动的行人、动物、车辆等,并在存在目标时,确定该目标的位置。目标检测可以广泛应用于安防、交通等众多领域。现有的深度学习领域的目标检测算法,从r-cnn到fastr-cnn一直采用的是proposal+分类,proposal提供位置信息,分类提供类别信息,这种算法精度比较高,但是速度还达不到要求,存在检测速度慢、效率低的问题。



技术实现要素:

为了解决现有技术中检测目标时检测速度慢、效率低的问题,本发明提供一种基于onceshotdetection的目标检测方法及系统。

本发明提供的一种基于onceshotdetection的目标检测方法,利用onceshotdetection的分类网络实现。上述目标检测方法包括如下步骤:

第一步:获取待检测图片,将待检测图片调整为448×448的大小,并分割得到7×7网格,每个网格预测有两个带有目标图像的图像框;

第二步:获取训练图片,根据训练图片预训练onceshotdetection的分类网络,该onceshotdetection的分类网络中有17~20个卷积层和5个全链接层;

第三步:以预训练的分类网络作为基座网络结构;然后将训练好的计算机函数(计算机中的params)作为预训练权重加载到基座网络结构上;

第四步:转换基座网络结构模型,获得检测网络,对检测网络进行进一步训练;

第五步:获取第一步处理后的待检测图片;检测网络检测待检测的图片,最终检测出图像中带有目标图像的图像框和图像框所在的网格。

优选的,第二步中,根据训练图片预训练onceshotdetection的分类网络时,训练图片被分割为多个网格,各网格预测有两个带有目标图像的图像框。

再优选的,预训练过程中,在各网格设立第一坐标基准,以相对于第一坐标基准的坐标信息表示网格内图像框信息。

再优选的,训练图片内设置有第二坐标基准,预训练过程中,首先预测带有目标图像的图像框,获取图像框坐标信息和所在网格类别信息,然后将图像框的相对于第一坐标基准的坐标信息转化为相对于第二坐标基准的坐标信息。将图像框的坐标信息和图像框所在网格的类别信息相关联,并存储入服务器。

再优选的,预训练中,获取图像框内目标图像的概率,概率记录在图像框的坐标信息内;目标图像的概率表征两项信息,其中一项是图像框中出现目标图像的置信度,另一项是预测的准确度。

优选的,在预训练过程中,对各网格内图像框是否有目标图像进行预测;当图像框的预测结果为没有目标图像时,所述目标图像的概率降低;当图像框的预测结果为有目标图像时,所述目标图像的概率增加。

再优选的,所述预训练图片有多个,多个预训练图片分割出的网格分为不同类别;统计相同类别的各网格内图像框的坐标信息,所述坐标信息包括目标图像的概率。

本发明还提供一种基于onceshotdetection的目标检测系统,用于实现如上述基于onceshotdetection的目标检测方法;目标检测系统包括:

图像分割单元,用于将待检测图片重新调整为448×448的大小,并分割得到7×7网格,每个网格预测两个带有目标图像的图像框。

预训练单元,用于预训练onceshotdetection的分类网络,其中,在所述预训练onceshotdetection的分类网络中有17~20卷积层和5个全链接层。

继续训练单元,以预训练的分类网络作为基座网络结构,加载训练好的计算机函数;然后转换基座网络结构模型,获得检测网络,对检测网络进行进一步训练。

检测单元,通过转换后的检测网络,预测待检测图片中网格的类别和带有目标图像的图像框坐标。

本发明另提供一种电子装置,该电子装置包括存储器和处理器,所述存储器中存储有计算机程序,计算机程序被处理器执行时,实现如上述基于onceshotdetection的目标检测方法。

本发明还提供一种计算机可读存储介质,该算机可读存储介质存储有计算机程序,计算机程序被处理器执行时,实现如上述基于onceshotdetection的目标检测方法。

具体的,计算机程序包括:

图像分割程序:被处理器执行时,将待检测图片重新调整为448×448的大小,并分割得到7×7网格,每个网格预测两个带有目标图像的图像框。

预训练程序:被处理器执行时,获取训练图片,根据训练图片预训练onceshotdetection的分类网络,获取各类别网格出现目标图像的概率。

继续训练程序:被处理器执行时,加载训练好的计算机函数;然后转换模型,获得检测网络,对检测网络进行进一步训练。

检测程序:被处理器执行时,预测待检测图片中网格的类别和带有目标图像的图像框坐标。

本发明提供的基于onceshotdetection的目标检测方法及系统与现有技术相比,具有以下有益效果:

本发明提供的基于onceshotdetection的目标检测方法及系统,对图片做检测任务时速度较快;我们将物体检测作为回归问题进行求解,整个网络pipeline简单(上述pipeline为计算机用语,意思是导管及物动词,用导管输送)。在titanxgpu(titanx型号的图形处理器)上,在保证检测准确率的前提下,可以大大增加检测速度。

本发明提供的基于onceshotdetection的目标检测方法及系统,背景误检率低;在训练和推理过程中能‘看到’整张图像的整体信息,而基于regionproposal的物体检测方法,如rcnn/fastrcnn,在检测过程中,只‘看到’候选框内的局部图像信息。因此,若当图像背景中的部分数据被包含在候选框中送入网络进行检测时,容易被误检测成物体。测试证明,该算法对于背景图像的误检率低于fastrcnn误检率的一半。

附图说明

通过参考以下流程附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:

图1是根据本发明实施例1的基于onceshotdetection的目标检测方法的步骤流程图。

图2本发明采用的训练神经网络结构。

图3为根据本发明实施例的图片网格划分示意图。

图4为损失函数的设计图。

图5为不同大小的bboxloss的比较示意图。

图6是根据本发明实施例2的基于onceshotdetection的目标检测系统中各单元工作顺序示意图。

图7是根据本发明实施例3的电子装置的逻辑结构示意图。

在所有附图中相同的标号指示相似或相应的特征或功能。

具体实施方式

以下将结合附图对本发明的具体实施例进行详细描述。

实施例1

本实施例提供的基于onceshotdetection的目标检测方法,利用onceshotdetection的分类网络实现,该分类网络采用cnn,即卷积神经网络进行特征提取和预测,卷积神经网络中的卷积部分负责特征提取,深度卷积部分负责预测。卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。如图1所示,基于onceshotdetection的目标检测方法包括如下步骤:

第一步:获取待检测图片,然后如图1中s101所示将待检测图片调整为448×448的大小,并分割得到7×7网格,每个网格预测有两个带有目标图像的图像框;

第二步:获取训练图片,如图1中s102所示预训练onceshotdetection的分类网络,通过预训练获取训练好的计算机函数;其中,该onceshotdetection的分类网络中有17~20个卷积层和5个全链接层。

第三步:如图1中s103所示,以预训练的分类网络作为基座网络结构;然后将训练好的计算机函数作为预训练权重加载到基座网络结构上;

第四步:如图1中s104所示,转换基座网络结构模型,获得检测网络,对检测网络进行进一步训练;

第五步:如图1中s105所示,获取第一步处理后的待检测图片;检测网络检测待检测的图片,最终获取图像中带有目标图像的网格和图像框坐标。

具体的,预训练前,根据训练图片预训练onceshotdetection的分类网络时,训练图片被分割为多个网格,各网格预测有两个带有目标图像的图像框。预训练过程中,在各网格设立第一坐标基准,以相对于第一坐标基准的坐标信息表示网格内图像框信息,各图像框采用(cx,cy,w,h)表述坐标信息,其中图像框的中心坐标位置用cx,cy表示,cx,cy相对于对应的第一坐标基准归一化到0-1之间,w,h用图像的width和height归一化到0-1之间。

在训练图片内设置有第二坐标基准,对某一网格内图像框预测后,首先预测带有目标图像的图像框,获取图像框坐标信息和所在网格类别信息,然后将图像框的相对于第一坐标基准的坐标信息转化为相对于第二坐标基准的坐标信息。将图像框的坐标信息和图像框所在网格的类别信息相关联,并存储入服务器。

具体的,第二步的预训练中,获取图像框内目标图像的概率,概率记录在图像框的坐标信息内,概率属于坐标信息的一部分;目标图像的概率表征两项信息,其中一项是图像框中出现目标图像的置信度,另一项是预测的准确度。上述置信度和准确度通过预训练过程获取,如多次对某一类别网格进行预训练,获取预测该类别网格总次数,出现目标图像的次数,以及预测的正确次数和错误次数等,通过预测中的原始数据,统计获得上述置信度和准确度。

具体的,在预训练过程中,预训练图片有多个,多个预训练图片分割出的网格分为不同类别;统计相同类别的各网格内图像框的坐标信息,所述坐标信息包括目标图像的概率。具体统计方式包括如下内容:对各网格内图像框是否有目标图像进行预测;当图像框的预测结果为没有目标图像时,所述图像框所在网格存在目标图像的概率降低;当图像框的预测结果为有目标图像时,所述图像框所在网格存在目标图像的概率增加。通过上述方法,可对各类别的网格预测进行统计,当某一类别网格没有目标图像的次数较多时,该类别网格出现目标图像的概率降低,反之亦然。

为了更清楚的说明本发明的技术方案,下面将从训练神经网络的结构入手逐步说明应用本发明进行目标检测的具体细节。

图2示出了本实施例采用的训练神经网络结构。如图2所示,本发明采用的onceshotdetection的网络结构包括24个卷积层,2个全链接层,其中采用1×1还原层(reductionlayers)紧跟3×3卷积层(convolutionallayers)取代googlenet的起始模块(inceptionmodules)。

在上述预训练过程中,首先预训练onceshotdetection的分类网络:在imagenet1000-classcompetitiondataset上预训练一个分类网络,该网络是图2中的前20个卷积网络+average-poolinglayer+fullyconnectedlayer,此时的网络输入是224*224。其次,以预训练的分类网络作为基座网络结构,转换网络结构模型,获得检测网络,再训练检测网络,通过检测网络去执行检测任务。由于在预训练网络中增加卷积层和全链接层可以改善性能,因此,在本发明中,在13~16卷积层和3个全链接层的基础上添加4个卷积层和2个全链接层,随机初始化权重。由于目标检测要求细粒度的视觉信息,因此把网络输入也由224*224变成448*448。

图3示出了根据本发明实施例的图片网格划分示意图。

如图3所示,本发明提供的基于onceshotdetection的目标检测方法,将一副图片分为7×7个网格,某个物体的中心落在这个网格中,此网格就负责预测这个物体。

该训练网络结构的最后一层输出为(7×7)×30的维度。其中,每个1×1×30的维度对应原图7×7个网格中的一个,1×1×30中含有类别预测和图像框坐标预测。总得来讲就是让网格负责类别信息,图像框主要负责坐标信息,部分负责类别信息,上述的概率也属于类别信息。当然,本专利申请中的概率不应简单理解为简单的落入网格或图像框可能性的百分比概率,本专利申请中所说的概率对应计算机领域中的confidence,confidence表征了两重信息:所预测的图像框中含有目标图像的置信度以及这个图像框预测的准确度。

其中,每个网格要预测2个图像框的坐标(cx,cy,w,h)。中心坐标的cx,cy相对于对应的网格归一化到0-1之间,w和h用图像的width和height归一化到0-1之间。每个图像框要附带预测一个概率的值。

其中,如果有groundtruebox(人工标记的物体)落在一个gridcell(网格)里,第一项truth取1,否则truth取0。iou为预测的boundingbox(图像框,也可简略写为bbox)和实际的groundtruebox之间的差值。即:每个boundingbox要预测(cx,cy,w,h,confidence),共5个值,2个boundingbox共10个值,对应1×1×30维度特征中的前10个。

在现有的目标检测技术中,通常采用损失函数来使坐标(x,y,w,h)、confidence、classification这个三个方面达到很好的平衡。图4示出了损失函数的设计图。

但是,简单的全部采用sum-squarederrorloss来做这件事会有以下不足:

a)8维的localizationerror和20维的classificationerror同等重要显然是不合理的;

b)如果一个网格中没有目标图像,那么就会将这些网格中的概率值设置到0,在一些目标图像较少的网格中,这种做法会导致网络不稳定甚至发散。

对此,本发明采用的解决方案如下:

1、更重视8维的坐标预测,给这些损失前面赋予更大的lossweight,在pascalvoc训练中取5。(如图4中右侧最上方的框)

2、对没有object的图像框的confidenceloss,赋予小的lossweight,在pascalvoc训练中取0.5。(如图4中右侧第三个框)

3、有object的图像框的confidenceloss(如图4中右侧第二个框)和类别的loss(如图3中右侧最下方一个框)的lossweight正常取1。

对不同大小的bbox预测中,相比于大bbox预测偏一点,小bbox预测偏一点更不能忍受。而sum-squareerrorloss中对同样的偏移loss是一样。为了缓和这个问题,本发明在预测boundingbox的坐标(cx,cy,w,h)的过程中,将bbox的width和height取平方根代替原本的height和width。

图5示出了不同大小bboxloss的比较图。如图5所示,smallbbox的横轴值较小,发生偏移时,反应到y轴上的loss比bigbbox要大。

本发明使用一个网格预测多个图像框,在训练时希望每个object(groundtruebox)只有一个图像框专门负责(一个object,一个图像框)。具体做法是与groundtruebox(object)的iou最大的boundingbox负责该groundtruebox(object)的预测。即:在根据训练结果预测网格的类别和boundingbox坐标的过程中,由人工标记的物体的iou最大的boundingbox负责所述人工标记的物体的预测。这种做法称作boundingboxpredictor的专职化。每个预测器会对特定(sizes,aspectratioorclassedofobject)的groundtruebox预测的越来越好。

实施例2

本发明还提供一种基于onceshotdetection的目标检测系统,用于实现如实施例1中所述的基于onceshotdetection的目标检测方法,本实施例也应认为拥有实施例1中提到或可直接推导得出的结构特征;目标检测系统如图6所示,包括图像分割单元501、预训练单元502、分类网络转换模型单元503和检测单元504,各单元介绍如下:

图像分割单元501,用于将待检测图片重新调整为448×448的大小,并分割得到7×7网格,每个网格预测两个带有目标图像的图像框;

预训练单元502,用于预训练onceshotdetection的分类网络,其中,在所述预训练onceshotdetection的分类网络中有17~20卷积层和5个全链接层;

继续训练单元503,以预训练的分类网络作为基座网络结构,加载训练好的计算机函数;然后转换基座网络结构模型,获得检测网络,对检测网络进行进一步训练;

检测单元504,通过检测网络,预测待检测图片中网格的类别和带有目标图像的图像框坐标。

实施例3

本实施例另提供一种电子装置70,如图7所示,该电子装置包括存储器72和处理器71,所述存储器72中存储有计算机程序73,计算机程序73被处理器71执行时,实现如上述基于onceshotdetection的目标检测方法。

上述电子装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。电子装置可包括,但不仅限于,处理器、存储器和目标数据库。本领域技术人员可以理解,图7仅仅是电子装置的示例,并不构成对电子装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是控制器、微控制器、微处理器,或者该处理器也可以是任何常规的处理器等。

存储器可以是电子装置的内部存储单元,例如电子装置的硬盘或内存。存储器也可以是电子装置的外部存储设备,例如电子装置上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、多媒体卡、卡型存储器、磁性存储器、磁盘和光盘等。进一步地,存储器还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器用于存储计算机程序以及电子设备所需的其他程序和数据。存储器还可以用于暂时地存储已经输出或者将要输出的数据。

实施例4

本实施例提供计算机可读存储介质,计算机存储介质设置在上述电子装置内,所述计算机可读存储介质存储有计算机程序,所述存储器中存储有计算机程序,计算机程序被处理器执行时,实现如实施例1所述基于onceshotdetection的目标检测方法。

具体的,上述计算机程序包括如下所示的各程序:

图像分割程序:被处理器执行时,将待检测图片重新调整为448×448的大小,并分割得到7×7网格,每个网格预测两个带有目标图像的图像框;

预训练程序:被处理器执行时,获取训练图片,根据训练图片预训练onceshotdetection的分类网络,获取各类别网格出现目标图像的概率;

继续训练程序:被处理器执行时,加载训练好的计算机函数;然后转换模型,获得检测网络,对检测网络进行进一步训练;

检测程序:被处理器执行时,预测待检测图片中网格的类别和带有目标图像的图像框坐标。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

如上参照附图以示例的方式描述根据本发明的基于onceshotdetection的目标检测方法及系统。但是,本领域技术人员应当理解,对于上述本发明所提出的装配式对拉螺栓,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。

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