掌桥专利:专业的专利平台
掌桥专利
首页

一种实时图像序列的几何映射方法和装置

文献发布时间:2023-06-19 11:57:35


一种实时图像序列的几何映射方法和装置

技术领域

本发明涉及图像序列映射技术领域,特别是涉及一种实时图像序列的几何映射方法和装置。

背景技术

基于图像传感器的被动视觉传感器方案在工业检测、自动驾驶、自主导航领域得到越来越多的研究和应用,这些应用领域中,视觉传感器的实时性和低功耗成为关键指标。图像传感器数据在具有丰富信息量的同时,其超大数据量带来的运算成本降低了它的实时性,也成为影响其应用推广的不利因素,而双目或多目的图像传感器使得该问题被成倍放大,更增加了应用的困难。因此,研制实时性高且低成本低功耗的视觉传感器对于视觉传感器的推广具有重要意义。

在被动视觉传感器的应用过程中,图像的几何变换是一种常见的基础需求,特别是在双目立体视觉应用中,双目图像序列的标定和校正是双目立体视觉传感器开展后端视觉算法的基础和前提。现有的图像序列映射技术方案有:(1)通用处理器方案,是使用个人电脑、工业电脑、服务器等通用运算单元所采用的方式,该方案本身在价格和功耗上均较高,且需要缓存整帧图像数据并执行串行映射处理,实时性低;(2)通用GPU方案,是在装备了GPU加速卡的通用运算单元上采用的方案,该方案价格和功耗更高,虽然在映射方式上可并行加速,但因为同样需要缓存数据,因而实时性较低;(3)专用芯片方案,目前仅有国外的芯片厂家提供,该方案解决了成本和功耗的问题,但在一定程序上受硬件资源的限制。(4)传统可编程逻辑器件的映射方案,未对映射方案实现优化,需要更高的缓存资源和更高的硬件成本。

发明内容

本发明所要解决的技术问题是提供一种实时图像序列的几何映射方法和装置,能够在较低的硬件资源条件下以高实时性实现图像序列的几何映射的目的。

本发明解决其技术问题所采用的技术方案是:提供一种实时图像序列的几何映射方法,包括以下步骤:

(1)建立原始图像序列和目标图像序列的输出顺序映射表,所述输出顺序映射表用于完成从原始图像序列向目标图像序列的映射;

(2)在不改变所述输出顺序映射表中映射对的内部对应关系的前提下,对所述映射对重新排序,将映射对按照原始图像的浮点坐标的整数部分顺序进行排列,所述排列的顺序与所述原始图像的像素输入的顺序一致,建立输入顺序定点映射表;

(3)根据所述输入顺序定点映射表中映射单元中对应的映射对的数量对所述输入顺序定点映射表进行压缩,建立输入顺序压缩映射表;

(4)在接入实时图像序列时对所述输入顺序压缩映射表进行读取和恢复,并执行映射操作。

所述步骤(1)具体为:以所述目标图像的像素坐标(u,v)为变量通过映射函数求得所述原始图像中对应的浮点坐标(x,y),形成一个映射对((u,v),(x,y)),进而遍历(u,v)得到所有映射对的集合,形成所述输出顺序映射表。

所述步骤(2)具体包括以下步骤:

(21)把所述输出顺序映射表中映射对的原始图像浮点坐标(x,y)按[y]从小到大进行排列,将[y]相同的所有映射对组成映射单行;对所述映射单行内的映射对,按[x]从小到大进行排列;其中,[x]和[y]分别表示原始图像中对应的浮点坐标中x和y的整数部分;

(22)对排序完成的映射对的原始图像浮点坐标(x,y)做定点化处理,建立所述输入顺序定点映射表。

所述步骤(3)具体为:

(31)基于所述输入顺序定点映射表统计当前映射单元下对应的映射对数量;

(32)当所述当前映射单元下对应的映射对数量为零时,统计包含当前映射单元在内的连续无效映射单元中的个数并更新在RemapA0中,一组连续的无效映射单元仅对应一个RemapA0并在第一个映射单元的位置建立;

(33)当所述当前映射单元下对应的映射对数量为1时,创建RemapA1并记录当前映射单元下的单个映射对的压缩信息,即映射对的原始图像浮点坐标的定点小数部分信息、映射对的目标图像整数坐标与原始图像浮点坐标整数部分的差值;

