一种畸变校正方法及装置、一种深度感知计算方法及装置与流程

文档序号:17731874发布日期:2019-05-22 02:54阅读:148来源:国知局
一种畸变校正方法及装置、一种深度感知计算方法及装置与流程

本发明属于图像处理、自然交互和集成电路技术领域,具体涉及一种畸变校正方法及装置、一种深度感知计算方法及装置。



背景技术:

人类观察、认识世界80%以上的信息得益于双眼的效果,而深度感知设备上的摄像头就好比人类的眼睛,对捕捉到的空间场景信息通过内部复杂的计算得到场景中每一个位置实时的深度信息,计算机通过这些深度信息感知和理解这个场景。因此深度感知系统让人机交互变得更加容易,让人们可以摆脱掉鼠标键盘这类辅助工具。

深度感知是计算机视觉领域重要的研究方向之一,能够让智能设备获得类似人类视觉感知的能力,而现有的深度感知技术在对输入的畸变图像进行校正的时候,需要消耗大量的硬件资源,同时无法获取较为准确的图像深度信息。



技术实现要素:

鉴于此,本公开提供一种畸变校正方法,所述方法将整个图像校正坐标求解建立在软件编程语言校正的基础上,然后与硬件平台相结合的方法得到最终结果。由此,硬件校正的精度不在单纯依赖硬件资源的消耗,而是很大程度上取决于软件编程语言的校正过程,软件编程语言校正精度低,就会导致硬件校正带来很大误差,使得校正后的图像很不理想。若软件编程语言校正精度高,硬件校正精度也会大幅提升,同时并没有增加硬件设计的复杂性。

一种畸变校正方法,所述方法包括下述步骤:

s100’、计算畸变校正中的位移差,并将所述位移差存储在外部存储器中;

s200’、从所述外部存储器中获取所述位移差,并从fpga的存储器中获取实时图像坐标,在fpga平台上进行同步运算,实现畸变校正。

在所述方法中,其中:所述步骤s100’中计算畸变校正中的位移差是通过软件编程语言实现的,所述软件编程语言包括matlab、c、c++、python任一;所述步骤s200’中从所述外部存储器中获取所述位移差是通过硬件描述语言实现的,所述硬件编程语言包括verilog、vhdl任一。

第二方面,本公开提供一种深度感知计算方法,所述方法包括下述步骤:

s100、使用上述畸变校正方法进行畸变图像校正;

s200、将经过步骤s100处理的图像结合参考图像进行结构光单目匹配,计算深度值,获取深度图像;

s300、将所述深度图像经过后处理后,生成为三维点云。

在所述方法中,其中:所述后处理包括去噪处理、平滑处理以及空洞修补。

在所述方法中,其中:所述步骤s100还包括下述步骤:

采用平均值法将彩色图像转换为灰度图,然后利用阈值转化算法将灰度图转化为黑白图,再使用梯度锐化法对所述黑白图进行处理。

在所述方法中,其中:所述步骤s200中所述匹配之前,还包括下述步骤:

对经过步骤s100处理的图像,采用后向映射的方法旋转90度。

在所述方法中,其中:所述深度值通过下式计算:

其中:

f是摄像机的焦距,s是基线,d是参考距离,δx是偏移量,μ为像素大小,dis为深度值。

在所述方法中,其中:所述步骤s300包括下述步骤:

获取步骤s200中深度图像的像素点,获取所述像素点的齐次坐标,利用下述公式获取空间坐标:

pd=dis·ind-1·pd,

其中:

pd=[id,jd,1]t表示深度图像素点的齐次坐标,ind表示深度传感器的内参矩阵,dis表示每个所扫描的物体的点到摄像头之间的距离值,即深度值。

在所述方法中,其中:所述空洞修补采用改进的加权双边滤波。

第三方面,本公开根据上述畸变校正方法,实现了一种畸变校正装置,所述装置包括下述模块:

位移差计算模块,被配置用于:计算畸变校正中的位移差,并将所述位移差存储在外部存储器中;

畸变校正模块,被配置用于:从所述外部存储器中获取所述位移差,并从fpga的存储器中获取实时图像坐标,在fpga平台上进行同步运算,实现畸变校正。

第四方面,本公开根据上述深度感知计算方法,实现了一种深度感知计算装置,所述装置包括下述模块:

预处理模块,被配置用于:计算畸变校正中的位移差,并将所述位移差存储在外部存储器中;从所述外部存储器中获取所述位移差,并从fpga的存储器中获取实时图像坐标,在fpga平台上进行同步运算,实现畸变校正;

匹配模块,被配置用于:将经过预处理模块的图像结合参考图像进行结构光单目匹配,计算深度值,获取深度图像;

三维点云生成模块,被配置用于:将所述深度图像经过后处理后,生成为三维点云。

与现有技术相比,本公开具有下述有益技术效果:

通过采用软件编程语言和硬件描述语言实现图像的畸变校正,在保证图像畸变校正的实时性的同时,对硬件资源的消耗也相对较少,降低硬件设计的复杂度。当采用的软件编程语言计算精度高时,根据这种方法设计的专用asic芯片不仅面积小,而且有利于获得较为准确的图像深度信息。

