基于AR技术的手机拍摄软件的开发

2018-01-01 00:00:00朱晨璐隋超周翠翠刘高强王宇航
现代信息科技 2018年5期

摘 要:近年来,AR与图像处理发展迅速,并在生活娱乐、辅助教学等方面起着越来越重要的作用。本文采用图像追踪技术获取动态目标,利用前景检测技术和图像融合技术更换视频人物所处环境,采用NDK开发Android应用,实现了基于AR技术的手机拍摄软件的开发项目。

关键词:前景检测;图像融合;Vibe算法;运动目标追踪;NDK开发

中图分类号:TP311文献标识码:A文章编号:2096-4706(2018)05-0017-03

Development of Mobile Phone Shooting Software Based on AR Technology

ZHU Chenlu,SUI Chao,ZHOU Cuicui,LIU Gaoqiang,WANG Yuhang

(College of Computer Science and Technology,Jilin University,Changchun 130012,China)

Abstract:AR and image processing have developed rapidly in recent years,and play an increasingly important role in life entertainment,assisted teaching and so on. In this paper,the image tracking technology is used to obtain the dynamic target foreground detection technology Using the foreground detection technology and the image fusion technology to change the environment of the video characters,the Android application is developed by NDK,and the development project of the mobile phone shooting software based on the AR technology is realized.

Keywords:foreground detection;image fusion;Vibe algorithm;moving target tracking;NDK development

0 引 言

近年来,拍照功能越来越受到人们的重视,然而人们对于拍照功能创新性的提升似乎还是不够满意,拍照技术在一些方面还是存在着较大的局限性。另外,动态改变人物所属场景应用的还是较为麻烦的绿幕技术。我们希望能够开发出一款基于虚拟现实技术的拍照软件,让人们更便捷地体验绿幕技术的效果。

随着手机技术的不断发展,人们更多的使用手机的附加功能。有82%的用户使用手机拍照,其次才是收发短信。因此,拍照软件和处理软件的竞争最为激烈。随着智能手机数量的增长,手机拍照将会是一个非常有热度的研究方向。目前,大多数的拍照软件都将目光锁定在更优化的美化识别跟踪上,缺少新意。而今随着大众对虚拟现实和3D技术应用的期待,虚拟体验成为了大众兴趣度最高的、希望被应用于拍摄等现有软件的一项技术。在现有的三维全景和跟踪识别等技术已经非常成熟的基础上,我们希望消除它们之间的隔阂,将其进行较好地融合,实现一种可以为拍摄对象改变其所处环境,并多角度展现虚拟环境的技术。

实现虚拟旅游,使用户虚拟地存在于不同的景点,可以简单地拍摄电影,将自己放入电影片段中,当一次主角。体验多次元,来一次外太空旅行。通过将拍摄人的视角切换到不同角度来更换人物背景,给用户带来生活乐趣和全新的体验。

1 更换视频人物环境制作方法

1.1 前景检测技术和图像融合技术的优点

基于前景检测技术和图像融合来更换视频人物所处环境的系统采用了Vibe算法和泊松融合算法,这样不仅可以降低背景建模的复杂程度,而且当瞬时背景变化非常大时,需要做的只有放弃原始的模型,重新利用变化后的首帧图像建立背景模型,无需手动抠图选择融合区域,选择融合区域的过程简单且方便。另外,还实现了对一般绿幕技术的提升,提出了一种改进的图像视频处理技术,主要包含三个方面:其一,无需使用特殊背景,通过计算机便可得到结果;其二,无需特定的技术支持,简单易操作,非专业人员也可应用;其三,融合效果自然且逼真。

1.2 Vibe算法前景检测技术

Vibe算法前景检测技术为每个像素点存储了一个样本集,样本集中地采样值就是该像素点过去的像素值和其邻居点的像素值,然后将每一个新的像素值和样本集进行比较来判断是否属于背景点,进而实现运动物体检测[1]。

该方法具有显著的优势:首先,在应对光照的变化和相机抖动等方面,其表现都十分稳定;其次,其计算量非常小,内存占用较少,使该方法能够嵌入手持照相机中;再次,这种方式有优良的背景模型更新策略,可以随机选择需要替换的像素的样本,随机选择邻域像素进行更新。因此,在无法确定像素变化的模型时,它在一定程度上可以模拟像素变化的不确定性。

1.3 基于泊松方程的图像编辑技术

基于泊松方程的图像编辑技术通过求解ROI的梯度场Isrc以及背景图像不被修改的像素区域的梯度场Idst,再根据Isrc+Idst得到整幅待重建图像的梯度场,通过梯度场求解散度再求解通道方程获得每个点的像素RGB值,实现两幅图像的无缝融合[2]。该方法具有显著的优势:首先,选择融合区域的过程简单且方便;其次,其融合效果自然,属于目前融合效果上等的算法。

2 运动目标追踪

2.1 运动目标追踪技术

视频处理领域中的运动目标追踪主要是对传感器采集到的视频序列进行分析,提取场景中感兴趣的运动目标,给对应于同一目标的像素区域分配相同的标记,在连续的图像帧之间跟踪各个标记目标的位置、轮廓、形状、速度、纹理、颜色等特征信息的变化情况。传统的目标追踪一般包含四个部分:目标描述、特征提取、状态估计以及特征匹配。[3]据根目标跟踪方式的不同,目前已提出的追踪算法大致可分为以下三类。

2.1.1 依赖于匹配的方法

依赖于匹配的运动目标追踪算法中最具代表性的是Mean-shift算法。此算法利用核函数直方图描述目标模板,然后在当前帧中通过迭代的方式,利用核函数的偏移来逐步更新和搜索模板,以实现准确匹配。

2.1.2 依赖于检测的方法

依赖于检测的算法中最具代表性的是Online boosting算法。在检测过程中,一帧一帧的偏差造成的画面漂移现象成为众多算法需要解决的问题。

2.1.3 依赖于预测的方法

依赖于预测的算法中最具代表性的是基于稀疏表示的目标追踪算法。该算法通过构造稀疏表示模型来计算粒子加权系数,这样能有效抵抗遮挡,提高目标追踪的精度。

2.2 运动目标追踪技术的应用

将AR技术应用于手机拍照软件当中,将原短视频中的目标精确且快速地识别出来成为一大要点。识别目标,即追踪动态目标,在一段视频序列图像中的每幅图像中实时地找到感兴趣的运动目标。目前,众多AR应用、全景相机中都离不开相关算法。对追踪目标的研究大致有两个思路:(1)不依赖于先验知识,即直接从图像序列中检测运动目标、识别并追踪;(2)依赖于先验知识,即为运动目标建模,然后进行匹配。

由于应用场景的复杂性和各种因素的干扰,目标跟踪面临着诸如光照、运动、姿态、遮挡等许多的难点问题[4]。目标和背景的灵活多变是造成目标跟踪困难的根源。将其应用于手机拍照软件中的难点主要有以下几点:(1)背景复杂:在对目标进行追踪时,往往目标的背景在随时变化,这样在进行追踪时可能偏离目标;(2)目标变化:目标在短视频中是连续变化的,因此,在长时间的追踪下,目标可能受到光照、动作等的影响;(3)遮挡:目标在运动时可能会被其他物体全部或部分遮挡,这就为目标提取设置了难题;(4)计算的时效性:对目标进行实时的追踪,算法需要快速地进行计算,否则追踪的目标可能发生偏移。

2.3 手机软件对于算法的要求

首先,将AR技术应用于手机软件是一个进步,但将两者结合也必然会遇到很多问题。传统上,AR技术往往依靠硬件和芯片实现,所以,目前我们能够看到的AR产品大多都是头盔、眼镜,先进一些的是眼镜夹片。对于硬件的要求,传统上跟手机硬件是差不多的,包括CPU、内存、电源管理、传感器模块、普通摄像头和深度摄像头。芯片上集成的算法是手机软件应用AR技术的关键所在。

将AR技术中相关算法应用于手机APP当中,主要有以下几点要求:(1)精确化。AR技术是利用人的视觉效果来欺骗大脑,手机在拍摄时要将现实中的目标放入期待的场景中,那么,在目标提取以及目标与场景融合时,就要尽可能地实现精确化,让肉眼看不出拼接的破绽;(2)手机硬件支持;(3)速度快。手机拍摄完成后,需要马上启动程序,做到迅速地识别和提取目标,并快速与选定画面融合。这是影响用户体验的重要因素。

3 Android系统中的图像处理

3.1 Android中图像处理面临的问题

Android的应用层的类都是用Java写的,Java以其跨平台性和开源性已吸引了越来越多的开发者和使用者,越来越多的应用服务开发开始由C语言转向Java这样一种开源的跨平台的语言,使用Java已经成为了一种主流的趋势。但对于一些计算量大的算法实现而言,Java并不是最好的选择,如本文探讨的多媒体技术中的图像处理。在图像处理中常使用的opencv中的算法几乎都存在C或C++实现的源代码,并且其运行效率是得到了充分认证的。

Native Development Kit(NDK)是一种工具的集合。开发人员可以利用NDK提供的工具方便地使用C/C++的动态库,并且还可以将so和java自动打包成apk。

通过分析得出,可以使用JNI NDK技术来搭建在android系统下使用opencv的图像处理平台,通过调用OpenCV的函数和方法来完成图像的处理工作。

3.2 NDK开发优点

(1)由于项目开发需要调用C/C++里的一些内容,而对比Java发现,它无法访问操作系统底层部分内容,只能通过NDK来实现软件驱动开发,将由C/C++完成的功能代码嵌入到Java中,实现代码复用,以实现其功能。另外,对于音频视频的处理、文件压缩和图片处理等,利用NDK开发是很占优势的。(2)NDK可以保证程序更加高效。通常C/C++开发的程序可以实现高性能的应用逻辑,因此,程序的执行效率也随之提高,然而C/C++代码在保证高效率的同时,也会增加程序开销。(3)安全性的保证。在Android之前,程序都是运行在服务器上的,所以安全性的问题很少。在发布APP时会暴露很多缺陷,所以为了防止代码被反编译,可以使用NDK,将原始代码运行时加密和封装,以此来保证程序的安全性。(4)便于移植。C/C++编写的程序或功能块可以嵌套在Java里进行实现。

3.3 研究思路和方法

(1)从在线视频中识别拍摄对象,将拍摄人物分割出来,在分割完成之后,对边界附近的像素做后处理,以获得较好的视觉效果(基于形态学的动态人体追踪方法、二元分割、边界模型、图切割算法和标定技术)。(2)将人物放入背景中。将计算机生成的三维虚拟场景或目标视频同真实人物无缝融合,从而改变人物所处的环境(利用图像匹配、虚实图像融合和三维注册技术)。(3)实现多角度展现虚拟效果。检测由镜头角度变换引起的背景的切变与渐变问题。视频镜头的边界检测主要使用切变检测法(自适应域值的选取,统计检测法,基于惯性信息检测法)和渐变检测法(光流法,域值法,模型法)。(4)虚拟背景素材的实现。搭建3D全景,并构建数据库(球面全景技术,3Dmax)。(5)获取源数据,为用户展示最终效果。手持显示器显示拍照效果(显示技术)。

4 结 论

基于AR技术的手机拍摄软件从当下图片美化的牢笼中走出来,是绿幕技术的提升版。在不使用特殊背景的情况下,把人物从常规背景中分离出来,并与虚拟三维场景或其他视频相融合,让用户通过简单的操作体验身处虚拟场景的乐趣。

本软件开发思路逻辑严密,基于增强现实技术的手机拍照应用软件进行开发,具有较高的可行性、实用性和研究价值。

参考文献:

[1] 苏.运动目标检测之Vibe背景模型算法 [EB/OL].[2015- 11-17].https://blog.csdn.net/lanxuecc/article/details/ 49886531.

[2] Hjimce. Seamless cloning泊松克隆 [EB/OL].[2015-05-14].http://blog.csdn.net/hjimce/article/details/45716603.

[3] 康彬.面向智能监控的目标检测、追踪及图像融合算法研究 [D].南京邮电大学,2015.

[4] 周维.视频监控中运动目标发现与跟踪算法的研究 [D].合肥:中国科学技术大学,2012.

作者简介:朱晨璐(1997.10-),女,汉族,陕西渭南人,本科,计算机科学与技术专业。研究方向:计算机科学与技术。