APP下载

基于FLARToolkit的多标识增强现实系统的实现

2016-12-13付文秀张馨则

北京交通大学学报 2016年5期
关键词:畸变标定摄像机

付文秀,张馨则

(北京交通大学 电子信息工程学院,北京 100044)



基于FLARToolkit的多标识增强现实系统的实现

付文秀,张馨则

(北京交通大学 电子信息工程学院,北京 100044)

针对传统增强现实系统采取单个标识识别影响其在PC端开发效率的问题.选择新兴的基于Flash的跟踪类库FLARToolkit,结合3D引擎Papervision 3D,开发实现了具有多个模板标识的增强现实系统原型,附上了底层代码和系统结果,并针对其中的光学畸变问题采用棋盘法进行改善,成功将摄像头标定误差降低到0.093.提高增强现实系统的稳定性的同时,也为进一步开发提供了良好的基础.

增强现实;FLARToolkit;多标识;三维注册;光学畸变

增强现实(Augmented Reality,AR)是虚拟环境或虚拟现实的一个分支.虚拟现实技术能够使用户完全沉浸在合成环境中,无法查看周围的真实环境[1-2].与之相反,增强现实能够把图像、音频和视频及触觉感知等数字信息或者计算机生成的信息实时地输送到真实环境里[3].目前增强现实的应用非常广泛,在游戏和娱乐、教育、维护和修理、医学、导航、商业[4]领域均有涉及.

随着计算机软硬件的发展,FLARToolkit作为Flash独有的精美动画显示与ActionScript 3.0的高级交互功能的结合产物在此时应运而生,恰好为增强现实系统提供了功能强大应用广泛的开发环境.2009年,韩国学者提出可以利用FLARToolkit类库的优越性来构建课堂教学应用,改善教学方法[5].关于FLARToolkit理论设想[6]虽然很多,但是具体论述其开发过程的资料却很少.其中一个重要原因就是传统的基于FLARToolkit的增强现实系统大多采用单个标识(Single Marker Detector)进行识别,然而在增强现实系统工作的大多现实场景中,人眼需要识别的往往是多个同时存在的标识.这

导致其在PC端的实用性不高,也影响了FLARToolkit基于Flash的良好的交互性能和强大的图像基础的发挥与拓展.所以针对这部分的多标识拓展功能的实现就具有了一定的现实意义,本文作者通过对多标识识别(Multi Marker Detector)的研究与设计,最终实现叠加多个3D模型在多个标识上的实验结果,以此来增加AR系统在PC端的可用性与延展性,为进一步开发提供了思路.

1 多标识AR系统开发准备工作

1.1 FLARToolkit开发包简介

ARToolkit是一种用于构建增强现实应用程序的免费软件库.文献[7]论述了日本学者Nyatla的开发和维护的过程,NyARToolkit已经是个可以创建增强现实并支持多种语言和开发环境的C程序库.文献[8]论述了Saqoosha在此基础上继续将其改写成ActionScript 3.0 的类库并整合进Papervision 3D技术,于是诞生了基于ActionScript 3.0的开源类库FLARToolkit.

FLARToolkit的特点是基于Flash构架,所以它继承了Flash的大部分优点,如它包含了一些出色的Flash 3D引擎,如Papervision 3D, Away 3D, Sandy, Alternativa 3D,这些3D引擎可以用来渲染和管理 3D 模型,也可以很方便的实现交互.借助Flash不仅可以给人带来非常漂亮的视觉效果,也可以利用其对图形元素的控制能力给该系统带来很强的健壮性,这也是本文选择FLARToolkit作为AR系统跟踪类库的原因.

1.2 摄像机参数文件

摄像机的内参和外参是AR系统中非常重要的部分,AR系统需要摄像机参数来进行3D-2D的投影转换等一系列操作,摄像机参数文件.dat文件就是摄像机标定后输出的摄像头参数文件,在2.1节和2.2节中,将会详细推导坐标转换和摄像机参数求解过程,并且通过棋盘法手动标定了计算机,得到了校正后的摄像机参数文件.