附图说明

图1是本公开实施例中的畸变校正流程示意图;

图2是本公开实施例的新型鱼眼校正模块框图;

图3(a)和图3(b)是本公开实施例的图像旋转示意图;

图4是本公开实施例的一种深度感知计算装置示意图。

具体实施方式

在一个实施例中,提供了一种畸变校正方法,所述方法的流程示意图如图1所示,包括下述步骤:

s100’、计算畸变校正中的位移差,并将所述位移差存储在外部存储器中;

s200’、从所述外部存储器中获取所述位移差,并从fpga的存储器中获取实时图像坐标,在fpga平台上进行同步运算,实现畸变校正。

优选的,在所述方法中,其中:所述步骤s100’中计算畸变校正中的位移差是通过软件编程语言实现的,所述软件编程语言包括matlab、c、c++、python任一;所述步骤s200’中从所述外部存储器中获取所述位移差是通过硬件描述语言实现的,所述硬件编程语言包括verilog、vhdl任一。

本公开优选采用matlab+fpga的实现图像的畸变校正,比常规的只用fpga硬件实现具有速度快,节省硬件开销,节约成本。其中多项式的运算部分在matlab上实现,图像读取与储存,同步运算部分在硬件描述语言verilog或vhdl上实现。matlab程序烧制在fpga的储存器中,当摄像头采集到的图片送给fpga处理的时候开始运行verilg或vhdl代码,然后verilog或vhdl代码运行到对图像进行鱼眼校正的时候,自动调用matlab代码进行算法,达到图像校正的目的。

在一个实施例中,使用上述方法进行鱼眼校正。常见的鱼眼校正硬件实现方法为基于多项式坐标畸变校正方法,将整个校正过程都在fpga平台上实现。为了保证硬件平台执行校正算法的实时性,提高校正算法执行效率,对主要校正后的像素点坐标计算所涉及到的复杂乘法、除法、加法以及整数转浮点等运算过程调用quartusii中ip核调用,以及对帧图像进行缓存。但由于整个校正过程中,需要对五阶多项式求解,涉及到高精度浮点的乘积运算,对fpga存储资源、运算单元都是极大的负担。将fpga实现的深度计算中涉及多项式计算的部分是通过matlab软件程序来实现,并利用qpiflash的外部存储功能,存储畸变图像坐标与理想图像坐标的位移差值,然后在fpga平台实现其与实时图像坐标同步运算,达到鱼眼畸变校正的目的,由于省略了对五阶多项式函数的求解过程,因此,大大减少fpga运算量以及存储单元的调用,很好的满足硬件处理实时性要求。

在一个实施例中,上述同步运算在fpga平台实现,具体通过调用烧制好的程序,程序再将flash中储存的位移差和实时图像坐标进行同步运算,达到畸变校正的目的。储存只是为程序调用做好准备,储存不等于校正。增加flash是为了储存坐标位移差,而五阶多项式的求解是在matlab程序上进行的,得到的结果就是位移差保存在flash中,从而节省了fpga运算量。matlab程序烧制在fpga的储存器中,比如ddr。当fpga平台进行鱼眼校正的时候,硬件描述语言verilog或vhdl会调用保存在储存器中的matlab代码,进行运算。

在一个实施例中,本公开提供一种深度感知计算方法,所述方法流程图如图2所示,包括下述步骤:

s100、使用上述畸变校正方法进行畸变图像校正;

s200、将经过步骤s100处理的图像结合参考图像进行结构光单目匹配,计算深度值,获取深度图像;

s300、将所述深度图像经过后处理后,生成为三维点云。

在本实施例中,将前述畸变校正方法进一步应用到深度感知计算中。其中,步骤s100相当于深度感知计算中的预处理,优选的,所述预处理还包括将经过鱼眼校正的图像采用平均值法将彩色图像转换为灰度图,然后利用阈值转化算法将灰度图转化为黑白图,接着使用梯度锐化法使图像更加清晰便于分析;而步骤s300中的所述后处理包括对深度图像进行先去噪,再平滑,最后空洞修补。图像去噪是指减少数字图像中噪声,改善图像的质量,为图像平滑处理做好准备。将经过去噪处理的图像进行图像平滑处理。图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法。将经过平滑处理后的图像进行空洞修补,空洞修补利用的基本思想是空间相关性,即利用空洞周围的邻域像素来估计空洞中像素的深度值。无法使用深度相机直接获得空洞的深度信息,但是周围的像素包含深度信息,所以在小的邻域范围深度值连续。因此,深度图周围像素的深度值便可用来估计缺失的深度信息。但是如果用传统的空洞修补方法直接进行邻域估计的话,有可能会发生空洞周围的像素不在同一个物体上的错误估计。本公开优选采用改进的加权双边滤波来估计空洞中的深度值,所述改进的加权双边滤波不仅能填补空洞,而且能对缺失的深度值进行填充。

在所述方法中,其中:所述步骤s200中所述匹配之前,还包括下述步骤:

