APP下载

AR技术在中国历史典故展示中的应用研究

2021-07-28林雅南陈婉清郑世珏

计算机工程与应用 2021年14期
关键词:汉明典故特征

林雅南,陈婉清,郑世珏,杨 青

1.厦门大学 信息学院,福建 厦门361005

2.华中师范大学 计算机学院,武汉430079

增强现实技术(Augmented Reality,AR)是一种将计算机渲染生成的虚拟场景与真实世界中的景象无缝合成的技术。它融合了图像处理、注册追踪、人机交互等多项技术,能够扩增用户的感知范围,让人机交互更加自然流畅[1-2]。作为新兴的智能传播媒介,增强现实技术在历史文化领域的应用得到了国内外学者的广泛关注。Brett等人将增强现实技术应用于文物陈展,开发了支持手电光线交互的文物展示系统[3]。Albert等人利用增强现实技术,实现了圣克莱蒙特教堂壁画的修复性展示[4]。王涌天等人将户外AR 系统与圆明园遗址结合,实现了观水法、东西水塔、大水法等古建筑的数字化复原[5]。孔凯以大明宫数字化展示为例,探讨了增强现实技术在陕西历史遗迹虚拟展示中的创新应用[6]。

目前,增强现实技术在历史文化领域的应用主要集中于古迹复原及数字化遗产保护[7],在中国历史典故展示方面则应用较少。作为中华民族语言艺术的瑰宝,中国历史典故语言精炼、寓意深刻,凝聚着古人丰富的知识和智慧。中国历史典故的传统展示方式主要包括文字记载、电视节目、地方戏剧等等[8-10]。这些展示方式虽具有一定的情景感与趣味性,但仍然存在着互动性差、代入感低等不足之处[11]。通过增强现实技术与中国历史典故的结合,能够加深人们对历史背景的理解,促进历史文化的普及和传播。基于以上背景,本文设计并实现了基于AR技术的中国历史典故展示系统。通过创设历史场景与现实环境并存的复合情境,可实现中国历史典故的形象化、立体化呈现,有助于历史教育、博物馆展览、对外汉语教学等领域的展示形式拓展。

1 系统设计

1.1 关键技术

系统基于C#语言开发,采用3ds Max创建三维模型,采用OpenCVForUnity实现SIFT-BRISK三维注册模块,使用Unity3D引擎完成虚拟场景搭建及人机交互设计。

(1)3ds Max

3ds Max 是Autodesk 公司开发的三维动画渲染和制作软件,在广告、影视、建筑设计、工业设计等领域应用广泛。对于历史典故涉及的人物、器物、建筑等展示元素,系统采用3ds Max 对其进行三维建模仿真,并以.fbx的文件格式导出。

(2)OpenCVForUnity

OpenCVForUnity 是OpenCV 在Unity3D 中的扩展包,封装了OpenCV主模块及OpenCV_contrib模块的功能。本文使用OpenCVForUnity 实现了SIFT-BRISK 特征检测与匹配算法,并将其应用于系统的图像识别模块。

(3)Unity3D

Unity3D 引擎是一款跨平台的专业开发引擎,能够实现三维视频游戏、建筑可视化、实时三维动画等内容的创建。系统通过Unity3D导入虚拟模型,进行历史典故虚拟场景的构建。在场景交互部分,采用C#脚本进行互动的设计与控制。

1.2 系统框架

系统主要包括五个模块:图像采集模块、图像识别模块、虚实注册模块、合成显示模块、人机交互模块。系统框架如图1所示。

图1 系统框架图

(1)图像采集模块

利用外设摄像头获取真实场景的信息,将真实场景的视频数据流保存为图像。对目标图像进行预处理,从而避免外部环境对图像特征提取的影响。

(2)图像识别模块

对图像采集模块获得的图像及设备数据库中的模板图像同时进行特征检测及匹配,包括特征提取、特征描述、特征匹配、筛除误匹配。

(3)虚实注册模块

通过确定摄像机的内外参数完成对摄像机的标定,确定虚拟信息在真实场景中的位置,实现虚拟对象和真实场景的配准。本文系统叠加的虚拟信息包括三维模型、视频资料、文字介绍、图片素材。

(4)合成显示模块

根据虚实注册结果,将虚拟信息与真实场景进行融合显示,并通过显示屏呈现给用户。本文系统采用的显示设备包括Android 系统的智能手机、PC 机、XLOONG Techlens T2 AR眼镜,如图2所示。

图2 显示设备示意图

(5)人机交互模块

通过单指点击、单指移动、双指缩放的形式,实现用户与虚拟对象的互动。

1.3 系统工作流程

系统通过摄像头获取真实场景的视频流数据,实时采集视频帧图像并对其进行预处理。图像预处理包括灰度化及滤波。灰度化图像,能够降低图像处理的计算量。采用中值滤波方法去除噪声,可以减弱外界环境的干扰,提高图像质量。对于采集图像及设备数据库中的模板图像,分别采用SIFT-BRISK 算法进行特征检测及描述,将两幅图像的特征信息进行汉明距离匹配,使用RANSAC 算法筛除误匹配。若匹配失败,则继续与其余模板图像进行匹配;若匹配成功,则根据摄像机的位姿数据完成三维注册。根据注册信息,利用Unity3D叠加模型、视频、图片等虚拟素材,并将虚实渲染结果通过显示屏呈现给用户。当屏幕上出现虚拟素材时,用户可以与虚拟对象进行AR交互。系统的工作流程如图3所示。

