CN107563392A - 使用OpenCL加速的YOLO目标检测方法 - Google Patents

使用OpenCL加速的YOLO目标检测方法 Download PDF

Info

Publication number
CN107563392A
CN107563392A CN201710798823.7A CN201710798823A CN107563392A CN 107563392 A CN107563392 A CN 107563392A CN 201710798823 A CN201710798823 A CN 201710798823A CN 107563392 A CN107563392 A CN 107563392A
Authority
CN
China
Prior art keywords
mrow
msubsup
convolutional neural
neural networks
msub
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.)
Pending
Application number
CN201710798823.7A
Other languages
English (en)
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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201710798823.7A priority Critical patent/CN107563392A/zh
Publication of CN107563392A publication Critical patent/CN107563392A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种使用GPU硬件加速的YOLO目标检测方法,实现的步骤是:(1)初始化卷积神经网络;(2)获取训练样本;(3)划分训练样本的网格;(4)训练卷积神经网络;(5)判断损失值是否小于0.01,若是,保存训练好的卷积神经网络模型,若不是,获取下一次的训练样本继续训练;(6)将训练好的卷积神经网络的模型保存至计算机硬盘;(7)提取测试图片的特征;(8)确定测试图片目标的位置矩形框;(9)结束目标检测。本发明可用在通用计算机上实现对图像中的目标进行特征提取,然后用位置矩形框标示出目标所在位置,并且在矩形框右上角标示出目标的类别。

Description

