首页> 中国专利> 基于FPGA的双目相机畸变校正系统、方法和终端设备

基于FPGA的双目相机畸变校正系统、方法和终端设备

摘要

本发明公开了一种基于FPGA的双目相机畸变校正系统、方法和智能终端,所述系统包括:图像缓存模块,所述图像缓存模块用于接收双目相机采集到的左图图像和右图图像,并缓存所述左图图像的数据和所述右图图像的数据;畸变校正模块,所述畸变校正模块用于读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。有效解决现有技术中相机畸变系统占用内存和系统资源量较大而导致的系统整体性能较差的技术问题。

著录项

  • 公开/公告号CN112529795A

    专利类型发明专利

  • 公开/公告日2021-03-19

    原文格式PDF

  • 申请/专利权人 北京中科慧眼科技有限公司;

    申请/专利号CN202011404405.3

  • 发明设计人 梁化伟;陈启;赖海峰;朱海涛;

    申请日2020-12-04

  • 分类号G06T5/00(20060101);G06T7/80(20170101);G06T3/40(20060101);

  • 代理机构11502 北京远立知识产权代理事务所(普通合伙);

  • 代理人李海燕

  • 地址 100085 北京市海淀区创业中路32号楼32-1-1-559

  • 入库时间 2023-06-19 10:19:37

说明书

技术领域

本发明涉及相机畸变校正技术领域,具体涉及一种基于FPGA的双目相机畸变校正系统、方法和终端设备。

背景技术

针对相机畸变校正技术领域,通常采图嵌入式处理器进行校正,这种校正的方法是,根据标定后输出的校正表格,逐点从内存里读出相应的原始图像的2×2数据矩阵,进行双线性插值。但是,传统的相机畸变校正方法,会大量占用内存和系统资源,从而降低系统的整体性能。

发明内容

为此,本发明实施例提供一种基于FPGA的双目相机畸变校正系统、方法和终端设备,以至少部分解决现有技术中相机畸变系统占用内存和系统资源量较大而导致的系统整体性能较差的技术问题。

为了实现上述目的,本发明实施例提供如下技术方案:

一种基于FPGA的双目相机畸变校正系统,所述系统包括:

图像缓存模块,所述图像缓存模块用于接收双目相机采集到的左图图像和右图图像,并缓存所述左图图像的数据和所述右图图像的数据;

畸变校正模块,所述畸变校正模块用于读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。

进一步地,所述畸变校正模块,具体包括:

表格数据分解模块,所述表格数据分解模块用于输入校正表格数据,并将校正表格数据分解为存储地址;

图像畸变校正模块,用于读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。

进一步地,所述表格数据分解模块,具体用于:

输入校正表格数据,分解出左校正图和右校正图各自在原图中的映射坐标X、Y的值,X、Y的坐标值,包括整数与浮点两部分,整数用于在原图中取数据,浮点用于对取到的2×2数据矩阵进行双线性插值计算。

进一步地,所述图像畸变校正模块,具体用于:

读取左校正图和右校正图各自在原图中的映射坐标X、Y的值以及原始图像,进行X、Y坐标分解、原图读取缓存、双线性插值计算等操作后,输出校正数据。

进一步地,所述图像畸变校正模块,具体包括:

校正坐标分解模块,用于输入校正图在原图中的映射坐标,并分别输出给DDR读取地址生成模块和双线性插值模块;

DDR读取地址生成模块,用于获取校正图在原图中的映射坐标的整数部分,并得到所取数据的存储偏移地址,生成读取DDR数据的接口时序;

原图存储缓存模块,用于获取并缓存原图数据和校正图在原图中的映射坐标的整数部分;

双线性插值模块,用于根据2×2原图数据矩阵、校正图在原图中的映射坐标的浮点部分,完成双线性插值计算。

本发明还提供一种基于FPGA的双目相机畸变校正方法,用于实施如上所述的系统,所述方法包括:

接收双目相机采集到的左图图像和右图图像,并缓存所述左图图像的数据和所述右图图像的数据;

读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。

进一步地,所述读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像,具体包括:

输入校正表格数据,并将校正表格数据分解为存储地址;

读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。

进一步地,所述输入校正表格数据,并将校正表格数据分解为存储地址,具体包括:

输入校正表格数据,分解出左校正图和右校正图各自在原图中的映射坐标X、Y的值,X、Y的坐标值,包括整数与浮点两部分,整数用于在原图中取数据,浮点用于对取到的2×2数据矩阵进行双线性插值计算。

本发明还提供一种终端设备,所述设备包括:数据采集装置、处理器和存储器;

所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如上所述的方法。

本发明还提供一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如上所述的方法。

本发明所提供的基于FPGA的双目相机畸变校正系统包括图像缓存模块和畸变校正模块,其中,所述图像缓存模块用于接收双目相机采集到的左图图像和右图图像,并缓存所述左图图像的数据和所述右图图像的数据;所述畸变校正模块用于读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。从而利用FPGA的并行处理能力,完成坐标加载、图像读取、双线性插值处理,完成双目相机的图像畸变校正,该系统通过FPGA的加速,有效节约系统的内存带宽和计算资源,有效解决现有技术中相机畸变系统占用内存和系统资源量较大而导致的系统整体性能较差的技术问题。

