CN108053385A - 一种鱼眼视频实时矫正系统及方法 - Google Patents

一种鱼眼视频实时矫正系统及方法 Download PDF

Info

Publication number
CN108053385A
CN108053385A CN201810067839.5A CN201810067839A CN108053385A CN 108053385 A CN108053385 A CN 108053385A CN 201810067839 A CN201810067839 A CN 201810067839A CN 108053385 A CN108053385 A CN 108053385A
Authority
CN
China
Prior art keywords
image
fisheye
correction
video
lookup table
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
Application number
CN201810067839.5A
Other languages
English (en)
Inventor
吴军
黄明益
谭湘斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201810067839.5A priority Critical patent/CN108053385A/zh
Publication of CN108053385A publication Critical patent/CN108053385A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • G06T2207/30208Marker matrix

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

本发明提供一种鱼眼视频流实时矫正系统,实现了对网络鱼眼摄像头的视频图像的获取,实时矫正处理及显示。系统充分结合ARM与FPGA优势,使用ARM运行Linux系统程序获取网络鱼眼视频流数据,通过使用用户提供的鱼眼相机参数计算查找表,再利用查找表在FPGA端实现实时鱼眼视频流矫正算法并显示处理后的视频图像,降低了设计复杂度,提高图像处理效率,可广泛应用到监控场合。

Description