1.3 人工标识和模式文件

人工标识是用摄像头捕捉到的方便电脑三维跟踪的标志物,可以放在电子产品画面上显示,也可以打印成纸质版.标识应符合有连贯边缘轮廓的图片,同时不能是旋转图形的要求,以免降低识别成功率或者叠加的3D图形不能成功随标识旋转.此外标识应尽可能简单,可以获得最佳效果.本文进行多标识识别所制作的两个标识如图1(a)和图1(b)所示.

模式文件是电脑生成的一个.pat文件,是FlARToolkit从摄像头捕捉到的画面里检测的图样,与制作的人工标识图片一一对应.模式文件如果被打开查看的话,比如本试验程序在“assetsFLARflarlogo1.pat”和“assets FLAR flarlogo2.pat”,会发现其中有4个16×48的矩阵,分别代表标记文件的4个不同方向.在FlARToolkit看来,标记是一个16×16的二维码.在这个文件里每个矩阵是16×48是因为模式文件实际上是16×16个3色(红,绿,蓝).对应上面两个标识的模式文件大概如图2(a)和图2(b)所示.

总之,人工标识和该标识生成的模式文件都是增强现实系统的输入,可以将标识理解成摄像头的光学输入,而模式文件是该物体给AR代码开发端的程序输入.

1.4 渲染显示的3D模型

3D MAX可以制作生成3D模型,输出DAE文件,本文所用的是一个地球模型(earth.dae)和一个埃菲尔铁塔模型(tower.dae).因为模型绘制不是本文研究的重点,所以对于这部分不作探讨.

2 摄像机标定

增强现实系统中最为关键的部分就是三维注册技术,这一步骤的实现直接关系到整个系统成败.而三维注册技术的主要内容其实就是摄像机标定,摄像机标定即通过一系列坐标系之间的转换,求得摄像机的内外参数的过程.FLARToolkit提供了默认的摄像机参数文件,每次程序启动都会读取摄像机内外参数.一方面世界坐标系与摄像机坐标系之间不能直接对应;另一方面,在实时移动时稳定性差的情况下,透镜扩大收集光线的同时对图像产生畸变,特别是在拍摄水平放置的标签时,致使画面出现无法反映真实的尺寸与相对位置关系[9-10].目前,大多数解决光学畸变问题的方法是张正友法[11],为获得更好的跟踪精度和系统稳定性,文中研究并推导了张正友法,并针对影响其方法的问题进行改善,采用基于棋盘的方法手动重新确定摄像机标定参数.

2.1 三维坐标转换

假设真实世界与摄像机坐标系之间的转换关系为矩阵C,那么确定矩阵C也就是确定了摄像机观察真实环境的位姿.假设摄像机坐标系与成像平面坐标系间的转换关系为矩阵P,那么根据针孔透视成像原理,求得矩阵P就可以将三维物体在真实世界中的点投影在二维平面上.为方便原理说明,建立增强现实系统的各个坐标系如图3所示.

图3中,(X,Y,Z)表示真实空间坐标系;(ξ,η,ζ)表示虚拟空间坐标系;(X′,Y′,Z′)表示摄像机空间坐标系;(U,V)表示成像平面坐标系.

真实空间坐标系与摄像机坐标系之间的转换关系可以用下式表示

(1)

式中,R(r1,r2,r3)为一个3×3的正交矩阵,提供X、Y、Z轴上的旋转分量.t为一个3×1矩阵,提供X、Y、Z轴上的平移分量,因此旋转矩阵R和平移矩阵t两者都属于摄像机外部参数.通过式(1)计算,实现了真实场景到摄像机坐标系之间的变换,达到对用户头部位置和视线方向的跟踪.

对摄像机标定以获得摄像机内部参数,镜头的焦距f,光心u0、v0,镜头畸变系数k、p,比例因子s等,当获得内部参数,发现张正友法第1步中采用线性方法求得摄像机初始参数,导致离图像中心较远的点畸变较大,造成较大误差,因此选取图像光心点附近坐标,基本可以不考虑畸变,那么根据针孔成像原理,就可以实现三维场景到二维平面的转换.在摄像机空间坐标系中,点在图像平面上的投影可以由如图4所示的摄像机透视投影模型来确定.

