一种基于FPGA实时提取FHOG特征的方法技术

技术编号:18913878 阅读:57 留言:0更新日期:2018-09-12 03:04
本发明专利技术涉及一种基于FPGA实时提取FHOG特征的方法,其采用图像缩放模块、梯度计算模块、直方图统计模块、归一化模块和降维处理模块来实现。本发明专利技术在低密度FPGA平台高性能实现,全局模块使用流水线设计,减少处理延时,提高带内带宽,减小对外部存储DDR的带宽要求,减小成本和功耗。优化bram和DSP使用,使其最大性能发挥价值,本发明专利技术中的每个功能模块通过深度优化层级流水线,平衡前后带宽,减少了短板效应,整体的提升了处理速度和实时性。

A method of extracting FHOG features in real time based on FPGA

The invention relates to a method for real-time extracting FHOG features based on FPGA, which is implemented by image scaling module, gradient calculation module, histogram statistics module, normalization module and dimension reduction processing module. The global module uses pipeline design to reduce processing delay, improve in-band bandwidth, reduce bandwidth requirements for external storage DDR, and reduce cost and power consumption. Optimize the use of Bram and DSP to maximize the value of its performance. Each function module of the invention balances the bandwidth before and after by depth optimizing the hierarchical pipeline, reduces the short board effect, and improves the processing speed and real-time performance as a whole.