一种鱼眼视频实时矫正系统及方法
技术领域
本发明涉及工业自动化、计算机视觉、FPGA并行处理,具体涉及一种鱼眼视频实时矫正系统及方法。
背景技术
鱼眼镜头因外形酷似鱼眼而得名,具有超大视角信息量丰富、体积小且隐蔽性强等优点,被广泛应用于安全监测、机器人导航、全景泊车、智能交通等应用领域。相比于传统光学镜头,单个鱼眼镜头视角广阔,可替代多个普通摄像机进行大范围监测,如室内房间安装的单个鱼眼镜头可覆盖整个屋内视野且成本低,但由于鱼眼镜头焦距短、视场大特点以及光学原理约束,鱼眼相机获得的视频图像存在严重桶形畸变,使用前需对鱼眼图像进行去失真处理以符合人眼视觉习惯,同时也降低应用软件处理、识别鱼眼图像的复杂度,从而有利于鱼眼图像的应用拓展。
鱼眼图像矫正往往需逐像素处理,其计算量与矫正算法的复杂度以及图像分辨率密切相关。由于视频流数据量大,鱼眼视频图像的矫正普遍采用计算机“后处理”方式,或在PC机上实施矫正算法,或仅限于少量、静态视频图像,虽能取得不错的矫正效果,但对于实时性要求高的场合、任务,如人流密集预警、机器人导航、目标实时跟踪等,内置图像矫正模块的鱼眼相机将能更好满足“前端”在线处理需求。目前,市场上仅少部分型号摄像机集成了视频流矫正处理功能,传统以ARM处理器为核心的嵌入式设备难以完成高密集度的视频流矫正处理计算需求,如监控摄像机常用的嵌入式硬盘录像机DVR多采用双核处理器方式:通用处理器负责DVR上运行的各种应用程序,专用处理器DSP芯片负责图像、语音等,其无论是实时处理性能还是性价比均与实际需求有较大差距。
本发明目的是针对现有鱼眼视频流实时矫正技术的不足,在ARM、FPGA混合SOC平台上实现了一种嵌入式的鱼眼视频流实时矫正系统及设备。
发明内容
本发明所要解决的技术问题是现有技术中存在的设计复杂、处理效率低的技术问题。提供一种新的鱼眼视频实时矫正系统,该鱼眼视频实时矫正系统具有设计简单、处理效率高的特点。
为解决上述技术问题,采用的技术方案如下:
一种鱼眼视频实时矫正系统,所述鱼眼视频实时矫正系统包括能够运行嵌入式系统的处理器系统,与处理器系统连接的以太网接口模块、存储器、显示器及存储单元;所述处理器系统包括处理器,与处理器通过总线接口连接的可编程模块;所述处理器包括用于和存储器连接的存储控制器,以及和以太网接口模块连接的以太网控制器,所述存储单元和处理器连接;所述FPGA模块包括与总线接口数据交互连接的视频传输通道,与视频传输通道连接的鱼眼视频图像校正IP模块,与鱼眼视频图像校正IP模块连接的显示控制模块,所述显示器与显示控制模块连接,所述鱼眼视频图像校正IP模块、显示控制模块还与总线接口连接。
本发明的工作原理:在ARM、FPGA混合SOC平台上实现了一种嵌入式的鱼眼视频流实时矫正系统及设备,充分结合ARM与FPGA优势降低“前端”矫正系统设计复杂度并提高处理效率,可根据系统内置相机参数将鱼眼摄像机获取的“半球”视野视频流映射到半球外接立方体所在平面,实现在线矫正及显示,从而有效满足市场对低成本、大视野、小型化监控设备的迫切需要,具有及其广泛的应用前景。
上述方案中,为优化,进一步地,所述鱼眼视频图像校正IP模块用于根据查找表对图像进行重映射并计算,鱼眼视频图像校正IP模块包括:
帧缓存,与帧缓存2个输出端分别连接的行缓存1与行缓存2,还包括一个与行缓存1、行缓存2共同连接的缓存控制器,缓存控制器还连接有查找表LUTx,查找表LUTx连接有查找表LUTy;缓存控制器与查找表LUTx之间连接有小数坐标寄存器和双线性插值计算模块;所述行缓存和查找表缓存均使用FPGA模块中的BRAM存储。
本发明还提供一种鱼眼视频实时矫正方法,所述方法基于前述的鱼眼视频实时矫正系统,所述方法包括:
步骤1,启动鱼眼摄像机进行视频流采集,嵌入式系统启动运行,处理器通过以太网接口实时获取视频源信号并将视频源信号转化为RGB图像格式,将RGB图像格式缓存在存储器中;
步骤2,预先设置系统内置相机参数,预定义几何矫正模型,根据系统内置相机参数与几何矫正模型计算RGB图像格式的矫正图像与对应鱼眼视频图像间的坐标映射查找表,将矫正图像作为缓存图像与坐标映射查找表缓存在存储器;
步骤3,通过AXI总线接口加载缓存图像和坐标映射查找表至鱼眼视频图像矫正IP模块,进行重映射矫正计算得到矫正后的视频图像,并缓存矫正后的视频图像;
步骤4,加载矫正后的视频图像到显示控制模块,最终输出矫正的视频流到显示器。
进一步地,所述系统内置相机参数包括:鱼眼图像半径R,径向畸变系数k1,k2,图像主点坐标(u0,v0)。
进一步地,所述预定义的几何矫正模型包括鱼眼图像的径向畸变改正和平面重投影;
径向畸变改正包括:鱼眼图像点(u,v)是鱼眼图像上任一点,所述径向畸变改正(Δu,Δv)为:
Vu=(u-u0)*(k1r2+k2r4),Vv=(v-v0)*(k1r2+k2r4);
其中,r2=(u-u0)2+(v-v0)2。通过引入畸变系数k1,k2,去除鱼眼图像径向畸变。
进一步地,所述平面重投影基于球面投影模型,包括将径向畸变改正后的鱼眼图像点(u+Δu,v+Δv)沿光路入射反方向重投影到半球外接立方体所在的五个平面,五个平面为顶平面,左平面,右平面,前平面及后平面;
所述顶平面为-R<u<R,-R<v<R;所述左平面为-R<u<0,-R<v<R;所述右平面为0<u<R,-R<v<R);所述前平面为-R<u<R,0<v<R;所述后平面为-R<u<R,-R<v<0;鱼眼镜头的视场角高达180°,因此将鱼眼图像无法展开到单一的平面,本发明选择了5个盒装平面将鱼眼图像成像的半球罩住。多个面的盒装展开能够覆盖整个球面视角。
定义鱼眼图像点(u,v)与鱼眼图像点(u,v)在五个平面上的矫正坐标间的映射函数为:
在顶平面上:
在左平面上:
在右平面上:
在前平面上:
在后平面上:
通过球面展开公式,得到5副不同角度的去畸变的展开图像,以获得良好的用户体验。
进一步地,步骤3还包括:
步骤a,处理器系统控制缓存控制器,加载视频图像到帧缓存,加载查找表LUTx和查找表LUTy到查找表缓存;
步骤b,寻址访问查找表缓存获取坐标数据:(xi,yi),(xi+1,yi+1);
步骤c,根据步骤b中坐标数据加载帧缓存图像的两行到FPGA模块中的BRAM作为行缓存,同时计算坐标数据(xi,yi),(xi+1,yi+1)的小数部分为坐标数据小数值:
步骤d,从行缓存1和行缓存2中同步读像素数据为素灰度数据:
行缓存1中像素数据为I(xi,yi),I(xi+1,yi),I(xi,yi+1),I(xi+1,yi+1),
行缓存2中像素数据为I(xi+1,yi+1),I(xi+1+1,yi+1),I(xi+1,yi+1+1),I(xi+1+1,yi+1+1);
步骤e,加载像步骤c和步骤d中的素灰度数据和坐标数据小数值做并行计算:
r1=I(xi,yi)(1-xf)(1-yf),
r2=I(xi+1,yi)xf(1-yf),
r3=I(xi,yi+1)(1-xf)yf
r4=I(xi+1,yi+1)xfyf
步骤f,对步骤e中并行计算的结果求和,得到双线性插值结果I(x,y),并缓存双线性插值结果I(x,y)。
进一步地,所述BRAM为大小为18Kb的行阵列。
本发明的有益效果:
该系统充分结合ARM与FPGA优势,使用运行在ARM处理器上的Linux系统应用程序从鱼眼摄像机中获得实时视频流数据,根据系统内置相机参数及预定义几何矫正模型计算查找表,再利用查找表在FPGA上实现鱼眼视频流的在线矫正及显示,从而能有效降低鱼眼摄像机“前端”矫正系统设计复杂度并提高处理效率,具有较高的性价比。鱼眼镜头的视场角高达180°,因此将鱼眼图像无法展开到单一的平面,本发明选择了5个盒装平面将鱼眼图像成像的半球罩住。多个面的盒装展开能够覆盖整个球面视角。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1为本鱼眼视频流实时矫正系统架构框图;
图2为本系统控制方法流程图;
图3为本系统查找表计算几何模型图;
图4为本系统鱼眼图像矫正IP的原理框图;
图5为本系统鱼眼图像矫正IP的存储架构图。
图6为处理器与以太网模块连接示意图。
图7为处理器与DDR3存储器的连接示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
本实施例提供一种鱼眼视频实时矫正系统,如图1,所述鱼眼视频实时矫正系统包括能够运行Linux系统的Zynq处理器系统,与连接的以太网接口模块、DDR3存储器、HDMI显示器及SD卡;所述Zynq处理器系统包括ARM处理器,与ARM处理器通过AXI总线接口连接的FPGA模块;
所述ARM处理器包括用于和DDR3存储器连接的DDR3控制器,以及和以太网接口模块连接的以太网控制器,所述SD卡和ARM处理器连接;
所述FPGA模块包括与AXI总线接口数据交互连接的VDMA视频传输通道,与VDMA视频传输通道连接的鱼眼视频图像校正IP模块,与鱼眼视频图像校正IP模块连接的HDMI显示控制模块,所述HDMI显示器与HDMI显示控制模块连接,所述鱼眼视频图像校正IP模块、HDMI显示控制模块还与AXI总线接口连接;鱼眼视频图像校正IP模块为符合AXI总线接口协议的内核模块。鱼眼镜头采用5个盒面,鱼眼镜头的视场角高达180°,因此将鱼眼图像无法展开到单一的平面,本实施例选择了5个盒装平面将鱼眼图像成像的半球罩住。多个面的盒装展开能够覆盖整个球面视角。
Zynq处理器使用的是Xilinx Zynq XC7Z020-1CLG484芯片,DDR3存储模块包括两块MT41K128M16JT-125 DDR3内存,单片内存的大小是512MB,数据接口是16bit,SD卡选用的是16GB的SD卡,文件系统位FAT32,用于存储Linux系统的启动文件。
系统DDR3存储器模块与处理器的存储接口单元相连。信号管脚连接如表1及图6。
表1
处理器与以太网控制器之间,以太网芯片使用了Marvell 88E1518 PHY。两者连接关系如表2及图7,其中Marvell 88E1518 PHY的管脚名为88E1510管脚名。
表2
具体地,所述鱼眼视频图像校正IP模块用于根据查找表对图像进行重映射并计算,如图4,鱼眼视频图像校正IP模块包括:
帧缓存,与帧缓存2个输出端分别连接的行缓存1与行缓存2,还包括一个与行缓存1、行缓存2共同连接的缓存控制器,缓存控制器还连接有查找表LUTx,查找表LUTx连接有查找表LUTy;缓存控制器与查找表LUTx之间连接有小数坐标寄存器和双线性插值计算模块;所述行缓存和查找表缓存均使用FPGA模块中的BRAM存储。
本实施例还提供一种鱼眼视频实时矫正方法,所述方法基于前述的鱼眼视频实时矫正系统,所述方法包括:
步骤1,启动鱼眼摄像机进行视频流采集,Zynq处理器启动系统运行,Linux系统启动运行,ARM处理器通过以太网接口实时获取视频源信号并将视频源信号转化为RGB图像格式,将RGB图像格式缓存在DDR3存储器;
步骤2,预先设置系统内置相机参数,预定义几何矫正模型,根据系统内置相机参数与几何矫正模型计算RGB图像格式的矫正图像与对应鱼眼视频图像间的坐标映射查找表,将矫正图像作为缓存图像与坐标映射查找表缓存在DDR3存储器;
步骤3,通过AXI总线接口加载缓存图像和坐标映射查找表至鱼眼视频图像矫正IP模块,进行重映射矫正计算得到矫正后的视频图像,并缓存矫正后的视频图像;
步骤4,加载矫正后的视频图像到HDMI显示控制模块,最终输出矫正的视频流到HDMI显示器。
具体地,所述系统内置相机参数包括:鱼眼图像半径R,径向畸变系数k1,k2,图像主点坐标(u0,v0)。
具体地,所述预定义的几何矫正模型包括鱼眼图像的径向畸变改正和平面重投影;
径向畸变改正包括:鱼眼图像点(u,v)是鱼眼图像上任一点,所述径向畸变改正(Δu,Δv)为:
Vu=(u-u0)*(k1r2+k2r4),Vv=(v-v0)*(k1r2+k2r4);
其中,r2=(u-u0)2+(v-v0)2
具体地,所述平面重投影基于球面投影模型,包括将径向畸变改正后的鱼眼图像点(u+Δu,v+Δv)沿光路入射反方向重投影到半球外接立方体所在的五个平面,五个平面为顶平面,左平面,右平面,前平面及后平面;
所述顶平面为-R<u<R,-R<v<R;所述左平面为-R<u<0,-R<v<R;所述右平面为0<u<R,-R<v<R);所述前平面为-R<u<R,0<v<R;所述后平面为-R<u<R,-R<v<0;
定义鱼眼图像点(u,v)与鱼眼图像点(u,v)在五个平面上的矫正坐标间的映射函数为:
在顶平面上:
在左平面上:
在右平面上:
在前平面上:
在后平面上:
具体地,步骤3还包括:
步骤a,ARM处理器系统控制缓存控制器,、加载视频图像到帧缓存,加载查找表LUTx和查找表LUTy到查找表缓存;
步骤b,寻址访问查找表缓存获取坐标数据:(xi,yi),(xi+1,yi+1);
步骤c,根据步骤b中坐标数据加载帧缓存图像的两行到FPGA模块中的BRAM作为行缓存,同时计算坐标数据(xi,yi),(xi+1,yi+1)的小数部分为坐标数据小数值:
步骤d,从行缓存1和行缓存2中同步读像素数据为素灰度数据:
行缓存1中像素数据为I(xi,yi),I(xi+1,yi),I(xi,yi+1),I(xi+1,yi+1),
行缓存2中像素数据为I(xi+1,yi+1),I(xi+1+1,yi+1),I(xi+1,yi+1+1),I(xi+1+1,yi+1+1);
步骤e,加载像步骤c和步骤d中的素灰度数据和坐标数据小数值做并行计算:
r1=I(xi,yi)(1-xf)(1-yf),
r2=I(xi+1,yi)xf(1-yf),
r3=I(xi,yi+1)(1-xf)yf
r4=I(xi+1,yi+1)xfyf
步骤f,对步骤e中并行计算的结果求和,得到双线性插值结果I(x,y),并缓存双线性插值结果I(x,y)。
具体地,本实施例中的BRAM为大小为18Kb的行阵列。单独使用一个BRAM模块独立存储一行图像像素及或查找表坐标,因Xilinx 7系列FPGA支持一个时钟周期内同步读取BRAM2个数据,故本存储架构可保障一个时钟周期内读取两行BRAM中缓存的4个像素值和两对查找表坐标数据;ZYNQ7020芯片中BRAM资源数共280个,总容量大小5040k,因此能在同一时钟周期同时加载多行像素值和坐标值用于并行计算。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员能够理解本发明,但是本发明不仅限于具体实施方式的范围,对本技术领域的普通技术人员而言,只要各种变化只要在所附的权利要求限定和确定的本发明精神和范围内,一切利用本发明构思的发明创造均在保护之列。

