CN114782544A - Fpga重映射方法、装置、系统、fpga及存储介质 - Google Patents
Fpga重映射方法、装置、系统、fpga及存储介质 Download PDFInfo
- Publication number
- CN114782544A CN114782544A CN202210267369.3A CN202210267369A CN114782544A CN 114782544 A CN114782544 A CN 114782544A CN 202210267369 A CN202210267369 A CN 202210267369A CN 114782544 A CN114782544 A CN 114782544A
- Authority
- CN
- China
- Prior art keywords
- remapping
- image data
- source image
- fpga
- preset number
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
- G06T7/85—Stereo camera calibration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/246—Calibration of cameras
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明涉及3D相机技术领域,公开了一种FPGA重映射方法、装置、系统、FPGA及存储介质,该方法通过对左、右3D相机采集的左、右源图像数据进行解帧,同时输出第一预设数量的像素,对左、右3D相机的重映射矩阵系数处理,同时输出第一预设数量的MapX、MapY矩阵系数,对MapX、MapY矩阵系数进行坐标分离,根据分离后的整数坐标和小数坐标,同时对第一预设数量像素进行双线性插值计算,获得目标图像灰度值,重复上述步骤,根据获得的所有点的目标图像灰度值,生成重映射目的图像。本发明通过分离的整数坐标和小数坐标,分别用于位置映射和双线性插值,提高重映射精度,并对第一预设数量的像素并行处理,提高处理速度。
Description
技术领域
本发明涉及3D相机技术领域,尤其涉及一种FPGA重映射方法、装置、系统、FPGA及存储介质。
背景技术
双目相机由于镜头的畸变以及极线不平行,需要进行双目标定。由于3D 相机对生成3D点云的速度和实时性要求越来越高,前端高速工业相机帧率达到1000帧以上,现有技术使用PC或GPU来实现重映射算法,时间效率和处理速度都很难跟上前端高速工业相机1000帧以上的帧率。因此,现有技术方案实现重映射功能带宽和效率很低,很难达到比较高的速度,且精度低。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种FPGA重映射方法、装置、系统、FPGA 及存储介质,旨在解决现有技术中实现重映射功能带宽和效率很低,运算速度慢且精度低的技术问题。
为实现上述目的,本发明提供一种FPGA重映射方法,所述FPGA重映射方法包括以下步骤:
步骤S10:接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素;
步骤S20:读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数;
步骤S30:分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标;
步骤S40:根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值;
重复所述步骤S10至所述步骤S40,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像。
优选地,所述步骤S10之前,还包括:
接收计算机发送的左、右3D相机的重映射矩阵系数,将所述重映射矩阵系数存放至存储卡中;
当所述左、右3D相机上电时,从所述存储卡中读取所述重映射矩阵系数,通过片内总线协议通用接口对所述重映射矩阵系数进行加载,并将所述重映射矩阵系数写入外挂的动态随机存储器中预设位置存放。
优选地,所述步骤S20,包括:
将所述左源图像数据和所述右源图像数据分别对应的第一预设数量的像素存储至预设循环缓冲区;
当所述第一预设数量的像素存储到所述预设循环缓冲区的预设比例空间时,从所述动态随机存储器中读取所述重映射矩阵系数;
对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数。
优选地,所述步骤S40,包括:
查找所述整数坐标的邻近像素点;
计算所述小数坐标对应的权值;
根据所述整数坐标及所述邻近像素点进行源图像到目的图像的位置映射,并根据所述权值同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值。
优选地,所述查找所述整数坐标的邻近像素点,包括:
根据所述整数坐标在所述预设循环缓冲区中进行查表操作,找出每个整数坐标的邻近像素点。
优选地,所述根据所述整数坐标及所述邻近像素点进行源图像到目的图像的位置映射,并根据所述权值同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值之后,还包括:
对所述目标图像灰度值进行归一化处理,获得所述第一预设数量的像素对应的实际灰度值;
相应地,所述重复所述步骤S10至所述步骤S40,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像,具体包括:
重复所述步骤S10至所述步骤S40,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的实际灰度值,根据所有点的所述实际灰度值生成重映射目的图像。
此外,本发明还提出一种FPGA重映射装置,所述FPGA重映射装置包括:
解帧模块,用于接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素;
重映射矩阵处理模块,用于读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数;
坐标分离模块,用于分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标;
双线性插值模块,用于根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值;
重映射图像生成模块,用于重复上述解帧模块、重映射矩阵处理模块、坐标分离模块、双线性插值模块的操作,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像。
此外,本发明还提出一种FPGA,所述FPGA包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的FPGA重映射程序,所述FPGA 重映射程序被所述处理器执行时实现如上文所述的FPGA重映射方法的步骤。
此外,本发明还提出一种存储介质,所述存储介质上存储有FPGA重映射程序,所述FPGA重映射程序被处理器执行时实现如上文所述的FPGA重映射方法的步骤。
此外,本发明还提出一种FPGA重映射系统,所述系统包括:左、右3D 相机,计算机,以及如上文所述的FPGA;
所述左、右3D相机,用于采集扫描场景的左源图像数据和右源图像数据,发送所述左源图像数据和所述右源图像数据至所述计算机;
所述计算机,用于根据所述左源图像数据和所述右源图像数据进行双目标定系数计算,获得校准系数文件;
所述计算机,还用于通过校正映射函数对所述校准系数文件进行处理,获得所述左、右3D相机的重映射矩阵系数,并将所述重映射矩阵系数发送至所述FPGA。
本发明中,通过接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素,并行处理第一预设数量的像素,提高处理速度;读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的 MapY矩阵系数,分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标,分别用于位置映射和双线性插值,提高重映射精度;根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值,并行处理,提高处理速度;重复上述步骤,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像,实现高并行度、高精度重映射。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的FPGA的结构示意图;
图2为本发明FPGA重映射方法第一实施例的流程示意图;
图3为本发明FPGA重映射装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的FPGA结构示意图。
如图1所示,该FPGA可以包括:处理器1001,例如中央处理器(Central ProcessingUnit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB 接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的存储器 (Non-volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对FPGA的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及FPGA重映射程序。
在图1所示的FPGA中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述 FPGA通过处理器1001调用存储器1005中存储的FPGA重映射程序,并执行本发明实施例提供的FPGA重映射方法。
基于上述硬件结构,提出本发明FPGA重映射方法的实施例。
参照图2,图2为本发明FPGA重映射方法第一实施例的流程示意图,提出本发明FPGA重映射方法第一实施例。
在第一实施例中,所述FPGA重映射方法包括以下步骤:
步骤S10:接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素。
应理解的是,本实施例的执行主体是所述FPGA。所述FPGA包括可编程逻辑(Programmable Logic,简写PL)端和处理系统(Processing System,简写 PS)端,PL和PS间有丰富、高速的AXI总线互联方便数据交互。其中双目相机标定系数文件加载到新一代的双倍速率同步动态随机存储器DDR4是在所述FPGA的PS端完成,其它模块是在所述FPGA的PL端完成。
可理解的是,所述FPGA的PL端接收来自所述左、右3D相机的高速传感器(SENSOR)采集到的2D图像数据,所述2D图像数据包括所述左3D 相机的高速传感器采集到的左源图像数据和所述右3D相机的高速传感器采集到的右源图像数据。
具体地,所述高速SENSOR可使用LUXIMA的LUX1310,帧率可以达到1000帧以上,每个高速SENSOR通过所述第一预设数量对的低电压差分信号(LowVoltage DifferentialSignaling,LVDS)数据线传送采集到的所述左源图像数据和所述右源图像数据给PL,每像素时钟周期下同时传输所述第一预设数量的像素,使用LVDS接口传输速率快且稳定可靠,所述第一预设数量可以根据数据处理实际情况进行设置,比如16,本实施例以所述第一预设数量为16进行说明。
可理解的是,所述FPGA接收所述左源图像数据和所述右源图像数据后进行解帧,所述FPGA中的高速SENSOR数据接收接口模块每时钟周期下同时输出所述第一预设数量的像素,输出的所述第一预设数量的像素给到坐标映射模块进行后续处理。
步骤S20:读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数。
在具体实现中,在收到来自坐标映射模块的坐标读取使能信号后,读取所述重映射矩阵系数,经Map矩阵读取和处理模块后,每时钟周期下同时输出16个MapX和MapY矩阵系数给后面的坐标映射模块。MapX矩阵表示重映射矩阵系数中X方向坐标,MapY矩阵表示重映射矩阵系数中Y方向坐标,例如,所述左、右3D相机的MapX和MapY矩阵都使用16bit整数表示。本实施例中每时钟周期下同时输出第一预设数量的个MapX和MapY,是通过提高并行度来达到更高的处理速度。
步骤S30:分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标;
需要说明的是,分离整数坐标(i,j)和小数坐标(u,v),整数坐标给坐标映射模块完成原始图像到目的图像的位置映射,小数坐标给双线性插值模块用来完成双线性插值。
具体地,所述左、右3D相机分辨率最大为1920x1200,则用11bit表示整数坐标部分。其中MapX或MapY的整数坐标用11bit表示,小数坐标用5bit 表示,再将MapX和MapY拼接成1个32bit数据。
步骤S40:根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值。
在具体实现中,坐标映射模块根据一个整数坐标找到原始图像中邻近的像素点灰度值,小数坐标(u,v)转变为权值,根据所述邻近的像素点灰度值和所述权值,进行双线性插值,得到目标图像灰度值。
步骤S50:重复所述步骤S10至所述步骤S40,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像。
需要说明的是,重复所述步骤S10至所述步骤S40,使用重映射矩阵系数中的所有坐标完成整幅原始图像中所有点到目的图像的位置映射,就可以得到重映射后的整幅目的图像。权值使用5bit表示,精度足够高,同时处理16 个通道的双线性插值,并行度足够,能够匹配上前端高速工业SENSOR的速度。
在本实施例中,通过接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素,并行处理第一预设数量的像素,提高处理速度;读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数,分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标,分别用于位置映射和双线性插值,提高重映射精度;根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值,并行处理,提高处理速度;重复上述步骤,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像,实现高并行度、高精度重映射。
继续参照图2,基于上述第一实施例,提出本发明FPGA重映射方法的第二实施例。
在第二实施例中,所述步骤S10之前,还包括:
接收计算机发送的左、右3D相机的重映射矩阵系数,将所述重映射矩阵系数存放至存储卡中;
当所述左、右3D相机上电时,从所述存储卡中读取所述重映射矩阵系数,通过片内总线协议通用接口对所述重映射矩阵系数进行加载,并将所述重映射矩阵系数写入外挂的动态随机存储器中预设位置存放。
可理解的是,所述计算机软件中调用预设校准函数计算,所述预设校准函数可以是opencv库中的双目标定校准库函数,进行双目标定校准计算后得到一个校准系数文件,所述计算机对双目标定生成的所述校准系数文件进一步处理,生成浮点型的重映射矩阵系数,并将所述浮点型的重映射矩阵系数乘以32后取整转变成定点型的重映射矩阵系数。
所述计算机上层软件通过千兆以太网把所述左、右3D相机的所述定点型的重映射矩阵系数传输给FPGA的PS端,PS端收到后以txt格式保存所述左、右3D相机重映射矩阵系数文件放到存储卡中,所述存储卡可以是SD卡。
需要说明的是,所述左、右3D相机设备上电(2)时,PS端从SD卡中读取前面生成的左右相机的重映射矩阵系数文件,并通过片内总线协议通用接口(AXI GP总线接口)完成所述左、右3D相机的重映射矩阵的加载,通过 AXI GP总线写重映设矩阵系数文件到外挂的动态随机存储器中预设位置存放起来,所述动态随机存储器可以是双倍速率同步动态随机存储器4(Double Data Rate 4,DDR4)。
在本实施例中,所述步骤S20,包括:
将所述左源图像数据和所述右源图像数据分别对应的第一预设数量的像素存储至预设循环缓冲区;
当所述第一预设数量的像素存储到所述预设循环缓冲区的预设比例空间时,从所述动态随机存储器中读取所述重映射矩阵系数;
对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数。
在具体实现中,所述FPGA中的坐标映射模块主要是根据重映射矩阵系数完成所述左、右源图像到目的图像的位置映射,重映射矩阵系数的X,Y 坐标的变化具有一定的随机性,若把所述左、右源图像存放到DDR4中去进行所述左、右源图像到目的图像的映射,DDR4的效率会很低,满足不了高帧率的要求。若将把来自所述左、右3D相机的所述左、右源图像数据存放到 FPGA内部存储器中,由于FPGA内部存储资源有限,对FPGA的内部存储资源要求较高。
需要说明的是,根据生成的双目相机重映射矩阵系数特点,MapY矩阵中每一行的Y方向坐标是在一定的范围内线性变化,而不是在整个图像高度范围内变化,且相邻两行中Y方向变化很小,所以不需要存储整幅原始图像数据,只需在坐标映射模块中使用FPGA的BLOCK RAM开辟一定大小的循环缓冲区(BUFF)来存储一定行数的所述左、右源图像数据,循环BUFF大小可以通过宏参数来重新定义,根据生成的重映射矩阵系数结果来调整,节省了FPGA的存储资源。坐标映射模块中开辟的循环BUFF空间,用来存储所述左源图像数据和所述右源图像数据,按照行列二维矩阵来存储,方便后面根据重映射矩阵坐标值去查表找到相邻像素点。
应理解的是,所述预设比例空间根据实际需要进行设置,例如,所述预设比例空间为一半空间,本实施例对此不加以限制。当所述左源图像数据和所述右源图像数据已经存储到循环BUFF的所述预设比例空间后,坐标映射模块产生一个读使能信号通知MAP矩阵系数读取和处理模块从DDR4中读取所述左、右3D相机的重映设矩阵系数。在收到来自坐标映射模块的坐标读取使能信号后,开始产生AXI4 BUS时序控制XILINX的MIG IP核从DDR4中读取重映射矩阵系数,经MAP矩阵读取和处理模块后,每时钟周期下同时输出16个MAPX和MAPY矩阵系数给后面的坐标映射模块。
在本实施例中,所述步骤S40,包括:
查找所述整数坐标的邻近像素点;
计算所述小数坐标对应的权值;
根据所述整数坐标及所述邻近像素点进行源图像到目的图像的位置映射,并根据所述权值同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值。
可理解的是,根据所述整数坐标部分在循环BUFF中进行查表操作,找出每个整数坐标的邻近像素点,所述邻近像素点通常为4个点d00、d01、d10、 d11,d00对应的是(i,j)整数坐标位置的原始图像灰度值,d01对应的是(i+1, j)坐标位置的原始图像灰度值,d10对应的是(i,j+1)整数坐标位置的原始图像灰度值,d11对应的是(i+1,j+1)整数坐标位置的原始图像灰度值,x表示图像的横向坐标,y表示图像的纵向坐标。每时钟周期下能同时处理16个重映射矩阵整数坐标和16个原图像数据的位置映射,提高重映射处理速度。在本实施例中,所述查找所述整数坐标的邻近像素点,包括:根据所述整数坐标在所述预设循环缓冲区中进行查表操作,找出每个整数坐标的邻近像素点。
需要说明的是,所述小数坐标(u,v)需要转化为对应的权值,通常所述小数坐标转变为第二预设数量的权值,本实施例中,所述第二预设数量取值为4,则4个权值k00、k01、k10、k11。在前面的计算过程中,所述计算机生成重映射矩阵系数时,将浮点型的重映射矩阵系数转为定点型的重映射矩阵系数,对所述浮点型的重映射矩阵系数进行满偏处理,即将所述浮点型的重映射矩阵系数乘以预设满偏值w,则K00=(w-u)*(w-v),k01=(w-u)*v,k10=u*(w -v),k11=u*v。所述预设满偏值w可取值为32,则K00=(32-u)*(32-v), k01=(32-u)*v,k10=u*(32-v),k11=u*v,此处的32表示小数部分的满偏值。为了提高处理速度,支持所述第一预设数量的重映射矩阵的整数坐标和小数坐标分离并行处理。
应理解的是,根据所述小数坐标为相对应的4个权值,进行双线性插值得到目的图像灰度值d=d00*K00+d01*k01+d10*k10+d11*k11。
进一步地,在本实施例中,所述根据所述整数坐标和所述小数坐标,同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值之后,还包括:
对所述目标图像灰度值进行归一化处理,获得所述第一预设数量的像素对应的实际灰度值;
相应地,所述步骤S50,具体包括:
重复所述步骤S10至所述步骤S40,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的实际灰度值,根据所有点的所述实际灰度值生成重映射目的图像。
需要说明的是,由于前面处理所述小数坐标(u,v)时,对所述小数坐标进行了满偏处理,则需对对所述目标图像灰度值进行归一化处理,具体地,所述小数坐标在满偏处理时乘以32,每个权值就相当于乘以了32*32=1024,则需要对目的图像灰度值d进行归一化处理,即对目的图像灰度值d除以1024 得到对应的实际灰度值。
本实施例中,利用FPGA的高并行度,在每个像素时钟下同时可以处理第一预设数量的像素点的重映射,具有很高的效率;FPGA使用循环BUFF缓存存储源图像数据来节省存储空间和降低延时,对于数据源也不需要存储一帧再做处理,具有更低的延时;由于对重映射矩阵的系数保留足够的小数位数,最后输出的重映射目的图像精度也很高,能够和前端高速工业SENSOR 的帧率匹配。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有FPGA 重映射程序,所述FPGA重映射程序被处理器执行时实现如上文所述的FPGA 重映射方法的步骤。
此外,参照图3,本发明实施例还提出一种FPGA重映射装置,所述FPGA 重映射装置包括:
解帧模块10,用于接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素;
重映射矩阵处理模块20,用于读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数;
坐标分离模块30,用于分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标;
双线性插值模块40,用于根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值;
重映射图像生成模块50,用于重复上述解帧模块、重映射矩阵处理模块、坐标分离模块、双线性插值模块的操作,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像。
在本实施例中,通过接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素,并行处理第一预设数量的像素,提高处理速度;读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数,分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标,分别用于位置映射和双线性插值,提高重映射精度;根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值,并行处理,提高处理速度;重复上述步骤,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像,实现高并行度、高精度重映射。
本发明所述FPGA重映射装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
此外,本发明实施例还提出一种FPGA重映射系统,所述FPGA重映射系统包括:左、右3D相机,计算机,以及如上文所述的FPGA;
所述左、右3D相机,用于采集扫描场景的左源图像数据和右源图像数据,发送所述左源图像数据和所述右源图像数据至所述计算机;
需要说明的是,左、右3D相机采集多幅棋盘格原始图像交给所述计算机上层软件进行双目标定系数的计算,所述原始图像包括所述左源图像数据和所述右源图像数据。
所述计算机,用于根据所述左源图像数据和所述右源图像数据进行双目标定系数计算,获得校准系数文件。
可理解的是,所述计算机软件中调用预设校准函数计算,所述预设校准函数可以是opencv库中的双目标定校准库函数,进行双目标定校准计算后得到一个校准系数文件,主要包括左、右3D相机的内参系数矩阵、外参系数矩阵、畸变系数矩阵。
内参系数矩阵主要包括参数fx、fy、u0、v0。fx=f/dx,其中f表示焦距, dx和dy表示x方向和y方向的一个像素占多少长度单位,u0和v0表示图像的中心像素坐标和图像原点像素坐标之间的横向和纵向像素差。外参系数矩阵包括旋转矩阵R和投影矩阵P。畸变系数包括k1、k2、k3径向畸变,p1、 p2切向畸变系数。
所述计算机,还用于通过校正映射函数对所述校准系数文件进行处理,获得所述左、右3D相机的重映射矩阵系数,并将所述重映射矩阵系数发送至所述FPGA。
应理解的是,在所述计算机端软件中,对双目标定生成的系数文件进一步处理,使用预设映射函数生成预设类型的重映射矩阵系数,所述预设映射函数可以为opencv库中initUndistortRectifyMap()校正映射函数,所述预设类型可以为CV_32FC1类型。生成的重映射矩阵系数是浮点型数据,对所述浮点型的重映射矩阵系数进行数据类型转换,获得定点型的重映射矩阵系数。具体地,将所述浮点型的重映射矩阵系数乘以32后取整转,获得定点型的重映射矩阵系数。将所述定点型的重映射矩阵系数发送至所述FPGA,方便所述FPGA的PL端使用。
在本实施例中,使用预设映射函数生成重映射矩阵系数并对系数进行定点化处理,处理后的重映射矩阵系数通过XILINX内部的AXI GP总线写入到 DDR4中,提升处理速度。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种FPGA重映射方法,其特征在于,所述FPGA重映射方法包括以下步骤:
步骤S10:接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素;
步骤S20:读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数;
步骤S30:分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标;
步骤S40:根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值;
重复所述步骤S10至所述步骤S40,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像。
2.如权利要求1所述的FPGA重映射方法,其特征在于,所述步骤S10之前,还包括:
接收计算机发送的左、右3D相机的重映射矩阵系数,将所述重映射矩阵系数存放至存储卡中;
当所述左、右3D相机上电时,从所述存储卡中读取所述重映射矩阵系数,通过片内总线协议通用接口对所述重映射矩阵系数进行加载,并将所述重映射矩阵系数写入外挂的动态随机存储器中预设位置存放。
3.如权利要求2所述的FPGA重映射方法,其特征在于,所述步骤S20,包括:
将所述左源图像数据和所述右源图像数据分别对应的第一预设数量的像素存储至预设循环缓冲区;
当所述第一预设数量的像素存储到所述预设循环缓冲区的预设比例空间时,从所述动态随机存储器中读取所述重映射矩阵系数;
对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数。
4.如权利要求3所述的FPGA重映射方法,其特征在于,所述步骤S40,包括:
查找所述整数坐标的邻近像素点;
计算所述小数坐标对应的权值;
根据所述整数坐标及所述邻近像素点进行源图像到目的图像的位置映射,并根据所述权值同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值。
5.如权利要求4所述的FPGA重映射方法,其特征在于,所述查找所述整数坐标的邻近像素点,包括:
根据所述整数坐标在所述预设循环缓冲区中进行查表操作,找出每个整数坐标的邻近像素点。
6.如权利要求4所述的FPGA重映射方法,其特征在于,所述根据所述整数坐标及所述邻近像素点进行源图像到目的图像的位置映射,并根据所述权值同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值之后,还包括:
对所述目标图像灰度值进行归一化处理,获得所述第一预设数量的像素对应的实际灰度值;
相应地,所述重复所述步骤S10至所述步骤S40,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像,具体包括:
重复所述步骤S10至所述步骤S40,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的实际灰度值,根据所有点的所述实际灰度值生成重映射目的图像。
7.一种FPGA重映射装置,其特征在于,所述FPGA重映射装置包括:
解帧模块,用于接收左、右3D相机分别传输的扫描场景的左源图像数据和右源图像数据,对所述左源图像数据和所述右源图像数据进行解帧,每路左、右高速图像传感器接口同时输出所述左、右源图像数据分别对应的第一预设数量的像素;
重映射矩阵处理模块,用于读取所述左、右3D相机的重映射矩阵系数,对所述重映射矩阵系数进行处理,每时钟周期下同时输出对应的第一预设数量的MapX矩阵系数和第一预设数量的MapY矩阵系数;
坐标分离模块,用于分别对所述MapX矩阵系数、MapY矩阵系数进行坐标分离,获得对应的整数坐标和小数坐标;
双线性插值模块,用于根据所述整数坐标进行源图像到目的图像的位置映射,并根据所述小数坐标同时对所述第一预设数量的像素进行双线性插值计算,获得目标图像灰度值;
重映射图像生成模块,用于重复上述解帧模块、重映射矩阵处理模块、坐标分离模块、双线性插值模块的操作,完成所述左源图像数据和所述右源图像数据中所有点的位置映射,获得所有点对应的目标图像灰度值,根据所有点的所述目标图像灰度值生成重映射目的图像。
8.一种FPGA,其特征在于,所述FPGA包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的FPGA重映射程序,所述FPGA重映射程序被所述处理器执行时实现如权利要求1至6中任一项所述的FPGA重映射方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有FPGA重映射程序,所述FPGA重映射程序被处理器执行时实现如权利要求1至6中任一项所述的FPGA重映射方法的步骤。
10.一种FPGA重映射系统,其特征在于,所述系统包括:左、右3D相机,计算机,以及如权利要求8所述的FPGA;
所述左、右3D相机,用于采集扫描场景的左源图像数据和右源图像数据,发送所述左源图像数据和所述右源图像数据至所述计算机;
所述计算机,用于根据所述左源图像数据和所述右源图像数据进行双目标定系数计算,获得校准系数文件;
所述计算机,还用于通过校正映射函数对所述校准系数文件进行处理,获得所述左、右3D相机的重映射矩阵系数,并将所述重映射矩阵系数发送至所述FPGA。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210267369.3A CN114782544A (zh) | 2022-03-18 | 2022-03-18 | Fpga重映射方法、装置、系统、fpga及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210267369.3A CN114782544A (zh) | 2022-03-18 | 2022-03-18 | Fpga重映射方法、装置、系统、fpga及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114782544A true CN114782544A (zh) | 2022-07-22 |
Family
ID=82425376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210267369.3A Pending CN114782544A (zh) | 2022-03-18 | 2022-03-18 | Fpga重映射方法、装置、系统、fpga及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114782544A (zh) |
-
2022
- 2022-03-18 CN CN202210267369.3A patent/CN114782544A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109754434B (zh) | 相机标定方法、装置、用户设备及存储介质 | |
WO2019114476A1 (en) | Image processing method and apparatus, and electronic device | |
JP5593060B2 (ja) | 画像処理装置、および画像処理装置の動作方法 | |
US8644641B2 (en) | Method and control unit for rectifying a camera image | |
CN105354809B (zh) | 一种基于输出图像像素位置索引的预畸变方法和装置 | |
EP2362345B1 (en) | Method and apparatus for high-speed and low-complexity piecewise geometric transformation of signals | |
KR20090065451A (ko) | 영상 왜곡 보정 | |
US20230231965A1 (en) | Image processing device | |
CN107749050B (zh) | 鱼眼图像矫正方法、装置及计算机设备 | |
US20170294176A1 (en) | Image processing apparatus, image processing method, and storage medium | |
CN111340835A (zh) | 基于fpga的视频图像边缘检测系统 | |
CN112068739A (zh) | 一种红外触摸响应方法、装置及存储介质 | |
JP2013186624A (ja) | 画像処理装置、および画像処理装置の動作方法 | |
WO2022127841A1 (zh) | 一种图像重映射方法以及图像处理装置 | |
CN104639834A (zh) | 一种摄像头图像数据传输的方法及系统 | |
CN114782544A (zh) | Fpga重映射方法、装置、系统、fpga及存储介质 | |
JP2007079708A (ja) | 画像処理装置及び画像処理方法 | |
CN104618717A (zh) | 行与块的整合转换方法及其计算机可读取存储介质 | |
JP2013048334A (ja) | 画像処理装置および方法、画像処理システム、並びにプログラム | |
US8134562B2 (en) | Method for assisting in data calculation by using display card | |
JP2017016511A (ja) | 歪み補正画像処理装置及びプログラム | |
CN112905514A (zh) | 一种基于dmd的光刻设备数据传输系统及其方法 | |
JP2011259511A (ja) | 画像処理装置及び画像処理方法 | |
US10735754B2 (en) | Chromatic aberration modeling in image compression and enhancement | |
Zeng et al. | Research on high resolution and high frame rate image de-distortion algorithm based on FPGA |
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 |