CN108875482B - 物体检测方法和装置、神经网络训练方法和装置 - Google Patents

物体检测方法和装置、神经网络训练方法和装置 Download PDF

Info

Publication number
CN108875482B
CN108875482B CN201710827779.8A CN201710827779A CN108875482B CN 108875482 B CN108875482 B CN 108875482B CN 201710827779 A CN201710827779 A CN 201710827779A CN 108875482 B CN108875482 B CN 108875482B
Authority
CN
China
Prior art keywords
training
layer
neural network
image
thermodynamic diagram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710827779.8A
Other languages
English (en)
Other versions
CN108875482A (zh
Inventor
何蔚然
周舒畅
冯迭乔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kuangshi Technology Co Ltd
Beijing Megvii Technology Co Ltd
Original Assignee
Beijing Kuangshi Technology Co Ltd
Beijing Megvii Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kuangshi Technology Co Ltd, Beijing Megvii Technology Co Ltd filed Critical Beijing Kuangshi Technology Co Ltd
Priority to CN201710827779.8A priority Critical patent/CN108875482B/zh
Publication of CN108875482A publication Critical patent/CN108875482A/zh
Application granted granted Critical
Publication of CN108875482B publication Critical patent/CN108875482B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本公开提供了一种基于神经网络的物体检测方法和装置、用于物体检测的神经网络的训练方法和装置、以及计算机可读存储介质。该神经网络包括输入层、中间层和输出层。物体检测方法包括:获取待检测的图像;经由输入层输入图像;经由中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的中间表示执行二值化处理;经由所述输出层输出图像的热力图和热力图中每个像素对应的包围框的X通道值,热力图表示图像中的每个像素是否属于检测目标,每个像素对应的包围框用于在图像上标记所述每个像素对应的检测目标;以及根据热力图和热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框。

Description

物体检测方法和装置、神经网络训练方法和装置
技术领域
本公开涉及图像处理领域,更具体地,本公开涉及基于神经网络的物体检测方法和装置、用于物体检测的神经网络的训练方法和装置、以及计算机可读存储介质。
背景技术
神经网络是一种大规模、多参数优化的工具。依靠大量的训练数据,神经网络能够学习出数据中难以总结的隐藏特征,从而完成多项复杂的任务,如人脸检测,物体检测,物体检测,动作追踪,自然语言翻译等。神经网络已被人工智能界广泛应用。
在利用神经网络进行图像物体检测的任务中,与只输出一个类别的普通分类网络不同,物体检测任务中使用的神经网络最后需要返回多通道的与原始图像大小相同的输出图。因此,利用神经网络进行图像物体检测的任务需要占用大量的计算和存储资源。在诸如移动设备这样计算和存储资源有限的应用平台上,利用神经网络进行图像物体检测的任务将导致长延时、功耗和发热量增加,从而使得用户体验劣化。
发明内容
鉴于上述问题而提出了本公开。本公开提供了一种基于神经网络的物体检测方法和装置、用于物体检测的神经网络的训练方法和装置、以及计算机可读存储介质。
根据本公开的一个方面,提供了一种基于神经网络的物体检测方法,其中,所述神经网络包括输入层、中间层和输出层,所述物体检测方法包括:获取待检测的图像;经由所述输入层输入所述图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;经由所述输出层输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中的每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标;以及根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框。
根据本公开的另一个方面,提供了一种用于物体检测的神经网络的训练方法,其中,所述神经网络包括输入层、中间层和输出层,所述训练方法包括:经由所述输入层输入训练图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理;经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的。
根据本公开的又一个方面,提供了一种物体检测装置,所述物体检测装置包括:图像获取模块,用于获取待检测的图像;以及物体检测模块,用于采用神经网络对所述图像获取模块获取到的所述图像执行物体检测,所述神经网络包括输入层、中间层和输出层,所述物体检测模块具体用于:经由所述输入层输入所述图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;经由所述输出层输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中的每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标,其中,所述物体检测模块进一步根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框。
根据本公开的又一个方面,提供了一种训练装置,所述训练装置包括:图像获取模块,用于获取训练图像;以及训练模块,用于训练用于物体检测的神经网络,所述神经网络包括输入层、中间层和输出层,所述训练模块具体用于:经由所述输入层输入训练图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对至少一个计算节点的中间表示执行二值化处理;经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的。
根据本公开的又一个方面,提供了一种物体检测装置,所述物体检测装置包括:存储器,用于存储非暂时性计算机可读指令;以及处理器,用于运行所述计算机可读指令,使得所述物体检测装置执行基于神经网络的物体检测方法,其中所述神经网络包括输入层、中间层和输出层,所述物体检测方法包括:获取待检测的图像;经由所述输入层输入所述图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;经由所述输出层输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中的每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标;以及根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框。
根据本公开的又一个方面,提供了一种训练装置,所述训练装置包括:存储器,用于存储非暂时性计算机可读指令;以及处理器,用于运行所述计算机可读指令,使得所述训练装置执行用于物体检测的神经网络的训练方法,其中所述神经网络包括输入层、中间层和输出层,所述训练方法包括:经由所述输入层输入训练图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理;经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的。
根据本公开的再一个方面,提供了一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行基于神经网络的物体检测方法,其中,所述神经网络包括输入层、中间层和输出层,所述物体检测方法包括:获取待检测的图像;经由所述输入层输入所述图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;经由所述输出层输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中的每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标;以及根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框。
根据本公开的再一个方面,提供了一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行用于物体检测的神经网络的训练方法,其中,所述神经网络包括输入层、中间层和输出层,所述训练方法包括:经由所述输入层输入训练图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对至少一个计算节点的中间表示执行二值化处理;经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的。
要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并且意图在于提供要求保护的技术的进一步说明。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是图示根据本公开的实施例的基于神经网络的物体检测方法的流程图。
图2是图示根据本公开的实施例的神经网络的示意图。
图3是图示根据本公开的实施例的用于物体检测的神经网络的训练方法的流程图。
图4是进一步图示根据本公开的实施例的用于物体检测的神经网络的训练方法的流程图。
图5是图示根据本公开的实施例的物体检测装置的框图。
图6是图示根据本公开的实施例的训练装置的框图。
图7是图示根据本公开的实施例的物体检测装置的硬件框图。
图8是图示根据本公开的实施例的训练装置的硬件框图。
图9是图示根据本公开的实施例的计算机可读存储介质的示意图。
图10A和10B是图示根据本公开的实施例的物体检测处理的示意图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。基于本公开中描述的本公开实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本公开的保护范围之内。
本公开涉及基于神经网络的物体检测方法和装置、以及用于物体检测的神经网络的训练方法和装置。利用神经网络进行物体检测的方法可以分为两个阶段,即训练阶段和物体检测阶段。所谓训练阶段是指首先需要利用训练图像对神经网络进行训练,以调整神经网络的权重(也可称为参数);所谓物体检测阶段是指随后可以利用训练好的神经网络对待检测的图像进行物体检测。以下,将参考附图详细描述本公开的各个实施例。
首先,参照图1和图2描述根据本公开的实施例的基于神经网络的物体检测方法。
图1是图示根据本公开的实施例的基于神经网络的物体检测方法的流程图。图2是图示根据本公开的实施例的神经网络的示意图。如图1所示,根据本公开的实施例的物体检测方法包括以下步骤。
在步骤S101中,获取待检测的图像。在本公开的一个实施例中,获取待检测的图像可以包括:经由有线或者无线方式,接收待检测的图像。可替代地,获取待检测的图像还可以包括:从存储器获取预先存储的待检测的图像。可替代地,获取待检测的图像还可以包括:采集待检测的图像。待检测图像可以是图像采集设备采集到的原始图像,也可以是对原始图像进行图像预处理之后获得的图像。图像预处理包括但不限于裁剪、缩放或去噪等处理。此后,处理进到步骤S102。
在步骤S102中,经由神经网络的输入层输入图像。如图2所示,根据本公开的实施例的用于物体检测的神经网络200可以包括输入层201、中间层202和输出层203。其中,中间层也可以称为隐藏层。在步骤S101中获取的待检测的图像经由输入层201输入。此后,处理进到步骤S103。
在步骤S103中,经由中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理。
如图2所示,根据本公开的实施例的用于物体检测的神经网络200中的中间层202中级联有多个计算节点2021到202N,N为大于等于2的自然数。计算节点2021到202N包括卷积层20211到202N1以及相应的二值化层20212到202N2。卷积层20211到202N1对输入的数据执行卷积计算以获得中间表示。具体地,例如输入计算节点2021的卷积层20211的数据为经由输入层201输入待检测的图像,而输入计算节点202N的卷积层202N1的数据为从其之前的计算节点202N-1输出的数据。此后,计算节点2021到202N中配置的二值化层20212到202N2对由该节点的卷积层20211到202N1获得的中间表示执行二值化处理。
具体地,如下将进一步描述的,根据本公开的实施例的神经网络200的权重在训练过程中执行了二值化处理,使得神经网络200的权重包括两种可能的取值。
对于神经网络200的权重的二值化处理可以由以下表达式(1)和表达式(2)表示:
W=Tanh(W0)×0.5 (1)
W_new=(floor(W+1)-0.5)×alpha (2)
其中,首先通过如表达式(1)所示的非线性函数将原始权重W0映射为[-0.5,0.5]闭区间之内数值,记为中间权重W。进一步地,对中间权重W执行舍入操作得到二值化权重。具体地,利用向下取整函数floor和|W|的平均值alpha,通过表达式(2)获得二值化权重W_new。采用包括alpha的表达式(2)有利于实现对神经网络的优化。
可替代地,对于神经网络200的权重的二值化处理可以由表达式(1)和表达式(3)表示,而无需经由alpha的优化:
W_new=(floor(W+1)-0.5) (3)
在已经执行权重二值化的神经网络200中,二值化层20212到202N2对由该节点的卷积层20211到202N1获得的中间表示执行二值化处理,以获得二值化的中间表示并提供给随后级联的计算节点或输出层。类似于神经网络200的权重的二值化处理,对于中间表示的二值化处理可以由以下表达式(4)和(5)或表达式(4)和(6)表示:
Y=Tanh(Y0)×0.5 (4)
Y_new=(floor(Y+1)-0.5)×alpha (5)
Y_new=(floor(Y+1)-0.5) (6)
首先,通过如表达式(4)所示的非线性函数将上一层的输出Y0映射为[-0.5,0.5]闭区间之内数值,记为Y。进一步地,对Y执行舍入操作得到二值化的中间表示。具体地,利用向下取整函数floor和|Y|的平均值alpha,通过表达式(5)获得二值化的中间表示Y_new。采用包括alpha的表达式(5)有利于实现对神经网络的优化。
可替代地,对于神经网络200的中间表示的二值化处理可以由表达式(4)和表达式(6)表示,而无需经由alpha的优化。
如此,将神经网络200的权重二值化,并且将计算节点的中间表示也二值化后,在该计算节点的下一个计算节点中即可利用二值进行卷积计算。在本公开的一个实施例中,经由中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算可以是:在中间层中的每个计算节点的卷积层中,将卷积层的二值化的权重矩阵与输入的数据执行按位异或处理,将按位异或处理后的二值化串中1的个数作为该卷积层的中间表示。即,例如对于计算节点202X(1<X<N),其输入的数据为从上一计算节点202X-1提供的二值化中间表示Y_newX-1,其自身二值化权重矩阵为WX,则在该计算节点202X的卷积层202X1中的卷积计算由表达式(7)表示:
YX=bitcount(WX xor Y_newX-1) (7)
其中,xor表示按位异或,函数bitcount计算二值串中1的个数,YX表示计算节点202X的中间表示。容易理解的是,上述表达式(5)等价于矩阵乘积运算的内积运算。
在本公开的另一实施例中,计算节点的中间表示采用向量形式。具体地,YX_i=bitcount(WX_{i,:}xor Y_newX-1),其中WX_{i,:}表示矩阵WX的第i行,YX_i表示计算节点202X的中间表示向量中的第i个分量,Y_newX-1表示计算节点202X-1的二值化中间表示向量。也就是说,在中间层中的每个计算节点的卷积层中,将卷积层的二值化的权重矩阵的第i行与输入的数据执行按位异或处理,将按位异或处理后的二值化串中1的个数作为该卷积层的中间表示向量中的第i个分量。
此后,处理进到步骤S104。
在步骤S104中,经由输出层输出图像的热力图和热力图中每个像素对应的包围框的X通道值。
具体地,如图2所示,根据本公开的实施例的用于物体检测的神经网络200中的输出层203进一步包括热力图生成块2032。热力图生成块2032生成与待检测的图像同样大小的热力图。所述热力图表示所述图像中的每个像素是否属于检测目标。在本公开的一个实施例中,输出层203将会输出一个c×h×w的热力图,其中h×w表示图像的大小,c是类别总数。例如,c的值可以为2,对应检测目标和非检测目标两种类别。h、w分别为所述图像在宽度(width)和高度(height)方向上的像素数量。对于每一个像素,它对应c个类别的值,取其中最大值,该最大值所在的类别即为该像素最终的分类结果。综合这h×w个像素的结果,最终即得到了所述图像的检测结果。
在本公开的另一实施例中,用于物体检测的神经网络200中的输出层203还可以包括独热编码块2031。独热编码块2031将中间层中最后一个计算节点202N的输出转换为独热码表示。
进一步地,神经网络200中的输出层203还可以包括包围框生成块2033。包括包围框生成块2033输出热力图中每个像素对应的包围框的X通道值,其中X的取值为大于或等于2的整数,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标。在本公开的一个实施例中,X可以取值为4。包围框的4通道分别表示该像素点所在的包围框的上下左右边界到该像素点的距离。在本公开的另一个实施例中,在包围框为正方形的情况下,X的取值可以为3,包围框的3通道表示包围框的上下左边界到该像素点的距离。更进一步地,在本公开的又一个实施例中,如果固定包围框的长宽,那么包围框只需要2个通道表示其起始坐标。
在根据本公开的实施例神经网络中,各个通道之间可以是相互独立的。例如,包围框的X通道和热力图的通道是相互独立的。在本公开的一个实施例中,可以仅将热力图所在通道的中间表示进行二值化,以通过对每个像素进行0和1的二分类表示所述图像中的每个像素是否属于检测目标,而包围框所在通道不进行二值化,从而更准确地表示包围框的位置。而且,即使不对包围框的相关通道的中间表示执行二值化处理也不会显著增加计算量。在另一些实施例中,也可以将包围框所在通道的中间表示执行二值化处理,本公开对此并不限定。
此后,处理进到步骤S105。
在步骤S105中,根据热力图和热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框。在本公开的一个实施例中,对于热力图中每个分类值为1(即,分类为非背景的目标对象)的像素点,配合X通道可以表示一个包围框。在有多个包围框表示同一目标对象的情况下,通过如非极大值抑制(NMS)等算法对包围框进行去重,留下来的每个包围框代表一个独立的对象(例如,一张独立的人脸)。更具体地,一种NMS算法的示例可以是不断随机取两个包围框,如果它们的交并比(IoU)大于某个阈值(比如0.5),就认为它们代表同一张人脸,随机丢掉一个。直到没有包围框满足该条件。
以上,参照图1和图2描述了根据本公开的实施例的物体检测方法和所利用的神经网络。通过将用于物体检测的神经网络的多通道中用于热力图的通道的权重和中间表示进行二值化处理,使得耗时的多位浮点卷积运算只在二值化的权重和二值化的中间表示之间进行,极大地提高了计算速度和所需的计算和存储资源。
如上所述,在根据本公开的实施例的物体检测方法中利用的神经网络需要预先进行训练。以下,将参照图3和图4描述根据本公开的实施例的用于物体检测的神经网络的训练方法。
图3是图示根据本公开的实施例的用于物体检测的神经网络的训练方法的流程图。如图3所示,根据本公开的实施例的用于物体检测的神经网络的训练方法包括以下步骤。
在步骤S301中,经由神经网络的输入层输入训练图像。训练图像的获取方式与以上参照图1描述的步骤S101中待检测的图像的获取方式类似。输入训练图像可以是图像采集设备采集到的原始图像,也可以是对原始图像进行标注处理和/或图像预处理之后获得的图像。此后,处理进到步骤S302。
在步骤S302中,经由中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对至少一个计算节点的中间表示执行二值化处理。训练过程中中间层中级联的多个计算节点中的每个计算节点执行的卷积计算与以上参照图1描述的物体检测方法中的每个计算节点执行的卷积计算相同,在此将省略其重复描述。在本公开的一个实施例中,对至少一个计算节点的中间表示执行二值化处理包括:在一次训练过程中对一个或多个计算节点的中间表示执行二值化处理,或者在一次训练过程中对所有计算节点的中间表示都执行二值化处理。此后,处理进到步骤S303。
在步骤S303中,经由输出层输出训练结果。类似于参照图1描述的步骤S104,训练结果可以是独热编码的热力图和训练图像的热力图中每个像素对应的包围框的X通道值。此后,处理进到步骤S304。
在步骤S304中,判断是否满足预定条件。在本公开的一个实施例中,所述预定条件为神经网络的训练次数或训练周期达到预定数目。在本公开的另一个实施例中,所述预定条件为神经网络的损失函数满足预定条件,如损失函数最小化。
如果在步骤S304中获得否定结果,即没有满足预定条件,则处理返回步骤S301,以便继续输入训练图像执行训练过程。
相反地,如果在步骤S304中获得肯定结果,即训练满足预定条件,则处理进到步骤S305。
在步骤S305中,获得训练好的神经网络。
通过图3所示的用于物体检测的神经网络的训练方法,可以获得实现中间表示二值化的神经网络。
图4是进一步图示根据本公开的实施例的用于物体检测的神经网络的训练方法的流程图。如图4所示的神经网络的训练方法与参照图3描述的神经网络的训练方法相比,在步骤S402中对至少一个计算节点的中间表示执行二值化处理之后,进一步在步骤S403中对多个计算节点中的多个卷积层中的至少一个卷积层的权重执行二值化处理。因此,通过图4所示的用于物体检测的神经网络的训练方法,可以获得实现中间表示和神经网络的权重都二值化的神经网络。
此外,需要理解的是,图4中所示的分别步骤S402和步骤S403中执行的中间表示和神经网络权重的二值化处理的顺序仅仅是示意性的,本公开不限于此。在本公开的一个实施例中,在多次迭代训练过程中,可以先执行神经网络权重的二值化处理再执行中间表示的二值化,可以每次仅执行一个或多个计算节点的神经网络的权重的二值化处理、或者每隔预定周期(比如,预定数目的训练)执行一次一个或多个计算节点的神经网络的权重的二值化处理。
以上,参照流程图描述了根据本公开的实施例的基于神经网络的物体检测方法和该神经网络的训练方法。以下,将进一步描述执行该物体检测方法的物体检测装置以及执行神经网络的训练方法的训练装置。
图5是图示根据本公开的实施例的物体检测装置的框图。如图5所示的根据本公开的实施例的物体检测装置50可以用于执行如图1所示的根据本公开的实施例的物体检测方法。如图5所示,根据本公开的实施例的物体检测装置50包括图像获取模块501、物体检测模块502以及训练模块503。需要的理解的是,训练模块503不是物体检测装置50中所必须的,物体检测装置50可以直接利用预先训练好的神经网络。
具体地,图像获取模块501用于获取待检测的图像。所述图像获取模块501可以与物体检测模块502以及训练模块503等在物理位置上分离,并且经由有线或者无线方式,由所述图像获取模块501发送获取到的图像给物体检测装置50中的其他模块。可替代地,所述图像获取模块501可以与物体检测装置50中的其他模块或组件物理上位于同一位置甚至位于同一机壳内部,物体检测装置50中的其他模块或组件经由内部总线接收由所述图像获取模块501发送的图像。
在本公开的一个实施例中,所述图像获取模块501可以是摄像头,图像获取模块501具体用于采集待检测的图像。在本公开的另一个实施例中,图像获取模块501具体用于经由有线或无线方式,接收待检测的图像,例如接收图像采集设备或其他设备发送的待检测的图像。在本公开的另一个实施例中,所述图像获取模块501具体用于从存储器中获取预先存储的待检测的图像。
此外,在执行神经网络训练的阶段,所述图像获取模块501还可以获取已经标注有训练目标的训练图像,并将该训练图像提供给所述训练模块503以执行神经网络的训练。
物体检测模块502用于采用神经网络对所述图像获取模块501获取到的所述图像执行物体检测。物体检测模块502中采用的神经网络可以是参照图2描述的神经网络200,所述神经网络200包括输入层201、中间层202和输出层203。
所述物体检测模块502具体用于:经由所述输入层201输入所述图像;经由所述中间层202中级联的多个计算节点2021到202N中的每个计算节点的卷积层20211到202N1对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;以及经由所述输出层203输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标。输入层201、中间层202和输出层203的具体处理与参照图1和图2描述的相同,在此将省略其重复描述。
训练模块503用于预先训练所述神经网络。具体地,所述训练模块503具体用于:经由所述输入层201输入训练图像;经由所述中间层202中级联的多个计算节点2021到202N中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理和/或对所述多个计算节点中的多个卷积层中的至少一个卷积层的权重执行二值化处理;以及在所述神经网络的损失函数满足预定条件,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述神经网络的损失函数是根据所述训练结果确定的。训练模块503的具体处理与参照图3和图4描述的相同,在此将省略其重复描述。
图6是图示根据本公开的实施例的训练装置的框图。如图6所示的根据本公开的实施例的训练装置60可以用于执行如图3和图4所示的根据本公开的实施例的神经网络的训练方法。如图6所示,根据本公开的实施例的训练装置60包括图像获取模块601和训练模块602。
具体地,图像获取模块601用于获取训练图像。在本公开的一个实施例中,所述图像获取模块601可以是能够获取图像的摄像头。所述图像获取模块601可以与训练模块602在物理位置上分离,并且经由有线或者无线方式,由所述图像获取模块601发送获取到的图像给训练模块602。可替代地,所述图像获取模块601可以与训练装置60中的训练模块602物理上位于同一位置甚至位于同一机壳内部,训练模块602经由内部总线接收由所述图像获取模块601发送的图像。所述图像获取模块601还可以将获取到的图像进行标注作为训练图像提供给所述训练模块602以执行神经网络的训练。
训练模块602用于预先训练所述神经网络。训练装置60训练的神经网络可以是参照图2描述的神经网络200,所述神经网络200包括输入层201、中间层202和输出层203。
具体地,所述训练模块602用于:经由所述输入层201输入训练图像;经由所述中间层202中级联的多个计算节点2021到202N中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理和/或对所述多个计算节点中的多个卷积层中的至少一个卷积层的权重执行二值化处理;经由所述输出层203输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及在所述神经网络的损失函数满足预定条件,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述神经网络的损失函数是根据所述训练结果确定的。训练模块603的具体处理与参照图3和图4描述的相同,在此将省略其重复描述。
图7是图示根据本公开的实施例的物体检测装置的硬件框图。如图7所示,根据本公开实施例的物体检测装置70包括存储器701和处理器702。物体检测装置70中的各组件通过总线***和/或其它形式的连接机构(未示出)互连。
所述存储器701用于存储非暂时性计算机可读指令。具体地,存储器701可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
所述处理器702可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制物体检测装置70中的其它组件以执行期望的功能。在本公开的一个实施例中,所述处理器702用于运行所述存储器701中存储的所述计算机可读指令,使得所述物体检测装置70执行基于神经网络的物体检测方法。所述物体检测方法与参照图1和图2描述的相同,在此将省略其重复描述。
此外,需要理解的是,图7所示的物体检测装置70的组件和结构只是示例性的,而非限制性的,根据需要,物体检测装置70也可以具有其他组件和结构。例如,图像采集装置和输出装置等(未示出)。图像采集装置可以用于采集用于物体检测的待检测图像,并且将所拍摄的图像存储在存储器701中以供其它组件使用。当然,也可以利用其他图像采集设备采集所述待检测图像,并且将采集的图像发送给物体检测装置70,物体检测装置70可以将接收到的图像存储到存储器701中。输出装置可以向外部(例如用户)输出各种信息,例如图像信息以及物体检测结果。输出装置可以包括显示器、扬声器、投影仪、网卡等中的一个或多个。
图8是图示根据本公开的实施例的训练装置的硬件框图。如图8所示,根据本公开实施例的训练装置80包括存储器801和处理器802。训练装置80中的各组件通过总线***和/或其它形式的连接机构(未示出)互连。
所述存储器801用于存储非暂时性计算机可读指令。具体地,存储器801可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
所述处理器802可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制训练装置80中的其它组件以执行期望的功能。在本公开的一个实施例中,所述处理器802用于运行所述存储器801中存储的所述计算机可读指令,使得所述训练装置80执行用于物体检测的神经网络的训练方法。所述训练方法与参照图3和图4描述的相同,在此将省略其重复描述。
此外,需要理解的是,图8所示的训练装置80的组件和结构只是示例性的,而非限制性的,根据需要,物体检测装置80也可以具有其他组件和结构。例如,图像采集装置和输出装置等(未示出)。图像采集装置可以用于采集用于神经网络训练的训练图像,并且将所拍摄的图像存储在存储器801中以供其它组件使用。当然,也可以利用其他图像采集设备采集所述训练图像,并且将采集的图像发送给训练装置80。输出装置可以向外部(例如用户)输出各种信息,例如图像信息和训练结果。输出装置可以包括显示器、扬声器、投影仪、网卡等中的一个或多个。
图9是图示根据本公开的实施例的计算机可读存储介质的示意图。如图9所示,根据本公开实施例的计算机可读存储介质900其上存储有非暂时性计算机可读指令901。当所述非暂时性计算机可读指令901由处理器运行时,执行参照以上附图描述的根据本公开实施例的基于神经网络的物体检测方法以及用于物体检测的神经网络的训练方法。
图10A和10B是图示根据本公开的实施例的物体检测处理的示意图。
图10A示出了用于进行物体检测的待检测图像。在如图10A示出的待检测图像中,包括人、建筑物、树木、车辆等多个类别的目标。
图10B示出了利用根据本公开的实施例的物体检测方法对图10A示出的待检测图像执行二分类(即,人脸和非人脸)语义检测后的热力图和相应的包围框输出。图10B中的白色包围框区域表示人脸所在区域。
以上,参照附图描述了根据本公开的实施例的基于神经网络的物体检测方法和装置、用于物体检测的神经网络的训练方法和装置、以及计算机可读存储介质。在根据本公开的实施例的物体检测方法和神经网络的训练方法中,通过将用于物体检测的神经网络的和该神经网络各层的中间表示进行二值化处理,使得耗时的多位浮点卷积运算只在二值化的权重和二值化的中间表示之间进行,极大地提高了计算速度和所需的计算和存储资源。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、***的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
另外,如在此使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
还需要指出的是,在本公开的***和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (18)

1.一种基于神经网络的物体检测方法,其中,所述神经网络包括输入层、中间层和输出层,所述物体检测方法包括:
获取待检测的图像;
经由所述输入层输入所述图像;
经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;
经由所述输出层输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中的每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标;以及
根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框,
其中,所述包围框的X通道和所述热力图的通道是相互独立的,
其中,所述对获得的所述中间表示执行二值化处理,包括:
对所述热力图所在的通道的所述中间表示执行二值化处理,并且对所述包围框所在通道不执行二值化处理。
2.如权利要求1所述的物体检测方法,其中,所述根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个包围框,包括:
根据所述热力图中属于检测目标的多个像素的位置和所述多个像素各自对应的包围框的X通道值,确定多个包围框;
对所述多个包围框中用于标记同一检测目标的包围框执行去重处理,得到所述至少一个目标包围框。
3.如权利要求1或2所述的物体检测方法,其中,所述至少一个目标包围框为多个目标包围框,所述多个目标包围框中任意两个目标包围框标记的检测目标互不重合。
4.如权利要求1所述的物体检测方法,还包括:
预先训练所述神经网络,
其中,所述预先训练所述神经网络包括:
经由所述输入层输入训练图像;
经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理;
经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及
在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的。
5.如权利要求4所述的物体检测方法,其中,所述预先训练所述神经网络还包括:
对所述多个计算节点中的多个卷积层中的至少一个卷积层的权重执行二值化处理。
6.如权利要求1或2所述的物体检测方法,其中,所述经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算包括:
在所述中间层中的每个计算节点的卷积层中,将所述卷积层的二值化的权重矩阵与所述输入的数据执行按位异或处理,将按位异或处理后的二值化串中1的个数作为所述卷积层的中间表示。
7.一种用于物体检测的神经网络的训练方法,其中,所述神经网络包括输入层、中间层和输出层,所述训练方法包括:
经由所述输入层输入训练图像;
经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理;
经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及
在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的,
其中,所述包围框的X通道和所述热力图的通道是相互独立的,
其中,所述对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理,包括:
对所述热力图所在的通道的所述中间表示执行二值化处理,并且对所述包围框所在通道不执行二值化处理。
8.一种物体检测装置,所述物体检测装置包括:
图像获取模块,用于获取待检测的图像;以及
物体检测模块,用于采用神经网络对所述图像获取模块获取到的所述图像执行物体检测,所述神经网络包括输入层、中间层和输出层,所述物体检测模块具体用于:
经由所述输入层输入所述图像;
经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;
经由所述输出层输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中的每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标,
其中,所述物体检测模块进一步根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框,
其中,所述包围框的X通道和所述热力图的通道是相互独立的,
其中,所述中间层对所述热力图所在的通道的所述中间表示执行二值化处理,并且对所述包围框所在通道不执行二值化处理。
9.如权利要求8所述的物体检测装置,所述物体检测模块具体用于:
根据所述热力图中属于检测目标的多个像素的位置和所述多个像素各自对应的包围框的X通道值,确定多个包围框;
对所述多个包围框中用于标记同一检测目标的包围框执行去重处理,得到所述至少一个目标包围框。
10.如权利要求8或9所述的物体检测装置,其中,所述至少一个目标包围框为多个目标包围框,所述多个目标包围框中任意两个目标包围框标记的检测目标互不重合。
11.如权利要求8所述的物体检测装置,还包括:
训练模块,用于预先训练所述神经网络,
其中,所述训练模块具体用于:经由所述输入层输入训练图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对至少一个计算节点的中间表示执行二值化处理;经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的。
12.如权利要求11所述的物体检测装置,其中,所述训练模块还用于:对所述多个计算节点中的多个卷积层中的至少一个卷积层的权重执行二值化处理。
13.如权利要求8或9所述的物体检测装置,其中,所述物体检测模块具体用于:
在所述中间层中的每个计算节点的卷积层中,将所述卷积层的二值化的权重矩阵与所述输入的数据执行按位异或处理,将按位异或处理后的二值化串中1的个数作为所述卷积层的中间表示。
14.一种训练装置,所述训练装置包括:
图像获取模块,用于获取训练图像;以及
训练模块,用于训练用于物体检测的神经网络,所述神经网络包括输入层、中间层和输出层,所述训练模块具体用于:
经由所述输入层输入训练图像;经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对至少一个计算节点的中间表示执行二值化处理;经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的,
其中,所述包围框的X通道和所述热力图的通道是相互独立的,
其中,所述中间层对所述热力图所在的通道的所述中间表示执行二值化处理,并且对所述包围框所在通道不执行二值化处理。
15.一种物体检测装置,所述物体检测装置包括:
存储器,用于存储非暂时性计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述物体检测装置执行基于神经网络的物体检测方法,其中所述神经网络包括输入层、中间层和输出层,所述物体检测方法包括:
获取待检测的图像;
经由所述输入层输入所述图像;
经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;
经由所述输出层输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中的每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标;以及
根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框,
其中,所述包围框的X通道和所述热力图的通道是相互独立的,
其中,所述对获得的所述中间表示执行二值化处理,包括:
对所述热力图所在的通道的所述中间表示执行二值化处理,并且对所述包围框所在通道不执行二值化处理。
16.一种训练装置,所述训练装置包括:
存储器,用于存储非暂时性计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述训练装置执行用于物体检测的神经网络的训练方法,其中所述神经网络包括输入层、中间层和输出层,所述训练方法包括:
经由所述输入层输入训练图像;
经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理;
经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及
在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的,
其中,所述包围框的X通道和所述热力图的通道是相互独立的,
其中,所述对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理,包括:
对所述热力图所在的通道的所述中间表示执行二值化处理,并且对所述包围框所在通道不执行二值化处理。
17.一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行基于神经网络的物体检测方法,其中,所述神经网络包括输入层、中间层和输出层,所述物体检测方法包括:
获取待检测的图像;
经由所述输入层输入所述图像;
经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对获得的所述中间表示执行二值化处理;
经由所述输出层输出所述图像的热力图和所述热力图中每个像素对应的包围框的X通道值,其中,X的取值为大于或等于2的整数,所述热力图表示所述图像中的每个像素是否属于检测目标,所述每个像素对应的包围框用于在所述图像上标记所述每个像素对应的检测目标;以及
根据所述热力图和所述热力图中每个像素对应的包围框的X通道值,确定至少一个目标包围框,
其中,所述包围框的X通道和所述热力图的通道是相互独立的,
其中,所述对获得的所述中间表示执行二值化处理,包括:
对所述热力图所在的通道的所述中间表示执行二值化处理,并且对所述包围框所在通道不执行二值化处理。
18.一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行用于物体检测的神经网络的训练方法,其中,所述神经网络包括输入层、中间层和输出层,所述训练方法包括:
经由所述输入层输入训练图像;
经由所述中间层中级联的多个计算节点中的每个计算节点的卷积层对输入的数据执行卷积计算以获得中间表示,并对至少一个计算节点的中间表示执行二值化处理;
经由所述输出层输出训练结果,所述训练结果包括所述训练图像的热力图和所述训练图像的热力图中每个像素对应的包围框的X通道值;以及
在所述神经网络的损失函数满足预定条件时,获得训练好的所述神经网络,在所述神经网络的损失函数不满足预定条件时,继续输入训练图像以重复执行上述训练过程,其中所述损失函数是根据所述训练结果确定的,
其中,所述包围框的X通道和所述热力图的通道是相互独立的,
其中,所述对所述多个计算节点中的至少一个计算节点的中间表示执行二值化处理,包括:
对所述热力图所在的通道的所述中间表示执行二值化处理,并且对所述包围框所在通道不执行二值化处理。
CN201710827779.8A 2017-09-14 2017-09-14 物体检测方法和装置、神经网络训练方法和装置 Active CN108875482B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710827779.8A CN108875482B (zh) 2017-09-14 2017-09-14 物体检测方法和装置、神经网络训练方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710827779.8A CN108875482B (zh) 2017-09-14 2017-09-14 物体检测方法和装置、神经网络训练方法和装置

Publications (2)

Publication Number Publication Date
CN108875482A CN108875482A (zh) 2018-11-23
CN108875482B true CN108875482B (zh) 2022-01-21

Family

ID=64325741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710827779.8A Active CN108875482B (zh) 2017-09-14 2017-09-14 物体检测方法和装置、神经网络训练方法和装置

Country Status (1)

Country Link
CN (1) CN108875482B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109543836B (zh) * 2018-11-30 2021-08-03 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN109961045B (zh) * 2019-03-25 2021-10-22 联想(北京)有限公司 一种位置信息提示方法、装置及电子设备
CN110264539A (zh) * 2019-06-18 2019-09-20 北京字节跳动网络技术有限公司 图像生成方法和装置
CN110503152B (zh) * 2019-08-26 2022-08-26 北京迈格威科技有限公司 用于目标检测的双路神经网络训练方法及图像处理方法
CN110532984B (zh) * 2019-09-02 2022-10-11 北京旷视科技有限公司 关键点检测方法、手势识别方法、装置及***
CN113298102B (zh) * 2020-02-23 2022-06-24 魔门塔(苏州)科技有限公司 一种目标分类模型的训练方法及装置
CN112559042A (zh) * 2020-12-16 2021-03-26 北京地平线信息技术有限公司 执行神经网络运算的指令生成方法、图像处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196996A (zh) * 2007-12-29 2008-06-11 北京中星微电子有限公司 一种图像检测方法及装置
WO2016172856A1 (zh) * 2015-04-28 2016-11-03 北京旷视科技有限公司 用于识别人脸的装置、***、方法和计算机程序产品
CN106295678A (zh) * 2016-07-27 2017-01-04 北京旷视科技有限公司 神经网络训练与构建方法和装置以及目标检测方法和装置
CN106600577A (zh) * 2016-11-10 2017-04-26 华南理工大学 一种基于深度反卷积神经网络的细胞计数方法
CN106611216A (zh) * 2016-12-29 2017-05-03 北京旷视科技有限公司 基于神经网络的计算方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196996A (zh) * 2007-12-29 2008-06-11 北京中星微电子有限公司 一种图像检测方法及装置
WO2016172856A1 (zh) * 2015-04-28 2016-11-03 北京旷视科技有限公司 用于识别人脸的装置、***、方法和计算机程序产品
CN106295678A (zh) * 2016-07-27 2017-01-04 北京旷视科技有限公司 神经网络训练与构建方法和装置以及目标检测方法和装置
CN106600577A (zh) * 2016-11-10 2017-04-26 华南理工大学 一种基于深度反卷积神经网络的细胞计数方法
CN106611216A (zh) * 2016-12-29 2017-05-03 北京旷视科技有限公司 基于神经网络的计算方法及装置

Also Published As

Publication number Publication date
CN108875482A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108875482B (zh) 物体检测方法和装置、神经网络训练方法和装置
Hu et al. Learning semantic segmentation of large-scale point clouds with random sampling
US10977530B2 (en) ThunderNet: a turbo unified network for real-time semantic segmentation
CN109891897B (zh) 用于分析媒体内容的方法
WO2017166586A1 (zh) 基于卷积神经网络的图片鉴别方法、***和电子设备
CN111582141B (zh) 人脸识别模型训练方法、人脸识别方法及装置
CN110929622A (zh) 视频分类方法、模型训练方法、装置、设备及存储介质
CN109446889B (zh) 基于孪生匹配网络的物体追踪方法及装置
US11210546B2 (en) End-to-end text recognition method and apparatus, computer device and readable medium
KR101581112B1 (ko) 계층적 패턴 구조에 기반한 기술자 생성 방법 및 이를 이용한 객체 인식 방법과 장치
CN109727264A (zh) 图像生成方法、神经网络的训练方法、装置和电子设备
EP2919162A1 (en) Image processing apparatus and image processing method
GB2555136A (en) A method for analysing media content
CN110222718B (zh) 图像处理的方法及装置
CN107301376B (zh) 一种基于深度学习多层刺激的行人检测方法
CN108875456B (zh) 目标检测方法、目标检测装置和计算机可读存储介质
CN108875505B (zh) 基于神经网络的行人再识别方法和装置
CN113807361B (zh) 神经网络、目标检测方法、神经网络训练方法及相关产品
CN112200057A (zh) 人脸活体检测方法、装置、电子设备及存储介质
CN111652181B (zh) 目标跟踪方法、装置及电子设备
CN116453067B (zh) 基于动态视觉识别的短跑计时方法
KR20180123810A (ko) X-Ray 의료 영상 판독을 위한 데이터 심화학습 처리 기술 및 그 방법
CN111226226A (zh) 基于运动的对象检测方法及其对象检测装置和电子设备
CN110532959B (zh) 基于双通道三维卷积神经网络的实时暴力行为检测***
CN110533184B (zh) 一种网络模型的训练方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant