CN103177262A - 基于hog和svm的行人检测系统的fpga架构及其实现方法 - Google Patents

基于hog和svm的行人检测系统的fpga架构及其实现方法 Download PDF

Info

Publication number
CN103177262A
CN103177262A CN201310053625XA CN201310053625A CN103177262A CN 103177262 A CN103177262 A CN 103177262A CN 201310053625X A CN201310053625X A CN 201310053625XA CN 201310053625 A CN201310053625 A CN 201310053625A CN 103177262 A CN103177262 A CN 103177262A
Authority
CN
China
Prior art keywords
fpga
hog
histogram
image
eigenwert
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.)
Granted
Application number
CN201310053625XA
Other languages
English (en)
Other versions
CN103177262B (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.)
Shandong University
Original Assignee
Shandong 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 Shandong University filed Critical Shandong University
Priority to CN201310053625.XA priority Critical patent/CN103177262B/zh
Publication of CN103177262A publication Critical patent/CN103177262A/zh
Application granted granted Critical
Publication of CN103177262B publication Critical patent/CN103177262B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了基于HOG和SVM的行人检测系统的FPGA实现方法,包括输入步骤,梯度和方向计算步骤,直方图生成步骤,二值化步骤,SVM分类步骤,输出步骤。本发明还提供了基于HOG和SVM的行人检测系统的FPGA实现方法采用的架构,包括输入单元,梯度和方向计算单元,直方图生成单元,二值化单元,SVM分类单元,输出单元五部分。本发明主要解决了基于HOG和SVM行人检测算法在PC上运算速度过慢和对硬件实现的移植优化问题,实现了一种实时的,低功耗的,高检测率和低资源消耗的嵌入式行人检测系统的FPGA实现方案,为行人检测在嵌入式领域的推广发展提供了一种解决方案。

Description

