APP下载

桌面级3D扫描仪的设计与实现

2018-01-18王丁辰余善霖张旷奇李继旺周哲海

数字技术与应用 2018年9期
关键词:扫描仪激光器开源

王丁辰 余善霖 张旷奇 李继旺 周哲海

摘要:桌面级3D扫描仪主要由硬件和软件两大部分构成,前者主要包括转台及步进电机、单片机及激光器、CCD摄像头传感器,后者由单片机相关的上位机IDE及开源软件组成。其基本工作过程是先开始用上位机软件进行一系列标定,标定结束将待扫描物体放上转台进行匀速转动扫描,结束后得到物体的PLY模型文件再经相关图像处理软件后方可得到用于3D打印的STL点云文件。系统经过调试后,扫描效果良好,基本实现预期功能。此设计具有低难度低成本、简单易学等特点。

关键词:3D扫描仪;点云;单片机;CCD;摄像头传感器

中图分类号:TP334 文献标识码:A 文章编号:1007-9416(2018)09-0123-03

1 引言

1.1 项目背景及意义

3D扫描仪兴起于上世纪七八十年代,发展到今天已有几十年的历史。其最早通过接触式测量方法来实现,其中三维坐标测量机就是典型的代表。虽然它的精度可以达到微米量级,但是大部分有着巨大的体积并且造价昂贵、成本高昂,并且不能测量表面柔软的物体,因此只能被广泛应用于工业上而不能面向个人。

随后,非接触式的测量方法进而产生,其主要有兩种方式,分别是被动形式和主动形式。前者完全依靠物体所处的自然光条件进行扫描,常采用双目技术但是精度低,只能扫描出有几何特征的物体;后者是向物体投射特定的光,其中代表的技术便是激光线式扫描,其精度较高但是由于每次只能投射一条光线,所以扫描速度慢导致效率偏低。

现在新兴的技术是线构光式扫描,结构光也属于主动方式,在激光线的基础上改进,通过投影或者光栅等同时发出多条光线,因此可以较快地获取目标的一个面,因此只需要几个面的信息就可以完成扫描,最大的特点是扫描速度快,可通过编程软件实现[1]。

1.2 国内现状

目前国内市场面向消费者的3D扫描仪基本都是非接触式,但是价格对于个人依旧高昂。因此个人消费级扫描仪较高的价格和相关的算法实现,是大多数非专业人士对此项技术望而却步的原因。如果可以把消费级的成本降至较低并且让消费者了解3D扫描的核心原理,3D扫描技术还会更广泛的被人们所了解熟知。

2 系统概述

2.1 扫描原理

3D扫描仪的核心原理即三角测距法[2],一般分为斜射式和直射式,本设计以直射式举例。原理如图1所示。

中间的粗线代表CCD摄像头,左边的斜线代表激光器,二者的交汇处即为物体也是转台的旋转中心,水平线代表物体表面不同的深度;CCD和激光器的夹角我们人为规定设为θ,CCD与物体的距离设为Z,斑点位置(水平线与激光线交点)距离图片中线的距离为X;由公式(1)

(1)

可知,我们只要得出X,便可以根据基本的三角函数得到深度值Z。

延长图中的激光线,可以在图像上方得到另一于此配对的相似三角形,此时上方三角形激光线距离中间粗线也就是图片中心线的距离设为小x,此时我们知道X值随小x值变化而变化,需要我们利用相似关系得到X与x的关系。

X与x的关系可以通过上位机软件标定激光器自动得到。

2.2 系统方案

机械部分,3D扫描仪目前主要分为两种,分别是手持式和固定式,其中固定式又分为转台式和非转台式。基于低难度、简单易学的特点,本设计基于转台式——即两一字线激光器分别位于CCD左右两端保持平行且固定,转台和CCD处于同一直线且与左右激光器呈等腰三角形,物体在转台上通过步进电机匀速转动。

本设计机械结构参照于国外开源的Ciclop结构,如图2所示。

硬件部分,选择舵机为28BYJ的步进电机,通过ULN2003驱动板及Arduino控制转盘的方向及转动速度,左右可调焦的激光器通过ATmega328p控制,分别来回闪烁扫描物体,CCD采用为罗技720P高清摄头。

软件部分,在PC端,我们通过下位机软件Arduino IDE在窗口中输入相关代码来控制电机[3],而控制激光器校准一系列操作,我们通过强大的国外开源软件Horus作为上位机来控制。

2.3 系统结构

扫描仪结构由软硬件共同完成,硬件部分主要通过CCD摄像头、激光器、步进电机和单片机构成,软件部分主要由上位机下位机软件共同完成,前者负责标定校准,后者负责电机和激光的驱动。硬件通过软件来控制硬件并优化,最终得到目标物体ply格式的的模型扫描文件,再运用开源图像处理软件MeshLab便可得到符合3D打印格式的STL文件。结构逻辑框图如图3所示。

3 标定与校准