可得到透视投影方程为

(2)

式中:(x′,y′,z′)为空间点P在摄像机坐标系的坐标;(u′,v′)为P在图像上的投影,它是光心O与P的连线与图像平面的交点.上述透视投影关系用坐标矩阵为

(3)

式中的(u′,v′)是图像坐标,还需要将它转换为像素坐标.假设(u,v)是图像像素坐标,dpu′和dpv′分别代表u′v′微分的倒数,表示成像平面水平方向和垂直方向的像素分辨率,那么两者之间的关系可以为

(4)

式中,(u0,v0)是光心在显示设备的像素坐标系中的坐标.矩阵表示为

(5)

将式(5)带入式(3)中,可以得到摄像机三维坐标到二维平面转换关系为

(6)

式中,令ax=f×dpu′,ay=f×dpv′,由于焦距f、光心坐标(u0,v0)只与摄像机的内部结构有关,因此称ax、ay、u0、v0为摄像机的内部参数.假设O为已知的虚拟物体坐标系到真实空间的坐标转换关系矩阵,从式(1)、式(6)可知,三维空间中虚拟物体上的某一点(x,y,z,1)及其在增强现实场景坐标下的投影点(u,v,1)之间的转换关系可以用下式表示

(7)

本文使用棋盘标定目标,其正方形的顶点作为标定用的标记点,由于采用平面参考点标定,标定目标是一个平面,这就成了一个平面单应性问题,根据一般性,定义这个物体平面Z=0,那么矩阵C中的r3=0.有

(8)

利用不同视场情况下摄像机的内参稳定不变的特点,根据式(8)可以令H=P×C,在不知道内参数的情况下从多个视场计算多个单应性矩阵的方法来求出H,最后解出摄像机的内参数.

2.2 求解畸变参数

本文考虑了系统的稳定性和约束集数量,选择8×6棋盘,棋盘平面大小为160 mm×120 mm,棋盘格大小为20 mm×20 mm.拍摄如图5所示的10个视场,也就是镜头面向棋盘的10个不同的位置和姿态所取得的图像信息.

(9)

(10)

由式(6)求得矩阵P,得出矩阵B的封闭解为

(11)

B矩阵两个约束有其通用形式.将矩阵乘开,重排为

(12)

前面得到的两个约束可以写成

(13)

如果同时得到K个不同视角的棋盘图像,堆叠这些方程,可以得到Mb=0.其中M是包含mij的一个2K×6的矩阵,若K>2,那么这个方程有解b.

1)摄像机内参数可以由式(11)中B矩阵的封闭解中直接得到

(14)

(15)

(16)

(17)

(18)

2)外参数可以由单应性条件,即式(9)计算得到

r1=λP-1h1

(19)

r2=λP-1h2

(20)

r3=r1↔r2

(21)

t=λP-1h3

(22)

由于畸变在图像上得到的感知点的位置是不真实的,如果针孔模型是完美的,令(xp,yp)为点的位置,令(xd,yd)为畸变位置,有如下关系

(23)

通过上面的替换,可以得到没有畸变的标定结果

(24)

(25)

3 多标识增强现实系统的实现

3.1 多标识系统方案设计

多标识AR系统程序设计部分采用Flash CS5 作为开发环境,ActionScript 3.0为开发语言,FLARToolkit作为跟踪类库,Papervision 3D作为三维框架,3D MAX和Collada分别负责模型制作与转换调用.硬件部分采用计算机及自带的摄像头和打印出的两个标识图片.

FLARToolkit沿用了ARToolkit利用计算机视觉技术来计算摄像机相对于黑白标识的位置与姿态.1)对摄像头采集到的图像进行连通域分析,找出其中所有的四边形区域作为候选匹配区域; 2)将每一候选区域与模板库中的模板进行匹配,如果产生匹配,则FLARToolkit认为找到了一个标识,利用该标识区域的变形来计算摄像机相对于已知标识的位置和姿态; 3)根据得到的坐标变换矩阵计算虚拟物体的二维图像应该在摄像机坐标系中叠加的位置,从而实现虚拟场景与真实世界之间的三维注册. AR系统开发原理主要步骤见图6.