基于HOG和SVM的行人检测系统的FPGA架构及其实现方法
技术领域
本发明涉及基于HOG和SVM的行人检测系统的FPGA架构及其实现方法,具体涉及到应用HOG特征和线性SVM分类器进行基于图像的行人检测算法的优化改进,以及在FPGA上具体实现。属于嵌入式行人检测领域。
背景技术
行人检测是机器人视觉领域最热门也是最具挑战性的研究方向之一。它有着广泛的应用前景,如安保、交通、娱乐、监控及机器人领域。实时性、检测准确度、硬件资源使用率以及功耗是在嵌入式环境下实现的四个最重要的性能指标。近几年,随着FPGA技术在各个领域的广泛应用,以及其表现出来的良好的各项性能,使得其成为嵌入式环境下实现此算法的首选器件。但是,因为行人检测算法的复杂度较高,在FPGA上实现此算法一般需要额外的存储器存储中间数据,而且其性能和功耗也得不到保障。
行人检测算法一般包含特征值提取和分类器两个部分。特征值提取用来在一幅图像中提取有效的数据用来判断图像中是否有目标,一般以提取人体轮廓为主。特征值提取算法的好坏直接关系到检测算法的准确度。分类器算法包括两个部分,训练和检测:训练部分通过对样本(包含人体的图片和不包含人体的图片)提取特征值,并用这些特征值训练分类器;检测部分对于待检测的图像,提取其特征值,然后用训练好的分类器对这个特征值进行分类,判断图像中是否含有检测目标。在2005年以前,常用的特征值提取算法一般有Haar小波、Haar-like小波、Gabor滤波器等方法;分类器算法包括支撑向量机(SVM),Adaboost等算法。但是这些算法的检测准确度都不能满足需求。
直到2005年,Dalal等人提出了著名的梯度直方图(HOG)算法。这个算法包括HOG特征提取算法和线性SVM分类器。其极大的提高了行人检测的准确度从而使其能够达到实用的程度。本发明就是基于这种算法。
HOG特征值算法虽然极大的提高了行人检测的准确度,但是其运算的复杂性使其无法达到实时的要求。在台式电脑上检测一幅640×480像素的图像大约需要3~4秒的时间,这是无法接受的。将其进行硬件实现成为一种必然的选择,而FPGA凭借其灵活性及相对SOC低廉的价格,成为嵌入式实现的首选。
现有的基于图像的行人检测算法和其相关硬件实现的优缺点:
1)原始算法的有基于Haar特征值,SHIF特征值的实现,分类器选择Adaboost,SVM等,但效果一般不好,准确度达不到要求。
2)自2005年后,权威的行人检测算法一般采用HOG特征值,分类器有SVM和Adaboost等,但是其算法复杂度较高,虽然有着极好的检测准确率,但是检测速度一般较差,一般在PC机上一副320×240像素图像要3~4秒的时间,这完全达不到实时性的要求。
3)HOG+SVM/Adaboost算法中,因其包含过多的平方,开放,反三角函数,除法运算,都需要做一定的简化或者替换才能在硬件上特别是嵌入式设备中实现,因其计算非常密集,一般为了达到算法的实时性,往往需要牺牲掉功耗和检测准确度,而且需要更多的硬件资源。这些实现都很难在一片低端的嵌入式FPGA芯片中实现。算法的过度简化从而造成了其他性能的降低,而且都需要额外内存来存储中间数据。
发明内容
本发明的目的是为克服上述现有技术的不足,提供基于HOG和SVM的行人检测系统的FPGA架构及其实现方法,实现了一种嵌入式环境下的基于HOG特征提取和SVM分类器的行人检测系统。
为实现上述目的,本发明采用下述技术方案:
基于HOG和SVM的行人检测系统的FPGA实现方法,包括:
输入步骤,由一个嵌入式摄像头采集待检图像,并经由ARM微控制器传输给FPGA芯片,所述待检图像是标准的RGB565图像,大小为320×240像素;
输出步骤,将FPGA对图像数据处理判断后的检测结果返回给ARM微控制器,最终ARM微控制器根据FPGA返回的检测结果将待检图像中有行人的部分通过无线传输模块传送给上位机;
所述FPGA实现方法还包括:
梯度和方向计算步骤,用于流水式计算待检图像的梯度值和方向,并在计算完成后进入直方图生成步骤;
直方图生成步骤,用于实现生成直方图,将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,每个Block包含若干个向量,即特征值;
二值化步骤,用于实现每个Block内的所有特征值的二值化运算,并输出HOG特征值为1或者0;当前检测窗口的HOG特征值利用移位寄存器存储,当前计算不需要的HOG特征值利用BRAM暂存;当一个检测窗口的HOG特征值全部存储到移位寄存器后,送入SVM分类步骤;
SVM分类步骤,用于对应特征值为1的SVM分类器的向量的加法运算,并将检测结果送入输出步骤。
所述梯度和方向计算步骤的具体方法是:按照图像数据一行一行输入的特性,先把数据送入移位寄存器,流水送入BRAM,当其移动到设定位置时,利用公式(1)对每个待检图像的RGB三个通道分别计算其横向和纵向的差值,然后利用公式(2)计算出的梯度值,使用查找表实现,并选择三个通道中最大的值作为当前像素的梯度值m,最后利用公式(3)查找表确定相应的角度θ,将方向等分为9份即9bin,某个梯度的方向落在这个bin中即确定为属于这个bin;
其中,公式(2)中因包含平方根运算,并不适合硬件实现,对采集到的图像数据,每个通道位宽为4位,这样公式(2)中最多包含512种结果,使用查找表实现;常规上采用公式(4)计算,但它包含tan-1运算,不适合硬件实现,其根本目的为用来确定当前计算的梯度的方向位于哪个bin当中,所以,可以用公式(3)替代。公式(3)中,On和On-1代表当前梯度所在的bin号和相邻bin的号,可以用于确定当前梯度所在bin,而且每个bin的边界是固定的,所以tan-1On为一定值且可以预先计算好存入硬件中,这样就可以用查表运算替代反三角函数运算;
f x ( x , y ) = f ( x + 1 , y ) - f ( x - 1 , y ) f y ( x , y ) = f ( x , y + 1 ) - f ( x , y - 1 ) - - - ( 1 )
m ( x , y ) = f x ( x , y ) 2 + f y ( x , y ) 2 - - - ( 2 )
tan-1On-1fx(x,y)<fy(x,y)<tan-1Onfx(x,y)   (3)
其中,On和On-1分别表示当前梯度所在的bin号和相邻bin的号,用于确定当前梯度所在bin,x、y分别为RGB通道的横、纵坐标;
θ ( x , y ) = tan - 1 f y ( x , y ) f x ( x , y ) - - - ( 4 ) ;
所述直方图生成步骤的具体方法是:将待检图像将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,Block大小为16×16像素,每个Block包含4个cell,cell大小为8×8像素,bin数为9,步幅为8×8像素;用移位寄存器对梯度值m按方向存储,每8个数据存为一个直方图输入BRAM中,填满7行BRAM和移位寄存器后,当第八行直方图生成时,每输入一个直方图,就将其相应的7个直方图输出到移位寄存器中,计算其相应bin上的梯度值m之和,合并为一个直方图,然后输出,这样就计算出一个cell的直方图,计算完8行后清空BRAM和移位寄存器,重复上面的过程;对于每一个cell中像素的梯度,按其所属的方向bin构成一个9维的直方图,即为一个9维的向量,每个Block中共包含36个向量。
在最终的实现中,对于一幅320×240像素的待检图像,首先将其划分为495个检测窗口,每个检测窗口中有105个Block,每个Block含有4个cell,一个检测窗口最终生成一个3780维的HOG特征向量。
所述二值化步骤的具体方法是:当前要计算的Block中4个cell的直方图利用移位寄存器存储,当前行计算不需要的cell的直方图利用BRAM存储,对移位寄存器中的Block特征值做二值化运算,然后输出一个36维,每维1bit的特征向量;对一个Block内的所有特征值取其平均值作为阈值,所有特征值中比阈值大的记为1,比阈值小的记为0。
一般采取如公式(5)的方法对每个Block中所包含的36个向量做标准化,通过这一步的计算,特征值由一个数值变为一个比值,这可以最大话的减轻光照和轻微的动作对特征值的影响。这是通常意义上的一种标准化,很明显的,这种运算中包含了平方、平方根、除法运算,这都是非常不适合硬件实现的。Vk代表每个Block的36个特征值,v表示标准化后的特征向量,ε取值为1,目的是为了防止分母为零的情况。这是通常意义上的一种标准化,很明显的,这种运算中包含了平方、平方根、除法运算,这都是非常不适合硬件实现的。Vk的每个特征向量,其每个特征值的位宽为11bit,这意味着||Vk||2的范围为从0到36×211,显然不能用查找表的方式实现。而且标准化后的每个特征值一般最少也要是8bit的位宽,这对于存储也是一个巨大的挑战。对此,本专利使用一种二值化的方式来对此步进行优化。对一个Block内的所有特征值取其平均值作为阈值,所有特征值中比阈值大的记为1,比阈值小的记为0。这样所有的HOG特征只占1位,所用内存为原来运算的八分之一。更重要的是,采用这种二值化的过程后,标准化的步骤将变得完全不必要。这样,用二值化的加法运算,替换掉复杂的平方、开方和除法运算,获得了极大的性能提升。
v = v k | | v k | | 2 + ϵ - - - ( 3 )
检测时,由于采用了二值化的过程,每个HOG特征为0或者1,这样检测过程就变为对应特征值为1的SVM分类器的向量的加法运算。这就带来了巨大的性能提升。
所述SVM分类步骤的具体方法是:采用线性SVM分类器,训练部分离线完成后,将其放入FPGA中,检测过程是对应特征值为1的SVM分类器的向量的加法运算。
所述SVM分类步骤中,线性SVM分类器是对大小为64×128像素、包含人体的正样本以及大小随意、不包含人体的负样本提取HOG特征值,并用LIBSVM进行线性SVM分类器的训练得到的,得到的线性SVM分类器为一个3781维的向量,每维取8位有效位。
上述FPGA实现方法所采用的架构,包括:
输入单元,用于实现嵌入式摄像头采集待检图像,并经由ARM微控制器传输给FPGA芯片;
输出单元,用于实现图像传输,将FPGA对图像数据处理判断后的检测结果返回给ARM微控制器,并根据FPGA返回的检测结果将待检图像中有行人的部分通过无线传输模块传送给上位机;
所述架构还包括设置于FPGA芯片上的:
梯度和方向计算单元,用于流水式计算待检图像的梯度值和方向,并在计算完成后将相应的梯度值和方向送入直方图生成单元;
直方图生成单元,用于实现生成直方图,将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,每个Block包含若干个向量,即特征值;
二值化单元,用于实现每个Block内的所有特征值的二值化运算,并输出HOG特征值为1或者0;当前检测窗口的HOG特征值利用移位寄存器存储,当前计算不需要的HOG特征值利用BRAM暂存;当一个检测窗口的HOG特征值全部存储到移位寄存器后,送入SVM分类单元;
SVM分类单元,用于对应特征值为1的SVM分类器的向量的加法运算,并将检测结果送入输出单元。
本发明的重点在行人检测算法的硬件优化加速实现上,这一部分主要在FPGA中实现。在实现中的难题主要集中在以下几个方面:
1)在HOG特征提取过程中,有几个部分用到了平方根运算。对这种运算,若数据范围有限,则用查找表实现;若数据范围巨大,则想办法以别的运算如移位替代。
2)在计算像素梯度的方向时,用到了tan-1运算,这种运算在FPGA中是相当难实现的。即使Xilinx提供了如Cordic IP Core用于应对这种问题,它也会造成20个时钟的延迟和更高的资源消耗。对这种运算尽量以别的运算替代,如乘法是可以接受的。
3)HOG特征提取是对某个区域的图像数据进行处理,而图像是按行输入的,而且提取分为几个过程,所以必然需要一定的内存用于存储中间数据。为了不使用额外的存储器以降低功耗和硬件资源的消耗,必然要对硬件架构进行一定的优化,使其能暂存在FPGA内部有限的BRAM中。
4)在实现中,SVM分类器是一个3781维的向量,检测过程中要将其与相应的待检测图像的HOG特征做向量乘法,这需要做3780次乘法和相应次数的加法,这对于实时实现来说是个巨大的挑战,对硬件的资源和功耗也是一个巨大的负担,必须对此部分在保证检测准确率的前提下进行相应的优化。
本发明的有益效果是,本发明提出了一种基于HOG和SVM的行人检测系统的FPGA实现方法,属于嵌入式行人检测领域。主要解决了基于HOG和SVM行人检测算法在PC上运算速度过慢和对硬件实现的移植优化问题。发明主要包括两个部分:一是提出了一种对于与FPGA实现环境下适用的优化改进的HOG+SVM算法,提出了一种优化过的二值化过程,在保证检测准确度的前提下来节省存储空间和加快运算速度;二是对应于这种改进算法,进行了硬件上的实现设计,提出了一种基于FPGA片上BRAM的深度流水线处理架构,大大加快了运算速度并降低硬件资源消耗。最终,实现了一种实时的,低功耗的,高检测率和低资源消耗的嵌入式行人检测系统的FPGA实现方案。为行人检测在嵌入式领域的推广发展提供了一种解决方案。具体如下:
1)采用了一种较合适的参数选择方法,在这种参数控制下,可以在只使用很少FPGA片上BRAM的情况下实现此检测算法,并且取得了较好的检测结果,在此发明中取得了98.03%的正样本检测率和大约1%的负样本误检率。
2)对HOG特征提取的各步为硬件实现做了相应的优化,主要是对乘法、平方、开方、除法、反三角函数等不适合FPGA实现的运算的简化或替换,在保证检测准确度的情况下,取得了巨大的检测速率提升和资源使用率降低。
3)用二值化操作替换了标准化的过程,极大的降低了运算的复杂度,而且节省至少8分之一的存储使用量,同时也降低了FPGA实现中内部算法实现部分和片上BRAM之间的I/O频率和带宽。
4)二值化的过程同时使得SVM分类器的检测部分变得简单,用简单的加法运算替换掉乘法运算。统计学上来说,按本发明的HOG特征提取算法来实现的话,至少有50%的特征值最终是为0的,也就是最多只需要对SVM的3781个向量中的一半进行加法运算即可。这都大大提升了检测的效率。而且就检测算法来说,二值化的过程,虽然忽略了一些细节的特征,但突出了人体的轮廓部分的特征向量的值,结果的检测准确率也是让人满意的。
5)本发明的硬件实现部分采用了一种深度流水线的实现方法,例如图5所示,这种结构可以最大化的适应图像采集一行一行的输入方式,降低中间值所需要的存储空间,同时加速算法的实现。
6)在不考虑图像采集器件性能的前提下,当图像大小为320×240像素时,可以获得293帧每秒的检测速率,检测准确度为正样本检测率98.03%和负样本误检率1%,本系统可以在一个低端FPGA芯片上实现,如Xilinx的Spartan-3e系列,而功耗只有353mW。这种实现尤其适用于采用无线传输的实时图像监控环境中尤其是有着极端资源限制的无线按传感网络中,例如无线监控等。
附图说明
图1为图像的bin划分;
图2为判断梯度的bin归属;
图3为二值化阈值选择;
图4为二值化结果;
图5为梯度和方向计算单元;
图6为直方图生成单元;
图7为二值化单元;
图8为SVM分类单元;
图9为行人检测部分的硬件架构;
图10为FPGA整体架构和数据流。
具体实施方式
下面结合附图和实施例对本发明进行进一步的阐述,应该说明的是,下述说明仅是为了解释本发明,并不对其内容进行限定。
基于HOG和SVM的行人检测系统的FPGA实现方法,包括:
输入步骤,由一个嵌入式摄像头采集待检图像,并经由ARM微控制器传输给FPGA芯片,所述待检图像是标准的RGB565图像,大小为320×240像素;
输出步骤,将FPGA对图像数据处理判断后的检测结果返回给ARM微控制器,最终ARM微控制器根据FPGA返回的检测结果将待检图像中有行人的部分通过无线传输模块传送给上位机;
所述FPGA实现方法还包括:
梯度和方向计算步骤,用于流水式计算待检图像的梯度值和方向,并在计算完成后进入直方图生成步骤;
直方图生成步骤,用于实现生成直方图,将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,每个Block包含若干个向量,即特征值;
二值化步骤,用于实现每个Block内的所有特征值的二值化运算,并输出HOG特征值为1或者0;当前检测窗口的HOG特征值利用移位寄存器存储,当前计算不需要的HOG特征值利用BRAM暂存;当一个检测窗口的HOG特征值全部存储到移位寄存器后,送入SVM分类步骤;
SVM分类步骤,用于对应特征值为1的SVM分类器的向量的加法运算,并将检测结果送入输出步骤。
所述梯度和方向计算步骤的具体方法是:如图5所示,当前需要计算的数据用一个3行的移位寄存器来存储,当前不需要的数据存入相应的片上BRAM中,按照图像数据一行一行输入的特性,先把数据送入移位寄存器,流水送入BRAM,当像素移动到图5的中心方框时,利用公式(1)对每个待检图像的RGB三个通道分别计算其横向和纵向的差值,该方框边缘的4个方框为计算所需要的四个像素的值,然后利用公式(2)计算出的梯度值,使用查找表实现,并选择三个通道中最大的值作为当前像素的梯度值m,最后利用公式(3)查找表确定相应的角度θ,将方向等分为9份即9bin,某个梯度的方向落在这个bin中即确定为属于这个bin;参见图1和图2;
其中,公式(2)中因包含平方根运算,并不适合硬件实现,对采集到的图像数据,每个通道位宽为4位,这样公式(2)中最多包含512种结果,使用查找表实现;常规上采用公式(4)计算,但它包含tan-1运算,不适合硬件实现,其根本目的为用来确定当前计算的梯度的方向位于哪个bin当中,所以,可以用公式(3)替代。公式(3)中,On和On-1代表当前梯度所在的bin号和相邻bin的号,可以用于确定当前梯度所在bin,而且每个bin的边界是固定的,所以tan-1On为一定值且可以预先计算好存入硬件中,这样就可以用查表运算替代反三角函数运算;
f x ( x , y ) = f ( x + 1 , y ) - f ( x - 1 , y ) f y ( x , y ) = f ( x , y + 1 ) - f ( x , y - 1 ) - - - ( 1 )
m ( x , y ) = f x ( x , y ) 2 + f y ( x , y ) 2 - - - ( 2 )
tan-1On-1fx(x,y)<fy(x,y)<tan-1Onfx(x,y)    (3)
其中,On和On-1分别表示当前梯度所在的bin号和相邻bin的号,用于确定当前梯度所在bin;
θ ( x , y ) = tan - 1 f y ( x , y ) f x ( x , y ) - - - ( 4 ) ;
如图6所示,所述直方图生成步骤的具体方法是:将待检图像将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,Block大小为16×16像素,每个Block包含4个cell,cell大小为8×8像素,bin数为9,步幅为8×8像素;用移位寄存器对梯度值m按方向存储,每8个数据存为一个直方图输入BRAM中,填满7行BRAM和移位寄存器后,当第八行直方图生成时,每输入一个直方图,就将其相应的7个直方图输出到移位寄存器中,计算其相应bin上的梯度值m之和,合并为一个直方图,然后输出,这样就计算出一个cell的直方图,计算完8行后清空BRAM和移位寄存器,重复上面的过程;对于每一个cell中像素的梯度,按其所属的方向bin构成一个9维的直方图,即为一个9维的向量,每个Block中共包含36个向量。
在最终的实现中,对于一幅320×240像素的待检图像,首先将其划分为495个检测窗口,每个检测窗口中有105个Block,每个Block含有4个cell,一个检测窗口最终生成一个3780维的HOG特征向量。
如图7所示,所述二值化步骤的具体方法是:当前要计算的Block中4个cell的直方图利用移位寄存器存储,当前行计算不需要的cell的直方图利用BRAM存储,对移位寄存器中的Block特征值做二值化运算,然后输出一个36维,每维1bit的特征向量;对一个Block内的所有特征值取其平均值作为阈值,所有特征值中比阈值大的记为1,比阈值小的记为0。图3和图4分别示出了二值化阈值选择和结果。
一般采取如公式(5)的方法对每个Block中所包含的36个向量做标准化,通过这一步的计算,特征值由一个数值变为一个比值,这可以最大话的减轻光照和轻微的动作对特征值的影响。这是通常意义上的一种标准化,很明显的,这种运算中包含了平方、平方根、除法运算,这都是非常不适合硬件实现的。Vk代表每个Block的36个特征值,v表示标准化后的特征向量,ε取值为1,目的是为了防止分母为零的情况。这是通常意义上的一种标准化,很明显的,这种运算中包含了平方、平方根、除法运算,这都是非常不适合硬件实现的。Vk的每个特征向量,其每个特征值的位宽为11bit,这意味着||Vk||2的范围为从0到36×211,显然不能用查找表的方式实现。而且标准化后的每个特征值一般最少也要是8bit的位宽,这对于存储也是一个巨大的挑战。对此,本专利使用一种二值化的方式来对此步进行优化。对一个Block内的所有特征值取其平均值作为阈值,所有特征值中比阈值大的记为1,比阈值小的记为0。这样所有的HOG特征只占1位,所用内存为原来运算的八分之一。更重要的是,采用这种二值化的过程后,标准化的步骤将变得完全不必要。这样,用二值化的加法运算,替换掉复杂的平方、开方和除法运算,获得了极大的性能提升。
v = v k | | v k | | 2 + ϵ - - - ( 3 )
检测时,由于采用了二值化的过程,每个HOG特征为0或者1,这样检测过程就变为对应特征值为1的SVM分类器的向量的加法运算。这就带来了巨大的性能提升。
如图8所示,所述SVM分类步骤的具体方法是:采用线性SVM分类器,训练部分离线完成后,将其放入FPGA中,检测过程是对应特征值为1的SVM分类器的向量的加法运算。
所述SVM分类步骤中,线性SVM分类器是对大小为64×128像素、包含人体的正样本以及大小随意、不包含人体的负样本提取HOG特征值,并用LIBSVM进行线性SVM分类器的训练得到的,得到的线性SVM分类器为一个3781维的向量,每维取8位有效位。
上述FPGA实现方法所采用的架构,包括:
输入单元,用于实现嵌入式摄像头采集待检图像,并经由ARM微控制器传输给FPGA芯片;
输出单元,用于实现图像传输,将FPGA对图像数据处理判断后的检测结果返回给ARM微控制器,并根据FPGA返回的检测结果将待检图像中有行人的部分通过无线传输模块传送给上位机;
所述架构还包括设置于FPGA芯片上的:
梯度和方向计算单元,用于流水式计算待检图像的梯度值和方向,并在计算完成后将相应的梯度值和方向送入直方图生成单元;
直方图生成单元,用于实现生成直方图,将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,每个Block包含若干个向量,即特征值;
二值化单元,用于实现每个Block内的所有特征值的二值化运算,并输出HOG特征值为1或者0;当前检测窗口的HOG特征值利用移位寄存器存储,当前计算不需要的HOG特征值利用BRAM暂存;当一个检测窗口的HOG特征值全部存储到移位寄存器后,送入SVM分类单元;
SVM分类单元,用于对应特征值为1的SVM分类器的向量的加法运算,并将检测结果送入输出单元。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (8)

