一种处理图像的硬件加速系统及方法与流程

文档序号:17465760发布日期:2019-04-20 05:30阅读:255来源:国知局
一种处理图像的硬件加速系统及方法与流程

本发明涉及图像处理技术领域,更具体地说,涉及一种处理图像的硬件加速系统及方法。



背景技术:

人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像识别、面部识别。人脸识别技术已广泛应用于公安、政府、航天、电力、医疗等领域。但是如何在保证识别准确性的前提下进一步提高识别的速度的问题仍然没有得到很好的解决。

目前现有的图像处理系统,主控芯片内核负荷大,算法的计算效率比较低,应用最多的人脸识别算法是基于特征点的,提取特征点并进行识别的过程计算量大,并且耗时长。目前针对于人脸识别的软件优化算法有多种,例如基于gabor滤波的快速人脸识别优化算法,但是这种优化算法在提高人脸识别速度的同时,增大了人脸识别过程的总功耗,并且优化的程度有限,算法优化还存在不稳定的问题。

针对上述问题,现有技术也提出了一些解决方案,例如发明创造名称为:一种适用于指纹图像增强的可配置gabor滤波硬件加速单元(申请日:2012年1月4日;申请号:201210000855.5),该方案的加速单元由滤波控制器、输入缓存器、输出缓存器和滤波卷积单元组成。加速单元通过总线与中央处理器和存储器连接,通过总线获得的输入包括滤波前的指纹图像、方向信息、频率信息和有效区域掩膜信息。本方案对输入指纹图像中的每个像素点首先检查其掩膜信息,如果不为零,则利用与该像素点对应的方向和频率信息构造出相应的gabor滤波器,并用该滤波器对此像素做gabor滤波,得到滤波后的像素值;如果掩膜信息为零,则该像素点不做滤波。本方的输出为gabor滤波后的指纹图像。其中输入输出缓存器的引入使带宽得到有效降低,滤波卷积单元采用流水线设计,从而提高了加速单元的吞吐率。但是,本方案的不足之处在于:在对一幅图像进行滤波处理时,需要多次对滤波单元进行配置,导致内核负荷高,进而降低了图像了处理速度。

综上所述,在人脸识别的过程中,如何降低内核的负荷并提高图像的处理速度,是现有技术亟需解决的问题。



技术实现要素:

1.发明要解决的技术问题

本发明的目的在于克服现有技术中,图像处理过程中数据运算量大导致计算时间长的不足,提供了一种处理图像的硬件加速系统及方法,可以有效降低内核的负荷,进一步提高图像处理速度。

2.技术方案

为达到上述目的,本发明提供的技术方案为:

本发明的一种处理图像的硬件加速系统,包括硬件加速单元、内核和内存,硬件加速单元通过系统总线与内核电连接;且硬件加速单元通过系统总线和dma总线与内存电连接。

作为本发明更进一步地改进,硬件加速单元包括滤波控制器、dma控制器和自适应滤波单元,dma控制器和自适应滤波单元分别与滤波控制器电连接;dma控制器通过输入缓存和输出缓存与自适应滤波单元电连接。

作为本发明更进一步地改进,滤波控制器通过系统总线分别与内核和内存电连接,dma控制器通过dma总线与内存电连接。

作为本发明更进一步地改进,输入缓存和输出缓存之间设有自适应滤波单元。

作为本发明更进一步地改进,滤波控制器包括寄存器单元和逻辑单元,寄存器单元与逻辑单元电连接,逻辑单元与dma控制器电连接。

本发明的一种处理图像的硬件加速方法,采用上述的一种处理图像的硬件加速系统,具体步骤为:s100、传输数据;内存通过系统总线和dma总线将图像数据传输至硬件加速单元;s200、数据处理;硬件加速单元对图像数据进行处理;s300、输出处理后的数据;硬件加速单元将处理后的图像数据通过dma总线传输至内存内。

作为本发明更进一步地改进,s100的具体步骤为:内存将图像数据传输至系统总线,滤波控制器通过系统总线获取图像数据,dma控制器通过dma总线将内存内的图像数据传输至输入缓存中。