3.2 多标识软件系统实现

在掌握了三维注册的原理和实现过程且做好AR系统需要的预先准备文件后,就可以开始多标识系统的创建工作.由摄像头将真实场景以影像流的方式拍摄下来,并以一定的频率读取,并将搜索到的矩形区域和模板文件进行匹配,超过预先设定的匹配值,则系统认为找到标识,叠加3D模型,并渲染在屏幕上,具体的软件设计流程见图7.

匹配阶段主要是调用了FLARMultiMarker Detector( )函数搜索模板;系统中设置的检测相似度参数DETECTION_CONFIDENCE = 0.5,一旦根据设定的条件,两个标识的匹配度都超过这个匹配值,系统就认为匹配成功,则开始计算摄像头外部参数,进行真实空间到图像空间的坐标转换.坐标转换阶段主要是调用了FLARTransMatResult()函数.然后再导入三维虚拟模型,在对应的模板上渲染地球和艾菲尔铁塔的三维虚拟模型,进行虚实叠加.将各环节所用的函数和功能总结成表1.

表1 程序原型使用的FLARToolkit方法Tab.1 FLARToolkit method used by the program

3.3 实验结果

本文制作了两个标识模式文件,分别对应两个3D模型,一个是地球,一个是艾菲尔铁塔,模型叠加的位置在标识图像的正上方,可通过改变参数scale来调整大小.同时,用Flash创建应用程序意味着会以SWF文件形式发布完成的文件,该文件可以选择用Flash Player来播放,也可以在浏览器中打开,非常适合多媒体展示应用或教学应用.打开这个生成的SWF文件,检验最终的增强现实系统原型实现结果,如图8所示.

实验发现FLARToolkit基于计算机视觉的三维注册效果还是比较理想的,在摄像头拍摄真实场景的时候这些虚拟物体也显示了出来,并且在移动模板或者摄像头移动的时候,虚拟物体会随着真实世界进行相应的变化,即使在标识接近水平状态的时候,也保持了系统稳定性.这证明FLARToolkit能实现AR开发所涉及的标记识别、三维坐标转换和图形渲染等底层功能,具备开发多标识识别系统的基本条件.同时系统原型表现出的稳定性和实时性,也证明了该类库用于增强现实系统原型开发的潜力,为进一步的功能拓展提供了方向.

4 结语

1)通过FLARToolkit跟踪类库分析入手,对增强现实的关键技术三维注册技术的原理进行了简要的推导和说明,并在其基础上,对摄像头光学畸变产生的误差用棋盘法进行了手动标定,将重投影误差降低到0.093.

2)运用FLARToolkit类库以ActionScript 3.0编译语言完成一个有多个人工标识的简单的增强现实系统原型,并且成功实现预先准备的三维模型实时的虚实叠加,将获得的新的摄像头参数文件替换进FLARToolkit中,系统表现出了健壮性与稳定性.

3)多标识系统体现出了FLARToolkit基于Flash的出色的表现力,同时其生成的可执行动画文件可以支持任意PC端播放使用,并且可以嵌入音频和视频,非常适合多媒体教学和会场宣传,基于FLARToolkit的增强现实高铁宣传展示是下一步的工作重点.

[1] 赵沁平.虚拟现实综述[J].中国科学(F辑:信息科学),2009,39(1):2-46. ZHAO Qinping.Summary of virtual reality [J]. China Science (series F: Information Science), 2009, 39(1):2-46.(in Chinese)

[2] 郑毅. 增强现实虚实遮挡方法评述与展望[J].系统仿真学报, 2014,26(1):1-10. ZHENG Yi.Review and prospects of occlusion handling among virtual and real objects inaugmented reality [J]. Journal of System Simulation, 2014,26 (1): 1-10.(in Chinese)