1.基于HOG和SVM的行人检测系统的FPGA实现方法,包括:
输入步骤,由一个嵌入式摄像头采集待检图像,并经由ARM微控制器传输给FPGA芯片,所述待检图像是标准的RGB565图像;
输出步骤,将FPGA对图像数据处理判断后的检测结果返回给ARM微控制器,最终ARM微控制器根据FPGA返回的检测结果将待检图像中有行人的部分通过无线传输模块传送给上位机;
其特征在于,所述FPGA实现方法还包括:
梯度和方向计算步骤,用于流水式计算待检图像的梯度值和方向,并在计算完成后进入直方图生成步骤;
直方图生成步骤,用于实现生成直方图,将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,每个Block包含若干个向量,即特征值;
二值化步骤,用于实现每个Block内的所有特征值的二值化运算,并输出HOG特征值为1或者0;当前检测窗口的HOG特征值利用移位寄存器存储,当前计算不需要的HOG特征值利用BRAM暂存;当一个检测窗口的HOG特征值全部存储到移位寄存器后,送入SVM分类步骤;
SVM分类步骤,用于对应特征值为1的SVM分类器的向量的加法运算,并将检测结果送入输出步骤。
2.根据权利要求1所述的FPGA实现方法,其特征在于,所述梯度和方向计算步骤的具体方法是:按照图像数据一行一行输入的特性,先把数据送入移位寄存器,流水送入BRAM,当其移动到设定位置时,利用公式(1)对每个待检图像的RGB三个通道分别计算其横向和纵向的差值,然后利用公式(2)计算出的梯度值,使用查找表实现,并选择三个通道中最大的值作为当前像素的梯度值m,最后利用公式(3)查找表确定相应的角度θ,将方向等分为9份即9bin,某个梯度的方向落在这个bin中即确定为属于这个bin;
f x ( x , y ) = f ( x + 1 , y ) - f ( x - 1 , y ) f y ( x , y ) = f ( x , y + 1 ) - f ( x , y - 1 ) - - - ( 1 )
m ( x , y ) = f x ( x , y ) 2 + f y ( x , y ) 2 - - - ( 2 )
tan-1On-1fx(x,y)<fy(x,y)<tan-1Onfx(x,y)    (3)
其中,On和On-1分别表示当前梯度所在的bin号和相邻bin的号,用于确定当前梯度所在bin。
3.根据权利要求1所述的FPGA实现方法,其特征在于,所述直方图生成步骤的具体方法是:将待检图像将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,Block大小为16×16像素,每个Block包含4个cell,cell大小为8×8像素,bin数为9,步幅为8×8像素;用移位寄存器对梯度值m按方向存储,每8个数据存为一个直方图输入BRAM中,填满7行BRAM和移位寄存器后,当第八行直方图生成时,每输入一个直方图,就将其相应的7个直方图输出到移位寄存器中,计算其相应bin上的梯度值m之和,合并为一个直方图,然后输出,这样就计算出一个cell的直方图,计算完8行后清空BRAM和移位寄存器,重复上面的过程;对于每一个cell中像素的梯度,按其所属的方向bin构成一个9维的直方图,即为一个9维的向量,每个Block中共包含36个向量。
4.根据权利要求1所述的FPGA实现方法,其特征在于,所述直方图生成步骤中,对于一幅320×240像素的待检图像,首先将其划分为495个检测窗口,每个检测窗口中有105个Block,每个Block含有4个cell,一个检测窗口最终生成一个3780维的HOG特征向量。
5.根据权利要求1所述的FPGA实现方法,其特征在于,所述二值化步骤的具体方法是:当前要计算的Block中4个cell的直方图利用移位寄存器存储,当前行计算不需要的cell的直方图利用BRAM存储,对移位寄存器中的Block特征值做二值化运算,然后输出一个36维,每维1bit的特征向量;对一个Block内的所有特征值取其平均值作为阈值,所有特征值中比阈值大的记为1,比阈值小的记为0。
6.根据权利要求1所述的FPGA实现方法,其特征在于,所述SVM分类步骤的具体方法是:采用线性SVM分类器,训练部分离线完成后,将其放入FPGA中,检测过程是对应特征值为1的SVM分类器的向量的加法运算。
7.根据权利要求1所述的FPGA实现方法,其特征在于,所述SVM分类步骤中,线性SVM分类器是对大小为64×128像素、包含人体的正样本以及大小随意、不包含人体的负样本提取HOG特征值,并用LIBSVM进行线性SVM分类器的训练得到的,得到的线性SVM分类器为一个3781维的向量,每维取8位有效位。
8.上述任一项权利要求所述的FPGA实现方法所采用的架构,包括:
输入单元,用于实现嵌入式摄像头采集待检图像,并经由ARM微控制器传输给FPGA芯片;
输出单元,用于实现图像传输,将FPGA对图像数据处理判断后的检测结果返回给ARM微控制器,并根据FPGA返回的检测结果将待检图像中有行人的部分通过无线传输模块传送给上位机;
其特征在于,所述架构还包括设置于FPGA芯片上的:
梯度和方向计算单元,用于流水式计算待检图像的梯度值和方向,并在计算完成后将相应的梯度值和方向送入直方图生成单元;
直方图生成单元,用于实现生成直方图,将待检图像划分为若干个检测窗口,每个检测窗口分割成若干个Block,每个Block包含若干个向量,即特征值;
二值化单元,用于实现每个Block内的所有特征值的二值化运算,并输出HOG特征值为1或者0;当前检测窗口的HOG特征值利用移位寄存器存储,当前计算不需要的HOG特征值利用BRAM暂存;当一个检测窗口的HOG特征值全部存储到移位寄存器后,送入SVM分类单元;
SVM分类单元,用于对应特征值为1的SVM分类器的向量的加法运算,并将检测结果送入输出单元。
CN201310053625.XA 2013-02-19 2013-02-19 基于hog和svm的行人检测系统的fpga架构及其实现方法 Expired - Fee Related CN103177262B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310053625.XA CN103177262B (zh) 2013-02-19 2013-02-19 基于hog和svm的行人检测系统的fpga架构及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310053625.XA CN103177262B (zh) 2013-02-19 2013-02-19 基于hog和svm的行人检测系统的fpga架构及其实现方法