附图说明

为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。

本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。

图1为本发明所提供的基于FPGA的双目相机畸变校正系统一种具体实施方式的结构框图;

图2为图1所示系统在实际使用场景中的框图;

图3为图2所示系统中畸变校正模块的具体结构框图;

图4为图3所示模块中图像畸变校正模块的具体结构框图;

图5为双线性差值示意图;

图6为本发明所提供的基于FPGA的双目相机畸变校正方法一种具体实施方式的流程图。

附图标记说明:

100-图像缓存模块 200-畸变校正模块

201-表格数据分解模块 202-图像畸变校正模块

2021-校正坐标分解模块 2022-DDR读取地址生成模块

2023-原图存储缓存模块 2024-双线性插值模块

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明所提供的基于FPGA的双目相机畸变校正方法、系统和终端设备,通过利用FPGA进行相机畸变校正,从而降低了系统内存,保证的系统运行速度。其中,FPGA(FieldProgrammable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

在一种具体实施方式中,如图1和图2所示,本发明所提供的基于FPGA的双目相机畸变校正系统包括以下模块:

图像缓存模块100,所述图像缓存模块100用于接收双目相机采集到的左图图像和右图图像,并缓存所述左图图像的数据和所述右图图像的数据。在实际使用场景中,由于是应用在双目相机中的,因此应当理解的是,图像缓存模块100包括了左图像缓存模块和右图像缓存模块,两模块可以集成为一体,也可以分体布置。在工作过程中,图像缓存模块接收DVP输入的左、右图图像,缓存进FIFO(缓存),然后缓存进DDR。其中,DVP是数字视频端口(digital video port)的简称;FIFO是一种缓存;DDR,即双倍速率同步动态随机存储器,是内存的其中一种。

畸变校正模块200,所述畸变校正模块200用于读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。也就是说,从DDR读取校正表格数据,分解表格数据转换为从DDR读取原图图像数据的DDR存储地址、缓存进片上RAM(随机存取存储器)的存储地址。从DDR读取左、右原图图像数据,缓存进片上RAM,再根据表格数据分解的存储地址,读出2×2的图像数据矩阵,代入双线性插值模块进行双线性插值计算,输出左、右校正图像。

具体地,如图3所示,所述畸变校正模块包括:

表格数据分解模块201,所述表格数据分解模块201用于输入校正表格数据,并将校正表格数据分解为存储地址;

图像畸变校正模块202,用于读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。

更进一步地,上述表格数据分解模块具体用于:

输入校正表格数据,分解出左校正图和右校正图各自在原图中的映射坐标X、Y的值,X、Y的坐标值,包括整数与浮点两部分,整数用于在原图中取数据,浮点用于对取到的2×2数据矩阵进行双线性插值计算。

与此相适配的,所述图像畸变校正模块具体用于:

读取左校正图和右校正图各自在原图中的映射坐标X、Y的值以及原始图像,进行X、Y坐标分解、原图读取缓存、双线性插值计算等操作后,输出校正数据。

也就是说,如图3所示,畸变校正模块包括表格数据分解模块201和两组图像畸变校正模块202,其中两组图像畸变校正模块202分别为双目相机左图对应的图像畸变校正模块202和双目相机右图对应的图像畸变校正模块202。在实际工作过程中,表格数据分解模块输入校正表格数据,分解出左、右校正图各自在原图中的映射坐标X、Y的值,X、Y的坐标值,包括整数与浮点两部分,整数用于在原图中取数据,浮点用于对取到的2×2数据矩阵进行双线性插值计算。图形畸变校正模块输入校正图在原图中映射坐标X、Y的值,从DDR读取的原始图像,进行X、Y坐标分解、原图读取缓存、双线性插值计算等操作后,输出校正数据。

如图4所示,在上述具体实施方式中,所述图像畸变校正模块具体包括:

校正坐标分解模块2021,用于输入校正图在原图中的映射坐标,并分别输出给DDR读取地址生成模块和双线性插值模块;

DDR读取地址生成模块2022,用于获取校正图在原图中的映射坐标的整数部分,并得到所取数据的存储偏移地址,生成读取DDR数据的接口时序;

原图存储缓存模块2023,用于获取并缓存原图数据和校正图在原图中的映射坐标的整数部分;

双线性插值模块2024,用于根据2×2原图数据矩阵、校正图在原图中的映射坐标的浮点部分,完成双线性插值计算。

具体地,如图4所示,图像畸变校正模块包括校正坐标分解模块、DDR读取地址生成模块、原图存储缓存模块、双线性插值模块4个模块。在实际工作过程中,校正坐标分解模块输入从DDR读取的校正图在原图中的映射坐标,包括整数部分和浮点部分,该模块将整数与浮点分开,整数部分输出给DDR读取地址生成模块,浮点部分输出给双线性插值模块。DDR读取地址生成模块输入校正图在原图中的映射坐标整数部分,根据原图在DDR内的顺序存储规则,计算出所取数据的存储偏移地址,生成读取DDR数据的接口时序。原图存储缓存模块输入从DDR读取的原图数据、X、Y坐标整数部分,原图数据缓存进片上存储资源,X、Y坐标整数部分根据对应数据的存储地址,产生读片上存储资源的读地址。缓存完后进行读操作,读写片上存储资源的形式采用乒乓操作的模式,输出2×2的数据矩阵。双线性插值模块输入2×2原图数据矩阵、X、Y坐标浮点部分,完成双线性插值计算。

如图5所示为双线性插值示意图,其中,P00为目标图像值,其坐标为(x00,y00),坐标整数部分为(x11,y11),坐标小数部分为(x00-x11,y00-y11)。f(Q11)、f(Q21)、f(Q12)、f(Q22)为输入的2×2图像矩阵图像值,f(P00)为目标图像值。利用以下公式:

f(P00)=(1-(x00–x11))*(1-(y00–y11))*f(Q11)+(x00–x11)*(1-(y00–y11))*f(Q21)+(1-(x00–x11))*(y00–y11)*f(Q12)+(x00–x11)*(y00–y11)*f(Q22)

完成双线性插值计算。

在上述具体实施方式中,本发明所提供的基于FPGA的双目相机畸变校正系统包括图像缓存模块和畸变校正模块,其中,所述图像缓存模块用于接收双目相机采集到的左图图像和右图图像,并缓存所述左图图像的数据和所述右图图像的数据;所述畸变校正模块用于读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。从而利用FPGA的并行处理能力,完成坐标加载、图像读取、双线性插值处理,完成双目相机的图像畸变校正,该系统通过FPGA的加速,有效节约系统的内存带宽和计算资源,有效解决现有技术中相机畸变系统占用内存和系统资源量较大而导致的系统整体性能较差的技术问题。

除了上述系统,本发明还提供一种基于FPGA的双目相机畸变校正方法,用于实施如上所述的系统,在一种具体实施方式中,如图6所示,所述方法包括以下步骤:

S1:接收双目相机采集到的左图图像和右图图像,并缓存所述左图图像的数据和所述右图图像的数据;

S2:读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。也就是说,从DDR读取校正表格数据,分解表格数据转换为从DDR读取原图图像数据的DDR存储地址、缓存进片上RAM(随机存取存储器)的存储地址。从DDR读取左、右原图图像数据,缓存进片上RAM,再根据表格数据分解的存储地址,读出2×2的图像数据矩阵,代入双线性插值模块进行双线性插值计算,输出左、右校正图像。

进一步地,所述读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像,具体包括:

输入校正表格数据,并将校正表格数据分解为存储地址;

读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。

进一步地,所述输入校正表格数据,并将校正表格数据分解为存储地址,具体包括:

输入校正表格数据,分解出左校正图和右校正图各自在原图中的映射坐标X、Y的值,X、Y的坐标值,包括整数与浮点两部分,整数用于在原图中取数据,浮点用于对取到的2×2数据矩阵进行双线性插值计算。

在实际工作过程中,表格数据分解模块输入校正表格数据,分解出左、右校正图各自在原图中的映射坐标X、Y的值,X、Y的坐标值,包括整数与浮点两部分,整数用于在原图中取数据,浮点用于对取到的2×2数据矩阵进行双线性插值计算。图形畸变校正模块输入校正图在原图中映射坐标X、Y的值,从DDR读取的原始图像,进行X、Y坐标分解、原图读取缓存、双线性插值计算等操作后,输出校正数据。

在上述具体实施方式中,本发明所提供的基于FPGA的双目相机畸变校正方法通过接收双目相机采集到的左图图像和右图图像,并缓存所述左图图像的数据和所述右图图像的数据;读取校正表格数据,并将校正表格数据分解为存储地址;读取并缓存所述左图图像的数据和所述右图图像的数据,根据表格数据分解的存储地址,读取图像数据矩阵,代入双线性插值模块进行双线性插值计算,从而输出左图校正图像和右图校正图像。从而利用FPGA的并行处理能力,完成坐标加载、图像读取、双线性插值处理,完成双目相机的图像畸变校正,该系统通过FPGA的加速,有效节约系统的内存带宽和计算资源,有效解决现有技术中相机畸变系统占用内存和系统资源量较大而导致的系统整体性能较差的技术问题。

本发明还提供一种终端设备,所述设备包括:数据采集装置、处理器和存储器;

所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如上所述的方法。

与上述实施例相对应的,本发明实施例还提供了一种计算机存储介质,该计算机存储介质中包含一个或多个程序指令。其中,所述一个或多个程序指令用于被一种双目相机深度标定系统执行如上所述的方法。

在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific工ntegrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。

存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。

其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。

易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。

本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号