基于FPGA的双目视觉空间深度测量系统设计开题报告

 2023-04-10 08:58:14

1. 研究目的与意义(文献综述包含参考文献)

文 献 综 述

自 20 世纪 70 年代 Marr 首次提出完整的机器视觉系统计算理论框架以来,三维视觉信号备受人们的关注。目前主要应用于四个领域:机器人导航、微操作系统的参数检测、三维测量和虚拟现实。日本东京大学将实时双目立体视觉和机器人整体姿态信息集成,开发了仿真机器人动态行长导航系统,为机器人根据实时情况建立实时地图从而实现障碍物检测。日本冈山大学使用立体显微镜、两个ccd摄像头、微操作器等研制了使用立体显微镜控制微操作器的视觉反馈系统,用于对细胞进行操作,对钟子进行基因注射和微装配等。华盛顿大学与微软公司合作为火星卫星探测者号研制了宽基线立体视觉系统,使探测者号能够在火星上对其即将跨越的几千米内的地形进行精确的定位及导航。

早期的计算机算力不足,立体匹配算法大多采用小窗口的区域匹配,提取的信息也非常简单,多为灰度、颜色等。随着更多先进算法的提出和计算机算力的不断提升,近几年,基于全局的立体匹配算法称为了人们研究的重点。可以提取更加丰富的信息,如:特征值光流场特征、边缘特征、Harris 角点特征等。

平行双目视觉是双目立体配中最常用的模型。设平行放置的左右相机的间距B。点P是现实空间的一个目标点,左右图像的成像点分别为<v:shape style="width: 10.2pt; height: 15.6pt;" id="_x0000_i1026" equationxml='16pl' type="#_x0000_t75"> 和<v:shape style="width: 11.4pt; height: 15.6pt;" id="_x0000_i1027" equationxml='16pr' type="#_x0000_t75"> 。假设左右相机的像平面位于同一平面上,根据图1和公式(1)即可计算出目标点P于相机之间的距离Z的值:

<v:shape style="width: 196.8pt; height: 46.8pt;" id="_x0000_i1028" equationxml='16B-(xl-xr)Z-f=BZ鈬抁=fBxl-xr' type="#_x0000_t75">

公式(1)

图一:视差测距原理

其中<v:shape style="width: 36pt; height: 15.6pt;" id="_x0000_i1029" equationxml='16xl-xr' type="#_x0000_t75"> 定义为视差值。

立体匹配是立体视觉中最困难的一步。客观景物被投影为二维图像时,景物的丰富信息(如光照背景,几何形状,环境特征,畸变等)最终以像素的灰度值反映,立体匹配是典型的视觉计算病态问题,因此对图像无歧义的匹配是相当困难的。在立体匹配视觉系统的原理基础上,根据匹配的约束条件就可以对选定的匹配基元进行匹配。匹配算法是立体匹配技术的核心。常用的算法分为基于区域的立体匹配算法和基于全局的立体匹配算法。

基于区域的立体匹配通常是在一个设定的窗口基础上来完成,以窗口中提取的特征向量为基础进行匹配。对于窗口来说,窗口越大信息量越多,匹配精度越高,但会带来大量的复杂计算,影响整体算法的运行速度。常用的方法有取绝对差值和 SAD、差值平方和 SSD、归一化相关系数 NCC、零均值绝对差值和 ZSAD 等匹配函数,详见公式(2):

<v:shape style="width: 330.6pt; height: 46.8pt;" id="_x0000_i1030" equationxml='16SAD=i=nu"/>j=m|I1(u i,v j)-I2(u d i,v j)|' type="#_x0000_t75">

<v:shape style="width: 336pt; height: 46.8pt;" id="_x0000_i1031" equationxml='16SSD=i=nj=m(I1(u i,v j)-I2(u d i,v j))2' type="#_x0000_t75">

<v:shape style="width: 394.8pt; height: 46.8pt;" id="_x0000_i1032" equationxml='16NCC=i=nM><j=mI1(u i,v j)I2(u d i,v j)<m:sluprHialw="r1"o/nt>i=n<wa:rFaont"s wj=mI1(u i,v j)2<wwx:focnt wi=n<w/><w:rsz w::val="pj=mI2(u d i,v j)2' type="#_x0000_t75">

<v:shape style="width: 344.4pt; height: 46.8pt;" id="_x0000_i1033" equationxml='16ZSAD=i=ngv<j=m|I1(u i,v j)-I1|-|I2(u d i,v j)-I2|' type="#_x0000_t75">

