CN110663046A - 用于方向梯度直方图计算的硬件加速器 - Google Patents

用于方向梯度直方图计算的硬件加速器 Download PDF

Info

Publication number
CN110663046A
CN110663046A CN201880032159.8A CN201880032159A CN110663046A CN 110663046 A CN110663046 A CN 110663046A CN 201880032159 A CN201880032159 A CN 201880032159A CN 110663046 A CN110663046 A CN 110663046A
Authority
CN
China
Prior art keywords
bin
gradient
representative
magnitude
mag
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
CN201880032159.8A
Other languages
English (en)
Other versions
CN110663046B (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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN110663046A publication Critical patent/CN110663046A/zh
Application granted granted Critical
Publication of CN110663046B publication Critical patent/CN110663046B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • G06V10/473Contour-based spatial representations, e.g. vector-coding using gradient analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/08Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

在用于方向梯度直方图计算的硬件加速器(312)中,梯度计算组件(400)计算像素的梯度Gx和Gy。箱标识组件(402)基于代表性方向角Gx以及Gx和Gy的符号来确定所述像素的角箱的箱标识符。幅值组件(404)基于所述代表性方向角和所述箱标识符来确定所述梯度的幅值Gmag

Description

用于方向梯度直方图计算的硬件加速器
背景技术
对于许多嵌入式计算机视觉应用(如高级驾驶辅助系统(ADAS)中的行人识别)来说,需要快速加权梯度(角度)计算。例如,canny边缘和其它角度边缘以及特征检测算法需要计算图像像素的方向梯度以帮助确保准确的、薄的边缘。在另一个实例中,许多视觉算法将方向梯度直方图(HOG)的特征用于一般对象检测,这需要计算图像的多个窗口中的每个像素的方向梯度并计算每个窗口的方向梯度的直方图分布。
方向梯度和直方图计算在计算上是昂贵的。例如,对于HOG算法,通过以下给出x梯度和y梯度的方向角θ以及像素的梯度的幅值:
θ(x,y)=tan-1(Gy/Gx)
Figure BDA0002273880160000011
其中Gx和Gy是相应的水平梯度和竖直梯度。对图像中的多个重叠检测窗口中的每个像素的方向角θ和Gmag进行计算。在嵌入式计算机视觉应用中实时执行针对大的图像的此些计算可能消耗嵌入式装置中当前使用的处理器的大部分计算能力(如果不是全部的话)。
发明内容
所描述的实例涉及用于加速方向梯度直方图计算的方法和设备。一方面,提供了一种用于方向梯度直方图计算的硬件加速器,所述硬件加速器包含:梯度计算组件,所述梯度计算组件被配置成计算像素的梯度Gx和Gy;箱(bin)标识组件,所述箱标识组件被配置成基于多个代表性方向角Gx以及Gx和Gy的符号来确定所述像素的角箱的箱标识符;以及幅值组件,所述幅值组件被配置成基于所述多个代表性方向角和所述箱标识符来确定所述梯度的幅值Gmag
一方面,提供了一种用于硬件加速器中的方向梯度直方图计算的方法,所述方法包含:在所述硬件加速器的梯度计算组件中计算像素的梯度Gx和Gy;在所述硬件加速器的箱标识组件中确定所述像素的角箱的箱标识符,其中所述箱标识符基于多个代表性方向角Gx以及Gx和Gy的符号来确定;以及在所述硬件加速器的幅值组件中确定所述梯度的幅值Gmag,其中所述幅值基于所述多个代表性方向角和所述箱标识符确定。
一方面,提供了一种片上系统(SOC),所述SOC包含:用于方向梯度直方图(HOG)计算的硬件加速器,所述硬件加速器能够配置成生成图像中的每个像素的箱标识符和梯度幅值;存储器,所述存储器耦接到所述硬件加速器以存储所述箱标识符和所述梯度幅值;HOG生成器,所述HOG生成器耦接到所述存储器,其中所述HOG生成器能够配置成使用由所述硬件加速器生成的所述箱标识符和所述梯度幅值生成HOG描述子;以及处理器,所述处理器耦接到所述存储器和所述硬件加速器,所述处理器能够操作以执行视觉处理应用,所述视觉处理应用被编程成对多个对象进行检测,所述视觉处理应用包括软件指令,所述软件指令将所述硬件加速器配置成生成所述箱标识符和所述梯度幅值并且将所述HOG生成器配置成使用所述箱标识符和所述梯度幅值生成所述多个对象中的每个对象的HOG描述子。
一方面,提供了一种用于使用硬件加速器进行方向梯度直方图(HOG)计算的方法,所述方法包含:通过所述硬件加速器确定图像中的每个像素的箱标识符和梯度幅值;以及使用所述箱标识符和所述梯度幅值计算用于对多种类型的对象进行分类的HOG描述子。
附图说明
图1是用于计算方向梯度直方图(HOG)的方法的流程图。
图2是用于行人识别的HOG计算的实例。
图3是实例多处理器片上系统(SOC)的高级框图。
图4是图3的SOC的实例HOG加速器的高级框图。
图5是用于确定像素的箱标识符和幅值的方法的流程图。
图6是用于生成HOG描述子的方法的流程图。
具体实施方式
在附图中,为了一致,类似的元件由类似的附图标记指示。
图1是用于计算方向梯度直方图的方法的流程图。参考图2的实例对所述方法进行解释,所述实例表示针对行人识别执行的HOG计算。其它对象识别算法针对不同的窗口大小执行类似的HOG计算。通常,HOG被用作对象识别任务的特征集。基本思想是通过局部强度梯度的分布或边缘方向表征局部对象的外观和形状,而无需精确地知道对应的梯度或边缘位置。
在图2的实例中,为了确定初始行人位置,使用了滑动窗口方法,其中检测窗口200在图像上移位。对于每个检测窗口,HOG特征集从窗口中的像素中生成并且针对行人的存在进行评估。在此实例中,假定检测窗口200的像素为64×128。
现在参照图1,对检测窗口200中的每个像素的梯度Gx和Gy连同幅值Gmag进行计算100。像素的梯度(也称为梯度向量或图像梯度)是像素值在像素周围沿着x方向和y方向变化的度量。通常,通过对以像素为中心的滤波器与被滤波器覆盖的图像中的像素求卷积来计算像素梯度。滤波器的大小和配置可以变化。根据以下计算幅值Gmag
Figure BDA0002273880160000031
还对针对每个像素的梯度的方向角θ进行计算102。根据以下计算像素的方向角θ:
θ=tan-1(Gy/Gx)
然后,使用所述方向角来确定每个像素的角箱104。为了确定所述箱,将检测窗口200分成被称为单元的局部空间区域。在图2的实例中,单元202的像素为8×8。根据其方向角,将每个单元中的64个像素离散化为角箱。将角箱均匀地遍布于0度到180度或0度到360度,这取决于梯度有符号还是无符号。例如,对于有符号的梯度,9个角箱可以均匀地遍布于0到180度。像素的方向角θ确定了像素的特定箱。
然后,基于单元中的像素的箱和幅值对检测窗口200中的每个单元的方向梯度直方图进行计算106。分配给箱的像素的梯度幅值确定了直方图中的对应于箱的条的高度。也就是说,直方图中的条的高度是分配给对应的箱的像素的梯度幅值的函数。例如,高度可以是像素的幅值的和或加权和。
由于如阴影、局部照明变化和前景/背景对比等因素,梯度强度在宽的范围内变化。因此,需要局部对比度归一化。出于此目的,将相邻单元的组视为被称为区间的空间区域。在图2的实例中,区间204是2×2相邻单元的组。每个区间由对应的四个单元直方图的连结表示,所述连结如使用L2范数被归一化。检测窗口200的最终HOG描述子由归一化的区间响应的连结表示。
如上文所描述的,在嵌入式计算机视觉应用中实时计算针对大的图像的方向梯度直方图可能消耗嵌入式装置中当前使用的处理器的大部分计算能力(如果不是全部的话)。实例实施例提供了用于HOG计算的硬件加速器。更具体地说,硬件加速器的实例加速了对计算方向梯度直方图所需的像素的箱标识符和梯度幅值的确定。
图3是实例多处理器片上系统(SOC)300的高级框图,所述实例多处理器SOC被配置成支持计算机视觉处理。SOC 300包含经由高速互连件322耦接的双通用处理器(GPP)302、双数字信号处理器(DSP)304、视觉处理器306、HOG生成器314和HOG加速器312。
视觉处理器306是向量处理器,所述向量处理器被调谐用于各种计算机视觉和其它信号处理任务,如来自加速测试(FAST)特征计算、深度神经卷积网络计算等的特征。GPP302托管操作系统并且对SOC 300的操作提供全面控制,包含对由HOG加速器312执行的处理进行调度。DSP 304为计算机视觉处理提供如对象检测和分类等支持,所述支持可以使用HOG生成器314的输出。
SOC 300进一步包含经由互连件322全部耦接到处理器、HOG加速器312和HOG生成器314的直接存储器存取(DMA)组件308、耦接到外部相机324的相机捕获组件310、显示管理组件316、片上随机存取(RAM)存储器318(例如,计算机可读媒体)和各种输入/输出(I/O)外围设备320。相机324可以经由模拟连接、以太网电缆、低压差分信号(LVDS)电缆或其它适合的有线连接或无线连接耦接到SOC 300。
如参考图4更详细地描述的,HOG加速器312包含用于确定由相机324捕获的图像中的像素的箱标识符和梯度幅值的功能。对DSP 304执行计算机视觉应用将HOG加速器312配置成根据由所述应用指定的参数生成图像中的像素的箱标识符和梯度幅值。例如,所述应用可以配置HOG加速器312的参数,如单元直方图中箱的数量和每个箱的代表性方向角。参考图4描述了HOG加速器312的代表性方向角和配置。HOG加速器312根据经过配置的参数确定图像中的每个像素的箱标识符和梯度幅值并且将这种数据存储在RAM 318中以供HOG生成器314使用。
HOG生成器314包含用于使用由HOG加速器312生成的箱标识符和梯度幅值生成检测窗口的HOG描述子的功能。更具体地说,HOG生成器314可被配置成使用由HOG加速器312生成的数据根据计算机视觉应用在图像中寻找哪种类型的对象来生成HOG描述子。例如,对于行人检测,所述应用可以配置HOG生成器314的参数,如检测窗口大小、用于生成HOG描述子的图像的部分(所述部分可以是图像的子集或整个图像)、单元大小和区间大小。对于车辆检测,所述应用可以以不同的方式配置参数。
HOG生成器314使用所存储的数据以根据指定的检测窗口大小、单元大小和区间大小在指定的图像部分中生成针对检测窗口的HOG描述子。更具体地说,HOG生成器314实施滑动窗口方法,在所述滑动窗口方法中,指定大小的检测窗口通过由HOG加速器312生成的对应于图像的指定部分的数据移位。对于每个检测窗口,HOG生成器312生成HOG描述子。如上文所描述的,生成针对检测窗口的HOG描述子包含生成针对单元的HOG、归一化单元的区间的HOG并且连结所产生的归一化HOG以形成针对检测窗口的HOG描述子。注意,图像的箱标识符和幅值可以由HOG加速器312一次生成并且由HOG生成器314多次使用以生成HOG描述子,以便检测如由视觉处理应用配置的不同的对象类型。
图4是实例HOG加速器312的框图。HOG加速器312的架构基于以下观察。如上文所描述的,可以根据以下计算像素的梯度幅值Gmag
Figure BDA0002273880160000051
其中Gx和Gy分别为像素在x方向的梯度和像素在y方向的梯度。可以根据以下可替代地计算梯度幅值Gmag
Gmag=Gx*sec(θ)
其中sec(θ)=l/cos(θ),并且θ为梯度的方向角。因此,用于计算梯度幅值和tan-1(Gy/Gx)的两个基本方程可以表示为
Gmag=Gx*sec(θ)
Gy=Gx*tan(θ)。
同样,如表1所阐述的,可以基于梯度Gx和Gy的符号确定方向角θ的象限。因此,不需要计算所有象限的tan-1(Gy/Gx)。相反,可以执行一个象限(例如,0度到90度)的方向角计算,并且可以使用符号位来确定方向角θ的实际象限。
表1
G<sub>x</sub>的符号 G<sub>y</sub>的符号 角象限(度)
+(0到128) +(0到128) 0-90
-(-128到0) +(0到128) 90-180
-(-128到0) -(-128到0) 180-270
+(0到128) -(-128到0) 270-360
HOG加速器312包含梯度计算组件400、箱标识组件402和梯度幅值计算组件404。梯度计算组件400计算像素的x梯度和y梯度,即Gx和Gy。可以使用用于计算梯度的任何适合的技术。在一些实例中,根据以下计算梯度:
Gx=[1 0 -1]*I
Gy=[1 0 -1]T*I
其中I为含有像素的图像,并且*为卷积。梯度计算组件400的输出包含Gx、Gy和梯度的符号。
箱标识组件402从梯度计算组件400接收经过计算的梯度Gx和Gy以及梯度的符号位并且使用这些输入来标识像素的角箱。为了标识像素的角箱,箱标识组件402确定哪些需要介于0度与90度之间的代表性方向角最接近梯度的实际方向角并且然后使用这种信息和所述符号位来标识像素的角箱。如上文所描述的,视觉处理应用可以指定直方图中箱的数量和第一象限(即,介于0度与90度之间的象限)中的箱的代表性方向角。
箱标识组件402包含Gy估计组件406、比较器组件408和箱确定组件410。Gy估计组件406被配置成计算针对多个代表性方向角的Gy的估计值。也就是说,Gy估计组件406被配置成针对每个指定的代表性方向角计算
Gy=Gx*tan(θ)
以并行的方式执行所述计算,并且可以指定的代表性方向角的数量取决于实施方案。应用可以指定由Gy估计组件406支持的任何数量的角到最大数量的角的值。在一些实例中,存在用于支持对最多45个角进行并行计算的电路系统。如上文所描述的,每个指定的角度值对应于第一象限中的箱。Gy估计组件406的输出为指定的代表性方向角的Gy的估计值。
比较器组件408被配置成将由Gy估计组件406输出的估计的Gy值中的每一个值与由梯度计算组件400输出的实际的Gy值进行比较并且输出针对每个估计的Gy值的0位或1位,这指示实际的Gy值是否大于估计的Gy值。
箱确定组件410包含用于使用比较器组件408的输出和来自梯度计算组件400的符号位来确定在360度中的像素的箱标识符的功能。在一些实例中,箱确定组件410使用查询表(如表2的查询表)来确定第一象限中的箱标识符。表2假定比较器组件的输出为1指示Gy的实际值大于对应的估计的Gy值。表格中最后为0的行的位置确定了箱标识符。如果全部输出均为1,则实际Gy大于全部估计的Gy值,并且箱标识符为1。
箱确定组件410然后使用符号位以根据表1确定实际象限,并且如果实际象限不在第一象限内,则箱确定象限410确定实际象限中的箱标识符。因为切线是对称函数,所以对于第一象限中的每个箱,在其它三个象限中的每个象限中存在对称箱。例如,如果第一象限中的箱标识符为n,则其它象限中的对称箱标识符为n的确定性函数。箱确定组件402的输出为像素的箱标识符。通过使用在400中生成的符号位连同比较器408在0度到90度之间的仅仅一个象限中的输出,箱确定410可以准确地标识完整的360度空间中的实际像素箱。
表2
Figure BDA0002273880160000071
幅值组件404从箱标识组件402中接收箱标识符并且从梯度计算组件400中接收梯度Gx和符号位,并且使用这些输入来确定像素的梯度的幅值。为了确定像素的幅值,幅值组件404计算指定的代表性方向角中的每个指定的代表性方向角的幅值并且使用符号位和箱标识符来选择对应于用于确定箱标识符的方向角的经过计算的幅值。
幅值组件404包含幅值计算组件412、幅值选择器组件416和多路复用器414。幅值计算组件412被配置成计算对应于多个代表性方向角的幅值。也就是说,幅值计算组件412被配置成使用每个指定的代表性方向角来计算
Gmag=Gx*sec(θ)
以并行的方式执行计算,并且代表性方向角与由Gy估计组件406使用的那些方向角相同。幅值计算组件的输出是对应于指定的代表性方向角的经过计算的幅值。
多路复用器414被配置成使用由幅值选择器组件416确定的选择器来选择幅值计算组件412的输出中的一个输出作为像素的幅值。
幅值选择器组件416被配置成使用来自箱标识组件402的箱标识符和来自梯度计算组件400的梯度的符号位来确定多路复用器414的选择器值。因为箱标识符可以处于四个象限中的任何象限中,而代表性方向角被限定于单个象限中,所以箱标识符可以大于幅值计算组件412的输出的数量。幅值选择器组件416包含用于根据对称的切线图量化箱标识符(即,使得箱标识符的多个值映射为单个选择器值)的功能。多达四个箱标识符值可以映射到同一选择器。幅值选择器组件416使用符号位连同象限中的箱的数量来执行这种映射。
例如,如果HOG加速器312被配置成用于40个箱的直方图,则每个象限中存在10个箱。假定箱确定组件410确定像素的箱标识符为12,则所述箱标识符落入第二象限中。此箱标识符的幅值Gmag与箱标识符2、22和32的幅值相同。为了确保正确地解析Gmag,幅值选择器组件416将箱标识符2、12、22和32映射为同一选择器值。
HOG加速器312进一步包含用于存储通过视觉处理应用设置的各种控制和配置参数的存储器映射寄存器(未具体示出)。参数包含第一象限中的代表性方向角的值和箱的数量。视觉处理应用为每个箱指定一个代表性方向角值。
如上文所描述的,Gy估计组件406针对每个代表性方向角计算
Gy=Gx*tan(θ)
并且幅值计算组件412针对每个代表性方位计算
Gmag=Gx*sec(θ)
任何适合的技术可以用于这些组件中以计算Gx*tan(θ)和Gx*sec(θ)。例如,对于tan(θ)和sec(θ),所述计算可以基于查询表。
在一些实例中,所述计算基于坐标旋转数字计算机(CORDIC)算法实施。CORDIC使用简单的移位加运算来计算如正切和正割等三角函数。也就是说,tan(θ)和sec(θ)可以表示为iΣ(-l)m X(2)-1→CORDIC实施方案,其中i为-8到+8之间的整数,并且m为1或2。例如,在CORDIC实施方案中,Gx*tan(20)~Gx*0.36可以被计算为Gx*(0.25+0.125-0.015625)→将Gx向左移2+,将Gx向左移4-,将Gx向左移6,并且Gx*sec(20)~Gx*1.00625可以被计算为Gx*sec(20)→Gx+将Gx向右移4。在一些此些实例中,并不实施完全的CORDIC引擎,而是实施有限范围的CORDIC引擎,其中所述有限范围由加速器设计支持的箱/方向角的最大数量确定。例如,可以实施有限范围的CORDIC引擎以支持最大32个箱/方向角的计算。
图5是用于确定像素的箱标识符和幅值的方法的流程图,所述方法可以由硬件加速器(如HOG加速器312)执行。初始地,对像素的梯度Gx和Gy进行计算500。可以使用任何适合的算法来计算所述梯度。
然后,对介于0度与90度之间的多个代表性方向角的Gy的值进行估计502。通过视觉处理应用确定代表性方向角的数量和值,并且通过硬件设计设置最大数量。根据以下计算每个代表性方向角的Gy的估计值:
Gy=Gx*tan(θ)
将估计的Gy值与实际的Gy值进行比较以选择像素的最好的代表性方向角504。如上文所描述的,可以使用查询表来实施选择过程。使用梯度的符号和所选择的代表性方向角来确定像素的箱标识符506。如上文所描述的,使用梯度的符号来确定方向角的实际象限。
还根据以下计算对应于代表性方向角中每个代表性方向角的幅值Gmag 508
Gmag=Gx*sec(θ)
并且使用箱标识符和梯度符号位来选择对应于用于确定箱标识符的代表性方向角的经过计算的幅值510。
图6是用于生成图像的HOG描述子的方法的流程图,所述方法可以由图3的SOC 300执行。初始地,由HOG加速器312确定由相机324捕获的图像中的每个像素的箱标识符和幅值600。对DSP 304执行视觉处理应用将HOG加速器312配置成确定图像像素的箱标识符和幅值并且将所述数据存储在RAM 318中。视觉处理应用将HOG加速器312配置成根据特定类型的对象使用代表性方向角的值和多个箱,视觉处理应用被编程成对所述特定类型的对象进行检测。
然后,由HOG生成器314计算HOG描述子以使用箱标识符和幅值对多种类型的对象进行分类602。也就是说,视觉处理应用被编程成对每种类型的对象进行检测,视觉处理应用将HOG生成器314配置成使用存储于RAM 318中的箱标识符和幅值来生成针对适用于每种对象类型的检测窗口、单元和区间大小的HOG描述子。例如,如果视觉处理应用被编程成对行人、车辆和街道标志进行检测,则所述应用将HOG生成器314编程为生成用于检测行人的HOG描述子。当所述任务完成时,所述应用将HOG生成器314编程为生成针对车辆的HOG描述子。当所述任务完成时,所述应用将HOG生成器314编程为生成针对街道标志的HOG描述子。HOG生成器314将存储于RAM 318中的箱标识符和幅值重复用于这些HOG描述子生成任务中的每个HOG描述子生成任务。
其它实例
在本文描述的一些实例中,箱确定组件410使用查询表(如表2的查询表)来确定第一象限中的箱标识符并且然后应用所述符号来确定实际象限和真正的箱标识符。在其它实例中,表格包含符号。
本文描述了HOG加速器的实例,其中所述加速器一次对一个像素进行操作。在其它实例中,HOG加速器具有用于以并行的方式对多个像素进行操作的另外的功能。
在一些实例中,SOC不包含HOG生成器,并且由对SOC的处理器中的一个处理器执行的应用执行HOG生成器的功能(如使用HOG加速器的输出生成HOG描述子)。
在本文描述的一些实例中,由幅值选择器组件对可以处于任何象限中的箱标识符进行量化以生成针对幅值的选择器。在其它实例中,使用针对第一象限生成的原始箱标识符来选择幅值,并且幅值选择器组件不存在。
在一些实例中,HOG生成器和HOG加速器被组合在单个加速器中。
本文描述了可配置的HOG加速器的实例。在其它实例中,HOG加速器具有预定的角度值和预定量的箱。
在一些实例中,使用RAM中的兵乓缓存器来存储HOG加速器的输出,从而允许HOG生成器使用一个缓存器中的一个图像的数据,同时HOG加速器生成另一个图像的箱标识符和幅值并且将所述数据存储在另一个缓存器中。
在权利要求的范围内,在所描述的实施例中修改是可能的,并且其它实施例是可能的。

Claims (25)

1.一种用于方向梯度直方图计算的硬件加速器,所述硬件加速器包括:
梯度计算组件,所述梯度计算组件被配置成计算像素的梯度Gx和Gy
箱标识组件,所述箱标识组件被配置成基于多个代表性方向角Gx以及Gx和Gy的符号来确定所述像素的角箱的箱标识符;以及
幅值组件,所述幅值组件被配置成基于所述多个代表性方向角和所述箱标识符来确定所述梯度的幅值Gmag
2.根据权利要求1所述的硬件加速器,其中所述多个代表性方向角中的每一个处于0度到90度的象限中。
3.根据权利要求1所述的硬件加速器,其中所述箱标识组件被进一步配置成:
根据Gy=Gx*tan(θ)估计所述多个代表性方向角中的每个代表性方向角的Gy的值,其中θ是所述代表性方向角;
将Gy的估计值与由所述梯度计算组件计算的所述Gy进行比较,以选择最接近所述梯度的实际方向角的所述代表性方向角;并且
使用所选择的代表性方向角和所述符号来确定所述箱标识符。
4.根据权利要求3所述的硬件加速器,其中所述幅值组件被进一步配置成:
根据Gmag=Gx*sec(θ)生成所述多个代表性方向角中的每个代表性方向角的Gmag的值,其中θ是所述代表性方向角;并且
选择对应于用于确定所述箱标识符的所述所选择的代表性方向角的Gmag值。
5.根据权利要求4所述的硬件加速器,其中所述幅值组件被进一步配置成使用所述箱标识符和所述符号来选择所述Gmag值。
6.根据权利要求4所述的硬件加速器,其中所述箱标识组件实施有限范围坐标旋转数字计算机CORDIC引擎以计算Gx*tan(θ),并且所述幅值组件实施有限范围CORDIC引擎以计算Gx*sec(θ)。
7.一种用于硬件加速器中的方向梯度直方图计算的方法,所述方法包括:
在所述硬件加速器的梯度计算组件中计算像素的梯度Gx和Gy
在所述硬件加速器的箱标识组件中确定所述像素的角箱的箱标识符,其中所述箱标识符基于多个代表性方向角Gx以及Gx和Gy的符号来确定;以及
在所述硬件加速器的幅值组件中确定所述梯度的幅值Gmag,其中所述幅值基于所述多个代表性方向角和所述箱标识符来确定。
8.根据权利要求7所述的方法,其中所述多个代表性方向角中的每一个处于0度到90度的象限中。
9.根据权利要求7所述的方法,其中确定箱标识符进一步包括:根据Gy=Gx*tan(θ)估计所述多个代表性方向角中的每个代表性方向角的Gy的值,其中θ是所述代表性方向角;
将Gy的估计值与由所述梯度计算组件计算的所述Gy进行比较,以选择最接近所述梯度的实际方向角的所述代表性方向角;以及
使用所选择的代表性方向角和所述符号来确定所述箱标识符。
10.根据权利要求9所述的方法,其中确定所述梯度的幅值进一步包括:
根据Gmag=Gx*sec(θ)生成所述多个代表性方向角中的每个代表性方向角的Gmag的值,其中θ是所述代表性方向角;以及
选择对应于用于确定所述箱标识符的所述所选择的代表性方向角的Gmag值。
11.根据权利要求10所述的方法,其中选择所述Gmag值进一步包括使用所述箱标识符和所述符号来选择所述Gmag值。
12.根据权利要求10所述的方法,其中有限范围坐标旋转数字计算机CORDIC引擎用于计算Gx*tan(θ),并且有限范围CORDIC引擎用于计算Gx*sec(θ)。
13.一种片上系统SOC,其包括:
用于方向梯度直方图HOG计算的硬件加速器,所述硬件加速器能够配置成生成图像中的每个像素的箱标识符和梯度幅值;
存储器,所述存储器耦接到所述硬件加速器以存储所述箱标识符和所述梯度幅值;
HOG生成器,所述HOG生成器耦接到所述存储器,其中所述HOG生成器能够配置成使用由所述硬件加速器生成的所述箱标识符和所述梯度幅值生成HOG描述子;以及
处理器,所述处理器耦接到所述存储器和所述硬件加速器,所述处理器能够操作以执行视觉处理应用,所述视觉处理应用被编程成对多个对象进行检测,所述视觉处理应用包括软件指令,所述软件指令将所述硬件加速器配置成生成所述箱标识符和所述梯度幅值并且将所述HOG生成器配置成使用所述箱标识符和所述梯度幅值生成所述多个对象中的每个对象的HOG描述子。
14.根据权利要求13所述的SOC,其中所述硬件加速器包括:
梯度计算组件,所述梯度计算组件被配置成计算像素的梯度Gx和Gy
箱标识组件,所述箱标识组件被配置成基于多个代表性方向角Gx以及Gx和Gy的符号来确定所述像素的角箱的箱标识符;以及
幅值组件,所述幅值组件被配置成基于所述多个代表性方向角和所述箱标识符来确定所述梯度的幅值Gmag
15.根据权利要求14所述的SOC,其中所述多个代表性方向角中的每一个处于0度到90度的象限中,并且所述视觉处理应用对所述硬件加速器中的所述多个代表性方向角进行配置。
16.根据权利要求14所述的SOC,其中所述箱标识组件被进一步配置成:
根据Gy=Gx*tan(θ)估计所述多个代表性方向角中的每个代表性方向角的Gy的值,其中θ是所述代表性方向角;
将Gy的估计值与由所述梯度计算组件计算的所述Gy进行比较,以选择最接近所述梯度的实际方向角的所述代表性方向角;以及
使用所选择的代表性方向角和所述符号来确定所述箱标识符。
17.根据权利要求16所述的SOC,其中所述幅值组件被进一步配置成:
根据Gmag=Gx*sec(θ)生成所述多个代表性方向角中的每个代表性方向角的Gmag的值,其中θ是所述代表性方向角;并且
选择对应于用于确定所述箱标识符的所述所选择的代表性方向角的Gmag值。
18.根据权利要求17所述的SOC,其中所述幅值组件被进一步配置成使用所述箱标识符和所述符号来选择所述Gmag值。
19.一种用于使用硬件加速器进行方向梯度直方图HOG计算的方法,所述方法包括:
通过所述硬件加速器确定图像中的每个像素的箱标识符和梯度幅值;以及
使用所述箱标识符和所述梯度幅值计算用于对多种类型的对象进行分类的HOG描述子。
20.根据权利要求19所述的方法,其中至少一种类型的对象的检测窗口大小不同于另一种类型的对象的检测窗口大小。
21.根据权利要求19所述的方法,其中确定箱标识符和梯度幅值进一步包括:
在所述硬件加速器的梯度计算组件中计算像素的梯度Gx和Gy
在所述硬件加速器的箱标识组件中确定所述像素的角箱的箱标识符,其中所述箱标识符基于多个代表性方向角Gx以及Gx和Gy的符号来确定;以及
在所述硬件加速器的幅值组件中确定所述梯度的幅值Gmag,其中所述幅值基于所述多个代表性方向角和所述箱标识符来确定。
22.根据权利要求21所述的方法,其中所述多个代表性方向角中的每一个处于0度到90度的象限中。
23.根据权利要求21所述的方法,其中确定角箱的箱标识符进一步包括:
根据Gy=Gx*tan(θ)估计所述多个代表性方向角中的每个代表性方向角的Gy的值,其中θ是所述代表性方向角;
将Gy的估计值与由所述梯度计算组件计算的所述Gy进行比较,以选择最接近所述梯度的实际方向角的所述代表性方向角;以及
使用所选择的代表性方向角和所述符号来确定所述箱标识符。
24.根据权利要求23所述的方法,其中确定所述梯度的幅值进一步包括:
根据Gmag=Gx*sec(θ)生成所述多个代表性方向角中的每个代表性方向角的Gmag的值,其中θ是所述代表性方向角;以及
选择对应于用于确定所述箱标识符的所述所选择的代表性方向角的Gmag值。
25.根据权利要求24所述的方法,其中选择所述Gmag值进一步包括使用所述箱标识符和所述符号来选择所述Gmag值。
CN201880032159.8A 2017-04-18 2018-04-17 用于方向梯度直方图计算的硬件加速器 Active CN110663046B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762486557P 2017-04-18 2017-04-18
US62/486,557 2017-04-18
US15/954,590 US11004205B2 (en) 2017-04-18 2018-04-16 Hardware accelerator for histogram of oriented gradients computation
US15/954,590 2018-04-16
PCT/US2018/027959 WO2018195069A1 (en) 2017-04-18 2018-04-17 Hardware accelerator for histogram of oriented gradients computation

Publications (2)

Publication Number Publication Date
CN110663046A true CN110663046A (zh) 2020-01-07
CN110663046B CN110663046B (zh) 2024-05-28

Family

ID=63790831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880032159.8A Active CN110663046B (zh) 2017-04-18 2018-04-17 用于方向梯度直方图计算的硬件加速器

Country Status (5)

Country Link
US (2) US11004205B2 (zh)
EP (1) EP3612979A4 (zh)
JP (2) JP7265107B2 (zh)
CN (1) CN110663046B (zh)
WO (1) WO2018195069A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460144B2 (en) * 2016-07-20 2019-10-29 Cypress Semiconductor Corporation Non-finger object rejection for fingerprint sensors
CN114359683B (zh) * 2021-12-31 2023-10-20 电子科技大学 一种面向文本定位的单内核hog高效异构加速方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1162795A (zh) * 1996-01-09 1997-10-22 富士通株式会社 模式识别设备与方法
US6408109B1 (en) * 1996-10-07 2002-06-18 Cognex Corporation Apparatus and method for detecting and sub-pixel location of edges in a digital image
US20100296706A1 (en) * 2009-05-20 2010-11-25 Canon Kabushiki Kaisha Image recognition apparatus for identifying facial expression or individual, and method for the same
CN104268857A (zh) * 2014-09-16 2015-01-07 湖南大学 一种基于机器视觉的快速亚像素边缘检测与定位方法
US20160026898A1 (en) * 2014-07-24 2016-01-28 Agt International Gmbh Method and system for object detection with multi-scale single pass sliding window hog linear svm classifiers
US20160203384A1 (en) * 2015-01-08 2016-07-14 Linear Algebra Technologies Limited Hardware accelerator for histogram of gradients
US20170091575A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Method and system of low-complexity histrogram of gradients generation for image processing
US20170098135A1 (en) * 2014-11-28 2017-04-06 Fotonation Limited Method for producing a histogram of oriented gradients

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975764B1 (en) * 1997-11-26 2005-12-13 Cognex Technology And Investment Corporation Fast high-accuracy multi-dimensional pattern inspection
GB2431717A (en) * 2005-10-31 2007-05-02 Sony Uk Ltd Scene analysis
CN100405017C (zh) * 2007-06-22 2008-07-23 北京航空航天大学 阵列小孔式太阳敏感器信号处理方法和装置
US20090094306A1 (en) * 2007-10-09 2009-04-09 Krishnakalin Gahn W Cordic rotation angle calculation
FR2939547B1 (fr) * 2008-12-09 2011-06-10 Commissariat Energie Atomique Dispositif et procede pour le reconnaissance et la localisation d'objets dans une image par balayage de fenetres de detection
US9189670B2 (en) * 2009-02-11 2015-11-17 Cognex Corporation System and method for capturing and detecting symbology features and parameters
US8510354B1 (en) * 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8774508B2 (en) * 2012-02-27 2014-07-08 Denso It Laboratory, Inc. Local feature amount calculating device, method of calculating local feature amount, corresponding point searching apparatus, and method of searching corresponding point
US9936132B2 (en) * 2012-10-26 2018-04-03 The Regents Of The University Of Michigan CMOS image sensors with feature extraction
US20140270479A1 (en) * 2013-03-15 2014-09-18 Sony Corporation Systems and methods for parameter estimation of images
JP6303090B2 (ja) 2014-03-24 2018-04-04 アルパイン株式会社 画像処理装置および画像処理プログラム
EP3109823A1 (en) * 2015-06-22 2016-12-28 Sick IVP AB Method and arrangements for estimating one or more dominating orientations in a digital image
WO2017054941A1 (en) * 2015-09-30 2017-04-06 Fotonation Limited A method and system for tracking an object
US9639777B1 (en) * 2015-12-17 2017-05-02 Linear Algebra Technologies Limited Systems and methods for providing an image classifier
KR20170103472A (ko) * 2016-03-04 2017-09-13 한국전자통신연구원 허프 변환을 이용한 하드웨어 기반 원 검출 장치 및 방법
JP6656988B2 (ja) * 2016-03-30 2020-03-04 株式会社エクォス・リサーチ 画像処理装置、半導体装置、画像認識装置、移動体装置、及び画像処理方法
GB2556908B (en) * 2016-11-24 2021-10-13 Emdalo Tech Limited Ie System and method for determining the presence of objects in an image

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1162795A (zh) * 1996-01-09 1997-10-22 富士通株式会社 模式识别设备与方法
US6408109B1 (en) * 1996-10-07 2002-06-18 Cognex Corporation Apparatus and method for detecting and sub-pixel location of edges in a digital image
US20100296706A1 (en) * 2009-05-20 2010-11-25 Canon Kabushiki Kaisha Image recognition apparatus for identifying facial expression or individual, and method for the same
US20160026898A1 (en) * 2014-07-24 2016-01-28 Agt International Gmbh Method and system for object detection with multi-scale single pass sliding window hog linear svm classifiers
CN104268857A (zh) * 2014-09-16 2015-01-07 湖南大学 一种基于机器视觉的快速亚像素边缘检测与定位方法
US20170098135A1 (en) * 2014-11-28 2017-04-06 Fotonation Limited Method for producing a histogram of oriented gradients
US20160203384A1 (en) * 2015-01-08 2016-07-14 Linear Algebra Technologies Limited Hardware accelerator for histogram of gradients
US20170091575A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Method and system of low-complexity histrogram of gradients generation for image processing

Also Published As

Publication number Publication date
US11004205B2 (en) 2021-05-11
CN110663046B (zh) 2024-05-28
JP2020518052A (ja) 2020-06-18
JP7368924B2 (ja) 2023-10-25
WO2018195069A1 (en) 2018-10-25
JP2023065515A (ja) 2023-05-12
EP3612979A1 (en) 2020-02-26
US20210264612A1 (en) 2021-08-26
US20180300881A1 (en) 2018-10-18
JP7265107B2 (ja) 2023-04-26
EP3612979A4 (en) 2020-04-29

Similar Documents

Publication Publication Date Title
JP7368924B2 (ja) 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ
US10621446B2 (en) Handling perspective magnification in optical flow processing
US9384398B2 (en) Method and apparatus for roof type classification and reconstruction based on two dimensional aerial images
Komorkiewicz et al. Floating point HOG implementation for real-time multiple object detection
Ttofis et al. Towards accurate hardware stereo correspondence: A real-time fpga implementation of a segmentation-based adaptive support weight algorithm
CN106062824A (zh) 边缘检测装置、边缘检测方法和程序
CN108960012B (zh) 特征点检测方法、装置及电子设备
CN109766896B (zh) 一种相似度度量方法、装置、设备和存储介质
US11816857B2 (en) Methods and apparatus for generating point cloud histograms
CN110942473A (zh) 一种基于特征点网格化匹配的运动目标跟踪检测方法
JP2012123631A (ja) 注目領域検出方法、注目領域検出装置、及びプログラム
CN103837135A (zh) 工件检测方法及其系统
CN112464753B (zh) 图像中关键点的检测方法、检测装置及终端设备
CN111009004B (zh) 一种加速图像匹配的硬件优化方法
CN109919998B (zh) 卫星姿态确定方法、装置和终端设备
Sasongko et al. VLSI Architecture for Fine Grained Pipelined Feature Extraction using Histogram of Oriented Gradient
CN111784557A (zh) 一种处理图像数据的方法、装置、板卡及可读存储介质
Yang et al. Hardware-accelerated vehicle license plate detection at high-definition image
Mai et al. An improved method for vietnam license plate location based on mathematic morphology and measuring properties of image regions
Patil et al. Acceleration of hough transform algorithm using Graphics Processing Unit (GPU)
Shasani et al. Color and Shape Recognition
Khan et al. A swift and memory efficient Hough transform for systems with limited fast memory
Behret et al. Examination of Real World Bias on the Localization Accuracy of Indirect SLAM
Yang et al. An Automatic and Efficient Calibration Method for LiDAR-Camera in Targetless Environments
Roggow Real-time ellipse detection on an embedded reconfigurable system-on-chip

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