一种用于广角摄像头的鱼眼图像矫正方法及装置与流程

文档序号:17118056发布日期:2019-03-15 23:31阅读:866来源:国知局
一种用于广角摄像头的鱼眼图像矫正方法及装置与流程

本发明涉及鱼眼图像矫正,更具体地说是一种用于广角摄像头的鱼眼图像矫正方法及装置。



背景技术:

随着ai技术的发展,视觉识别的应用越来越广泛,小到二维码识别,大到车牌,人脸识别。越来越广泛的识别应用对摄像头提出更多元化,更深度的要求。

目前对于摄像头应用从需求角度讲,可以分为平角摄像头和广角摄像头(又称鱼眼摄像头)。对于平角摄像头来说,拍摄的角度通常小于90度,由于较小的视场角,镜头可以有效的消除图像的畸变,通常的图像畸变小于5%,几乎不会造成影响。而对于鱼眼摄像头来说,拍摄角度通常大于100度,根据应用环境可以大于180度。但是由于过大的视场角,图像不可避免的产生畸变,其畸变曲线到图像最边缘时达到最大。

在实际的视觉识别应用当中,当应用环境需要使用鱼眼摄像头时,如何进行畸变矫正成为了应用的难点之一。目前的鱼眼摄像头使用当中,通常由如下矫正方式:

使用图像拉伸的算法在应用终端来进行矫正。也就是说,摄像头本身并不进行图像矫正处理,而是直接上传畸变的原始图片,应用端在使用时,对该张图片进行矫正处理。但缺点是所有应用的终端在使用时都需要先进行畸变矫正处理,并且由于产品一致性的因素,每个摄像头的矫正都需要单独进行。对于应用来说,兼容性差,且由于数据传输的原因,处理速度相对较慢。

而在当下兴起的智能零售业中,应用的视觉识别摄像头,有其特殊的需求,为了更大的零售识别范围,摄像头需要尽可能大的视场角,为ai识别算法提供识别图片,需要一致性好,同时要消除图像畸变。深度学习的算法对于图片源要求很高,更换不同种类的摄像头会造成算法的识别出现故障。对于硬件的耦合性极高。智能零售不同于汽车领域等有高时效需求,对于图像的实时性没有过于苛刻的要求智能零售由于其零售行业的特殊性,需要高广泛应用,低成本的硬件。

因此,有必要设计一种成本低,同时又能将图像畸变处理转移到摄像头端进行,在摄像头保证图像能达成一致,减少算法对硬件依赖的用于摄像头的鱼眼图像处理方法。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种用于广角摄像头的鱼眼图像矫正方法及装置。

为实现上述目的,本发明采用以下技术方案:一种用于广角摄像头的鱼眼图像矫正方法,所述方法包括:

上位机获取广角摄像头拍摄的鱼眼图像;

根据鱼眼图像生成标定参数;

将标定参数写入广角摄像头flash内;

广角摄像头根据标定参数对鱼眼图像进行拉伸,以形成目标图像。

其进一步技术方案为:所述根据鱼眼图像生成标定参数的步骤,具体包括以下步骤:

获取鱼眼图像有效区域;

确定鱼眼图像有效区域中任意点与全景球面上对应点的映射关系;

根据映射关系计算所有全景球面上对应点的坐标。

其进一步技术方案为:所述广角摄像头根据标定参数对鱼眼图像进行拉伸,以形成目标图像的步骤,具体包括以下步骤:

获取平面图像上像素的世界坐标;

根据世界坐标计算对应的极坐标;

将平面图像投影到全景球面以生成球面坐标系;

根据全景球面上对应点的坐标计算平面图像对应像点的位置。

其进一步技术方案为:所述广角摄像头根据标定参数对鱼眼图像进行拉伸,以形成目标图像的步骤之后,还包括以下步骤:

广角摄像头接收上位机下发的配置文件;

根据配置文件发送相应要求的图像至终端。

其进一步技术方案为:所述根据配置文件发送相应要求的图像至终端的步骤,具体包括以下步骤:

解析配置文件;

判断配置文件是否是发送原始图像命令;

若是,则将原始鱼眼图像发送至终端;

若否,则将目标图像发送至终端。

一种用于广角摄像头的鱼眼图像矫正装置,所述装置包括获取单元、标定单元、写入单元以及拉伸单元;

所述获取单元,用于上位机获取广角摄像头拍摄的鱼眼图像;

所述标定单元,用于根据鱼眼图像生成标定参数;

所述写入单元,用于将标定参数写入广角摄像头flash内;

所述拉伸单元,用于广角摄像头根据标定参数对鱼眼图像进行拉伸,以形成目标图像。

其进一步技术方案为:所述标定单元包括有效区域获取模块、映射模块以及第一计算模块;