[3] 钟慧娟,刘肖琳,吴晓莉.增强现实系统及其关键技术研究[J].计算机仿真,2008,25(1):252-255. ZHONG Huijuan,LIU Xiaolin, WU Xiaoli. Study on augmented reality system and key technologies [J].Computer Simulation, 2008, 25 (1):252-255.(in Chinese)

[4] 齐越,马红妹.增强现实:特点,关键技术和应用[J].小型微型计算机系统,2004,25(5):900-903. QI Yue, MA Hongmei. Augmented reality: characteristics, key technologies and applications [J]. Mini-micro Systems, 2004, 25 (5):900-903.(in Chinese)

[5] 张宝运,恽如伟.增强现实技术及其教学应用探索[J].实验技术与管理,2010,27(10):135-138. ZHANG Baoyun, YUN Ruwei.Investigation on augmented reality technology and its application in teaching [J]. Experimental Technology and Management, 2010, 27 (10): 135-138.(in Chinese)

[6] YAN Y, ZHANG X. Research and analysis of the virtual reality with FLARToolKit[C]. International Conferenceon Mechatronic Science, Electric Engineering and Computer, 2011:1614-1617.

[7] HACHAJ T, OGIELA M R. Image processing and communications challenges 2[M]. Berlin:Springer Berlin Heidelberg, 2010:271-277.

[8] LEE Y. Distributed, ambient, and pervasive interactions[M].Berlin:Springer International Publishing, 2015.

[9] 杨必武,郭晓松.摄像机镜头非线性畸变校正方法综述[J].中国图象图形学报,2005,10(3):269-274. YANG Biwu, GUO Xiaosong. Overview of nonlinear distortion correction of camera lens[J]. Journal of Image and Graphics,2005,10(3):269-274. (in Chinese)

[10] 李会军,宋爱国.增强现实中的摄像机径向畸变校正[J].传感技术学报,2007,20(2):462-465. LI Huijun, SONG Aiguo. Correction method for camera radial distortion for augmented reality[J].Chinese Journal of Sensors and Actuators, 2007,20(2):462-465. (in Chinese)

[11] 刘艳,李腾飞.对张正友相机标定法的改进研究[J].光学技术,2014(6):565-570. LIU Yan, LI Tengfei.Research of the improvement of Zhang’s camera calibration method [J].Optical Technique, 2014(6): 565-570. (in Chinese)

[12] MORÉ J J. The Levenberg-Marquardt algorithm: Implementation and theory[J]. Lecture Notes in Mathematics, 1978, 630:105-116.

Implementation of multiple markers augmented reality system based on FLARToolkit

FUWenxiu,ZHANGXinze

(School of Electronic and Information Engineering, Beijing Jiaotong University, Beijing 100044,China)

Aiming at the problem that the traditional augmented reality system takes a single mark to identify causing the poor efficiency of its development at PC, the emerging Flash based tracking class library FLARToolkit combined with 3D engine Papervision 3D is selected to realize a prototype of augmented reality system with multiple template identification,underlying code and system results attached.And the optical distortion is improved by the method of the board that made the camera calibration error reduce to 0.093,improving the stability of augmented reality system and providing a good foundation for further development at the same time.

augmentedreality;FLARToolkit;multiple markers;3D registration; optical distortion

2016-05-04

中央高校基本科研业务费专项基金资助(2016YJS010)

付文秀(1962—),女,北京人,副教授,博士.研究方向为图像处理.email:wxfu@bjtu.edu.cn.

TP391.41

B

1673-0291(2016)05-0016-07

10.11860/j.issn.1673-0291.2016.05.003

猜你喜欢

畸变标定摄像机
基于能量变分法的曲线组合箱梁畸变效应分析
基于条纹分析技术的镜头畸变校正实验设计
大型焊接容器局部热处理防畸变工装优化设计
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
使用朗仁H6 Pro标定北汽绅宝转向角传感器
几何特性对薄壁箱梁畸变效应的影响
CT系统参数标定及成像—2
CT系统参数标定及成像—2
如何消除和缓解“摄像机恐惧症”