2 关键模块实现

2.1 图像识别模块

在特征检测阶段,采用SIFT 算法[12-13]提取特征点,利用BRISK[14]二进制描述算子进行特征描述。根据描述信息,通过汉明距离进行特征匹配并利用RANSAC算法[15]完成误匹配的筛除。图像识别模块的流程参见图3中“图像识别模块”。

图3 系统工作流程图

2.1.1 SIFT-BRISK特征检测

SIFT算法对于仿射变换及噪声具有良好的鲁棒性,提取的特征点数量多、精度高,但耗时较长[16]。在所有的二进制特征描述子中,BRISK算子具有最高的特征匹配精度,在尺度、视角、旋转变换条件下的综合性能最佳[17-18]。

采用SIFT 算法检测特征点,能够弥补原始BRISK算法提取特征点较少的缺陷。将提取的SIFT特征点用BRISK算子进行描述,能够在保证检测精度的同时有效降低匹配耗时,提升整体计算效率。综合以上,系统采用了SIFT 及BRISK 结合的特征检测算法。利用SIFT算法提取具有尺度、旋转、光照不变性的特征点,采用BRISK 算子生成512 bit 的二进制特征描述符。图4 是SIFT-BRISK 算法对灰度图的特征检测结果,左为模板图像,右为待识别图像。

图4 基于SIFT-BRISK算法的特征检测结果

2.1.2 汉明距离匹配

特征匹配阶段,对于SIFT-BRISK 算法检测的特征点,使用汉明距离衡量图像之间的相似程度。假设模板图像的BRISK 二进制描述子为P1,待识别图像的BRISK 二进制描述子为P2,则P1=x0x1…x511,P2=y0y1…y511,汉明距离计算图像相似程度如公式(1)所示,D(P1,P2)越小,说明图像越相似。

目前,许多研究提出了特征匹配的优化算法,例如,快速四点一致性点云粗配准算法[19]、基于一致性决策边界的特征匹配[20]、基于网格多密度聚类的特征匹配等[21]。这些方法虽然在计算效率、匹配性能等方面具有一定优势,但算法编码过程较为复杂,更适用于匹配精度要求较高的场景。本文旨在提出一种中国历史典故展示的AR 解决方案,重点考虑算法实现的简易性和普适性。由于汉明距离匹配具有简单快速、易于实现的优点,且能够满足本文系统的图像匹配需要,故采用汉明距离完成图像匹配,如图5所示。

图5 汉明距离匹配结果

2.1.3 RANSAC筛除

由图5可知,基于汉明距离的初始匹配存在大量的误匹配。为了校正匹配结果,采用RANSAC 算法对误匹配进行筛除。RANSAC 算法通过迭代来寻找能够支持更多内点的、更优的模型,算法的基本思想如下:

(1)考虑一个模型M,一个样本集P。n为初始化模型参数所需的最小样本数,集合P的样本数满足Num(P)>n。在P中随机抽取n个样本作为内点集S,并用S对模型M进行初始化。

(2)构造模型M的内点集S*,包括子集S、余集CPS=PS中与模型M的误差小于阈值t的样本集,它们构成S的一致集。

(3)设内点数的阈值为d,若Num(S*)≥d,认为模型参数正确,利用内点集S*重新计算新的模型M*。重新随机抽取新的S,重复以上过程。

(4)完成一定的抽样次数后,若未找到一致集则算法失败,否则选取抽样后得到的最大一致集判断内外点,算法结束。

图6为RANSAC筛除后的匹配结果。与图5相比,经过RANSAC 算法筛选后得到的匹配点更加稳定,有效提升了匹配的准确度。

图6 RANSAC筛除后的匹配结果

2.1.4 实验结果分析

为了对比不同算法的性能,采用SIFT算法、BRISK算法、本文提出的SIFT-BRISK 算法分别进行特征匹配实验。实验环境配置为64 位Windows 10 系统、8 GB内存、Intel®CoreTMi7-8550U CPU。实验工具为OpenCV 3.4.2和Python 3.7.0。测试图已完成预处理操作,如图7所示。左右两幅图分辨率均为1 920×1 080。

图7 测试图

测试指标中,特征点数为两幅图像特征点数的最小值,匹配数为RANSAC算法筛选后得到的匹配结果,匹配准确率为RANSAC筛选后的匹配数与筛选前匹配数的比值。三种算法的匹配结果如图8所示。

图8 三种算法匹配结果

最终,实验结果如表1 所示。算法耗时方面,SIFTBRISK算法的匹配耗时约是SIFT算法的1/4,显著降低了SIFT 的总耗时,算法效率较高。特征点检测与匹配方面,SIFT-BRISK 提取的特征点数及最终匹配数介于SIFT 及BRISK 之间,匹配准确率在三种算法中最高。总体而言,SIFT-BRISK 算法综合了SIFT 提取特征点数量丰富、BRISK耗时少的优势,在算法效率、特征点提取数目、匹配准确度方面表现出色。