所述有效区域获取模块,用于获取鱼眼图像有效区域;

所述映射模块,用于确定鱼眼图像有效区域中任意点与全景球面上对应点的映射关系;

所述第一计算模块,用于根据映射关系计算所有全景球面上对应点的坐标。

其进一步技术方案为:所述拉伸单元包括世界坐标获取模块、第二计算模块、投影模块以及第三计算模块;

所述世界坐标获取模块,用于获取平面图像上像素的世界坐标

所述第二计算模块,用于根据世界坐标计算对应的极坐标;

所述投影模块,用于将平面图像投影到全景球面以生成球面坐标系;

所述第三计算模块,用于根据全景球面上对应点的坐标计算平面图像对应像点的位置。

其进一步技术方案为:还包括配置单元以及发送单元;

所述配置单元,用于广角摄像头接收上位机下发的配置文件;

所述发送单元,用于根据配置文件发送相应要求的图像至终端。

其进一步技术方案为:所述发送单元包括解析模块以及判断模块;

所述解析模块,用于解析配置文件;

所述判断模块,用于判断配置文件是否是发送原始图像命令。

本发明与现有技术相比的有益效果是:本发明一种用于广角摄像头的鱼眼图像矫正方法及装置通过上位机获取广角摄像头拍摄的鱼眼图像,根据鱼眼图像生成标定参数,将标定参数写入广角摄像头flash内,广角摄像头根据标定参数对鱼眼图像进行拉伸,以形成目标图像。当需要输出矫正后的目标图像时,可直接调用拉伸参数,便可以对原始鱼眼图像进行矫正,提升了处理速度,减少了算法对硬件的依赖,降低了成本。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征及优点能够更明显易懂,以下特举较佳实施例,详细说明如下。

附图说明

图1为本发明一种用于广角摄像头的鱼眼图像矫正方法具体实施例的流程图;

图2为本发明一种用于广角摄像头的鱼眼图像矫正方法具体实施例中标定参数生成的流程图;

图3为本发明一种用于广角摄像头的鱼眼图像矫正方法具体实施例中鱼眼图像拉伸的流程图;

图4为本发明一种用于广角摄像头的鱼眼图像矫正方法具体实施例图像发送至终端的流程图;

图5为本发明一种用于广角摄像头的鱼眼图像矫正装置具体实施例的结构图;

图6为本发明一种用于广角摄像头的鱼眼图像矫正装置具体实施例中标定单元的结构图;

图7为本发明一种用于广角摄像头的鱼眼图像矫正装置具体实施例的中拉伸单元的结构图;

图8为本发明一种用于广角摄像头的鱼眼图像矫正装置具体实施例中发送单元的结构图。

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。

应当理解,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序。

还应当理解,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

如图1-4所示,本发明提供了一种用于广角摄像头的鱼眼图像矫正方法,该方法包括:

s10、上位机获取广角摄像头拍摄的鱼眼图像;

s20、根据鱼眼图像生成标定参数;

s30、将标定参数写入广角摄像头flash内;

s40、广角摄像头根据标定参数对鱼眼图像进行拉伸,以形成目标图像。

具体的,上位机是指可以直接发出操控命令的计算机,本实施例中,采用pc机作为上位机,广角摄像头与pc机构成通信连接,以便于两者之间的数据交互。所谓广角摄像头是指拍摄角度通常大于100度,根据应用环境可以大于180度。但是由于过大的视场角,图像不可避免的产生畸变,其畸变曲线到图像最边缘时达到最大,因此,拍摄出来的图像就类似于鱼的眼睛,因此称为鱼眼图像。另外,摄像头flash为摄像头内的存储器。

在某些实施例中,步骤s20具体包括以下步骤:

s201、获取鱼眼图像有效区域;

s202、确定鱼眼图像有效区域中任意点与全景球面上对应点的映射关系;

s203、根据映射关系计算所有全景球面上对应点的坐标。

具体的,超广角摄像头在成像过程中,半视场角与像高的关系,即描述理想像高度y与物方半视场角w之间关系的数学公式有以下几种:y=fw,y=2fsin(w/2),y=2ftan(w/2),y=fsin(w)。现在市场上用的最多的超广角镜头成像原理是式y=fw表示的等距成像,本实施例中测试用的即是等距成像的超广角镜头。

超广角图像成像的有效区域为一圆形。由圆形区域易得圆心c。以c为直角坐标原点,对于区域中任意一点k(x,y),其位置处的像高即为sqrt(x*x+y*y),照射到点k的入射光线与相机光轴的夹角即为半视场角w。