使用OpenCL加速的YOLO目标检测方法
技术领域
本发明属于计算机技术领域,更进一步涉及计算机视觉和深度学习技术领域中的一种使用开放运算语言OpenCL(Open Computing Language)加速的你只看一眼YOLO(YouOnly Look Once)目标检测方法。本发明可以实现对基于深度卷积神经网络的YOLO目标检测方法加速,可用在通用计算机上实现对图片中的目标进行实时检测。
背景技术
具有高速、高性能的目标检测方法是计算机视觉领域的核心技术。近年来基于深度卷积神经网络在计算机视觉领域大放异彩,基于深度卷积神经网络的图像分类,目标检测算法与传统的方法相比,分类识别准确率显著提升。对于复杂场景的目标检测,基于深度卷积神经网络的算法有着更强的鲁棒性,更能适应场景,光照强度的变化。
长沙马沙电子科技有限公司提出的专利申请“一种基于大规模高性能集群的卷积神经网络并行处理方法”(申请日:2014年11月21日,申请号:2014106748603,公开号:CN104463324A)中公开了一种基于大规模高性能集群的卷积神经网络并行处理方法。该方法首先将要训练的网络模型构建出多个副本,每个副本的模型参数均相同,副本的个数与高性能集群的节点数相同,每个节点上分布一个模型副本;选定一个节点作为主节点,负责模型参数的广播与收集。其次,将训练集分为若干子集,每次将训练子集分发给除主节点之外的其余子节点,共同进行参数梯度的计算,并将梯度值累计,累计值用来更新主节点模型参数,将更新后的模型参数广播给各个子节点,直到模型训练终止。但是,该方法存在不足的是,在大规模高性能集群上并行卷积神经网络,代码无法在通用的计算机上移植,大大限制了其应用范围。
深圳市哈工大交通电子技术有限公司提出的专利申请“一种基于GPU平台的Haar检测目标算法”(申请日:2015年12月16日,申请号:2015104762047,公开号:CN105160349A)中公开了一种基于GPU加速的Haar分类器的目标检测方法。该方法首先读取分类器模型文件信息,计算所有尺寸的缩放尺寸信息,并将数据传输到GPU设备上,然后计算积分图和平方积分图,得到不同尺度对应的标准差值图,最后利用haar分类器并行处理的方式实现目标检测。但是,该方法存在不足的是,只计算积分图和平方积分图这种手动选择特征的方式,对更复杂的场景不具有很好的泛化能力,检测精度较低。
发明内容
本发明的目的在于克服上述现有技术的不足,提供了一种使用OpenCL加速的YOLO目标检测方法,可实现对图像中的目标进行检测。
本发明的步骤如下:
(1)初始化卷积神经网络:
分别计算卷积神经网络卷积层的初始权重值、偏置值、批量归一化尺度因子值,利用计算的三个值对卷积神经网络进行初始化;
(2)获取训练样本:
(2a)从含有20种目标类别且标注矩形框的图片集中,随机选取64幅图片;
(2b)对所选每一幅图片进行预处理;
(2c)将预处理后的每一幅图片的长,宽均设置为448个像素后组成训练样本集;
(3)划分训练样本的网格:
将训练样本集中的每一幅图片等分为7*7个正方形网格,每个网格的大小为64*64;
(4)训练卷积神经网络:
(4a)将训练样本集输入到卷积神经网络中;
(4b)利用计算机图形处理器GPU,并行计算卷积神经网络中卷积层的每一个输出特征值,将所有的特征值组成卷积神经网络中卷积层的输出特征值矩阵;
(4c)在卷积层的输出特征值矩阵的2*2邻域内取输出特征的最大值,作为卷积神经网络最大池化层的输出特征值矩阵;
(4e)利用计算机图形处理器GPU,并行计算卷积神经网络中柔性最大值softmax层的每一个输出特征值,将所有的特征值组成卷积神经网络中柔性最大值softmax层的输出特征值矩阵;
(4f)利用计算机图形处理器GPU,并行计算卷积神经网络输出层的损失值;
(4g)利用计算机图形处理器GPU,采用随机梯度下降方法,并行计算卷积神经网络的权重值、偏置值;
(5)判断当前卷积神经网络输出层的损失值是否小于0.01,若是,则执行步骤(6),否则,执行步骤(2);
(6)将训练好的卷积神经网络的模型保存至计算机硬盘;
(7)提取测试图片的输出特征:
(7a)从没有标注矩形框的图片集中随机选取1幅图片,作为测试图片;
(7b)将测试图片输入到卷积神经网络中,得到测试图片的输出特征;
(8)标示测试图片目标的位置矩形框:
根据测试图片的输出特征,在测试图片中,用矩形框标示出目标,并显示出目标的类别;
(9)结束目标检测。
本发明与现有技术相比,具有以下优点:
第一,本发明采用计算机图形处理器GPU,并行提取训练样本和测试样本的特征,克服了现有技术中采用大规模高性能集群并行提取图像特征结构复杂、可移植性差的问题,使得本发明在保证样本特征的提取速度的同时,代码的可移植性大大增强。
第二,本发明采用计算机图形处理器GPU,并行提取训练样本和测试样本的特征,克服了现有技术中对复杂场景目标检测精度较低的问题,使得本发明大大增强了目标检测算法在多种场景下的泛化能力,提高了目标检测的精度。
附图说明
图1是本发明的流程图。
具体实施方式
下面结合附图对本发明作进一步的描述。
本发明采用OpenCL语言,可以在NVIDIA的任何一款支持OpenCL架构的GPU设备上实现。
参照图1,本发明可通过以下步骤实现:
步骤1,初始化卷积神经网络。
按照下式,分别计算卷积神经网络卷积层的初始权重值、偏置值、批量归一化尺度因子值,利用计算的三个值对卷积神经网络进行初始化。
其中,表示卷积神经网络第r层第g通道的第n个权重值,~表示服从概率分布符号,表示开根号操作,π表示圆周率,exp(·)表示以自然常数e为底的指数操作,表示卷积神经网络第r层第g通道的偏置值,表示卷积神经网络第r层第g通道的批量归一化尺度因子值。
步骤2,获取训练样本。
从含有20种目标类别且标注矩形框的图片集中,随机选取64张图片。
按照以下的第1步,第2步,第3步对所选的每一张图片进行预处理。
第1步,在[-15,15]角度范围内,任意选取一个值作为所选的每一张图片的旋转角度,以所选取的旋转角度旋转每一张图片。
第2步,在[-20,20]像素范围内,任意选取一个值作为所选的每一张图片的水平移动的像素值,以所选取的像素值水平移动每一张图片。
第3步,在[-20,20]像素范围内,任意选取一个值作为所选的每一张图片的竖直移动的像素值,以所选取的像素值竖直移动每一张图片,得到预处理后的图片。将预处理后的每一张图片的长,宽均设置为448个像素后将组成训练样本集。
步骤3,划分训练样本的网格。
将训练样本集中的每一张图片等分为7*7个正方形网格,每个网格的大小为64*64。
步骤4,训练卷积神经网络。
将训练样本集输入到卷积神经网络中。
利用计算机图形处理器GPU,按照以下的第1步和第2步并行计算卷积神经网络中卷积层的每一个输出特征值,将所有的特征值组成卷积神经网络中卷积层的输出特征值矩阵。
第1步,按照下式,计算卷积神经网络中卷积操作的输出值:
其中,表示卷积神经网络第r层第j通道的第i个经过卷积操作得到的输出值,∑表示求和操作,Sg表示卷积核第g通道的尺寸,表示卷积神经网络第r-1层的第j通道的第i个输出特征值,*表示乘积操作;
第2步,按照下式,计算卷积神经网络中卷积层的每一个输出特征值:
其中,At表示卷积神经网络中卷积层的第t个输出特征值,activate表示激活函数操作,m表示通道尺寸,δ表示一个无限趋近于0的极小数。
在卷积层的输出特征值矩阵的2*2邻域内的取输出特征的最大值,作为卷积神经网络最大池化层的输出特征值矩阵。
按照下式,利用计算机图形处理器GPU,并行计算卷积神经网络中柔性最大值softmax层的每一个输出特征值,其所有结果组成卷积神经网络中柔性最大值softmax层的输出特征值矩阵。
其中,Yz表示卷积神经网络柔性最大值softmax层的第z个输出特征值,xk表示卷积神经网络柔性最大值softmax层的第k个输入特征值,e表示柔性最大值softmax层的输入特征值总数。
按照以下的第1步,第2步,第3步,第4步,利用计算机图形处理器GPU,并行计算卷积神经网络输出层的损失值。
第1步,按照下式,计算卷积神经网络输出层中的位置损失值:
其中,L1表示卷积神经网络输出层中的位置损失值,λ表示目标位置的惩罚因子,D表示划分图像的网格数量,F表示边界框的数量,表示图片第γ个网格的第β个边界框中有目标存在的指示函数,uγ表示图片第γ个网格中预测目标位置的横坐标,表示图片第γ个网格中目标实际位置的横坐标,vγ表示图片第γ个网格中预测目标位置的纵坐标,表示图片第γ个网格中目标实际位置的纵坐标,tγ表示图片第γ个网格中目标的预测宽度,表示图片第γ个网格中目标实际的宽度,hγ表示图片第γ个网格中目标的预测高度,表示图片第γ个网格中目标实际的高度;
第2步,按照下式,计算卷积神经网络输出层存在目标的概率损失值:
其中,L2表示卷积神经网络输出层存在目标的概率损失值,Qγ表示图片第γ个网格中存在目标的预测概率值,表示图片第γ个网格中存在目标的实际概率值,λ1表示不存在目标项的惩罚因子,表示图片第γ个网格的第β个边界框中目标不存在的指示函数;
第3步,按照下式,计算卷积神经网络输出层类别的概率损失值:
其中,L3表示卷积神经网络输出层类别的概率损失值,表示图片第γ个网格中是否有目标存在的指示函数,classes表示类别总数,pγ(cla)表示图片第γ个网格中目标类别为cla的预测概率值,表示图片第γ个网格中目标类别为cla的真实概率值。
第4步,按照下式,计算卷积神经网络输出层的损失值。
L=L1+L2+L3
其中,L表示卷积神经网络输出层的损失值。
按照下式,利用计算机图形处理器GPU,采用随机梯度下降方法,并行计算卷积神经网络更新后的权重值、偏置值。
第1步,按照下式,分别计算卷积神经网络每一层每一个通道的权重、偏置的梯度值。
其中,表示卷积神经网络第r层第g通道的第n个权重的梯度值,表示取偏导操作,表示卷积神经网络第r层第g个通道偏置的梯度值。
第2步,按照下式,分别并行计算卷积神经网络更新后的权重值、偏置值。
其中,表示卷积神经网络第r层第g通道更新后的权重值,表示卷积神经网络第r层第g通道更新后的偏置值,α表示学习率,其取值范围为(0,1)。
步骤5,判断当前卷积神经网络输出层的损失值是否小于0.01,若是,则执行步骤(6),否则,执行步骤(2)。
步骤6,将训练好的卷积神经网络的模型保存至计算机硬盘。
步骤7,提取测试图片的输出特征。
从没有标注矩形框的图片集中随机选取1幅图片,作为测试图片。
将测试图片输入到卷积神经网络中,得到测试图片的输出特征。
步骤8,标示测试图片目标的位置矩形框。
根据测试图片的输出特征,在测试图片中,用矩形框标示出目标,并显示出目标的类别。
步骤9,结束目标检测。
下面结合仿真实验对本发明的效果做进一步详细描述。
1.仿真实验条件:
本发明的仿真实验的异构平台为NVDIA异构开发平台,其中主机端CPU为Xeon E5-1603,图形处理器为NVDIA GTX 1080,操作***为Ubuntu 14.04,软件环境为Eclipse CDT。
2.仿真实验内容及其结果分析:
本发明的仿真实验是从没有标注矩形框的图片集中随机选取1幅图片,作为测试图片。将测试图片使用传统的YOLO算法和本发明方法分别进行目标检测,分别获取两种方法对所选取的测试图片进行目标检测所需的耗时进行对比,结果如表1所示。
表1本发明与传统YOLO目标检测方法的耗时对比表(单位:ms)
传统YOLO目标检测方法耗时 2613
本发明方法耗时 53
由表1可见,本发明所提出的使用OpenCL加速的YOLO目标检测方法相比传统的YOLO目标检测方法,耗时明显减少。