Publications (2)

Publication Number Publication Date
CN103177262A true CN103177262A (zh) 2013-06-26
CN103177262B CN103177262B (zh) 2016-01-20

Family

ID=48637103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310053625.XA Expired - Fee Related CN103177262B (zh) 2013-02-19 2013-02-19 基于hog和svm的行人检测系统的fpga架构及其实现方法

Country Status (1)

Country Link
CN (1) CN103177262B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473953A (zh) * 2013-08-28 2013-12-25 奇瑞汽车股份有限公司 一种行人检测方法和系统
CN103778435A (zh) * 2014-01-16 2014-05-07 大连理工大学 一种基于视频的行人快速检测方法
CN104050481A (zh) * 2014-06-17 2014-09-17 权东晓 多模板轮廓特征和灰度相结合的红外图像实时行人检测
CN104463186A (zh) * 2013-09-16 2015-03-25 深圳市迈瑞思智能技术有限公司 一种目标特征检测方法及装置
WO2015051697A1 (en) * 2013-10-10 2015-04-16 Harman International Industries, Incorporated Image processing
CN104598917A (zh) * 2014-12-08 2015-05-06 上海大学 一种支持向量机分类器ip核
CN105095835A (zh) * 2014-05-12 2015-11-25 比亚迪股份有限公司 行人检测方法及系统
CN105205476A (zh) * 2015-10-21 2015-12-30 上海红神信息技术有限公司 一种基于lbp特征的人脸识别硬件架构
CN106504182A (zh) * 2016-11-02 2017-03-15 山东正晨科技股份有限公司 一种基于fpga的直线特征提取系统
CN106952212A (zh) * 2017-03-14 2017-07-14 电子科技大学 一种基于向量同态加密的hog 图像特征提取算法
CN107038416A (zh) * 2017-03-10 2017-08-11 华南理工大学 一种基于二值图像改进型hog特征的行人检测方法
CN107622226A (zh) * 2017-08-27 2018-01-23 南京理工大学 基于改进的可变形部件模型算法的车辆检测方法及系统
CN108520262A (zh) * 2018-03-28 2018-09-11 厦门瑞为信息技术有限公司 一种基于fpga实时提取fhog特征的方法
CN108564008A (zh) * 2018-03-28 2018-09-21 厦门瑞为信息技术有限公司 一种基于zynq的实时行人与人脸检测方法
CN109711250A (zh) * 2018-11-13 2019-05-03 深圳市深网视界科技有限公司 特征向量二值化、相似度评价、检索方法、设备和介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975907B (zh) * 2016-04-27 2019-05-21 江苏华通晟云科技有限公司 基于分布式平台的svm模型行人检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025568A1 (en) * 2006-07-20 2008-01-31 Feng Han System and method for detecting still objects in images
CN102609720A (zh) * 2012-01-31 2012-07-25 中国科学院自动化研究所 一种基于位置校正模型的行人检测方法
CN102663409A (zh) * 2012-02-28 2012-09-12 西安电子科技大学 一种基于hog-lbp描述的行人跟踪方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025568A1 (en) * 2006-07-20 2008-01-31 Feng Han System and method for detecting still objects in images
CN102609720A (zh) * 2012-01-31 2012-07-25 中国科学院自动化研究所 一种基于位置校正模型的行人检测方法
CN102663409A (zh) * 2012-02-28 2012-09-12 西安电子科技大学 一种基于hog-lbp描述的行人跟踪方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
RYUSUKE MIYAMOTO: "Hardware Architecture for HOG Feature Extraction", 《INTELLIGENT INFORMATION HIDING AND MULTIDEDIA SIGNAL PROCESSING》 *
张海荣: "视频图像中的行人检测算法研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
徐萍: "基于图像处理的夜间行人检测系统应用研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473953A (zh) * 2013-08-28 2013-12-25 奇瑞汽车股份有限公司 一种行人检测方法和系统
CN103473953B (zh) * 2013-08-28 2015-12-09 奇瑞汽车股份有限公司 一种行人检测方法和系统
CN104463186A (zh) * 2013-09-16 2015-03-25 深圳市迈瑞思智能技术有限公司 一种目标特征检测方法及装置
WO2015051697A1 (en) * 2013-10-10 2015-04-16 Harman International Industries, Incorporated Image processing
CN103778435A (zh) * 2014-01-16 2014-05-07 大连理工大学 一种基于视频的行人快速检测方法
CN105095835A (zh) * 2014-05-12 2015-11-25 比亚迪股份有限公司 行人检测方法及系统
CN104050481B (zh) * 2014-06-17 2017-05-03 西安电子科技大学 多模板轮廓特征和灰度相结合的红外图像实时行人检测
CN104050481A (zh) * 2014-06-17 2014-09-17 权东晓 多模板轮廓特征和灰度相结合的红外图像实时行人检测
CN104598917A (zh) * 2014-12-08 2015-05-06 上海大学 一种支持向量机分类器ip核
CN104598917B (zh) * 2014-12-08 2018-04-27 上海大学 一种支持向量机分类器ip核
CN105205476B (zh) * 2015-10-21 2018-04-17 上海红神信息技术有限公司 一种基于lbp特征的人脸识别硬件架构
CN105205476A (zh) * 2015-10-21 2015-12-30 上海红神信息技术有限公司 一种基于lbp特征的人脸识别硬件架构
CN106504182B (zh) * 2016-11-02 2019-11-08 山东正晨科技股份有限公司 一种基于fpga的直线特征提取系统
CN106504182A (zh) * 2016-11-02 2017-03-15 山东正晨科技股份有限公司 一种基于fpga的直线特征提取系统
CN107038416A (zh) * 2017-03-10 2017-08-11 华南理工大学 一种基于二值图像改进型hog特征的行人检测方法
CN106952212B (zh) * 2017-03-14 2019-10-15 电子科技大学 一种基于向量同态加密的hog图像特征提取算法
CN106952212A (zh) * 2017-03-14 2017-07-14 电子科技大学 一种基于向量同态加密的hog 图像特征提取算法
CN107622226A (zh) * 2017-08-27 2018-01-23 南京理工大学 基于改进的可变形部件模型算法的车辆检测方法及系统
CN108520262A (zh) * 2018-03-28 2018-09-11 厦门瑞为信息技术有限公司 一种基于fpga实时提取fhog特征的方法
CN108564008A (zh) * 2018-03-28 2018-09-21 厦门瑞为信息技术有限公司 一种基于zynq的实时行人与人脸检测方法
CN109711250A (zh) * 2018-11-13 2019-05-03 深圳市深网视界科技有限公司 特征向量二值化、相似度评价、检索方法、设备和介质
CN109711250B (zh) * 2018-11-13 2024-02-02 深圳市深网视界科技有限公司 特征向量二值化、相似度评价、检索方法、设备和介质