作为本发明更进一步地改进,图像数据包括原始图像数据地址、处理后的图像数据存储地址、图像高度值、图像宽度值、窗口尺寸初始值以及窗口尺寸最大值,其中,窗口尺寸初始值为s,窗口尺寸最大值为smax。

作为本发明更进一步地改进,自适应滤波单元从左至右、从上至下的顺序对图像的像素点进行滤波处理,s200具体步骤如下:s210、读取灰度值;自适应滤波单元以待处理的像素点为中心创建滤波窗口,并读取滤波窗口内所有像素点的灰度值,待处理的像素点的灰度值为gxy;其中,滤波窗口为方形窗口,且滤波窗口的长度为l,且l的初始值为s。s220、灰度值排序;自适应滤波单元根据读取的灰度值大小进行升序排序,并计算得到灰度最小值、灰度中值和灰度最大值;其中,灰度最小值为gmin,灰度中值为gmed,灰度最大值为gmax;

s230、灰度值比较判断

自适应滤波单元将gmin、gmed以及gmax进行比较,如果gmin<gmed<gmax,则表示灰度中值点是正常的像素点;而后自适应滤波单元将gmin、gxy以及gmax进行比较,如果gmin<gxy<gmax,则表示待处理的像素点是正常的像素点,待处理的像素点的灰度值为gxy;如果gxy=gmin或者gxy=gmax,待处理的像素点的灰度值为gmed;

如果gmed=gmin或者gmed=gmax,则表示灰度中值点是噪声点;然后自适应滤波单元将滤波窗口的长度加2,即滤波窗口的长度l为l+2;如果l≤smax,返回步骤s210对待处理的像素点重新进行滤波处理;如果l>smax,待处理的像素点的灰度值为gmed;

s240、处理下一个像素点

自适应滤波单元对待处理的像素点进行滤波处理后,将待处理的像素点的灰度值传输至输出缓存内,并对下一个像素点进行滤波处理,直至完成图像所有像素点的滤波处理。

作为本发明更进一步地改进,s300的具体步骤为:硬件加速单元的dma控制器将输出缓存内的图像数据通过dma总线传输至内存内。

3.有益效果

采用本发明提供的技术方案,与已有的公知技术相比,具有如下显著效果:

(1)本发明的一种处理图像的硬件加速系统,通过设置硬件加速单元和dma总线,从而可以快速高效的传输大批量的图像数据,进而进一步加快了图像的处理速度;

(2)本发明的一种处理图像的硬件加速系统,在图像滤波处理过程中,内核只需对硬件加速单元进行一次滤波配置,从而有效降低了内核的负荷,并且大大提高了图像处理的速度;

(3)本发明的一种处理图像的硬件加速方法,硬件加速单元的自适应滤波单元对每个像素点都进行滤波处理,不仅实现了对噪声的过滤,并且提高了图像的细节处理效果。

附图说明

图1为本发明的一种处理图像的硬件加速系统的结构示意图;

图2为本发明的一种处理图像的硬件加速方法的流程图;

图3为本发明一种处理图像的硬件加速方法的数据处理流程图;

图4为实施例1自适应滤波单元对图像进行滤波处理的流程图。

示意图中的标号说明:100、硬件加速单元;110、滤波控制器;111、寄存器单元;112、逻辑单元;

120、dma控制器;130、自适应滤波单元;140、输入缓存;150、输出缓存;

210、内核;220、内存。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例;而且,各个实施例之间不是相对独立的,根据需要可以相互组合,从而达到更优的效果。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。

实施例1

结合图1所示,本发明的一种处理图像的硬件加速系统,包括硬件加速单元100、内核210和内存220,硬件加速单元100通过系统总线与内核210电连接,且硬件加速单元100通过系统总线和dma总线与内存220电连接。其中,硬件加速单元100用于处理图像数据,并将处理后的图像数据传输至内存220内。具体地,硬件加速单元100包括滤波控制器110、dma控制器120和自适应滤波单元130,其中,滤波控制器110通过系统总线分别与内核210和内存220电连接,从而滤波控制器110可以通过系统总线与内核210和内存220进行数据交换,使得滤波控制器110可以获取原始图像数据地址、处理后的图像数据存储地址、图像高度、图像宽度以及滤波单元的窗口尺寸初始值与窗口尺寸最大值信息。dma控制器120通过dma总线与内存220电连接,其中,dma控制器120通过dma总线接口与dma总线电连接,从而dma控制器120通过dma总线可以获取图像的数据,并且dma控制器120可以通过dma总线将处理后的数据信息传输到内存220内。值得说明的是,通过设置dma控制器120和dma总线,从而可以快速高效的传输大批量的图像数据,并且有效降低了主控芯片内核的负荷,进一步加快了图像的处理速度。