表1 算法性能对比

2.2 虚实注册模块

目标匹配成功后,通过计算摄像机相对于真实场景的位置和姿态,实现虚拟信息在真实环境中的三维注册。公式(2)描述了目标二维坐标与其对应的三维坐标之间的转换关系。

式(2)中,(u,v)是图像坐标系中的二维点,K是摄像机的内参矩阵,可通过棋盘标定法获得。[R3×3T3×1] 是变换矩阵,其中,R3×3是旋转变换矩阵,T3×1是位移变换矩阵。

由相机内参矩阵K、二维坐标点集、三维坐标点集,可以得到旋转和平移矩阵[R3×3T3×1] 。求得变换矩阵后,结合Unity3D 引擎进行虚拟对象的实时渲染,叠加的虚拟信息包括三维模型、视频、图片、文字等。为了解决虚实物体间的光照一致性问题,在虚拟场景中添加Directional Light 组件,并将光照模式设置为实时。该组件能够根据真实环境的光照情况,实时更新虚拟场景的照明分布,从而实现更加自然的虚实融合效果。图9、10分别展示了历史典故“桃园结义”及“以人为鉴”的AR叠加效果。

图9 “桃园结义”模型叠加效果

图10 “以人为鉴”视频叠加效果

2.3 人机交互模块

人机交互模块实现了用户对UI界面及虚拟对象的控制,主要形式包括单指点击、单指移动、双指缩放。图11为单指移动及双指缩放的交互效果。

图11 单指移动、双指缩放效果

(1)单指点击

用户通过手指点击与虚拟模型进行交互。在模型上添加碰撞器,利用射线系统判断具体点击到的模型。当手指点击处发出的射线指向模型的碰撞体组件时,相应的事件就会被触发。

(2)单指移动

用户通过单指控制模型在屏幕上的移动。采用TouchPhase.Moved判断手指是否发生位移,若手指位置发生了变化,则根据手指移动的距离和方向,将模型拖拽到屏幕上特定位置。

(3)双指缩放

用户使用双指控制模型的缩放。利用Input.touch-Count获取屏幕上的触摸点数量,当触摸点数目为2时,分析两个手指之间的距离变化。若距离增加,则判定用户的请求为放大模型;若距离减少,则判定为缩小模型。

3 系统测试

为了保障系统能够满足历史典故展示的需求,对系统的流畅性及鲁棒性进行测试。测试在智能手机上进行,配置为Android 7.0 操作系统、4.0 GB 内存、八核2 GHz CPU、1 920×1 080分辨率。

(1)流畅性

FPS 是图像领域中的定义,即画面每秒传输帧数。FPS值越高,所显示的动作就会越流畅。为测试系统流畅性,在系统运行时对FPS 进行实时输出,如图12 所示。测试结果表明,系统运行时的FPS 均在60 frame/s以上,能够达到系统流畅性的要求。

图12 流畅性测试结果

(2)鲁棒性

通过改变识别图的尺度、旋转角度、光照、遮挡范围,对平板设备中的识别图进行系统鲁棒性测试。基本参照如图12 所示:平板设备距离手机摄像头30 cm,设备中轴与水平线夹角0°,设备亮度为最高可置亮度的30%,无任何遮挡。

由表2测试结果可知,当识别图发生尺度、旋转、光照变换时,系统始终能准确地进行跟踪注册。由遮挡测试可知,当遮挡范围为60%以下时,系统运行效果正常。当遮挡范围在60%时,由于无法获取足量的特征点,系统叠加的三维模型开始出现抖动和漂移的现象。总体而言,系统具有良好的鲁棒性,能够满足复杂环境下的增强现实展示要求。

表2 系统鲁棒性测试

4 结束语

本文提出了基于AR技术的中国历史典故展示系统。系统采用OpenCVForUnity 实现了基于SIFT-BRISK 算法的三维注册,该算法改善了SIFT 算法计算效率低、BRISK 准确率不高的缺陷,相比于SIFT 及BRISK 具有更佳的匹配精度;利用3ds Max、Unity3D完成虚拟场景搭建及人机交互设计,实现了历史典故的可视化互动呈现。实验结果表明,系统对于尺度、旋转、光照、遮挡变换具有良好的鲁棒性,能够满足复杂环境下的历史典故展示需求。

通过虚实融合、体验交互的方式,可解决历史典故传统展示模式趣味性不足、内容枯燥等问题,为历史典故的多样化呈现拓展了思路。该技术可应用于教育、文化等行业,在课堂教学、图书出版、影视制作、会展博览等领域都具有适用性。

猜你喜欢

汉明典故特征
悬壶济世典故的由来
如何表达“特征”
不忠诚的四个特征
抓住特征巧观察
闻鸡起舞
媳妇管钱
那些年,我们写作文用烂的典故
汉明距离矩阵的研究
线性代数的应用特征
一种新的计算汉明距方法