对经过步骤s100处理的图像,在使用摄像头进行旋转角度进行拍照时,若fpga会接收到图像传感器反馈的一个信号,这时需要进行旋转处理,否则不进行旋转处理。若需要旋转图像,本公开优选采用后向映射的方法旋转90度后,进行匹配计算获得深度信息。在这种情况下,图像旋转的目的是为了更方便的对图像进行读取与储存。例如手机等移动摄像设备经常会旋转拍照,采用图像旋转之后就能方便对各种旋转后的图像进行读取和后期处理。坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种:一种就是计算原图像任意像素在映射后图像的坐标位置;二是计算变换后图像任意像素反映射的坐标位置。有原图像映射到目标图像成为向前映射,反之,由目标图像通过映射关系到原图像成为向后映射。

如图3(a)和图3(b)是图像旋转参考图,一般的图像信息的读取方式为从第一行1,2,3,4开始读取和存储,如图3(a)所示。本发明采用向后映射法(对向前映射而言输出图像某一点的像素值不能直接得到,需要遍历输入图像的所有像素值,对其进行坐标变换,分配像素值到整数位置,才能得到输出图像各像素点的像素值。而对于后向映射,只要知道输出图像上整数点位置(x′,y′)在变换前位于输入图像上的位置(x,y),一般来说这是个非整数点位置,利用其周围整数点位置的输入图像像素值进行插值,就得到了该点的像素值。)对图像进行旋转90度或不旋转方式送给块匹配深度计算模块(结构光单目匹配)获得深度信息。图3(b)是图3(a)经过顺时针旋转90度后图像的读取方式。图像从第一行9,5,1开始读取和储存。

在所述方法中,其中匹配计算通过下式计算深度值:

其中:

f是摄像机的焦距,s是基线,d是参考距离,δx是偏移量,μ为像素大小,dis为深度值。

在所述方法中,其中:所述步骤s300包括下述步骤:

获取步骤s200中深度图像的像素点,获取所述像素点的齐次坐标,利用下述公式获取空间坐标:

pd=dis·ind-1·pd,

其中:

pd=[id,jd,1]t表示深度图像素点的齐次坐标,ind表示深度传感器的内参矩阵,dis表示每个所扫描的物体的点到摄像头之间的距离值,即深度值。

在一个实施例中,本公开根据上述畸变校正方法,实现实现了一种畸变校正装置,所述装置包括下述模块:

位移差计算模块,被配置用于:计算畸变校正中的位移差,并将所述位移差存储在外部存储器中;

畸变校正模块,被配置用于:从所述外部存储器中获取所述位移差,并从fpga的存储器中获取实时图像坐标,在fpga平台上进行同步运算,实现畸变校正。

其中,位移差计算模块,优选通过软件编程语言实现的,所述软件编程语言包括matlab、c、c++、python任一。畸变校正模块,优选通过硬件描述语言实现的,所述硬件编程语言包括verilog、vhdl任一。通过软件和硬件配合实现图像的畸变校正,比常规的只用fpga硬件实现具有速度快,节省硬件开销,节约成本。

在一个实施例中,本公开根据上述深度感知计算方法,实现了一种深度感知计算装置,所述装置如图4所示,包括下述模块:

预处理模块,被配置用于:预处理模块,被配置用于:计算畸变校正中的位移差,并将所述位移差存储在外部存储器中;从所述外部存储器中获取所述位移差,并从fpga的存储器中获取实时图像坐标,在fpga平台上进行同步运算,实现畸变校正;

匹配模块,被配置用于:将经过预处理模块的图像结合参考图像进行结构光单目匹配,计算深度值,获取深度图像;

三维点云生成模块,被配置用于:将所述深度图像经过后处理后,生成为三维点云。

优选的,所述预处理模块还包括将经过鱼眼校正的图像采用平均值法将彩色图像转换为灰度图,然后利用阈值转化算法将灰度图转化为黑白图,接着使用梯度锐化法使图像更加清晰便于分析。

优选的,所述三维点云生成模块中的后处理包括对深度图像进行先去噪,再平滑,最后空洞修补。优选的,所述空洞修补采用改进的加权双边滤波。

优选的,所述匹配模块中,在进行匹配之前,还包括下述操作:对经过预处理模块处理的图像,采用后向映射的方法旋转90度。

优选的,所述匹配模块中,所述深度值通过下式计算:

其中:

f是摄像机的焦距,s是基线,d是参考距离,δx是偏移量,μ为像素大小,dis为深度值。

优选的,所述三维点云生成模块,进一步被配置用于:

获取匹配模块中得到的深度图像的像素点,获取所述像素点的齐次坐标,利用下述公式获取空间坐标:

pd=dis·ind-1·pd,

其中:

pd=[id,jd,1]t表示深度图像素点的齐次坐标,ind表示深度传感器的内参矩阵,dis表示每个所扫描的物体的点到摄像头之间的距离值。

尽管以上结合附图对本发明的实施方案进行了描述,但本发明并不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,这些均属于本发明保护之列。

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