本发明的dma控制器120和自适应滤波单元130分别与滤波控制器110电连接,从而使得滤波控制器110内的数据信息可以传输给dma控制器120和自适应滤波单元130。进一步地,dma控制器120通过输入缓存140和输出缓存150与自适应滤波单元130电连接,需要详细说明的是,dma控制器120与输入缓存140电连接,进而dma控制器120可以将图像数据转移到输入缓存140中。输入缓存140与自适应滤波单元130电连接,从而自适应滤波单元130可以对输入缓存140内的数据进行处理;此外,自适应滤波单元130与输出缓存150电连接,本发明的自适应滤波单元130设置于输入缓存140和输出缓存150之间,使得自适应滤波单元130可以将处理后的数据输入到输出缓存150中。输出缓存150还与dma控制器120电连接,即可以将图像处理后的数据通过dma控制器120传输至dma总线,进而通过dma总线将数据传输至指定位置的内存220中。

此外需要说明的是,滤波控制器110包括寄存器单元111和逻辑单元112,寄存器单元111与逻辑单元112电连接。其中,寄存器单元111用于存储相关的数据信息,值得说明的是,寄存器单元111包括最小值寄存器、中值寄存器、最大值寄存器、原始值寄存器和窗口尺寸动态值寄存器,最小值寄存器、中值寄存器、最大值寄存器、原始值寄存器和窗口尺寸动态值寄存器分别与自适应滤波单元130电连接,最小值寄存器用于存储滤波窗口内的灰度最小值,中值寄存器用于存储滤波窗口内的灰度中值,最大值寄存器用于存储滤波窗口内的灰度最大值,原始值寄存器用于存储需要进行滤波处理的像素点的灰度值,窗口尺寸动态值寄存器用于存储变化后的滤波窗口尺寸值。寄存器单元111还包括图像宽度寄存器、图像高度寄存器、窗口尺寸初始化寄存器和窗口尺寸限制寄存器,图像宽度寄存器、图像高度寄存器、窗口尺寸初始化寄存器和窗口尺寸限制寄存器分别通过系统总线接口与系统总线电连接,且图像宽度寄存器、图像高度寄存器、窗口尺寸初始化寄存器和窗口尺寸限制寄存器分别与自适应滤波单元130电连接;图像宽度寄存器和图像高度寄存器分别对应存储图像的宽度值和高度值,窗口尺寸初始化寄存器和窗口尺寸限制寄存器分别对应存储窗口尺寸的初始值和窗口尺寸的最大值。当自适应滤波单元130对图像数据进行滤波处理时,需要实时与不同的寄存器进行数据信息交流,进而可以完成图像的滤波处理。

本发明的逻辑单元112与dma控制器120电连接,逻辑单元112用于计算内存220的地址信息,根据计算的地址信息,dma控制器120会将内存220中的相应的图像数据通过dma总线传输至输入缓存140中,dma控制器120将输出缓存150中处理后的数据通过dma总线传输至指定位置的与内存220中。

本发明的一种处理图像的硬件加速系统,在对图像滤波处理过程中,内核210只需对硬件加速单元100进行一次滤波配置,滤波配置具体为设置原始图像数据地址,图像宽度值和图像高度值。对于滤波窗口的尺寸值、滤波窗口的移动以及地址计算均由硬件加速单元100完成,处理后的数据由硬件加速单元100的dma控制器120传输至内存220中,从而有效降低了内核210的负荷,并且大大提高了图像处理的速度。

结合图2~4所示,采用上述的一种处理图像的硬件加速系统,本发明的一种处理图像的硬件加速方法,具体步骤为:

s100、传输数据

内存220通过系统总线和dma总线将图像数据传输至硬件加速单元100;具体地,内存220将图像数据传输至系统总线,滤波控制器110通过系统总线获取图像数据,寄存器单元111的寄存器对应存储相关的数据。

