logo资料库

基于双目视觉的三维重构算法实现_王媛媛.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
631 传感器与微系统( Transducer and Microsystem Technologies) 2018 年 第 37 卷 第 4 期 DOI: 10.13873 / J.1000—9787( 2018) 04—0136—03 基于双目视觉的三维重构算法实现 王媛媛,刘学成,伍凤娟 ( 西安科技大学 电气与控制工程学院,陕西 西安 710054) 摘 要: 基于 Altera DE1 SOC 开发平台,选用 OV7725 互补金属氧化物半导体( CMOS) 摄像头组进行图像 采集,经现场可编程门阵列( FPGA) 预处理后由视频图形阵列( VGA) 显示器显示。基于双目视觉的三维 场景重构算法包含图像预处理、多线程加速立体匹配以及 AD-Census 匹配,采用了 Verilog HDL 和统一计 算设备架构( CUDA) 编程实现。实验结果表明: 系统实现了以 7 帧 / s 速度计算 640 像素×480 像素大小的 深度图; 并且可以将以 1.8°为间隔的 150 幅深度图转换为点云,重构出 270°左右视野内的三维场景。 关键词: 双目视觉; AD-Census 算法; 重构; 三维场景 中图分类号: TP 391.9 文献标识码: A 文章编号: 1000—9787( 2018) 04—0136—03 Implementation of 3D reconstruction algorithm based on binocular vision WANG Yuan-yuan,LIU Xue-cheng,WU Feng-juan ( College of Electrical and Control Engineering,Xi’an University of Science and Technology,Xi’an 710054,China ) Abstract: A system based on Altera DE1 SOC,which uses the OV7725 complementary metal oxide semiconductors( CMOS) camera group to collect images,and images are displayed by video graphics array( VGA) after field programmable gate array ( FPGA) preprocessing . The reconstruction algorithm of binocular vision 3D scene includes image preprocessing,multi-thread acceleration stereo matching and AD-Census matching. The algorithm is programmed with Verilog HDL and compute unified device architecture( CUDA) .Experimental results show that the system calculating a depth map with 640×480 size is achieved at speed of 7 frames per second,and 150 depth maps at 1. 8° intervals can be converted into point clouds,3D scenes in about 270° of view is reconstructed. Keywords: binocular vision; AD-Census algorithm; reconstruction; 3D scene 0 引 言 中能够成倍提升执行效率[1,2]。 目前,国内外主要的三维( 3D) 图像数据采集技术有空 本文主要针对双目视觉中的摄像机标定方法、立体匹 间结构光编码技术、飞行时间( time of flight,TOF) 法和双目 配算法以及三维重构算法进行研究,并利用 FPGA 作为计 视觉法 3 种。其中,双目视觉具有适应室内和室外,不怕阳 算平台,实现了场景深度信息的获取,具有很好的三维显示 光干扰,适应远距离采集景深数据等优点,但因计算量大, 效果。 限制了其在低计算能力、低功耗和高实时性场合的应用。 1 双目视觉与三维重构算法原理 近年来,国内外已提出了一些优化的双目视觉实现方法,大 双目视觉技术模拟人眼视觉系统,依据计算机视觉相 多基 于 高 性 能 数 字 信 号 处 理 器 ( digital signal processor, 关的理论和技术,利用双目摄像头采集同一场景不同位置 DSP) 、多核中央处理单元 ( central processing unit,CPU) 并 的左右路图像,对场景进行三维重建[3,4]。1) 由于摄像头 行或者直接进行显卡编程用统一计算设备架构 ( compute 存在加工误差,使得原始图像存在微小畸变,因此,需要对 unified device architecture,CUDA) 进行加速。随着电子技术 图像采用畸变校正和极线校正补偿硬件误差预处理,以及 的发展,现场可编程门阵列( field programmable gate array, 标定摄像机。标定 方 法 采 用 双 目 图 像 预 处 理 算 法 实 现。 FPGA) 在数字信号处理领域应用愈加广泛,其设计的灵活 2) 当要对两相机图像重叠部分的每个像素点均给出一个 性和可并行执行性,使得经过并行优化的算法应用于FPGA 视差和距离时,难以确定两相机图像上实际场景中的某个 收稿日期: 2018—01—16
第 4 期 王媛媛,等: 基于双目视觉的三维重构算法实现 731 点在相机传感器上的投影所对应的像素,故需进行立体匹 双目摄像头使用了 2 个 OV7725 CMOS 摄像头,左右平行放 配。在求得匹配像素后即可计算视差,结合双目的外参即 置,摄像头板通过 40Pin 柔性印刷电路板 ( flexible printed 可对图像中的像素点进行距离计算。 circuit,FPC) 排线与 FPGA 开发板连接,摄像头板的电源由 1.1 图像预处理原理 FPGA 开发板的 5V 输出提供。摄像头分辨率为 640 像素× 双目视觉系统图像预处理部分有 2 个作用: 去除图像 480 像素( 约 30 万 像 素) ,中 心 距 为 7. 0 cm,输 出 格 式 为 噪声; 校正图像畸变。去噪采用中值滤波算法实现; 校正的 RGB565,位宽为 8 bit。在 FPGA 开发板上使用硬件编程语 处理实现单相机的畸变校正和双目整体的水平对齐校正, 言实现图像预处理,在下位机上使用 C 语言实现立体匹配 为保证实时性同时减少资源占用,具体实现时两个校正处 算法及点云处理。 理由一个模块实现[5]。 1) 中值滤波原理 2.1 基于 FPGA 平台的图像预处理模块实现 2.1.1 中值滤波算法的实现 中值滤波即将目标像素点与其周围相邻的 8 个像素以 采用 FPGA 实现中值滤波,最关键的就是实现 3× 3 单 亮度为依据排序,取序号为 5 的像素亮度值替换原目标像 元的排序操作。但在排序寻找中值之前,要先获得 3× 3 的 素点的亮度值,及对图像平滑处理,去除像素点原本的极大 像素块。由于所用的 CMOS 摄像头一次只输出一个像素的 或极小值。中值滤波有利于降低暗环境下摄像头自动亮度 RGB 值且每一行从左到右,在列数上从上到下输出。其仿 增益功能产生的白噪声或椒盐噪声。 真模块如图 1 所示。要想构造 3× 3 的像素块,则必须将前 2) 双目畸变校正和极线校正 两列的像素进行缓存。设计采用了 2 行 Shift-RAM IP 核实 使用 OpenCV 进行单目相机标定,计算出相机内参数: 现,每个 Shift-RAM 的缓存深度均为 1 行的像素数,即 640。 内参矩阵( fx ,fy ,u0 ,v0 ) 和畸变系数。校正径向畸变和切向 畸变公式为      x' = x 1+k1 r2 +k2 r4 +k3 r6 1+k4 r2 +k5 r4 +k6 r6 y' = y 1+k1 r2 +k2 r4 +k3 r6 1+k4 r2 +k5 r4 +k6 r6 r2 = x2 +y2 +2p1 x'y'+p2( r2 +2x' 2 ) , +2p2 x'y'+p1( r2 +2y' 2 ) ( 1) 式中 k1 ~ k6 为一到六阶径向畸变系数,实际情况下取前 三阶即可满足校正要求; p1 和 p2 为切向畸变系数。 双目极线校正又称平行校正,主要用于将相机左右光 轴完全平行和左右视图的水平对齐处理。已知 OpenCV 立 体校正后会输出一个投影矩阵 Pl 、Pr 和旋转矩阵 Rl 、Rr ,旋 转矩阵可以使两幅图像满足极线约束,而投影矩阵可以使 两个平面映射到同一平面上[6]。 1.2 AD-Census 立体匹配算法原理 AD-Census 算法来源于 SAD 和 Census 2 种算法的结 合,在 SAD 和 Census 算法分别实现之后,将两者结合仅需 要在 2 种算法的代价聚合一步将两者单独的代价换为 2 个 算法加权求和后的共同匹配代价[7 ~ 10] C( p,d) = λCensus CCensus( p,d) +λAD CAD( p,d) ( 2) 1.3 三维重构中的点云处理原理 为减少计算量同时也增加后期三维点云的准确性,图 像三维点云处理中需要剔除错误点云。在已知图像点云距 离范围时,可以简单排除掉超出范围的点云,还可以使用滤 波等算法剔除掉错误点云[11,12]。 2 双目视觉三维重构算法实现 验证系统硬件包含摄像头、FPGA 开发以及 下位机。 图 1 中值滤波模块仿真波形 图 2 实际拍摄效果 图 2 为单独使用 FPGA 实现双摄像头采集图像在液晶 屏上的显示效果。可以看出: 加上中值滤波算法的图像较 未加中值滤波的图像清晰度更高,噪声更小。 2.1.2 双目校正模块整体实现 采用投影矩阵的参数对原始坐标进行第一次变换,将 原始坐标转换到以投影矩阵中焦点坐标为原点的坐标; 第 二次变换将像素点映射到三维空间并进行旋转; 第三次变 换对径向畸变校正( 校正的畸变参数中切向畸变参数为 0, 故不进行切向畸变校正) ; 采用原始的相机内参矩阵将坐 标映射到原图的像素坐标,分别用两个与原图同尺寸的矩 阵存储用于重映射的坐标。即可通过重映射等操作由原图 生成校正后的图像。 本文采用实时计算重映射坐标值,将基于 ROM 的坐 标读取改为基于重映射坐标计算模块的坐标发生,具体方 法如图 3 所示,可以实现较少的资源占用,图 4 为双目校正
831 前后效果。 传 感 器 与 微 系 统 第 37 卷 library,PCL) 中提供了点云的一些基本处理方法,可以比较 容易 地 实 现 三 维 点 云 地 处 理,PCL 中 的 Statistical Outlier Removal 函数可以移除点云中的离群点,使用 VoxelGrid 体 素格滤波器可以将一个立方体格内的点云合为一个点[13]。 图 6 为点云滤波与下采样效果,可见: 经过滤波后,点云的 形态可以保留但点数大幅减少,为后期形态上的处理、拼接 等操作提供了更多的方便。 图 3 双目校正模块框图 图 4 双目校正前后效果对比 2.2 AD-Census 算法实现 通过 C++编程配合 OpenMP 并行库实现 AD-Census 算 法,在下位机上处理。图 5 为设计的双目深度摄像头实际 效果。可知: 对挡板、黑色衣物等无法计算出有效的深度信 息,而对于纹理较明显的桌椅边缘等区域有明显的视差数 据。该视差图效果不佳的原因主要有 2 点: 1) AD-Census 图 6 点云滤波与下采样效果 3 结 论 本文主要 以 FPGA 开发板和下位 机 为 硬 件 平 台,用 Verilog HDL 实现双目图像预处理算法,下位机 CUDA 编程 实现立体匹配和点云处理算法。论述了双目系统相关理论 原理、双目图像预处理模块基于 FPGA 平台的设计实现、 AD-Census 算法的原理以及点云的三维滤波、多点云拼接 相关原理和实现方法。最终可以实现以 7 帧 / s 的速度计 算 640×480 大小的深度图,经过上位机进一步处理,可以将 270°范围内以 1.8° 为间隔的 150 幅深度图转换为点云,并 拼接出 270°左右视野内的三维场景。 中,对于不同分辨率的相机、不同距离的目标物要达到较好 参考文献: 的视差效果均需要调试参数。如 SAD 窗口大小,滑动窗搜 索的范围以及代价聚合时 SAD 和 Census 的权重; 2) 摄像 头本身质量一般,即便经过校正仍存在轻微的以图像中心 [1] Smisek J,Jancosek M,Pajdla T.3D with Kinect[J]. Advances in Computer Vision & Pattern Recognition,2013,21 ( 5 ) : 1154 - 1160. [2] 王文强.基于 FPGA 的双目视觉系统研究[D]. 北京: 清华大 为圆心的椭圆形光晕。 学,2015: 12-30. 图 5 AD-Census 算法实际效果 2.3 点云处理相关算法 [3] 张永平.嵌入式双目视觉系统和三维重建技术研究[D]. 杭 州: 杭州电子科技大学,2011: 10-25. [4] 王 欣,袁 坤,于 晓,等. 基于运动恢复的双目视觉三维 重建系统设计[J].光学精密工程,2014,22( 5) : 1380-1386. [5] 布拉德斯基,克 勤.学习 OpenCV: 中文版[M].于仕琪,刘瑞 祯,译.北京: 清华大学出版社,2009: 10-25. [6] 姜宏志,赵慧洁,梁宵月,等. 基于极线校正的快速相位立体 匹配[J].光学精密工程,2011,19( 10) : 2520-2525. 通过 AD-Census 计算之后可以得到一幅深度为 16 位 [7] Isakova N,Basak S,Snmez A C. FPGA design and implementa- 的视差图,视差值与实际场景中的像素点和摄像头的距离 tion of a real-time stereo vision system[C]∥International Sympo- 相对应,测试均在实验室内进行,能够确定最大场景距离, sium on Innovations in Intelligent Systems and Applications, 且 SAD 部分具有最大视差设置,其决定了最小距离,同时 测试时一般避免使双目摄像头距待扫描的场景过近,即可 确定一个最小距离。用确定的最大距离和最小距离结合双 IEEE,2012: 1-5. [8] 雷 磊,郑江滨,宋雪梅.基于改进 Census 变换的立体匹配算 法[J].计算机应用研究,2013,30( 10) : 3185-3188. [9] Nadia Baha,Hakim Touzene,Slimane Larabi. FPGA implementa- 目标定中的摄像头外参 Q 即可得到要保留的最大视差和 tion for stereo matching algorithm [C]∥Science and Information 最小视差,随后将视差图上不在设定范围内点的视差设置 Conference,2013: 448-454. 为 0,即 可 剔 除 大 部 分 错 误 点。点 云 处 理 库 ( point cloud ( 下转第 141 页)
2018 年 第 37 卷 第 4 期 传感器与微系统( Transducer and Microsystem Technologies) 141 量随被测颗粒物体介电常数呈线性变化。采用 PVC 塑料 型[J].北京林业大学学报,2008,30( 4) : 17-21. 圆筒设计电容传感器探头,若外径 R3 为 21 mm、内径 R2 为 [2] 邓永和,王冬青,曾庆丰. 基于电容器的压力微传感器的 研 14 mm、相对介电常数 εr = 3,电极 I、电极 II 为长 a( 20 mm) × 宽 b( 50 mm) 长方形铜箔对称粘贴在圆筒的外壁,隔离电极 长为 50 mm,粘贴在圆筒的整个内壁,由于铜箔很薄,铜箔 内外半径相等,则 R4 ≈R3 ,根据式( 18) 得电容量 C( pF) C = 0.21εr +1.56 ( 19) 当被测物体为真空,εr = 1 代入式( 19) ,得探头的电容 量 C = 1.77 pF,而实验测试电容量 C' = 1.70 pF,计算值与测 量值的误差大约 3.95 %。 为了检验电容传感器探头的可行性,采用稻谷作为检 测对象,在同一温度下对不同含水率的谷物,测量了同一柱 面电容传感器探头的电容量,测量数据如图 2 所示。 图 2 探头的电容量与稻谷含水率的关系 可知式( 19) 模型在一定条件下正确。 4 结 论 1) 设计的同一柱面电 容传感器 探头体积小、结构简 单、操作方便,不会将颗粒物体夹在电极之间,且性能可靠、 准确度较高; 制[J].传感器技术,2004( 2) : 329-341. [3] 向 莉,董永贵.同面散射场电容传感器的电极结构与敏感 特性[J].清华大学学报: 自然科学版,2004,44( 11) : 1 471 - 1474. [4] 董恩生,董永贵,吕文尔,等. 同面多电极电容传感器的仿真 与实验研究[J].机械工程学报,2006,42( 2) : 1-6. [5] 贺庆之,贺 静.单一平面电容传感器原理与应用[J].工业仪 表与自动化装置,2001( 5) : 62-63. [6] 翟宝峰,梁清华.检测粮食水分用的电容式传感器[J].传感器 技术,2003,22( 2) : 29-31. [7] 陈 敏,杨欣荣.测量油品含水量的电容式传感器机理[J].传 感器技术,2002,21( 7) : 15-17. [8] 刘少 刚,孟 庆 鑫. 单 一 平 面 电 容 传 感 器 数 学 模 型 的 数 值 解 法[J].北京林业大学学报,2009,31( 4) : 135-140. [9] 李长友.稻谷干燥含水率在线检测装置设计与试验[J].农业 机械学报,2008,39( 3) : 57-59. [10] 高国旺,李利品,党瑞荣,等.电导法原油含水率测量传感器的模 型优化与仿真[J].传感技术学报,2015,28( 9) : 1307-1314. [11] 张平川,李兴山,黎步银.基于介电常数法的高精度油品含水 率检测仪[J].传感技术学报,2014,27( 3) : 416-420. [12] 郭文川,杨 军,刘 驰,等. 基于交流阻抗法的小麦秸秆含 水率检测仪设计[J].农业工程学报,2013,29( 23) : 46-50. [13] 徐 燕,易卫东,卓国文.基于信号波形幅度检测放大技术的 电容 式 土 壤 水 分 传 感 器 研 究[J]. 传 感 技 术 学 报,2013, 2) 在温度和两极位置一定时,利用电磁理论、边界条 26( 6) : 779-784. 件及偏微分方程的问题,推导出探头的电容量与被测颗粒 [14] 王慧玲,李宝生. 基于边缘效应的圆环式电容传感器电场仿 物体相对介电常数的规律,接近线性关系; 真分析[J].传感器与微系统,2014,33( 4) : 31-34. 3) 对某具体尺寸的探头,计算出该探头与谷物的相对 [15] 刘少刚,安进华,罗跃生,等. 单一平面电容传感器数学模型 介电常数表达式,并计算了真空中探头的电容值为1.77 pF, 及有限元解法研究[J].哈尔滨工程大学学报,2011,32( 1) : 与测量值非常接近; 79-84. 4) 用该尺寸的探头,测量不同含水率谷物时,实验测 [16] 蔡利民,孔 力. 圆筒形电容式粮食水分传感器的数学模型 量该探头的电容量与谷物的含水量接近线性关系。 与影响因素分析[J].分析仪器,2009( 1) : 49-51. 以上结果验证了同一柱面电容传感器探头的数学模型 作者简介: 在一定条件下正确,用该探头测量颗粒物体的含水率,体积 小,操作方便,性能可靠,具有一定的实际意义。 参考文献: 包本刚( 1976-) ,男,硕士研究生,副教授,主要研究领域为集 成电子电路设计和集成电路测试及控制技术的研究,E—mail: bbg_ 762001@ 126.com。 刘志壮( 1969-) ,男,通讯作者,博士,教授,主要从事计算机检 [1] 刘少刚,孟庆鑫.任意结构形状的电容传感器原理和数学模 测与控制技术、农业传感器研究工作,E—mail: liuzz168@ 126.com。 檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸檸 ( 上接第 138 页) 实现[J].自动化技术与应用,2008,27( 7) : 44-45. [10] 马颂德,张正友. 计算机视觉: 计算理论与算法基础[M]. 北 [13] 姚顽强,蔺小虎,马 飞,等. 基于改进坐标增量的点云数据 京: 科学出版社,1998: 34-40. 压缩算法[J].西安科技大学学报,2016( 6) : 849-856. [11] 刘广飞,周文晖,戴国骏.基于 FPGA 的双目视觉同步采集系 作者简介: 统[J].杭州电子科技大学学报,2011,31( 3) : 22-25. 王媛媛( 1980-) ,女,硕士研究生,工程师,主要研究领域为基 [12] 王 森,杨克俭. 基于双线性插值的图像缩放算法的研究与 于 FPGA 的数字系统设计,E—mail: 34537898@ qq.com。
分享到:
收藏