公式(2)

Census变换是基于区域的立体匹配另一种算法,常用来处理受光照变化影响严重的图像,原理是以图像中的一点为中心划出一个的矩形,矩形中除中心点之外的每一点都与中心点进行比较,灰度值小于中心点记为1,灰度大于中心点的则记为0,得到只有0和1的序列作为该中心点的census序列,即中心像素的灰度值被census 序列替换。经过census变换后的图像通过异或得到所需要的汉明值作为两幅图像相似度的衡量标准,汉明距越小即相似度越高。

基于全局的立体匹配则是在牺牲了计算速度的前提下提高了立体匹配的精度。匹配的方法为找出图像中显著的特征点、特征线或者扫描线,初步匹配得出一个初始的视差值,然后使用全局能量函数进行约束,通过匹配算法不断地对分配的视差值迭代优化,直到最优。此迭代优化的过程以全局能量函数最小化为目的。全局能量函数一般包括 2 项,数据项和平滑项,见公式(3):

<v:shape style="width: 154.2pt; height: 15.6pt;" id="_x0000_i1034" equationxml='16E(f)=Esmooth(f) Edata(f)' type="#_x0000_t75">

公式(3)

动态规划是常用的基于全局的匹配方法,主要分为三步:初始化,循环求解,返回视差值。另外需要注意的是动态规划仅是一种优化算法,直接使用其进行匹配会耗费大量的运行时间,其迭代要达到一定次数才会有较好的效果,因此这种算法一般和其他匹配算法联合使用。

相较于动态匹配,图像分割是一种既可以达到全局算法的精确匹配,又可以保存原图像的结构信息的算法。它根据图像的自身结构特性,将图像分为不同的区域,而后将这些区域的立体匹配问题转换为能量函数的最小化问题。图像分割法的目的是根据图像特征划分得到一个分割的块集合,而后对这些块分别进行优化计算视 差,最大限度地保留图像的结构信息,目前的算法主要分为以下几类:① 以像素为基准的分割法,不考虑图像的空间构架,只以像素点的颜色特征等来划分图像; ② 以区域为基准的分割法,以图像中区域块的连通特性为约束,使用区域生长、分裂和聚合技术实现; ③ 以边界为基准,依靠测定出的边缘划分图像; ④ 以模型为基准,大多为马尔科夫( Markov)随机场或吉布斯( Gibbs) 随机场等空间交互模型来对图像建模。然而当深度信息与颜色,边缘等信息无关的时候,匹配效果就会大打折扣。

由于传统的CPU是一种通用的架构,它的工作基于一系列的计算机指令集,CPU从内存中提取一小部分数据,放在寄存器或者缓存中,然后使用一系列指令对这些数据进行操作。操作完毕后,将数据写回内存,提取另一小部分数据,再用指令进行操作,并周而复始。当数据集太大的时候,CPU不能高效的应对这种情况,很多视觉的算法由于计算量太大在传统架构的CPU上面运行,不能达到实时性的要求。以Canny边缘检测算法为例,通过Python或C 调用Opencv的算法,往往每秒只能处理一帧图像,遇到复杂的环境,往往需要更长的时间来处理,不能满足实时性的要求。

近年来,硬件技术的飞速发展使得这种复杂匹配方法的实时性成为可能,许多在传统计算机上不能保证实时性的算法,在FPGA等硬件加速平台上,都可以很好的实现。同样是上述的Canny边缘检测算法,在PYNQ平台上面能达到每秒30帧,甚至更高的流畅度,而且功耗远低于传统架构的CPU。

在本设计中,拟通过将软件算法通过Verilog编写成为可供调用的软核模块,通过Vivado工具提供的Block Design方法设计专供算法运行的硬件电路(Overlay)。

PYNQ通过运行在PS端的Python程序调用PL端所设计的各种IP核,承担两者之间接口的就是Overlay。Overlay由硬件设计人员设计完成,并通过PYNQ Python API进行包装,其中包括以下三部分:

1) 用于FPGA配置的位流;

2) 用于确定可用IP的tcl文件;

3) 用于调用IP的Python API。

Overlay通过Vivado工具的block design设计方法创建,在设计完成后,将综合成功后得bit文件和tcl文件导入PYNQ系统中jupyter notebook所在文件夹下即可完成导入。PYNQ使用Python作为开发语言,上手快,开发相较于传统的Verilog等硬件描述语言来说更为快速。

参考文献:

[1]李聪利,徐善军,任书楠,李崧,刘胜军.基于双目视觉的电力机器人三维定位方法[J].制造业自动化,2021,43(10):138-143.

[2]赵冬青,畅雅雯,单彦虎,张未然.双目测量系统的室内定位与重建[J/OL].激光杂志:1-5[2021-12-28].http://kns.cnki.net/kcms/detail/50.1085.TN.20211112.1421.010.html.

[3]潘海鸿,杨竑宇,田硕,梁旭斌,陈琳.基于双目视觉的机器人快速示教系统[J].组合机床与自动化加工技术,2021(10):120-123 128.DOI:10.13462/j.cnki.mmtamt.2021.10.027.

[4]郑如新,孙青云,肖国栋.基于机器视觉的工件尺寸测量研究[J].电子测量技术,2021,44(16):110-115.DOI:10.19651/j.cnki.emt.2107065.

[5]常子霆,施雨晴,王俊,于明鹤,姚兰,赵志滨.基于双目视觉的车辆速度测量方法[J].计算机科学,2021,48(09):135-139.

[6]成怡,郑腾龙.深度学习的无人机双目视觉避障研究[J].电光与控制,2021,28(10):31-35.

[7]杨春雨,顾振,张鑫,周林娜.基于深度学习的带式输送机煤流量双目视觉测量[J].仪器仪表学报,2021,41(08):164-174.DOI:10.19650/j.cnki.cjsi.J2107842.

[8]朱建鸿,王曹松,高美凤.一种改进的Census变换和自适应窗口的匹配算法[J].激光与光电子学进展,2021,58(12):427-434.

[9]陈炎,杨丽丽,王振鹏.双目视觉的匹配算法综述[J].图学学报,2020,41(05):702-708.

[10]高智伟,谭晓东,刘客.基于双目视觉的物体识别定位与抓取[J].科学技术与工程,2020,20(20):8285-8291.

[11]赵晨园,李文新,张庆熙.双目视觉的立体匹配算法研究进展[J].计算机科学与探索,2020,14(07):1104-1113.

[12]王荣本,张明恒,石德乐.双目视觉技术在目标测量中的应用[J].公路交通科技,2007(02):122-125 134.

[13]陈明明,祝永新,田犁,封松林,汪辉.基于FPGA的双目实时测距算法设计[J].微电子学与计算机,2018,35(10):67-71.DOI:10.19304/j.cnki.issn1000-7180.2018.10.013.

[14]张方义,赵刚,刘海英,卢兴华,于志豪.基于FPGA的车载双目系统[J].计算机工程与设计,2019,40(10):2805-2812 2854.DOI:10.16208/j.issn1000-7024.2019.10.013.

[15]Shi Wenxiong,Zhang Qi,Xie Huimin,He Wei. A Binocular Vision-Based 3D Sampling Moir Method for Complex Shape Measurement[J]. Applied Sciences,2021,11(11).

2. 研究的基本内容、问题解决措施及方案

本设计的主要内容为利用FPGA的硬件加速能力提高双目立体匹配系统的运行速度,从而提高系统的可用性,实时的展示双目摄像头所探测到的空间深度信息。

本设计旨在于利用FPGA在高性能计算领域的优势,将双目视觉中中设计大量计算的部分集中PL端解决,提高运算速度。同时利用PYNQ的特点,将相关的调用操作集中在PS端,减少逻辑相关的设计的复杂度,在提高双目视觉系统的实时性的同时,降低设计难度。拟采用的框图如下:

双目视觉框图

算法流程图如下:

设计主要的问题在于领用FPGA的硬件资源实现立体匹配的相关算法,其中最重要的模块就是立体匹配模块。

相机标定利用Matlab采用张正友标定法对所采用的双目摄像头进行标定,得到相应的相机数据;采用Xilinx提供的Zynq7 Processing System IP核作为主控;相机输入模块拟采用USB免驱的双目摄像头,减少开发时间;利用Opencv立体校正函数完成立体匹配前的矫正工作;利用Verilog实现立体匹配的IP核,对经过立体校正后的视频流进行匹配;将得到的匹配数据利用HDMI显示器进行显示。

USB摄像头连接在PYNQ的PS端,摄像头读取到的视频信号与控制信号经过校正后通过VDMA IP核写入PL端。PL端接收视频信号后将AXI-Stream流信号转换位DVI格式后进行左右目图像分割,并进行立体匹配。匹配后得到的深度信息通过HDMI显示器输出显示。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文开题报告,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。