逻辑单元112根据窗口尺寸的初始值及需要进行滤波的像素点的内存220位置计算处于滤波窗口内的像素点的内存220地址信息,根据计算得到的内存220地址信息,dma控制器120通过dma总线将内存220内的图像数据传输至输入缓存140中,从而大大提高了传输数据的速度。值得说明的是,数据包括原始图像数据地址、处理后的图像数据存储地址、图像高度值、图像宽度值、窗口尺寸初始值以及窗口尺寸最大值,其中,窗口尺寸初始值为s,窗口尺寸最大值为smax。

s200、数据处理

硬件加速单元100对图像数据进行处理;具体地,硬件加速单元100的自适应滤波单元130从左至右、从上至下的顺序对图像的像素点进行滤波处理,需要说明的是,自适应滤波单元130对图像进行滤波处理的具体过程如下(如图3所示):

s210、读取灰度值

自适应滤波单元130以待处理的像素点为中心创建滤波窗口,并读取滤波窗口内所有像素点的灰度值,待处理的像素点的灰度值为gxy;其中,滤波窗口为方形窗口,且滤波窗口的长度为l,且l的初始值为s。

s220、灰度值排序

自适应滤波单元130根据读取的灰度值大小进行升序排序,并计算得到灰度最小值、灰度中值和灰度最大值;其中,灰度最小值为gmin,灰度中值为gmed,灰度最大值为gmax;其中,自适应滤波单元130将灰度最小值gmin存储至最小值寄存器内,将灰度中值gmed存储至中值寄存器内,将灰度最大值gmax存储至最大值寄存器中,并将待处理的像素点的灰度值gxy存储至原始值寄存器内。

s230、灰度值比较判断

自适应滤波单元130将gmin、gmed以及gmax进行比较,如果gmin<gmed<gmax,则表示灰度中值点是正常的像素点;而后自适应滤波单元130将gmin、gxy以及gmax进行比较,如果gmin<gxy<gmax,则表示待处理的像素点是正常的像素点,待处理的像素点的灰度值保持不变,即待处理的像素点的灰度值为gxy;如果gxy=gmin或者gxy=gmax,待处理的像素点的灰度值将由gxy变为gmed;

如果gmed=gmin或者gmed=gmax,则表示灰度中值点是噪声点,例如当处于滤波窗口中的像素点包含大量椒盐噪声时,则会出现gmed=gmin=0或者gmed=gmax=255的情况,如果以该窗口内的灰度中值点进行滤波,将无法滤除噪声点,这时需将滤波窗口尺寸增大;然后自适应滤波单元130将滤波窗口的长度加2,即滤波窗口的长度l为l+2,滤波窗口的长度值l存储至窗口尺寸动态值寄存器中;如果l≤smax,返回步骤s210对待处理的像素点重新进行滤波处理;值得说明的是,在步骤s210重新进行滤波处理时,其滤波窗口的长度l不取初始值,即滤波窗口的长度l为l+2;如果l>smax,待处理的像素点的灰度值由gxy变为gmed;

s240、处理下一个像素点

自适应滤波单元130对待处理的像素点进行滤波处理后,将待处理的像素点的灰度值传输至输出缓存150内,并对下一个像素点进行滤波处理,直至完成图像所有像素点的滤波处理。

s300、输出处理后的数据

硬件加速单元100将处理后的图像数据通过dma总线传输至内存220内,具体地,硬件加速单元100的dma控制器120将输出缓存150内处理后的图像数据通过dma总线传输至内存220内。

本发明通过基于局部图像的滤波处理方法,硬件加速单元100对每个像素点都进行滤波处理,不仅实现了对噪声的过滤,并且提高了图像的细节处理效果。

在上文中结合具体的示例性实施例详细描述了本发明。但是,应当理解,可在不脱离由所附权利要求限定的本发明的范围的情况下进行各种修改和变型。详细的描述和附图应仅被认为是说明性的,而不是限制性的,如果存在任何这样的修改和变型,那么它们都将落入在此描述的本发明的范围内。此外,背景技术旨在为了说明本技术的研发现状和意义,并不旨在限制本发明或本申请和本发明的应用领域。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1