Claims (8)

1.一种鱼眼视频实时矫正系统,其特征在于:所述鱼眼视频实时矫正系统包括能够运行嵌入式系统的处理器系统,与处理器系统连接的以太网接口模块、存储器、显示器及存储单元;
所述处理器系统包括处理器,与处理器通过总线接口连接的可编程模块;
所述处理器包括用于和存储器连接的存储控制器,以及和以太网接口模块连接的以太网控制器,所述存储单元和处理器连接;
所述可编程模块包括与总线接口数据交互连接的视频传输通道,与视频传输通道连接的鱼眼视频图像校正IP模块,与鱼眼视频图像校正IP模块连接的显示控制模块,所述显示器与显示控制模块连接,所述鱼眼视频图像校正IP模块、显示控制模块还与总线接口连接。
2.根据权利要求1所述的鱼眼视频实时矫正系统,其特征在于:所述鱼眼视频图像校正IP模块用于根据查找表对图像进行重映射并计算,鱼眼视频图像校正IP模块包括:
帧缓存,与帧缓存2个输出端分别连接的行缓存1与行缓存2,还包括一个与行缓存1、行缓存2共同连接的缓存控制器,缓存控制器还连接有查找表LUTx,查找表LUTx连接有查找表LUTy;缓存控制器与查找表LUTx之间连接有小数坐标寄存器和双线性插值计算模块;所述行缓存和查找表缓存均使用可编程模块中的BRAM存储。
3.一种鱼眼视频实时矫正方法,其特征在于:所述方法基于权利要求1-2任一所述的鱼眼视频实时矫正系统,所述方法包括:
步骤1,启动鱼眼摄像机进行视频流采集,嵌入式系统启动运行,处理器通过以太网接口实时获取视频源信号并将视频源信号转化为RGB图像格式,将RGB图像格式缓存在存储器中;
步骤2,预先设置系统内置相机参数,预定义几何矫正模型,根据系统内置相机参数与几何矫正模型计算RGB图像格式的矫正图像与对应鱼眼视频图像间的坐标映射查找表,将矫正图像作为缓存图像与坐标映射查找表缓存在存储器;
步骤3,通过AXI总线接口加载缓存图像和坐标映射查找表至鱼眼视频图像矫正IP模块,进行重映射矫正计算得到矫正后的视频图像,并缓存矫正后的视频图像;
步骤4,加载矫正后的视频图像到显示控制模块,最终输出矫正的视频流到显示器。
4.根据权利要求1所述的鱼眼视频实时矫正方法,其特征在于:所述系统内置相机参数包括:鱼眼图像半径R,径向畸变系数k1,k2,图像主点坐标(u0,v0)。
5.根据权利要求4所述的鱼眼视频实时矫正方法,其特征在于:所述预定义的几何矫正模型包括鱼眼图像的径向畸变改正和平面重投影;
径向畸变改正包括:鱼眼图像点(u,v)是鱼眼图像上任一点,所述径向畸变改正(Δu,Δv)为:
Vu=(u-u0)*(k1r2+k2r4),Vv=(v-v0)*(k1r2+k2r4);
其中,r2=(u-u0)2+(v-v0)2
6.根据权利要求5所述的鱼眼视频实时矫正方法,其特征在于:所述平面重投影基于球面投影模型,包括将径向畸变改正后的鱼眼图像点(u+Δu,v+Δv)沿光路入射反方向重投影到半球外接立方体所在的五个平面,五个平面为顶平面,左平面,右平面,前平面及后平面;
所述顶平面为-R<u<R,-R<v<R;所述左平面为-R<u<0,-R<v<R;所述右平面为0<u<R,-R<v<R);所述前平面为-R<u<R,0<v<R;所述后平面为-R<u<R,-R<v<0;
定义鱼眼图像点(u,v)与鱼眼图像点(u,v)在五个平面上的矫正坐标间的映射函数为:
在顶平面上:
<mrow> <mover> <mi>u</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mrow> <msqrt> <mrow> <msup> <mi>R</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mfrac> <mo>,</mo> <mover> <mi>v</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> </mrow> <msqrt> <mrow> <msup> <mi>R</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mfrac> <mo>;</mo> </mrow>
在左平面上:
<mrow> <mover> <mi>u</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mfrac> <mo>,</mo> <mover> <mi>v</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <msqrt> <mrow> <msup> <mi>R</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mfrac> </mrow>
在右平面上:
<mrow> <mover> <mi>u</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mfrac> <mo>,</mo> <mover> <mi>v</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <msqrt> <mrow> <msup> <mi>R</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mfrac> </mrow>
在前平面上:
<mrow> <mover> <mi>u</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mrow> <msqrt> <mrow> <msup> <mi>R</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mfrac> <mo>,</mo> <mover> <mi>v</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <msqrt> <mrow> <msup> <mi>R</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mfrac> </mrow>
在后平面上:
<mrow> <mover> <mi>u</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mrow> <msqrt> <mrow> <msup> <mi>R</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mfrac> <mo>,</mo> <mover> <mi>v</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mo>*</mo> <msqrt> <mrow> <msup> <mi>R</mi> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>-</mo> <msub> <mi>v</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>v</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> <mrow> <mo>(</mo> <mi>u</mi> <mo>-</mo> <msub> <mi>u</mi> <mn>0</mn> </msub> <mo>+</mo> <mi>&amp;Delta;</mi> <mi>u</mi> <mo>)</mo> </mrow> </mfrac> <mo>.</mo> </mrow>
7.根据权利要求5所述的鱼眼视频实时矫正方法,其特征在于:步骤3还包括:
步骤a,处理器系统控制缓存控制器,加载视频图像到帧缓存,加载查找表LUTx和查找表LUTy到查找表缓存;
步骤b,寻址访问查找表缓存获取坐标数据:(xi,yi),(xi+1,yi+1);
步骤c,根据步骤b中坐标数据加载帧缓存图像的两行到可编程模块中的BRAM作为行缓存,同时计算坐标数据(xi,yi),(xi+1,yi+1)的小数部分为坐标数据小数值:
<mrow> <msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>f</mi> </msub> <mo>,</mo> <msub> <mi>y</mi> <mi>f</mi> </msub> <mo>,</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>x</mi> <mi>f</mi> </msub> <mo>,</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mi>f</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </msub> <mo>,</mo> </mrow>
<mrow> <msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>f</mi> </msub> <mo>,</mo> <msub> <mi>y</mi> <mi>f</mi> </msub> <mo>,</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>x</mi> <mi>f</mi> </msub> <mo>,</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mi>f</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mrow> <msub> <mi>i</mi> <mrow> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> </mrow> </msub> <msub> <mi>y</mi> <msub> <mi>i</mi> <mrow> <mo>+</mo> <mn>1</mn> </mrow> </msub> </msub> <mo>)</mo> </mrow> </msub> <mo>;</mo> </mrow>
步骤d,从行缓存1和行缓存2中同步读像素数据为素灰度数据:
行缓存1中像素数据为I(xi,yi),I(xi+1,yi),I(xi,yi+1),I(xi+1,yi+1),
行缓存2中像素数据为I(xi+1,yi+1),I(xi+1+1,yi+1),I(xi+1,yi+1+1),I(xi+1+1,yi+1+1);
步骤e,加载像步骤c和步骤d中的素灰度数据和坐标数据小数值做并行计算:
r1=I(xi,yi)(1-xf)(1-yf),
r2=I(xi+1,yi)xf(1-yf),
r3=I(xi,yi+1)(1-xf)yf
r4=I(xi+1,yi+1)xfyf
步骤f,对步骤e中并行计算的结果求和,得到双线性插值结果I(x,y),并缓存双线性插值结果I(x,y)。
8.根据权利要求5所述的鱼眼视频实时矫正方法,其特征在于:所述BRAM为大小为18Kb的行阵列。
CN201810067839.5A 2018-01-24 2018-01-24 一种鱼眼视频实时矫正系统及方法 Pending CN108053385A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810067839.5A CN108053385A (zh) 2018-01-24 2018-01-24 一种鱼眼视频实时矫正系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810067839.5A CN108053385A (zh) 2018-01-24 2018-01-24 一种鱼眼视频实时矫正系统及方法

