本发明涉及图像处理技术领域,尤其是一种基于神经网络的环视立体视觉匹配系统、方法及存储介质。
背景技术:
深度信息是计算机视觉领域最终要的信息之一,目前用于获取深度信息的技术主要有激光雷达、结构光、tof和立体视觉。这几种技术中激光雷达获得的深度信息准确度最高,但是激光雷达价格非常昂贵,深度稀疏,没有视觉信息,并且体积大,重量重,功耗高,因此无法部署到无人机、机器人等无人系统上;结构光和tof技术在室内使用时易受到外界光线的影响,而在室外使用时,精度很低,同时距离短,成本也比较高。
虽然立体视觉系统能够提供一个比较折中的方案,尤其是基于在深度学习的立体估计提出后,立体视觉系统获得的深度信息精度获得了大幅提升。但传统的立体视觉系统是基于双目视觉的,而双目视觉只能获取单一方向的深度信息,由于无人车、无人机和智能机器人等智能实体的运动自由度比较大,单一方向深度信息无法很好的进行自主避障、自主导航等决策,单一深度信息已无法满足无人系统的应用场景需求。
技术实现要素:
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于神经网络的环视立体视觉匹配系统、方法及存储介质。
本发明所采取的技术方案是:
一方面,本发明实施例包括一种基于神经网络的环视立体视觉匹配系统,包括:
特征提取模块,用于利用二值神经网络对多幅原始图像进行特征提取,得到多幅第一图像;
立体匹配模块,用于对多幅所述第一图像的像素点进行立体匹配,得到多幅第二图像;
处理模块,用于对多幅所述第二图像进行一致性检测处理和中值滤波处理得到多幅深度图;
拼接模块,用于对多幅所述深度图进行拼接,得到环视深度图。
进一步地,所述特征提取模块包括:
转换单元,用于将深度学习的神经网络二值化,转换得到二值神经网络;
提取单元,用于通过所述二值神经网络对多幅原始图像进行特征提取。
进一步地,所述立体匹配模块包括:
第一计算单元,用于根据第一公式计算得出匹配代价,所述第一公式为:
第二计算单元,用于根据第二公式计算得出聚合代价,所述第二公式为:cagg(p,d)=∑q∈sr(p)cbnn(q,d),式中,cagg(p,d)表示聚合代价,p和q表示像素点,d表示搜索视差,sr(p)表示聚合区域;
第三计算单元,用于根据第三公式计算得到匹配成本,所述第三公式为:
第四计算单元,用于根据第四公式计算得到总代价成本,所述第四公式为:cf(p,d)=∑rcr(p,d),式中,cf(p,d)表示总代价成本;
第五计算单元,用于根据第五公式计算得到视差值,所述第五公式为:
匹配单元,用于根据所述视差值,对左边图像的像素点和右边图像的像素点进行匹配。
进一步地,所述处理模块包括:
第一处理单元,用于对多幅所述第二图像进行一致性检测处理;
第二处理单元,用于使用视差图对多幅所述第二图像进行中值滤波处理。
进一步地,所述拼接模块包括:
转换单元,用于通过第六公式,将所述视差值转换成深度值,所述第六公式为:
拼接单元,用于根据所述深度值,对多幅所述深度图进行拼接得到环视深度图。
另一方面,本发明实施例还包括一种基于神经网络的环视立体视觉匹配方法,包括:
利用二值神经网络对多幅原始图像进行特征提取,得到多幅第一图像;
对多幅所述第一图像的像素点进行立体匹配,得到多幅第二图像;
对多幅所述第二图像进行一致性检测处理和中值滤波处理得到多幅深度图;
对多幅所述深度图进行拼接,得到环视深度图。
进一步地,所述利用二值神经网络对多幅原始图像进行特征提取,得到多幅第一图像这一步骤,具体包括:
将深度学习的神经网络二值化,转换得到二值神经网络;
通过所述二值神经网络对多幅原始图像进行特征提取,得到多幅第一图像。
进一步地,所述对多幅所述第一图像的像素点进行立体匹配,得到多幅第二图像这一步骤,具体包括:
根据第一公式计算得出匹配代价,所述第一公式为:
根据第二公式计算得出聚合代价,所述第二公式为:cagg(p,d)=∑q∈sr(p)cbnn(q,d),式中,cagg(p,d)表示聚合代价,p和q表示像素点,d表示搜索视差,sr(p)表示聚合区域;
根据第三公式计算得到匹配成本,所述第三公式为:
根据第四公式计算得到总代价成本,所述第四公式为:cf(p,d)=∑rcr(p,d),式中,cf(p,d)表示总代价成本;
根据第五公式计算得到视差值,所述第五公式为:
根据所述视差值,对左边图像的像素点和右边图像的像素点进行匹配,得到多幅第二图像。
进一步地,所述对多幅所述第二图像进行一致性检测处理和中值滤波处理得到多幅深度图这一步骤,具体包括:
对多幅所述第二图像进行一致性检测处理;
使用视差图对多幅所述第二图像进行中值滤波处理。
另一方面,本发明实施例还包括计算机可读存储介质,其上存储有处理器可执行的程序,所述处理器可执行的程序在被处理器执行时用于实现所述基于神经网络的环视立体视觉匹配的方法。
本发明的有益效果是:
本发明提出一种基于fpga的实时环视立体视觉系统,解决单一方向深度信息应用场景有限的问题;通过获取多个方向的环视深度信息,可以很好地用于无人系统自动避障、自主导航决策,提升了无人机、无人车等无人系统的自由度,拓展了无人系统的应用场景,同时,使用神经网络进行特征提取,具有高精度的优点,可以应用于高实时性和高精度要求的应用场景中;此外,相比于激光雷达、结构光、tof等技术而言,本发明成本低廉,易于大规模推广。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所述基于神经网络的环视立体视觉匹配系统的框架示意图;
图2为本发明实施例所述环视立体框架的设计图;
图3为本发明实施例所述基于神经网络的环视立体视觉匹配系统的流程图;
图4为本发明实施例所述基于神经网络的环视立体视觉匹配方法的步骤流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
下面结合附图,对本申请实施例作进一步阐述。
首先,参照图1,对本发明实施例的基于神经网络的环视立体视觉匹配系统结构进行说明,所述系统结构主要包括专用的环视立体框架、十个相机、xilinxzynq-7100核心板、核心板底板以及pc端五个部分;十个相机构成五个双目系统,分别采集五个方向的视觉信息,采集的图片存在fpga的ps端,然后pl端从ps端读入图片进行处理,整个系统的处理模块都使用veriloghdl编写,并部署在pl端,ps端主要用于实现一些标准的网络接口,与其他设备进行通信,pc端主要用于深度信息的展示;pc端一般为电脑端,而ps端指的是processingsystem,可以是一个基于双armcortexa9内核的处理系统,其中集成了内存存储器和外部存储器接口,大量的外设:gpio、uart、sd/sdio、iic、spi、以太网、can等等接口;pl端指的是programmablelogic,可以是基于xilinx7系列架构的可编程逻辑单元,通过pl端可以为arm定制很多外设。
其次,参考图2,对本发明实施例的环视立体视觉框架的设计进行说明,本发明实施例中,可使用solidworks设计由图2所示的设计图,设计的框架主要是核心板以及十目相机的载体,同时,设计可利用3d打印机打印成型,该环视立体视觉框架具有三大特点,首先,我们采用正五边形设计,以此确保五个方向的双目相机具有相同的视角;其次,为每个镜头都设计了专门的支架,从而确保镜头保持稳固,防止变形和损坏,使系统一直有稳定的输出;最后为底座预留了底板固定位置,可以随时移植到其他系统,避免多次打孔,造成系统的不稳定。
参照图3,本发明实施例提出一种基于神经网络的环视立体视觉匹配系统,包括:
特征提取模块,用于利用二值神经网络对多幅原始图像进行特征提取,得到多幅第一图像;
立体匹配模块,用于对多幅所述第一图像的像素点进行立体匹配,得到多幅第二图像;
处理模块,用于对多幅所述第二图像进行一致性检测处理和中值滤波处理得到多幅深度图;
拼接模块,用于对多幅所述深度图进行拼接,得到环视深度图。
本实施例中,五路深度信息都是从一块fpga开发板上得到,整个系统采用分时复用的方法,极大的节省了系统资源。
具体地,所述特征提取模块包括:
转换单元,用于将深度学习的神经网络二值化,转换得到二值神经网络;
提取单元,用于通过所述二值神经网络对多幅原始图像进行特征提取。
本实施例中,利用二值神经网络(bnn)对图片进行特征提取,基于深度学习的特征提取方法可以大幅提高立体匹配的精度,但是深度学习中的浮点计算对于硬件处理很不友好,因此本发明实施例将深度学习的神经网络二值化得到二值神经网络(bnn),计算过程可以很好的放到硬件上,从而能够实现实时性的同时,提高深度信息的精度。
具体地,所述立体匹配模块包括:
第一计算单元,用于根据第一公式计算得出匹配代价,所述第一公式为:
第二计算单元,用于根据第二公式计算得出聚合代价,所述第二公式为:cagg(p,d)=∑q∈sr(p)cbnn(q,d),式中,cagg(p,d)表示聚合代价,p和q表示像素点,d表示搜索视差,sr(p)表示聚合区域;
第三计算单元,用于根据第三公式计算得到匹配成本,所述第三公式为:
第四计算单元,用于根据第四公式计算得到总代价成本,所述第四公式为:cf(p,d)=∑rcr(p,d),式中,cf(p,d)表示总代价成本;
第五计算单元,用于根据第五公式计算得到视差值,所述第五公式为:
匹配单元,用于根据所述视差值,对左边图像的像素点和右边图像的像素点进行匹配。
本实施例中,在特征提取模块提取左右图像的特征后,对左右图像的像素点进行匹配,左图中的像素点p1(x,y)将在右图像素点pr(x,y-d)到pr(x,y)范围中进行匹配,其中d∈{0,1,…,dmax},dmax为预设的最大搜索视差,cbnn(p,d)表示匹配的代价,根据
之后,根据cagg(p,d)=∑q∈sr(p)cbnn(q,d)公式(2)计算聚合区域的聚合代价,式中,cagg(p,d)表示聚合代价,p和q表示像素点,d表示搜索视差,sr(p)表示聚合区域;
为了优化匹配代价,本发明实施例使用半全局立体匹配算法(sgm)分别对局部聚合匹配代价沿不同方向进行平滑约束,对于r方向,根据
最终的总代价成本是各个方向的代价成本之和,可根据cf(p,d)=∑rcr(p,d)公式(4)计算得到,式中,cf(p,d)表示总代价成本。
最后根据
具体地,所述处理模块包括:
第一处理单元,用于对多幅所述第二图像进行一致性检测处理;
第二处理单元,用于使用视差图对多幅所述第二图像进行中值滤波处理。
本实施例中,处理模块通过左右一致性检测,可剔除视差值中的一些无效点,如遮挡点和误匹配点,提升视差值的精度,同时使用5x5的窗对视差图进行中值滤波处理。
具体地,所述拼接模块包括:
转换单元,用于通过第六公式,将所述视差值转换成深度值,所述第六公式为:
拼接单元,用于根据所述深度值,对多幅所述深度图进行拼接得到环视深度图。
本实施例中,根据
综上所述,本实施例中所述的基于神经网络的环视立体视觉匹配系统具有以下优点:
本发明实施例通过五个方向的环视深度信息,可以很好的用于无人系统自动避障、自主导航决策,提升了无人机、无人车等无人系统的自由度,拓展了无人系统的应用场景,同时,整个系统采用硬件友好设计,可以轻松的部署在硬件系统中,提升了系统的处理速度。此外,使用神经网络进行特征提取,具有高精度的优点,所述系统可以应用于高实时性和高精度要求的应用场景中。另一方面,本发明实施例所述系统相比于激光雷达、结构光、tof等技术而言,成本低廉,易于大规模推广。
参照图4,本发明实施例还提供一种基于神经网络的环视立体视觉匹配方法,包括但不限于以下步骤:
s1.利用二值神经网络对多幅原始图像进行特征提取,得到多幅第一图像;
s2.对多幅所述第一图像的像素点进行立体匹配,得到多幅第二图像;
s3.对多幅所述第二图像进行一致性检测处理和中值滤波处理得到多幅深度图;
s4.对多幅所述深度图进行拼接,得到环视深度图。
关于步骤s1,也就是所述利用二值神经网络对多幅原始图像进行特征提取,得到多幅第一图像这一步骤,具体包括:
s101.将深度学习的神经网络二值化,转换得到二值神经网络;
s102.通过所述二值神经网络对多幅原始图像进行特征提取,得到多幅第一图像。
关于步骤s2,也就是所述对多幅所述第一图像的像素点进行立体匹配,得到多幅第二图像这一步骤,具体包括:
s201.根据第一公式计算得出匹配代价,所述第一公式为:
s202.根据第二公式计算得出聚合代价,所述第二公式为:
s203.根据第三公式计算得到匹配成本,所述第三公式为:
s204.根据第四公式计算得到总代价成本,所述第四公式为:cf(p,d)=∑rcr(p,d),式中,cf(p,d)表示总代价成本;
s205.根据第五公式计算得到视差值,所述第五公式为:
s206.根据所述视差值,对左边图像的像素点和右边图像的像素点进行匹配,得到多幅第二图像。
关于步骤s3,也就是所述对多幅所述第二图像进行一致性检测处理和中值滤波处理得到多幅深度图这一步骤,具体包括:
s301.对多幅所述第二图像进行一致性检测处理;
s302.使用视差图对多幅所述第二图像进行中值滤波处理。
关于步骤s4,也就是所述对多幅所述深度图进行拼接,得到环视深度图这一步骤,具体包括:
s401.通过第六公式,将所述视差值转换成深度值,所述第六公式为:
s402.拼接单元,用于根据所述深度值,对多幅所述深度图进行拼接得到环视深度图。
综上所述,本实施例中所述的基于神经网络的环视立体视觉匹配方法具有以下优点:
本发明实施例通过五个方向的环视深度信息,可以很好的用于无人系统自动避障、自主导航决策,提升了无人机、无人车等无人系统的自由度,拓展了无人系统的应用场景,同时,整个系统采用硬件友好设计,可以轻松的部署在硬件系统中,提升了系统的处理速度。此外,使用神经网络进行特征提取,具有高精度的优点,所述系统可以应用于高实时性和高精度要求的应用场景中。另一方面,本发明实施例所述系统相比于激光雷达、结构光、tof等技术而言,成本低廉,易于大规模推广。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有处理器可执行的程序,所述处理器可执行的程序在被处理器执行时用于实现如图4所示的方法。
本申请实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图4所示的方法。
可以理解的是,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。