一种仿射变换的硬件实现方法技术

技术编号:32428480 阅读:44 留言:0更新日期:2022-02-24 18:32
本发明专利技术提供一种仿射变换的硬件实现方法,所述方法包括以下步骤:S1,读取待识别图像,目标图像和源图像存储在DDR中,源图像从总线顺序输入;S2,经过放射变化,目标图像乱序输出;S3,再利用缓存把目标点按照源点的输入顺序进行目标点排序,把乱序变成顺序,其中对求出每个纵向组中对应源点最靠前的目标点得到一个横向组的步骤,利用目标行和源行一一对应关系及单调性进行优化;S4,总线输出。本方法提供方便的硬件设计和实现。可以支持全功能,全范围的仿射变换。相同硬件面积下,支持的目标图的尺寸更大。尺寸更大。尺寸更大。

【技术实现步骤摘要】
一种仿射变换的硬件实现方法


[0001]本专利技术涉及图像处理
,特别涉及一种仿射变换的硬件实现方法。

技术介绍

[0002]在人工智能技术中,图像处理技术也是十分重要的一种。特别是在生活中,我们经常听到的人脸识别,车牌识别,口罩识别等都是图像识别的范畴。图像识别是人工智能技术使用最为成熟的方向之一。图像在进入神经网络进行识别之前,需要对图像进行处理,以降低识别的代价、提高识别的精度。仿射运算是常用的前处理算法,如图1所示。二维图像常见的坐标变化如图3所示。仿射变换包括如图4所示所有变换,以及这些变换任意次序次数的组合。
[0003]仿射变换描述的其实是目标像素点和源图像素点的对应关系。这个对应关系用软件实现很容易,但对于集成电路硬件实现是个灾难。但是识别效率是软件实现的最大问题。对于公共场合,人脸可能成百上千,软件的人脸识别显然是不可能。故而,集成电路硬件来实现仿射变换是大势所趋。
[0004]集成电路硬件实现仿射变换时,源图像和目标图像都很大,需要放在DDR中。因为DDR的使用效率成为仿射变换硬件化的难点。如图2所示,应对DDR使用效率问题,仿射变换在硬件实现时,有两种方案:
[0005]1)总线输入,用buffer把顺序变成乱序,源图像乱序输入,目标图像顺序输出到总线。
[0006]2)源图像从总线顺序输入,目标图像乱序输出,再用buffer把乱序变成顺序,总线输出。
[0007]当采用第二方案时,需要把目标点按照源点的输入顺序进行排序。如果目标图像尺寸太大,对硬件实现是灾难性的。
[0008]为了减小目标点排序的复杂度,现有集成电路硬件实现方案都没有全功能实现。主要有如下局限性:
[0009]1)只支持小size的目标图像。
[0010]2)只支持特定变换。例如:只支持缩放,不支持旋转。
[0011]3)只支持特定的变换范围。例如:只支持特定比例的缩放,只支持特定角度的旋转。
[0012]此外,现有技术中的常用术语如下:
[0013]1)人工智能。
[0014]2)图像识别。
[0015]3)图像数据格式:包括BGRA,NV12格式等
[0016]4)仿射变换。
[0017]5)线性插值算法。
[0018]6)集成电路硬件设计(IC)。

技术实现思路

[0019]为了解决上述问题,本方法目的在于:提出一种仿射变换的硬件实现方法,提供方便的硬件设计和实现。可以支持全功能,全范围的仿射变换。相同硬件面积下,支持的目标图的尺寸更大。
[0020]具体地,本专利技术提供一种仿射变换的硬件实现方法,所述方法包括以下步骤:
[0021]S1,读取待识别图像,目标图像和源图像存储在DDR中,源图像从总线顺序输入;
[0022]S2,经过放射变化,目标图像乱序输出;
[0023]S3,再利用缓存把目标点按照源点的输入顺序进行目标点排序,把乱序变成顺序,其中对求出每个纵向组中对应源点最靠前的目标点得到一个横向组的步骤,利用目标行和源行一一对应关系及单调性进行优化;
[0024]S4,总线输出。
[0025]所述S3中目标点排序进一步包括:
[0026]S3.1:对目标图纵向分组,
[0027][0028]S3.2:求出每个纵向组中对应源点最靠前的目标点得到一个横向组,
[0029]d0d1d2