Publications (1)

Publication Number Publication Date
CN108053385A true CN108053385A (zh) 2018-05-18

Family

ID=62124519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810067839.5A Pending CN108053385A (zh) 2018-01-24 2018-01-24 一种鱼眼视频实时矫正系统及方法

Country Status (1)

Country Link
CN (1) CN108053385A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109472739A (zh) * 2018-10-29 2019-03-15 深圳云行智能科技有限公司 一种用于广角摄像头的鱼眼图像矫正方法及装置
CN110264426A (zh) * 2019-06-24 2019-09-20 Oppo广东移动通信有限公司 图像畸变校正方法和装置
CN111193877A (zh) * 2019-08-29 2020-05-22 桂林电子科技大学 一种arm-fpga协同的广域视频实时融合方法及嵌入式设备
CN112308787A (zh) * 2019-08-02 2021-02-02 北京地平线机器人技术研发有限公司 畸变矫正方法及装置、电子设备
CN112927304A (zh) * 2021-02-22 2021-06-08 桂林电子科技大学 一种基于卷积神经网络的鱼眼镜头标定方法
WO2021179605A1 (zh) * 2020-03-12 2021-09-16 佳都新太科技股份有限公司 基于gpu的摄像头视频投影方法、装置、设备及存储介质
CN114066759A (zh) * 2021-11-18 2022-02-18 电子科技大学 一种基于fpga的红外图像实时畸变校正方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327843C (en) * 2000-12-07 2009-03-31 Just Iced Cubed Inventions Inc. System and method for registration of cubic fisheye hemispherical images
CN101726855A (zh) * 2009-11-13 2010-06-09 河北工业大学 基于立方体投影对鱼眼图像畸变校正方法
CN106971381A (zh) * 2017-03-14 2017-07-21 东北大学 一种具有重叠视域的广角相机视野分界线生成方法
CN107346530A (zh) * 2016-05-06 2017-11-14 完美幻境(北京)科技有限公司 一种修正鱼眼图像的投影方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327843C (en) * 2000-12-07 2009-03-31 Just Iced Cubed Inventions Inc. System and method for registration of cubic fisheye hemispherical images
CN101726855A (zh) * 2009-11-13 2010-06-09 河北工业大学 基于立方体投影对鱼眼图像畸变校正方法
CN107346530A (zh) * 2016-05-06 2017-11-14 完美幻境(北京)科技有限公司 一种修正鱼眼图像的投影方法及系统
CN106971381A (zh) * 2017-03-14 2017-07-21 东北大学 一种具有重叠视域的广角相机视野分界线生成方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
李朗 等: "基于Zynq-7000的视频处理系统框架设计", 《计算机技术与发展》 *
杨晶晶: "数字视频图像预处理算法的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
肖守掌: "鱼眼图像的几何校正及拼接算法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109472739A (zh) * 2018-10-29 2019-03-15 深圳云行智能科技有限公司 一种用于广角摄像头的鱼眼图像矫正方法及装置
CN110264426A (zh) * 2019-06-24 2019-09-20 Oppo广东移动通信有限公司 图像畸变校正方法和装置
CN110264426B (zh) * 2019-06-24 2021-09-17 Oppo广东移动通信有限公司 图像畸变校正方法和装置
CN112308787A (zh) * 2019-08-02 2021-02-02 北京地平线机器人技术研发有限公司 畸变矫正方法及装置、电子设备
CN112308787B (zh) * 2019-08-02 2024-05-07 北京地平线机器人技术研发有限公司 畸变矫正方法及装置、电子设备
CN111193877A (zh) * 2019-08-29 2020-05-22 桂林电子科技大学 一种arm-fpga协同的广域视频实时融合方法及嵌入式设备
CN111193877B (zh) * 2019-08-29 2021-11-30 桂林电子科技大学 一种arm-fpga协同的广域视频实时融合方法及嵌入式设备
WO2021179605A1 (zh) * 2020-03-12 2021-09-16 佳都新太科技股份有限公司 基于gpu的摄像头视频投影方法、装置、设备及存储介质
CN112927304A (zh) * 2021-02-22 2021-06-08 桂林电子科技大学 一种基于卷积神经网络的鱼眼镜头标定方法
CN114066759A (zh) * 2021-11-18 2022-02-18 电子科技大学 一种基于fpga的红外图像实时畸变校正方法和系统
CN114066759B (zh) * 2021-11-18 2023-08-01 电子科技大学 一种基于fpga的红外图像实时畸变校正方法和系统