【技术实现步骤摘要】
一种基于FPGA实时提取FHOG特征的方法
本专利技术涉及机器视觉领域,具体涉及一种基于FPGA实时提取FHOG特征的方法。
技术介绍
方向梯度直方图(HistogramofOrientedGradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子,它通过计算和统计图像局部区域的梯度方向直方图来构成特征。基于方向梯度直方图(HOG)的图像特征融合方法,具有显著方向性的局部梯度统计值,其构成融合的方向梯度直方图(FHOG),有效地解决了多分辨率(MR)图像融合存在的不足。使用传统CPU做FHOG特征提取,缺点是速度慢,涉及较复杂的内存读写操作,难以满足视频系统实时性要求。
技术实现思路
本专利技术的目的在于提供一种基于FPGA实时提取FHOG特征的方法,其运行速度块,实时性高。为实现上述目的,本专利技术采用的技术方案是:一种基于FPGA实时提取FHOG特征的方法,其采用图像缩放模块、梯度计算模块、直方图统计模块、归一化模块和降维处理模块来实现,具体如下:步骤1、采用图像缩放模块对输入的图像进行处理;缩放采用双线性插值实现,经过灰度化后的1080P图像从AXI接口输入,然后使用两个具有四个18K的bram做数据行缓存,并进行奇偶点存储;输出像素根据行场缩放比例计算映射到输入图像的位置点,确定插值权重,得到新的像素值,并输出到梯度计算模块中;步骤2、采用梯度计算模块计算缩放后的图像的梯度值和方向;缩放模块输出图像后,立刻启动梯度计算,首先用[-1,0,1]梯度算子对原图像做卷积运算,得到x方向的梯度分量gradscalx,然后用[1,0,-1]T梯度算子对原图像做卷积运算,得到y方向的梯度分量gradscaly,并根据16维单位梯度向量计算当前点最大的梯度方向,经梯度分量和底图方向组成的梯度图输出给直方图统计模块;步骤3、采用直方图统计模块求取梯度直方图;一旦梯度计算模块有输出,就启动直方图统计模块工作;将梯度图分成4*4和8*8两种大小的特征块,每个特征块分为16个维度;输入的梯度图根据不同的方向叠加梯度值到相应的特征维度上,一个梯度点叠加到四个邻域的4*4或者8*8的块中,且其叠加的权重不同;使用真双口RAM进行并行乒乓读写,在统计当前行的直方图特征时,归一化模块读取上一行或者上几行的数据做归一化处理;步骤4、采用归一化模块对直方图特征进行归一化处理;将直方图里面的16个维度数据首尾相加并取平方后得到归一化的新值,得到的新值在一个3*3的窗口中;将四个相邻归一化值开方后取倒数得到四个特征值,同时取出当前点的16个维度的统计直方图信息,经过乘法、累加以及比较处理后得到32维的特征数据;步骤5、采用降维处理模块对归一化后的图像进行降维处理;使用非线性支持向量机算法训练得到一组PCA降维系数,将归一化模块输出的32维特征降低到16维特征,得到FHOG特征。采用上述方案后,本专利技术在低密度FPGA平台高性能实现,全局模块使用流水线设计,减少处理延时,提高带内带宽,减小对外部存储DDR的带宽要求,减小成本和功耗。优化bram和DSP使用,使其最大性能发挥价值,本专利技术中的每个功能模块通过深度优化层级流水线,平衡前后带宽,减少了短板效应,整体的提升了处理速度和实时性。附图说明图1为本专利技术系统框图;图2为本专利技术FHOG特征提取流程框图;图3为本专利技术图像缩放处理流程框图;图4为本专利技术图像梯度计算流程框图;图5为本专利技术图像归一化处理流程框图。具体实施方式如图1和图2所示,本专利技术揭示了一种基于FPGA实时提取FHOG特征的方法,其采用图像缩放模块、梯度计算模块、直方图统计模块、归一化模块和将维处理模块来实现,上述模块并行运行,保证运行过程中充分利用各个模块的流水线时隙,平衡各个模块的负载,前后模块之间都带有握手信号,方便扩展和控制带宽,最大程度提高整体带宽。每一级处理都实现实时流水线处理,所有计算过程满负荷运行,高度优化FPGA内部DSP,bram的计算和存储带宽。设计每个模块前后级的流水线,乒乓加速计算。具体如下:步骤1、采用图像缩放模块对输入的图像进行处理;缩放采用双线性插值实现,经过灰度化后的1080P图像从AXI接口输入,然后使用两个具有四个18K的bram做数据行缓存,并进行奇偶点存储,这样保证双线性插值取数据时能够同时取出四个像素点;输出像素根据行场缩放比例计算映射到输入图像的位置点,确定插值权重;得到新的像素值,并输出到下一级模块中;该图像缩放模块可以根据后级模块的反馈信号动态开启和关闭改模块的运算,避免数据溢出。因为要检测的目标有大有小,可能分布在不同的尺度下,所以需要对图像做缩放处理,每次得到的缩放图针对性的检测指定大小的目标物。按照2^1/5的比例缩小,然后每个尺度需要做如下处理:使用FHOG算法实现特征提取,特征提取时对每个尺度做两个细粒度下的实现(sbin=8和sbin=4),生成若干组特征图,分布于各个尺度下,供后级检测算法实现使用。本专利技术检测目标物大小在1080P分辨率下,检测大小范围为:32*32-732*732。计算速度远远超出普通CPU,满足了系统实时性要求。图像的尺度大小与级数分布情况如表1所示。尺度级数图像宽图像高11280720211146273970546484447557354146640360755731384852739422238103682071132018012279157132431361421111915184103表1步骤2、采用梯度计算模块计算缩放后的图像的梯度值和方向;如图4所示,缩放后的图像输出后,立刻启动梯度计算,首先用[-1,0,1]梯度算子对原图像做卷积运算,得到x方向(水平方向,以向右为正方向)的梯度分量gradscalx,然后用[1,0,-1]T梯度算子对原图像做卷积运算,得到y方向(竖直方向,以向上为正方向)的梯度分量gradscaly,根据16个梯度向量计算当前点最大的梯度方向,输出给后一级模块。步骤3、采用直方图统计模块求取梯度直方图一旦上一级模块有输出,就启动本级模块工作;将计算后的梯度图像分成4*4和8*8两种大小的特征块,每个梯度特征块包含了16个方向的权值,存储了不同的方向梯度值,而不同的梯度方向根据FHOG算法需要叠加到不同的位置。输入的梯度图根据不同的方向叠加梯度值到相应地址上。这个目的在于,通过叠加不同维度的梯度,根据它的权重,我们可以知道这个区域块中它的图像主要的梯度方向,用于目标物检测。一个梯度点需要叠加到四个邻域的4*4或者8*8的块中,且权重不一样,这样可以避免图像块效应。使用真双口RAM实现并行乒乓读写,需要在上一个时钟读取旧值,下一个时钟写入新值,同时读写两个真双口RAM。这里涉及RAM接口和流水线的精细操作,我们设计的乒乓真双口RAM框架,读写RAM交错处理,流水线设计读取,叠加和写入,既利用了RAM的带内高带宽特性,又不降低直方图统计的速度。同时设计行缓存时,使用乒乓缓存架构,在计算直方图的同时前后级梯度计算和归一化计算同时进行。步骤4、采用归一化模块对直方图特征进行归一化处理;如图5所示,将直方图里面的16个维度数据首尾相加后取平方后得到归一化的新值,得到的新值需要在一个3*3的窗口中,本文档来自技高网...

【技术保护点】
1.一种基于FPGA实时提取FHOG特征的方法,其特征在于:所述方法采用图像缩放模块、梯度计算模块、直方图统计模块、归一化模块和降维处理模块来实现,具体如下:步骤1、采用图像缩放模块对输入的图像进行处理;缩放采用双线性插值实现,经过灰度化后的1080P图像从AXI接口输入,然后使用两个具有四个18K的bram做数据行缓存,并进行奇偶点存储;输出像素根据行场缩放比例计算映射到输入图像的位置点,确定插值权重,得到新的像素值,并输出到梯度计算模块中;步骤2、采用梯度计算模块计算缩放后的图像的梯度值和方向;缩放模块输出图像后,立刻启动梯度计算,首先用[‑1,0,1]梯度算子对原图像做卷积运算,得到x方向的梯度分量gradscalx,然后用[1,0,‑1]T梯度算子对原图像做卷积运算,得到y方向的梯度分量gradscaly,并根据16维单位梯度向量计算当前点最大的梯度方向,经梯度分量和底图方向组成的梯度图输出给直方图统计模块;步骤3、采用直方图统计模块求取梯度直方图;一旦梯度计算模块有输出,就启动直方图统计模块工作;将梯度图分成4*4和8*8两种大小的特征块,每个特征块分为16个维度;输入的梯度图根据不同的方向叠加梯度值到相应的特征维度上,一个梯度点叠加到四个邻域的4*4或者8*8的块中,且其叠加的权重不同;使用真双口RAM进行并行乒乓读写,在统计当前行的直方图特征时,归一化模块读取上一行或者上几行的数据做归一化处理;步骤4、采用归一化模块对直方图特征进行归一化处理;将直方图里面的16个维度数据首尾相加并取平方后得到归一化的新值,得到的新值在一个3*3的窗口中;将四个相邻归一化值开方后取倒数得到四个特征值,同时取出当前点的16个维度的统计直方图信息,经过乘法、累加以及比较处理后得到32维的特征数据;步骤5、采用降维处理模块对归一化后的图像进行降维处理;使用非线性支持向量机算法训练得到一组PCA降维系数,将归一化模块输出的32维特征降低到16维特征,得到FHOG特征。...

【技术特征摘要】
1.一种基于FPGA实时提取FHOG特征的方法,其特征在于:所述方法采用图像缩放模块、梯度计算模块、直方图统计模块、归一化模块和降维处理模块来实现,具体如下:步骤1、采用图像缩放模块对输入的图像进行处理;缩放采用双线性插值实现,经过灰度化后的1080P图像从AXI接口输入,然后使用两个具有四个18K的bram做数据行缓存,并进行奇偶点存储;输出像素根据行场缩放比例计算映射到输入图像的位置点,确定插值权重,得到新的像素值,并输出到梯度计算模块中;步骤2、采用梯度计算模块计算缩放后的图像的梯度值和方向;缩放模块输出图像后,立刻启动梯度计算,首先用[-1,0,1]梯度算子对原图像做卷积运算,得到x方向的梯度分量gradscalx,然后用[1,0,-1]T梯度算子对原图像做卷积运算,得到y方向的梯度分量gradscaly,并根据16维单位梯度向量计算当前点最大的梯度方向,经梯度分量和底图方向组成的梯度图输出给直方图统计模块;步骤3、采用直...

【专利技术属性】
技术研发人员:王经纬于淼黄春辉
申请(专利权)人:厦门瑞为信息技术有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1