本设计不同于其他扫描仪的最大特色在于标定校准[4]这一步骤,这一步也正是最关键的算法实现,初学者往往需要有相关的MATLAB[5]以及OpenCV3[6]等开源库的编程基础,而这里不得不提到开源软件Horus。Horus由西班牙BQ公司开发,作为开源扫描仪的上位机软件,它便携的帮助个人解决了较复杂的算法实现这一步骤,把这一算法囊括在了软件Horus中,也正是因为Horus的出现,初学者不需要再通过MATLAB和OpenCV3进行相关的复杂编程。

本设计标定分为三步骤,第一步为相机模型标定;第二步为激光器标定,涉及到核心算法中心线提取[7];第三步为工作台标定。

3.1 相机标定

所谓标定,就是确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,所以必须建立相机成像的几何模型,这些几何模型参数就是相机参数。

在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提。

了解原理后,我们需要利用标定板拍摄多组网格图片,目的是为了更好地校准和去除畸变,也就是常说的消除扭曲以减小误差,理论上样片越多,最后标定的误差会越小。标定过程和最终得到的参数分别如图4和图5所示。

3.2 激光校准

校准激光的目的是使激光的亮度足以被检测到,这一步的核心算法便是上文提及的“中心线提取”,还有就是控制环境周围的曝光度,并且保证转台旋转最大角度能被检测到为最合适角度,此外还应保证两束激光处于垂直位置。

标定过程和最终得到的参数分别如图6和图7所示。

3.3 工作台校准

转台校准的目的依然是保证待测物体保证在被扫描的范围以内,与相机有关的旋转圆盘的齐次变换矩阵也是从外部校准获得。换句话说,就是光盘的位置和旋转。激光三角測量结果如图8所示。

4 系统特色

本设计的3D扫描仪中,优势有以下几方面:一是机械结构的所有组成部分,本身也是3D打印件,也是由SoildWork、AutoCAD等制图软件绘图而来,所以方便使用者可以在大体结构不变的基础上按照自己喜欢的方式自行更改。二是开源软件Horus,它已经把相关的核心算法囊括在其中,使用者只需要了解其原理而不需要有MATLAB、OpenCV等编程功底就可直接使用。三是可替代性,本设计的硬件部分使用者可以随意更换,后期如果计划提高速度和精度,可更换更高级的激光器以及微处理器及摄头。

5 技术说明及适用范围

本设计中,转盘的承重不大于3公斤,理论上可扫描物体重量在此范围内的物体,并且物体的体积小于20*20厘米。为达到较好的扫描效果,转盘转速设在5分钟/圈为宜,传感器垂直距离转盘约为50厘米。

本设计属于桌面级3D扫描仪,不能和工业级扫描仪相提并论,并不适合扫不规则复杂物体,只有扫描接近规范几何体的物体,效果才会比较理想,扫描质量跟物体、环境、光线都有很大关系,所以推荐上位机软件中亮度值100-150左右的扫描环境为宜。

难以扫描的物体包括透明物体(玻璃、有机塑料等)、发光或强反光物体、非常暗及表面模糊物体(毛绒材质)。扫描范例如图9所示。

6 结语

本论文的基本工作是在个人无需完全掌握3D扫描仪算法原理的情况下,也可以设计并制作一套上手易、成本低且精度较高的桌面级3D扫描仪。

扫描仪虽然最终得以实现预期效果,但还有两点需要改进:第一点是扫描速度,过快会导致精度降低过慢又会导致效率低下,日后计划再增加一激光器同时逐步提高电机转动速度;第二点是每次扫描前需要根据当前场景重新标定,这就不可避免地造成重复劳动,计划下一步将不同场景标定数据进行统计并做成属性文件,如此可根据不同环境光背景直接调用已有的标定数据。

7 致谢

本课题研究得到了北京信息科技大学勤信学者支持计划(QXTCP A201701)和2018年北京信息科技大学人才培养质量提高经费(5111823205)支持,在此表示感谢。

参考文献

[1]董秀军.三维激光扫描技术及其工程应用研究[D].成都理工大学,2007.

[2]徐俊峰.激光三角法测距系统[D].长春理工大学,2012.

[3]赵洪河,陆宏谦.基于Arduino的步进电机分析与设计[J].智能机器人,6:42-45,2016.

[4]郭连朋,陈向,宁刘彬.Kinect传感器的彩色和深度相机标定[J].中国图像图形学报,7:23-26,2014.

[5]张曦,黄亮,徐洋,郭冬霄.基于MATLAB中calibration toolbox的相机标定应用研究[J].微型机与应用,8:7-13,2011.

[6]李健,史进.一种基于OpenCV的三维重建实现方案[J].计算机与信息技术,2:3-7,2008.

[7]朱梦楠.三维扫描中激光光条中心提取精度的研究[D].西北农林科技大学,2017.

猜你喜欢

扫描仪激光器开源
激光器发明60周年
五毛钱能买多少头牛
一体化半导体激光器的ANSYS热仿真及结构设计
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
基于注入锁定法激光器的研究
三维激光扫描仪在变形监测中的应用
开源计算机辅助翻译工具研究
便携高速文件扫描仪
我国高功率全固态激光器成功实现应用