(34)当所述当前映射单元下对应的映射对数量大于1时,创建RemapAn和n个RemapB;排序求出映射单元内包含的所有映射对的目标图像的像素坐标中u的最小值umin和v的最小值vmin,并将(umin,vmin)定义为基准点坐标记录在RemapAn中,RemapB分别记录当前映射单元中其它映射对相对于RamapAn的微小偏移信息;

(35)重复步骤(31)-(34)对所有映射单元进行处理,完成对所述输入顺序定点映射表的压缩,建立输入顺序压缩映射表。

所述输入顺序压缩映射表的单个映射对中未包含原始图像浮点坐标,映射对的原始图像浮点坐标根据所述输入顺序压缩映射表的排列顺序及无效映射单元的数量恢复;所述步骤(4)具体为:

(41)根据接入的实时图像序列的像素坐标([x],[y])索引所述输入顺序压缩映射表,读取RemapA并解析RemapA的类型;

(42)当RemapA判定为RemapA0时,则包括当前像素对应的映射单元在内的多个连续映射单元为无效数据;

(43)当RemapA判定为RemapA1时,则当前像素对应的映射单元有1个映射对,映射对恢复并完成图像映射;

(44)当RemapA判定为RemapAn时,则当前像素对应的映射单元有n个映射对,根据RemapAn和n个RemapB完成整个映射单元内所有映射对的恢复并完成图像映射。

本发明中由原始图像向目标图像的映射表中,映射对按原始图像浮点坐标的整数部分顺序排列,该排列顺序与输入原始图像的像素输入顺序一致,通过对原始图像的输入像素计数的方法恢复映射对的原始图像浮点坐标的整数部分,无需在映射表中单独记录。本发明中压缩的映射表不直接存储绝对像素坐标,而是依据映射对的原始图像坐标与目标图像坐标近邻的特点,存储原始图像浮点坐标的小数部分和映射对的输出坐标与输入坐标整数部分的差值,以减小映射关系的存储位宽。本发明中映射对按原始图像浮点坐标的整数部分顺序排列后,原始图像浮点坐标的整数部分相同的映射对的数量按等于0、等于1、大于1三种情况分别进行数据压缩,减小映射表的空间。

本发明解决其技术问题所采用的技术方案是:还提供一种实时图像序列的几何映射装置,包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述实时图像序列的几何映射方法的步骤。

有益效果

由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明首先建立原始图像序列和目标图像序列的映射表,然后对映射表进行适当的排序处理、压缩处理后存储,最后在接入实时图像序列时对映射表进行读取和恢复处理并执行映射操作,从而达到在较低的硬件资源条件下以高实时性实现图像序列的几何映射的目的。该方法可应用于对机器视觉、广域智能监控,视觉定位与导航等领域。

附图说明

图1是本发明实施方式的流程图;

图2是原始图与映射图的映射关系示意图;

图3是原始图浮点坐标与映射图像素坐标的映射关系示意图;

图4是成像系统发生鼓形畸变时的输出顺序映射示意图;

图5是输入图的映射单元和映射单行定义的示意图;

图6是映射单元内映射对数量大于1时,映射单元内的映射对在输出映射图的基准点坐标定义的示意图;

图7是输入顺序映射表的压缩流程图;

图8是输入顺序映射表的解压缩流程图;

图9是成像系统发生鼓形畸变时的第一行输入图像的输入顺序映射示意图;

图10是成像系统发生鼓形畸变时的中间行输入图像的输入顺序映射示意图;

图11是实时图像映射的功能框图;

图12是本发明实施方式的装置的硬件结构示意图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本发明的实施方式涉及一种实时图像序列的几何映射方法,如图1所示,包括以下步骤:建立原始图像序列和目标图像序列的输出顺序映射表,所述输出顺序映射表用于完成从原始图像序列向目标图像序列的映射;在不改变所述输出顺序映射表中映射对的内部对应关系的前提下,对所述映射对重新排序,将映射对按照原始图像的浮点坐标的整数部分顺序进行排列,所述排列的顺序与所述原始图像的像素输入的顺序一致,建立输入顺序定点映射表;根据所述输入顺序定点映射表中映射单元中对应的映射对的数量对所述输入顺序定点映射表进行压缩,建立输入顺序压缩映射表;在接入实时图像序列时对所述输入顺序压缩映射表进行读取和恢复,并执行映射操作。