Claims (7)

1.一种使用OpenCL加速的YOLO目标检测方法,其特征在于,包括如下步骤:
(1)初始化卷积神经网络:
分别计算卷积神经网络卷积层的初始权重值、偏置值、批量归一化尺度因子值,利用计算的三个值对卷积神经网络进行初始化;
(2)获取训练样本:
(2a)从含有20种目标类别且标注矩形框的图片集中,随机选取64幅图片;
(2b)对所选每一幅图片进行预处理;
(2c)将预处理后的每一幅图片的长,宽均设置为448个像素后组成训练样本集;
(3)划分训练样本的网格:
将训练样本集中的每一幅图片等分为7*7个正方形网格,每个网格的大小为64*64;
(4)训练卷积神经网络:
(4a)将训练样本集输入到卷积神经网络中;
(4b)利用计算机图形处理器GPU,并行计算卷积神经网络中卷积层的每一个输出特征值,将所有的特征值组成卷积神经网络中卷积层的输出特征值矩阵;
(4c)在卷积层的输出特征值矩阵的2*2邻域内取输出特征的最大值,作为卷积神经网络最大池化层的输出特征值矩阵;
(4e)利用计算机图形处理器GPU,并行计算卷积神经网络中柔性最大值softmax层的每一个输出特征值,将所有的特征值组成卷积神经网络中柔性最大值softmax层的输出特征值矩阵;
(4f)利用计算机图形处理器GPU,并行计算卷积神经网络输出层的损失值;
(4g)利用计算机图形处理器GPU,采用随机梯度下降方法,并行计算卷积神经网络更新后的权重值、偏置值;
(5)判断当前卷积神经网络输出层的损失值是否小于0.01,若是,则执行步骤(6),否则,执行步骤(2);
(6)将训练好的卷积神经网络的模型保存至计算机硬盘;
(7)提取测试图片的输出特征:
(7a)从没有标注矩形框的图片集中随机选取1幅图片,作为测试图片;
(7b)将测试图片输入到卷积神经网络中,得到测试图片的输出特征;
(8)标示测试图片目标的位置矩形框:
根据测试图片的输出特征,在测试图片中,用矩形框标示出目标,并显示出目标的类别;
(9)结束目标检测。
2.根据权利要求1所述的使用OpenCL加速的YOLO目标检测方法,其特征在于,步骤(1)中所述的分别计算卷积神经网络卷积层的初始权重值、偏置值、批量归一化尺度因子值的公式如下:
<mrow> <msubsup> <mi>w</mi> <mrow> <mi>n</mi> <mi>g</mi> </mrow> <mi>r</mi> </msubsup> <mo>~</mo> <mfrac> <mn>1</mn> <msqrt> <mrow> <mn>2</mn> <mi>&amp;pi;</mi> </mrow> </msqrt> </mfrac> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <msup> <msubsup> <mi>w</mi> <mrow> <mi>n</mi> <mi>g</mi> </mrow> <mi>r</mi> </msubsup> <mn>2</mn> </msup> </mrow> <mn>2</mn> </mfrac> <mo>)</mo> </mrow> </mrow>
<mrow> <msubsup> <mi>b</mi> <mi>g</mi> <mi>r</mi> </msubsup> <mo>~</mo> <mfrac> <mn>1</mn> <msqrt> <mrow> <mn>2</mn> <mi>&amp;pi;</mi> </mrow> </msqrt> </mfrac> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <msubsup> <mi>b</mi> <mi>g</mi> <msup> <mi>r</mi> <mn>2</mn> </msup> </msubsup> <mn>2</mn> </mfrac> <mo>)</mo> </mrow> </mrow>
<mrow> <msubsup> <mi>scale</mi> <mi>j</mi> <mi>r</mi> </msubsup> <mo>~</mo> <mfrac> <mn>1</mn> <msqrt> <mrow> <mn>2</mn> <mi>&amp;pi;</mi> </mrow> </msqrt> </mfrac> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>scale</mi> <mi>j</mi> <msup> <mi>r</mi> <mn>2</mn> </msup> </msubsup> </mrow> <mn>2</mn> </mfrac> <mo>)</mo> </mrow> </mrow>
其中,表示卷积神经网络第r层第g通道的第n个权重值,~表示服从概率分布符号,表示开根号操作,π表示圆周率,exp(·)表示以自然常数e为底的指数操作,表示卷积神经网络第r层第g通道的偏置值,表示卷积神经网络第r层第g通道的批量归一化尺度因子值。
3.根据权利要求1所述的使用OpenCL加速的YOLO目标检测方法,其特征在于,步骤(2b)中所述的对所选每一幅图片进行预处理的具体步骤如下:
第1步,在[-15,15]角度范围内,任意选取一个值作为所选的每一幅图片的旋转角度,以所选取的旋转角度旋转每一幅图片;
第2步,在[-20,20]像素范围内,任意选取一个值作为所选的每一幅图片的水平移动的像素值,以所选取的像素值水平移动每一幅图片;
第3步,在[-20,20]像素范围内,任意选取一个值作为所选的每一幅图片的竖直移动的像素值,以所选取的像素值竖直移动每一幅图片,得到预处理后的图片。
4.根据权利要求1所述的使用OpenCL加速的YOLO目标检测方法,其特征在于,步骤(4b)中所述的并行计算卷积神经网络中卷积层的每一个输出特征值的具体步骤如下:
第1步,按照下式,计算卷积神经网络中卷积操作的输出值:
<mrow> <msubsup> <mi>C</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>r</mi> </msubsup> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>n</mi> <mo>=</mo> <mn>0</mn> </mrow> <msub> <mi>S</mi> <mi>g</mi> </msub> </munderover> <msubsup> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>r</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>*</mo> <msubsup> <mi>w</mi> <mrow> <mi>n</mi> <mi>g</mi> </mrow> <mi>r</mi> </msubsup> </mrow>
其中,表示卷积神经网络第r层第j通道的第i个经过卷积操作得到的输出值,∑表示求和操作,Sg表示卷积核第g通道的尺寸,表示卷积神经网络第r-1层的第j通道的第i个输出特征值,*表示乘积操作;
第2步,按照下式,计算卷积神经网络中卷积层的每一个输出特征值:
<mrow> <msub> <mi>A</mi> <mi>t</mi> </msub> <mo>=</mo> <mi>a</mi> <mi>c</mi> <mi>t</mi> <mi>i</mi> <mi>v</mi> <mi>a</mi> <mi>t</mi> <mi>e</mi> <mrow> <mo>(</mo> <msubsup> <mi>scale</mi> <mi>j</mi> <mi>r</mi> </msubsup> <mfrac> <mrow> <msubsup> <mi>C</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>r</mi> </msubsup> <mo>-</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msubsup> <mi>C</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>r</mi> </msubsup> </mrow> <msqrt> <mrow> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msup> <mrow> <mo>(</mo> <msubsup> <mi>C</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>r</mi> </msubsup> <mo>-</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msubsup> <mi>C</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>r</mi> </msubsup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <mi>&amp;delta;</mi> </mrow> </msqrt> </mfrac> <mo>+</mo> <msubsup> <mi>b</mi> <mi>g</mi> <mi>r</mi> </msubsup> <mo>)</mo> </mrow> </mrow>
其中,At表示卷积神经网络中卷积层的第t个输出特征值,activate表示激活函数操作,m表示通道尺寸,δ表示一个无限趋近于0的极小数。
5.根据权利要求1所述的使用OpenCL加速的YOLO目标检测方法,其特征在于,步骤(4e)中所述的并行计算卷积神经网络中柔性最大值softmax层的每一个输出特征值的公式如下:
<mrow> <msub> <mi>Y</mi> <mi>z</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mi>exp</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>e</mi> </munderover> <mi>exp</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>
其中,Yz表示卷积神经网络柔性最大值softmax层的第z个输出特征值,xk表示卷积神经网络柔性最大值softmax层的第k个输入特征值,e表示柔性最大值softmax层的输入特征值总数。
6.根据权利要求1所述的使用OpenCL加速的YOLO目标检测方法,其特征在于,步骤(4f)中所述的并行计算卷积神经网络输出层的损失值的具体步骤如下:
第1步,按照下式,计算卷积神经网络输出层中的位置损失值:
<mrow> <mi>L</mi> <mn>1</mn> <mo>=</mo> <mi>&amp;lambda;</mi> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>&amp;gamma;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>D</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>&amp;beta;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>F</mi> </munderover> <msubsup> <mn>1</mn> <mrow> <mi>&amp;gamma;</mi> <mi>&amp;beta;</mi> </mrow> <mrow> <mi>o</mi> <mi>b</mi> <mi>j</mi> </mrow> </msubsup> <mo>&amp;lsqb;</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>u</mi> <mi>&amp;gamma;</mi> </msub> <mo>-</mo> <msub> <mover> <mi>u</mi> <mo>^</mo> </mover> <mi>&amp;gamma;</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>&amp;gamma;</mi> </msub> <mo>-</mo> <msub> <mover> <mi>v</mi> <mo>^</mo> </mover> <mi>&amp;gamma;</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>&amp;rsqb;</mo> <mo>+</mo> <mi>&amp;lambda;</mi> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>&amp;gamma;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>D</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>&amp;beta;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>F</mi> </munderover> <msubsup> <mn>1</mn> <mrow> <mi>&amp;gamma;</mi> <mi>&amp;beta;</mi> </mrow> <mrow> <mi>o</mi> <mi>b</mi> <mi>j</mi> </mrow> </msubsup> <mo>&amp;lsqb;</mo> <msup> <mrow> <mo>(</mo> <msqrt> <msub> <mi>t</mi> <mi>&amp;gamma;</mi> </msub> </msqrt> <mo>-</mo> <msqrt> <msub> <mover> <mi>t</mi> <mo>^</mo> </mover> <mi>&amp;gamma;</mi> </msub> </msqrt> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <msqrt> <msub> <mi>h</mi> <mi>&amp;gamma;</mi> </msub> </msqrt> <mo>-</mo> <msqrt> <msub> <mover> <mi>h</mi> <mo>^</mo> </mover> <mi>&amp;gamma;</mi> </msub> </msqrt> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>&amp;rsqb;</mo> </mrow>
其中,L1表示卷积神经网络输出层中的位置损失值,λ表示目标位置的惩罚因子,D表示划分图像的网格数量,F表示边界框的数量,表示图片第γ个网格的第β个边界框中有目标存在的指示函数,uγ表示图片第γ个网格中预测目标位置的横坐标,表示图片第γ个网格中目标实际位置的横坐标,vγ表示图片第γ个网格中预测目标位置的纵坐标,表示图片第γ个网格中目标实际位置的纵坐标,tγ表示图片第γ个网格中目标的预测宽度,表示图片第γ个网格中目标实际的宽度,hγ表示图片第γ个网格中目标的预测高度,表示图片第γ个网格中目标实际的高度;
第2步,按照下式,计算卷积神经网络输出层存在目标的概率损失值:
<mrow> <mi>L</mi> <mn>2</mn> <mo>=</mo> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>&amp;gamma;</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>D</mi> </munderover> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>&amp;beta;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>F</mi> </munderover> <msubsup> <mn>1</mn> <mrow> <mi>&amp;gamma;</mi> <mi>&amp;beta;</mi> </mrow> <mrow> <mi>o</mi> <mi>b</mi> <mi>j</mi> </mrow> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>Q</mi> <mi>&amp;gamma;</mi> </msub> <mo>-</mo> <msub> <mover> <mi>Q</mi> <mo>^</mo> </mover> <mi>&amp;gamma;</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>&amp;lambda;</mi> <mn>1</mn> </msub> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>&amp;gamma;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>D</mi> </munderover> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>&amp;beta;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>F</mi> </munderover> <msubsup> <mn>1</mn> <mrow> <mi>&amp;gamma;</mi> <mi>&amp;beta;</mi> </mrow> <mrow> <mi>n</mi> <mi>o</mi> <mi>o</mi> <mi>b</mi> <mi>j</mi> </mrow> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>Q</mi> <mi>&amp;gamma;</mi> </msub> <mo>-</mo> <msub> <mover> <mi>Q</mi> <mo>^</mo> </mover> <mi>&amp;gamma;</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow>
其中,L2表示卷积神经网络输出层存在目标的概率损失值,Qγ表示图片第γ个网格中存在目标的预测概率值,表示图片第γ个网格中存在目标的实际概率值,λ1表示不存在目标项的惩罚因子,表示图片第γ个网格的第β个边界框中目标不存在的指示函数;
第3步,按照下式,计算卷积神经网络输出层类别的概率损失值:
<mrow> <mi>L</mi> <mn>3</mn> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>&amp;lambda;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>D</mi> </munderover> <msubsup> <mn>1</mn> <mi>&amp;gamma;</mi> <mrow> <mi>o</mi> <mi>b</mi> <mi>j</mi> </mrow> </msubsup> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>c</mi> <mi>l</mi> <mi>a</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>c</mi> <mi>l</mi> <mi>a</mi> <mi>s</mi> <mi>s</mi> <mi>e</mi> <mi>s</mi> </mrow> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>p</mi> <mi>&amp;gamma;</mi> </msub> <mo>(</mo> <mrow> <mi>c</mi> <mi>l</mi> <mi>a</mi> </mrow> <mo>)</mo> <mo>-</mo> <msub> <mover> <mi>p</mi> <mo>^</mo> </mover> <mi>&amp;gamma;</mi> </msub> <mo>(</mo> <mrow> <mi>c</mi> <mi>l</mi> <mi>a</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow>
其中,L3表示卷积神经网络输出层类别的概率损失值,表示图片第γ个网格中是否有目标存在的指示函数,classes表示类别总数,pγ(cla)表示图片第γ个网格中目标类别为cla的预测概率值,表示图片第γ个网格中目标类别为cla的真实概率值;
第4步,按照下式,计算卷积神经网络输出层的损失值:
L=L1+L2+L3
其中,L表示卷积神经网络输出层的损失值。
7.根据权利要求1所述的使用OpenCL加速的YOLO目标检测方法,其特征在于,步骤(4g)中所述的采用随机梯度下降方法,并行计算卷积神经网络更新后的权重值、偏置值的具体步骤如下:
第1步,按照下式,分别计算卷积神经网络每一层每一个通道的权重、偏置的梯度值:
<mrow> <msubsup> <mi>&amp;Delta;w</mi> <mrow> <mi>n</mi> <mi>g</mi> </mrow> <mi>r</mi> </msubsup> <mo>=</mo> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>L</mi> </mrow> <mrow> <mo>&amp;part;</mo> <msubsup> <mi>w</mi> <mrow> <mi>n</mi> <mi>g</mi> </mrow> <mi>r</mi> </msubsup> </mrow> </mfrac> </mrow>
<mrow> <msubsup> <mi>&amp;Delta;b</mi> <mi>g</mi> <mi>r</mi> </msubsup> <mo>=</mo> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>L</mi> </mrow> <mrow> <mo>&amp;part;</mo> <msubsup> <mi>b</mi> <mi>g</mi> <mi>r</mi> </msubsup> </mrow> </mfrac> </mrow>
其中,表示卷积神经网络第r层第g通道的第n个权重的梯度值,表示取偏导操作,表示卷积神经网络第r层第g个通道偏置的梯度值;
第2步,按照下式,分别并行计算卷积神经网络更新后的权重值、偏置值:
<mrow> <msubsup> <mover> <mi>w</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>n</mi> <mi>g</mi> </mrow> <mi>r</mi> </msubsup> <mo>=</mo> <msubsup> <mi>w</mi> <mrow> <mi>n</mi> <mi>g</mi> </mrow> <mi>r</mi> </msubsup> <mo>-</mo> <msubsup> <mi>&amp;alpha;&amp;Delta;w</mi> <mrow> <mi>n</mi> <mi>g</mi> </mrow> <mi>r</mi> </msubsup> </mrow>
<mrow> <msubsup> <mover> <mi>b</mi> <mo>&amp;OverBar;</mo> </mover> <mi>g</mi> <mi>r</mi> </msubsup> <mo>=</mo> <msubsup> <mi>b</mi> <mi>g</mi> <mi>r</mi> </msubsup> <mo>-</mo> <msubsup> <mi>&amp;alpha;&amp;Delta;b</mi> <mi>g</mi> <mi>r</mi> </msubsup> </mrow>
其中,表示卷积神经网络第r层第g通道更新后的权重值,表示卷积神经网络第r层第g通道更新后的偏置值,α表示学习率,其取值范围为(0,1)。
CN201710798823.7A 2017-09-07 2017-09-07 使用OpenCL加速的YOLO目标检测方法 Pending CN107563392A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710798823.7A CN107563392A (zh) 2017-09-07 2017-09-07 使用OpenCL加速的YOLO目标检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710798823.7A CN107563392A (zh) 2017-09-07 2017-09-07 使用OpenCL加速的YOLO目标检测方法

Publications (1)

Publication Number Publication Date
CN107563392A true CN107563392A (zh) 2018-01-09

Family

ID=60979539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710798823.7A Pending CN107563392A (zh) 2017-09-07 2017-09-07 使用OpenCL加速的YOLO目标检测方法

Country Status (1)

Country Link
CN (1) CN107563392A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108289177A (zh) * 2018-02-13 2018-07-17 北京旷视科技有限公司 信息交互方法、装置及***
CN108805064A (zh) * 2018-05-31 2018-11-13 中国农业大学 一种基于深度学习的鱼类定位检测和识别方法及***
CN108830195A (zh) * 2018-05-31 2018-11-16 西安电子科技大学 基于现场可编程门阵列fpga的图像分类方法
CN108982901A (zh) * 2018-06-14 2018-12-11 哈尔滨工业大学 一种匀速旋转体的转速测量方法
CN109447034A (zh) * 2018-11-14 2019-03-08 北京信息科技大学 基于YOLOv3网络的自动驾驶中交通标识检测方法
CN109684143A (zh) * 2018-12-26 2019-04-26 郑州云海信息技术有限公司 一种基于深度学习的测试gpu性能的方法及装置
CN109858569A (zh) * 2019-03-07 2019-06-07 中国科学院自动化研究所 基于目标检测网络的多标签物体检测方法、***、装置
CN109978043A (zh) * 2019-03-19 2019-07-05 新华三技术有限公司 一种目标检测方法及装置
CN109977783A (zh) * 2019-02-28 2019-07-05 浙江新再灵科技股份有限公司 基于直梯场景婴儿车单独乘梯检测的方法
CN110110844A (zh) * 2019-04-24 2019-08-09 西安电子科技大学 基于OpenCL的卷积神经网络并行处理方法
CN110826379A (zh) * 2018-08-13 2020-02-21 中国科学院长春光学精密机械与物理研究所 一种基于特征复用与YOLOv3的目标检测方法
CN111078195A (zh) * 2018-10-18 2020-04-28 中国科学院长春光学精密机械与物理研究所 一种基于opencl的目标捕获并行加速方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN104680558A (zh) * 2015-03-14 2015-06-03 西安电子科技大学 使用GPU硬件加速的Struck目标跟踪方法
CN105160349A (zh) * 2015-08-06 2015-12-16 深圳市哈工大交通电子技术有限公司 一种基于GPU平台的Haar检测目标算法
CN106997475A (zh) * 2017-02-24 2017-08-01 中国科学院合肥物质科学研究院 一种基于并行卷积神经网络的害虫图像识别方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN104680558A (zh) * 2015-03-14 2015-06-03 西安电子科技大学 使用GPU硬件加速的Struck目标跟踪方法
CN105160349A (zh) * 2015-08-06 2015-12-16 深圳市哈工大交通电子技术有限公司 一种基于GPU平台的Haar检测目标算法
CN106997475A (zh) * 2017-02-24 2017-08-01 中国科学院合肥物质科学研究院 一种基于并行卷积神经网络的害虫图像识别方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ANDRÉ R. BRODTKORB等: "Graphics processing unit (GPU) programming strategies and trends in GPU computing", 《J. PARALLEL DISTRIB. COMPUT.》 *
JOSEPH REDMON等: ""You Only Look Once:Unified, Real-Time Object Detection"", 《网页在线公开:ARXIV:1506.02640V5》 *
LOC NGUYEN HUYNH等: ""Demo: GPU-based image recognition and object detection on commodity mobile devices"", 《MOBISYS’16 COMPANION PROCEEDINGS OF THE 14TH ANNUAL INTERNATIONAL CONFERENCE ON MOBILE SYSTEMS,APPLICATIONS,AND SERVICES COMPANION》 *
STEVE LAWRENCE等: "Face Recognition: A Convolutional Neural-Network Approach", 《IEEE TRANSACTIONS ON NEURAL NETWORKS》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108289177A (zh) * 2018-02-13 2018-07-17 北京旷视科技有限公司 信息交互方法、装置及***
CN108289177B (zh) * 2018-02-13 2020-10-16 北京旷视科技有限公司 信息交互方法、装置及***
CN108805064A (zh) * 2018-05-31 2018-11-13 中国农业大学 一种基于深度学习的鱼类定位检测和识别方法及***
CN108830195A (zh) * 2018-05-31 2018-11-16 西安电子科技大学 基于现场可编程门阵列fpga的图像分类方法
CN108982901A (zh) * 2018-06-14 2018-12-11 哈尔滨工业大学 一种匀速旋转体的转速测量方法
CN108982901B (zh) * 2018-06-14 2020-06-09 哈尔滨工业大学 一种匀速旋转体的转速测量方法
CN110826379A (zh) * 2018-08-13 2020-02-21 中国科学院长春光学精密机械与物理研究所 一种基于特征复用与YOLOv3的目标检测方法
CN110826379B (zh) * 2018-08-13 2022-03-22 中国科学院长春光学精密机械与物理研究所 一种基于特征复用与YOLOv3的目标检测方法
CN111078195A (zh) * 2018-10-18 2020-04-28 中国科学院长春光学精密机械与物理研究所 一种基于opencl的目标捕获并行加速方法
CN109447034A (zh) * 2018-11-14 2019-03-08 北京信息科技大学 基于YOLOv3网络的自动驾驶中交通标识检测方法
CN109447034B (zh) * 2018-11-14 2021-04-06 北京信息科技大学 基于YOLOv3网络的自动驾驶中交通标识检测方法
CN109684143A (zh) * 2018-12-26 2019-04-26 郑州云海信息技术有限公司 一种基于深度学习的测试gpu性能的方法及装置
CN109977783A (zh) * 2019-02-28 2019-07-05 浙江新再灵科技股份有限公司 基于直梯场景婴儿车单独乘梯检测的方法
CN109858569A (zh) * 2019-03-07 2019-06-07 中国科学院自动化研究所 基于目标检测网络的多标签物体检测方法、***、装置
CN109978043A (zh) * 2019-03-19 2019-07-05 新华三技术有限公司 一种目标检测方法及装置
CN110110844A (zh) * 2019-04-24 2019-08-09 西安电子科技大学 基于OpenCL的卷积神经网络并行处理方法

Similar Documents

Publication Publication Date Title
CN107563392A (zh) 使用OpenCL加速的YOLO目标检测方法
CN108985238A (zh) 联合深度学习和语义概率的高分辨率遥感影像不透水面提取方法及***
Zheng et al. Edge effects in fragmented landscapes: a generic model for delineating area of edge influences (D-AEI)
CN111178206B (zh) 一种基于改进yolo的建筑预埋件检测方法及***
CN106909924A (zh) 一种基于深度显著性的遥感影像快速检索方法
CN109886359A (zh) 基于卷积神经网络的小目标检测方法及检测模型
CN108062756A (zh) 基于深度全卷积网络和条件随机场的图像语义分割方法
CN108334499A (zh) 一种文本标签标注设备、方法和计算设备
CN108596101A (zh) 一种基于卷积神经网络的遥感图像多目标检测方法
CN111833237B (zh) 基于卷积神经网络和局部单应性变换的图像配准方法
CN107392973A (zh) 像素级手写体汉字自动生成方法、存储设备、处理装置
CN104217438A (zh) 基于半监督的图像显著性检测方法
CN108241854A (zh) 一种基于运动和记忆信息的深度视频显著性检测方法
CN107967474A (zh) 一种基于卷积神经网络的海面目标显著性检测方法
CN103268607B (zh) 一种弱监督条件下的共同对象检测方法
CN107133955A (zh) 一种多层次结合的协同显著性检测方法
CN106960415A (zh) 一种基于像素递归超分辨率模型恢复图像的方法
CN107092883A (zh) 物体识别追踪方法
CN109255304A (zh) 基于分布场特征的目标跟踪方法
CN116863274A (zh) 一种基于半监督学习的钢板表面缺陷检测方法及***
CN106372597A (zh) 基于自适应上下文信息的cnn交通检测方法
CN108776777A (zh) 一种基于Faster RCNN的遥感影像对象间空间关系的识别方法
CN108664986A (zh) 基于lp范数正则化的多任务学习图像分类方法及***
CN111179272B (zh) 一种面向道路场景的快速语义分割方法
CN107239532A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180109

RJ01 Rejection of invention patent application after publication