d(w-1);
[0030]S3.3:求出横向组中对应源点最靠前的目标点,此目标点坐标写入排序先进先出,
[0031]d[j][i];
[0032]S3.4:去掉S3.3得到的目标点,重复S3.1-S3.3,直到所有目标点都排序完。
[0033]所述方法中把仿射变换前的图像称之为源图像,把变换后的图像称之为目标图像,以源图像为函数值,以目标图像为自变量,则仿射变换公式如下:
[0034](float)sx=(float)m0*(int)dx+(float)m2*(int)dy+(float)m4;
[0035](float)sy=(float)m1*(int)dy+(float)m3*(int)dx+(float)m5;
[0036]公式中:
[0037]1)m0-m5为仿射变换系数,是浮点型。
[0038]2)自变量(dx,dy)是目标点坐标,是整型;
[0039]3)函数值(sx,sy)是源点坐标,是浮点型,其中整数部分是位置信息,小数部分是权重。
[0040]所述步骤S3排序过程中,按纵向缩放规律,目标行和源行的一一对应关系如下:
[0041]当abs(m1)即m1的绝对值大于1,纵向缩放如果是缩小,则目标行和源行是一一对应;
[0042]当abs(m1)即m1的绝对值等于1,纵向缩放如果是不变,则目标行和源行是一一对应;
[0043]当abs(m1)即m1的绝对值小于1,纵向缩放如果是放大,则目标行和源行不是一一对应;
[0044]单调性关系如下:
[0045]如果m1是正,则dy和sy的关系是单调递减;
[0046]如果m1是负,则dy和sy的关系是单调递增。
[0047]所述步骤S3.2和S3.3在功能上是一样的,都是求源点最靠前的目标点,但是S2的运算量是S3的目标图宽度w倍,因此,所述利用目标行和源行一一对应关系及单调性进行优化即解决纵向放大的一一对应问题,对源图先按2的n次方倍纵向放大,再做仿射变换。
[0048]所述对源图2幂次倍放大,硬件设计时是很容易实现的,原公式为:
[0049]sx=m0*dx+m2*dy+m4;
[0050]sy=m1*dy+m3*dx+m5;
[0051]分解后,第一个公式:
[0052]sx=dx;
[0053]sy=1/k*dy;
[0054]分解后,第二个公式:
[0055]sx=m0*dx+m2*dy+m4;
[0056]sy=m1*k*dy+m3*k*dx+m5*k;
[0057]其中k需要是2的幂次倍,Abs(m1*k)即m1*k的绝对值需要大于1。
[0058]由此,本申请的优势在于:本专利技术的方法提供方便的硬件设计和实现。可以支持全功能,全范围的仿射变换。相同硬件面积下,支持的目标图的尺寸更大。利用了目标行和源行的单调性和一一对应关系,简化了目标点排序。对硬件设计更加友好。让仿射变换的全功能全范围的硬件设计成为了可能。
附图说明
[0059]此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,并不构成对本专利技术的限定。
[0060]图1是现有技术中图像识别预处理阶段包含仿射变换的示意图。
[0061]图2是二维图像常见的坐标变化的示意图。
[0062]图3是仿射变换包括如图中变换的示意图。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种仿射变换的硬件实现方法,其特征在于,所述方法包括以下步骤:S1,读取待识别图像,目标图像和源图像存储在DDR中,源图像从总线顺序输入;S2,经过放射变化,目标图像乱序输出;S3,再把目标点按照源点的输入顺序进行目标点排序,把乱序变成顺序,其中对求出每个纵向组中对应源点最靠前的目标点得到一个横向组的步骤,利用目标行和源行一一对应关系及单调性进行优化;S4,总线输出。2.根据权利要求1所述的一种仿射变换的硬件实现方法,其特征在于,所述S3中目标点排序进一步包括:S3.1:对目标图纵向分组,S3.2:求出每个纵向组中对应源点最靠前的目标点得到一个横向组,d0d1d2

d(w-1);S3.3:求出横向组中对应源点最靠前的目标点,此目标点坐标写入排序先进先出,S3.4:去掉S3.3得到的目标点,重复S3.1-S3.3,直到所有目标点都排序完。3.根据权利要求2所述的一种仿射变换的硬件实现方法,其特征在于,所述方法中把仿射变换前的图像称之为源图像,把变换后的图像称之为目标图像,以源图像为函数值,以目标图像为自变量,则仿射变换公式如下:(float)sx=(float)m0*(int)dx+(float)m2*(int)dy+(float)m4;(float)sy=(float)m1*(int)dy+(float)m3*(int)dx+(float)m5;公式中:1)m0-m5为仿射变换系数,是浮点型;2)自变量(dx,dy)是目标点坐标,是整型;3)函数值(sx...

【专利技术属性】
技术研发人员:张传兵
申请(专利权)人:合肥君正科技有限公司
类型:发明
国别省市:

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

1