若超广角镜头视角为180°,则超广角图像可映射至全景半球面上(若不为180°,也可类似推导)。超广角图像上任意点k(x,y)与全景球面上对应点k’(a,b)(a为水平转角,类似于经度;b为俯仰角,类似于纬度)的映射关系。例如,鱼眼图像中的点abcdk分别映射至全景球面上的点a’b’c’d’k’。全景球面的球心为点o。oa’=ob’=oc’=od’=ok’=全景球面半径r。

为确定映射关系,也就需要求点k(x,y)的映射点k’的球面坐标(a,b)。由广角摄像头等距投影模型易知角k’oc’=f(ck),其中f为线性函数。对于常见广角摄像头来说,f(x)=y。接下来求k’的水平转角a=∠c’od’和俯仰角b=∠k’od’。过k’作oc’的垂面,交oc’于h,交od’于g。则有:oh=r*cos(∠c’ok’),k’h=r*sin(∠c’ok’),∠k’hg=∠kcd=arctan(kd/cd),注意到k’g与od’垂直,则有:hg=hk’*cos(∠k’hg),则水平转角a=∠c’od’=arctan(hg/oh),k’g=k’h*sin(∠k’hg),sin(∠k’og)=k’g/ok’。

由此,得到点k’的俯仰角b。由上述推导,我们得到了鱼眼图像投影至全景球面上时的映射关系。对于鱼眼图像上任意一点k,其球面上对应点k’的水平转角(经度)a,俯仰角(纬度)b可由k的坐标求得。

在某些实施例中,步骤s40具体包括以下步骤:

s401、获取平面图像上像素的世界坐标;

s402、根据世界坐标计算对应的极坐标;

s403、将平面图像投影到全景球面以生成球面坐标系;

s404、根据全景球面上对应点的坐标计算平面图像对应像点的位置。

对于步骤s401-s404而言,该过程是将全景球面投影到输出的校正图像平面上,建立输出校正图像上任意一点(x,y)与球面上对应点(x’,y’)的坐标转换关系。全景球面坐标信息的保存形式为通过经纬映射法展开的全景图(平面图像,宽2*pi*r,高pi*r)。另外,平面图像映射至球面存在以下变化公式:

其中,摄像头拍摄方向为(α,β),输出的校正图像上任意一个像素点p的图像坐标为(x,y),p在球面全景图像中对应点p’在球面全景图像中的图像坐标为(x’,y’)。点p在摄像头坐标系中的坐标为(xc,yc,zc),在世界坐标系中的坐标为(xw,yw,zw)。得到平面图像上像素的世界坐标后,可计算得到对应的极坐标。将平面图像投影到全景球面生成球面坐标系,以表示,其中θ为水平旋转角,为俯仰角,r为球面半径。整理可得:

即可以用球坐标唯一确定一个像点的位置。

另外,本实施例中选用华为hi3516cv300,内置64mbsdram,外置16mbspifalsh,图像传感器为sc2235。由于是低成本方案,hi3516未内置鱼眼矫正ip,故采用纯软件方式。

在某些实施例中,在步骤s40之后,还包括以下步骤:

s50、广角摄像头接收上位机下发的配置文件;

s60、根据配置文件发送相应要求的图像至终端。

在某些实施例中,步骤s60具体包括以下步骤:

s601、解析配置文件;

s602、判断配置文件是否是发送原始图像命令;

s603、若是,则将原始鱼眼图像发送至终端;

s604、若否,则将目标图像发送至终端。

具体的,调用拉伸参数是一个独立的过程,可以通过下发配置文件,远程控制摄像头输出原始鱼眼图像或者是目标图像(拉伸后的图像)。因此可以兼容终端拉伸消除畸变的方式。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上述实施例所述的一种用于广角摄像头的鱼眼图像矫正方法,本发明提供了一种用于广角摄像头的鱼眼图像矫正装置.如图5-8所示,该装置包括获取单元1、标定单元2、写入单元3以及拉伸单元4;

获取单元1,用于上位机获取广角摄像头拍摄的鱼眼图像;

标定单元2,用于根据鱼眼图像生成标定参数;

写入单元3,用于将标定参数写入广角摄像头flash内;

拉伸单元4,用于广角摄像头根据标定参数对鱼眼图像进行拉伸,以形成目标图像。

具体的,上位机是指可以直接发出操控命令的计算机,本实施例中,采用pc机作为上位机,广角摄像头与pc机构成通信连接,以便于两者之间的数据交互。所谓广角摄像头是指拍摄角度通常大于100度,根据应用环境可以大于180度。但是由于过大的视场角,图像不可避免的产生畸变,其畸变曲线到图像最边缘时达到最大,因此,拍摄出来的图像就类似于鱼的眼睛,因此称为鱼眼图像。另外,摄像头flash为摄像头内的存储器。

在某些实施例中,标定单元2包括有效区域获取模块21、映射模块22以及第一计算模块23;