图2表示输入图(又称原始图)到输出图(或称映射图)的映射,结合图3可知:图2中,原始图和映射图中用圆圈表示像素坐标位置,用原始图(x,y)坐标近邻的四个像素(虚线圈表示)插值计算颜色信息,并将其作为对应映射图(u,v)坐标的颜色信息,则映射对((u,v),(x,y))表示从原始图像素坐标到映射图浮点坐标的一对映射关系,其中(u,v)表示输出映射图上的整数列坐标和行坐标;(x,y)表示输入原始图上的浮点列坐标和行坐标;[x]和[y]分别表示x和y的整数部分。

如图2所示,完成输入图到输出图的映射,通常需要建立映射表和插值映射两个步骤:1)以输出图的像素坐标(u,v)为变量通过映射函数(x,y)=f(u,v)求得输入图中对应的浮点坐标(x,y),形成一个映射对((u,v),(x,y)),进而遍历(u,v)得到所有映射对的集合完成建立;2)插值映射过程即计算(x,y)处的颜色信息,并将其作为输出图(u,v)坐标处的颜色信息,如图3和图5所示。

图像映射方法以视觉传感器最典型的应用——相机内参、外参和畸变的综合校正映射运算来展开描述。假设已基于相机内参、外参和畸变参数建立映射表。通过映射函数(x,y)=f(u,v)直接求得的映射表是按照输出图像的像素坐标顺序排列的,称该映射表为输出顺序映射表,基于输出顺序映射表的映射方法称为输出顺序映射法。

图4是成像系统发生鼓形畸变时的输出顺序映射示意图,输出图像的第1行像素对应输入图像的多行像素所在的区域,因此需要缓存多行输入图像才能保证实时图像序列的平稳输出。

实时图像序列映射系统通过扩展外部存储器提升系统的缓存能力。输出顺序映射表和输入图像均以像素顺序排列并缓存于外部存储器中,即后一行图像数据和前一行图像数据首尾相连,而输出映射图的单行像素坐标对应在输入原始图中的浮点坐标分布在输入图像的多行像素坐标间(如图4所示)。同时,计算(x,y)处的颜色信息需要读取四个非连续存储的像素([x],[y])、([x]+1,[y])、([x]+1,[y]+1)、([x],[y]+1)(如图3所示)。输出映射图从(u0,v0)位置自左向右输出的同时,要求从(x0,y0)开始沿轨迹读取输入图像数据,轨迹中的数据分布在输入图的不同的行,因此这些有效像素数据在外部存储器中非连续存储,导致运算单元对外部存储器的碎片读写而使外部存储器的使用效率大为降低,甚至出现外部存储器有效带宽不足导致输出顺序映射方案失败。另外,虽然可以通过预处理将图2中的四个相邻像素顺序排列,除了增加预处理的代价外,同时使缓存空间增加至原来的四倍。因此,在硬件设计上,往往需要部署运算单元独占的外部存储器硬件以提供输入图像缓存资源,使得硬件实现难度和成本大幅度增加。为此,本实施方式采用以下几点方法:

1、优化输出顺序映射法并建立输入顺序定点映射表

在不改变输出顺序映射表中映射对的内部对应关系的前提下,对映射对重新排序,将映射对按照输入图像的像素坐标顺序进行排列,从而建立以输入图像的像素坐标为顺序的输入顺序映射表和输入顺序映射方法。由图3可知,只需要缓存两行数据即可执行计算和输出,而两行的缓存需求通过运算单元的内部资源即可实现。

如图5所示,定义输入图的映射单元和映射单行。首先通过两层循环实现映射表的重新排列:把输入图像坐标(x,y)按[y]从小到大排列,[y]相同的所有映射对组成映射单行;对映射单行内的映射对,按浮点x从小到大排列;(2)对排序完成的映射对的(x,y)做定点化处理,即小数位保留5bit;完成建立输入顺序定点映射表。图5中,用像素坐标标记的区域为映射单元,可以记为映射单元([x],[y]),其所在的映射单行记为(*,[y])。

输入顺序定点映射方案适配1920x1080P的分辨率时,[x]、[y]、u、v均需要11位二进制数据表示整数坐标,加上x、y需要5位二进制数表示小数坐标,故一个映射对在压缩前需要54位二进制数表示。

