一种鱼眼视频实时矫正系统及方法与流程

文档序号:14451005阅读:528来源:国知局

本发明涉及工业自动化、计算机视觉、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处理器使用的是xilinxzynqxc7z020-1clg484芯片,ddr3存储模块包括两块mt41k128m16jt-125ddr3内存,单片内存的大小是512mb,数据接口是16bit,sd卡选用的是16gb的sd卡,文件系统位fat32,用于存储linux系统的启动文件。

系统ddr3存储器模块与处理器的存储接口单元相连。信号管脚连接如表1及图6。

表1

处理器与以太网控制器之间,以太网芯片使用了marvell88e1518phy。两者连接关系如表2及图7,其中marvell88e1518phy的管脚名为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模块独立存储一行图像像素及或查找表坐标,因xilinx7系列fpga支持一个时钟周期内同步读取bram2个数据,故本存储架构可保障一个时钟周期内读取两行bram中缓存的4个像素值和两对查找表坐标数据;zynq7020芯片中bram资源数共280个,总容量大小5040k,因此能在同一时钟周期同时加载多行像素值和坐标值用于并行计算。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员能够理解本发明,但是本发明不仅限于具体实施方式的范围,对本技术领域的普通技术人员而言,只要各种变化只要在所附的权利要求限定和确定的本发明精神和范围内,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1