Similar Documents

Publication Publication Date Title
CN108053385A (zh) 一种鱼眼视频实时矫正系统及方法
WO2021174939A1 (zh) 人脸图像的获取方法与系统
US9262807B2 (en) Method and system for correcting a distorted input image
US9280810B2 (en) Method and system for correcting a distorted input image
US9672586B2 (en) Image synthesis method with DSP and GPU
CN101422035A (zh) 光源推定装置、光源推定系统与光源推定方法以及图像高分辨率化装置与图像高分辨率化方法
CN104125410A (zh) 一种全景视频多镜头曝光补偿方法及其装置
CN105744137A (zh) 使用硬件电路对鱼眼镜头所成图像实时矫正和拼接的系统
CN109688382B (zh) 一种水下机器人的水下图像处理系统
CN108564551A (zh) 鱼眼图像处理方法及鱼眼图像处理装置
CN110958362A (zh) 基于分块查表的图像校正系统及其方法
CN108616717B (zh) 一种实时全景视频拼接显示装置及其方法
US10798300B2 (en) Method and device for unfolding lens image into panoramic image
WO2022017528A1 (zh) 车载avm的显示方法、系统、电子设备及存储介质
CN111275621A (zh) 一种行车环视系统中全景图生成方法、系统及存储介质
CN104243781A (zh) 一种基于sopc的全方位视觉系统
CN112509106A (zh) 文档图片展平方法、装置以及设备
CN116824080A (zh) 一种基于多传感器融合实现输电走廊slam点云建图方法
CN112788317A (zh) 一种播放全景视频的方法、系统、存储介质及播放设备
CN109089048A (zh) 多镜头全景联动装置及方法
CN205647708U (zh) 使用硬件电路对鱼眼镜头所成图像实时矫正和拼接的系统
Popovic et al. Design and implementation of real-time multi-sensor vision systems
CN111726566B (zh) 一种实时校正拼接防抖的实现方法
CN207854046U (zh) 一种激光测距仪及其激光测距显示控制系统
CN113225491B (zh) 一种嵌入式多镜头全景视频成像方法及装置

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180518