2、输入顺序定点映射表的压缩

输入顺序映射表是基于输入图像素进行排序的,并基于映射单元组织映射关系。每个映射单元根据对应的映射对数量(即映射对数量等于0、等于1和大于1)三种情况进行压缩处理,每种情况下均对应RemapA,但只有映射点对数量大于1时才需要RemapB。

RemapA最高1位定义为dpb(dot pair bit),用来标记dpc(dot pair counter)的位宽,dpb=0表示dpc占用位宽为1,dpb=1表示dpc占用位宽>1。dpc表示映射单元下对应的映射对数量:

1)dpb=0,dpc=0时,重新记RemapA为RemapA0。该映射单元有0个映射对,称为无效映射单元。ipc表示当前映射单元开始(包括当前映射单元)映射单行内的连续无效映射单元数。一组连续的无效映射单元仅对应一个RemapA0并在第一个映射单元的位置建立。

2)dpb=0,dpc=1时,重新记RemapA为RemapA1。该映射单元1个映射对:

如图3和图5所示,RemapA1使用两个坐标偏移量表示该映射对,即映射对中的原始图像浮点坐标(x,y)和([x],[y])的偏移量、输出图像整数坐标(u,v)和([x],[y])的偏移量,前者用xd和yd表示(d和yd分别表示映射对的原始图像浮点坐标x和y的小数部分的定点化值),后者用xu和yv表示(xu=u-[x]、yv=v-[y]分别表示映射对的输出坐标与输入坐标整数部分的差值),xu和yv均为有符号整数,[x]和[y]分别表示x和y的整数部分。

3)dpb=1,dpc=n(n>1)时,重新记RemapA为RemapAn(表示该映射单元n个映射对,本例方案使用6位二进制数表示dpc):

如图3和图5所示,不同的是此时映射单元中有多个映射对。为达到对多个映射对压缩的目的,构建一个虚拟的基准点坐标(umin,vmin)。其中,umin表示映射单元内所有u的最小值,vmin表示映射单元内所有v的最小值,如图6所示。根据同一映射单元内输出像素点近邻的特点,记录各个映射对输出图像坐标与基准点的差值即可。

定义xumin=umin-[x],yvmin=vmin-[y]。xumin和yvmin表示图6中基准点坐标(umin,vmin)相对([x],[y])的偏移,并将此偏移量记录在RemapAn中;

同时定义RemapB,单个RemapB的位宽为16位,记录每个映射对的输入图像浮点坐标的定点化小数部分信息以及输出图像坐标校对于基准点坐标的偏移信息,前者用xd和yd表示(xd和yd分别表示映射对的原始图像浮点坐标x和y的小数部分的定点化值),后者用du和dv表示(du=u-umin,dv=v-vmin,分别表示映射单元中,映射对的(u,v)相对参考映射对坐标(umin,vmin)的偏移,均为无符号数,表示范围为[0,7]。[x]和[y]分别表示x和y的整数部分;数据定义如下:

RemapAn和RemapB均不能单独使用,二者协同表示同一映射单元内的多个映射对。

输入顺序映射表可结合成像系统或者映射函数的特点对变量占用位宽进行调整,以应对更高的分辨率需要。其压缩过程如图7所示,具体为:统计当前映射单元下对应的映射对数量;当所述当前映射单元下对应的映射对数量为零时,将RemapA记为RemapA0,按RemapA0规则创建RemapA0;当所述当前映射单元下对应的映射对数量为1时,将RemapA记为RemapA1,创建RemapA1;当所述当前映射单元下对应的映射对数量大于1时,将RemapA记为RemapAn,创建RemapAn和n个RemapB;重复上述步骤对所有映射单元进行处理完成对所述输入顺序映射表的压缩。

3、输入顺序压缩映射表的恢复和输入顺序映射

映射表的恢复即重新建立映射对((u,v),(x,y))的完整集合。由于输入顺序映射将映射对按照输入图像的像素坐标顺序进行排列并在按照输入图像像素坐标实现索引。恢复过程基于得到输入图像的像素坐标([x],[y])和映射表RemapA(和RemapB),其步骤为如图8所示,具体为:

根据接入的实时图像序列的像素坐标([x],[y])索引所述压缩后的输入顺序映射表,读取RemapA。

当RemapA0.dpc=0时,判定包括当前像素对应的映射单元在内的多个连续映射单元为无效数据,没有映射对可以恢复。无效数据的存在使得RemapA的数量与输入图像素数量不一致。

当RemapA1.dpc=1时,判定当前像素对应的映射单元有1个映射对,则:

x=[x]+RemapA1.xd;

y=[y]+RemapA1.yd;

u=[x]+RemapA1.xu;

v=[y]+RemapA1.yv;

当RemapAn.dpc>1时,判定当前像素对应的映射单元有多个映射对,则:

x=[x]+RemapB.xd;

y=[y]+RemapB.yd;

u=[x]+RemapAn.xumin+RemapB.du

v=[y]+RemapAn.yvmin+RemapB.dv

上述图像映射过程,即根据恢复的输入顺序定点映射表计算原始图像的浮点坐标(x,y)处的颜色信息,并将其作为目标图像的像素坐标(u,v)处的颜色信息,遍历映射表完成图像映射。

4、输入顺序映射实现流程及装置

实时图像序列的输入顺序几何映射装置的实现过程大体分为三步:1)运算单元实时读取输入图像的像素,基于时序信息获得输入图像素坐标([x],[y]);2)读取映射表并对输入图像匹配映射参数,完成映射对的恢复;3)插值计算(x,y)处的颜色信息并完成其对(u,v)的映射。实时图像序列的输入顺序几何映射装置有两种方式扩展外部存储器,一种是共享微处理器的外部存储器,一种是扩展专用外部存储器。