有效区域获取模块21,用于获取鱼眼图像有效区域;

映射模块22,用于确定鱼眼图像有效区域中任意点与全景球面上对应点的映射关系;

第一计算模块23,用于根据映射关系计算所有全景球面上对应点的坐标。

具体的,超广角摄像头在成像过程中,半视场角与像高的关系,即描述理想像高度y与物方半视场角w之间关系的数学公式有以下几种:y=fw,y=2fsin(w/2),y=2ftan(w/2),y=fsin(w)。现在市场上用的最多的超广角镜头成像原理是式y=fw表示的等距成像,本实施例中测试用的即是等距成像的超广角镜头。

超广角图像成像的有效区域为一圆形。由圆形区域易得圆心c。以c为直角坐标原点,对于区域中任意一点k(x,y),其位置处的像高即为sqrt(x*x+y*y),照射到点k的入射光线与相机光轴的夹角即为半视场角w。

若超广角镜头视角为180°,则超广角图像可映射至全景半球面上(若不为180°,也可类似推导)。超广角图像上任意点k(x,y)与全景球面上对应点k’(a,b)(a为水平转角,类似于经度;b为俯仰角,类似于纬度)的映射关系。例如,鱼眼图像中的点abcdk分别映射至全景球面上的点a’b’c’d’k’。全景球面的球心为点o。oa’=ob’=oc’=od’=ok’=全景球面半径r。

为确定映射关系,也就需要求点k(x,y)的映射点k’的球面坐标(a,b)。由广角摄像头等距投影模型易知角k’oc’=f(ck),其中f为线性函数。对于常见广角摄像头来说,f(x)=y。接下来求k’的水平转角a=∠c’od’和俯仰角b=∠k’od’。过k’作oc’的垂面,交oc’于h,交od’于g。则有:oh=r*cos(∠c’ok’),k’h=r*sin(∠c’ok’),∠k’hg=∠kcd=arctan(kd/cd),注意到k’g与od’垂直,则有:hg=hk’*cos(∠k’hg),则水平转角a=∠c’od’=arctan(hg/oh),k’g=k’h*sin(∠k’hg),sin(∠k’og)=k’g/ok’。

由此,得到点k’的俯仰角b。由上述推导,我们得到了鱼眼图像投影至全景球面上时的映射关系。对于鱼眼图像上任意一点k,其球面上对应点k’的水平转角(经度)a,俯仰角(纬度)b可由k的坐标求得。

在某些实施例中,拉伸单元4包括世界坐标获取模块41、第二计算模块42、投影模块43以及第三计算模块44;

世界坐标获取模块41,用于获取平面图像上像素的世界坐标

第二计算模块42,用于根据世界坐标计算对应的极坐标;

投影模块43,用于将平面图像投影到全景球面以生成球面坐标系;

第三计算模块44,用于根据全景球面上对应点的坐标计算平面图像对应像点的位置。

对于步骤s401-s404而言,该过程是将全景球面投影到输出的校正图像平面上,建立输出校正图像上任意一点(x,y)与球面上对应点(x’,y’)的坐标转换关系。全景球面坐标信息的保存形式为通过经纬映射法展开的全景图(平面图像,宽2*pi*r,高pi*r)。另外,平面图像映射至球面存在以下变化公式:

其中,摄像头拍摄方向为(α,β),输出的校正图像上任意一个像素点p的图像坐标为(x,y),p在球面全景图像中对应点p’在球面全景图像中的图像坐标为(x’,y’)。点p在摄像头坐标系中的坐标为(xc,yc,zc),在世界坐标系中的坐标为(xw,yw,zw)。得到平面图像上像素的世界坐标后,可计算得到对应的极坐标。将平面图像投影到全景球面生成球面坐标系,以表示,其中θ为水平旋转角,为俯仰角,r为球面半径。整理可得:

即可以用球坐标唯一确定一个像点的位置。另外,本实施例中选用华为hi3516cv300,内置64mbsdram,外置16mbspifalsh,图像传感器为sc2235。由于是低成本方案,hi3516未内置鱼眼矫正ip,故采用纯软件方式。

在某些实施例中,该装置还包括配置单元5以及发送单元6;

配置单元5,用于广角摄像头接收上位机下发的配置文件;

发送单元6,用于根据配置文件发送相应要求的图像至终端。

在某些实施例中,发送单元包6括解析模块61以及判断模块62;

解析模块61,用于解析配置文件;

判断模块62,用于判断配置文件是否是发送原始图像命令。

具体的,调用拉伸参数是一个独立的过程,可以通过下发配置文件,远程控制摄像头输出原始鱼眼图像或者是目标图像(拉伸后的图像)。因此可以兼容终端拉伸消除畸变的方式。

上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

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