Also Published As

Publication number Publication date
CN103177262B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
CN103177262B (zh) 基于hog和svm的行人检测系统的fpga架构及其实现方法
CN104050471B (zh) 一种自然场景文字检测方法及系统
CN103208123B (zh) 图像分割方法与系统
CN104166841A (zh) 一种视频监控网络中指定行人或车辆的快速检测识别方法
CN103310194A (zh) 视频中基于头顶像素点梯度方向的行人头肩部检测方法
CN104732215A (zh) 一种基于信息向量机的遥感影像海岸线提取方法
CN108564008A (zh) 一种基于zynq的实时行人与人脸检测方法
CN103544502A (zh) 基于svm的高分辨率遥感影像船只提取方法
Nguyen et al. Yolo based real-time human detection for smart video surveillance at the edge
CN104778457A (zh) 基于多示例学习的视频人脸识别算法
CN107315998B (zh) 基于车道线的车辆种类划分方法和系统
CN101251896B (zh) 一种基于多分类器的物体检测系统及方法
CN107798313A (zh) 一种人体姿态识别方法、装置、终端和存储介质
CN107704797B (zh) 基于安防视频中行人和车辆的实时检测方法和系统及设备
CN108108703A (zh) 减速带缺失检测方法、装置及电子设备
CN114333049A (zh) 猪只攻击行为识别方法、系统、计算机设备和存储介质
CN103198489B (zh) 基于显著性密度与边缘响应的显著物体自动检测方法
CN105354547A (zh) 一种结合纹理和彩色特征的行人检测方法
CN103106412B (zh) 薄片类介质识别方法和识别装置
CN102842133A (zh) 一种局部特征描述方法
CN102509308A (zh) 基于混合动态纹理空时显著性检测的运动分割方法
CN111881775B (zh) 一种人脸实时识别方法和装置
CN105205476A (zh) 一种基于lbp特征的人脸识别硬件架构
CN103295026A (zh) 基于空间局部聚合描述向量的图像分类方法
CN101504723B (zh) 一种建立投影空间的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160120

Termination date: 20190219

CF01 Termination of patent right due to non-payment of annual fee