如图9和图10所示,原始输入图的映射单行中包括的映射对在映射输出图中并非排列在同一行,完成输入图某一行的扫描只能对应输出图某一行的一部分。未被完全填充的输出图单行不满足输出条件,因此,输出图像数据需要分块缓存,并以块为单位按照输出映射图的顺序写入外部存储器并输出。

相比输出顺序映射法,输入顺序映射法对输出映射图的缓存量仅为前者的约1/4,且通过在运算单元内部存储器分块缓存的方式,提高了外部存储器的访问效率,降低了硬件成本、功耗,这种优势在处理数据量更大的彩色图或高分辨率图时更明显。实时图像映射的功能框图如图11所示。

不难发现,本实施方式所述实时图像序列的几何映射方法面向包括成像系统的内参、外参和畸变参数在内的综合映射运算,其映射过程有以下特点:1)利用输入图像顺序输入的特点获取在映射表中省去输入图像坐标的存储空间;2)利用映射对在输入图上的方位与输出图上的方位大体相同的特点,结合第1点可基于输出坐标与输入坐标整数部分的坐标差值,以较小的位宽表示输出图的像素坐标;3)利用多个映射对在输入图上的近邻关系,对应着在输出图上的近邻关系,对近邻映射对特别是输入图像的映射单元中的映射对进行数据压缩。因此,本实施方式的映射方法同样适用于图像序列的三维旋转、平移、缩放及复合变换。

本发明的实施方式可以在移动设备、计算机设备、或者类似的运算设备(如ECU)、系统中执行。图12是实时图像序列的几何映射装置的硬件结构图。如图12所示,该几何映射装置可以包括一个或多个(图中仅示出一个)处理器101(处理器101可以包括但不限于中央处理器CPU、图像处理器GPU、数字信号处理器DSP、微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于与用户交互的输入输出接口102、用于存储数据的存储器103、以及用于通信功能的传输装置104。本领域普通技术人员可以理解,图12所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,该几何映射装置还可以包括比图11中所示更多或更少的组件,或者具有与图11所示不同的配置。

输入输出接口102可以连接一个或多个显示器、触控屏等,用于显示从几何映射装置传送的数据,还可以连接键盘、触控笔、触控板和/或鼠标等,用于输入诸如,选择、创建、编辑等的用户指令。

存储器103可用于存储应用软件的软件程序以及模块,例如与本发明实施方式中的实时图像序列的几何映射方法对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的实时图像序列的几何映射方法。存储器103可包括高速随机存储器,还可包括非易失性存储器,如一个或多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器103可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至几何映射装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置104用于经由一个网络接收或者发送数据。上述的网络具体实例可包括通信供应商提供的互联网。

相关技术
  • 一种实时图像序列的几何映射方法和装置
  • 一种透视成像装置实时几何校正方法
技术分类

06120113114658