Osheep

时光不回头,当下最重要。

AR应用开发--EasyAR初体验(新手向)

作者:hwj3747
转载请注明

说明

随着智能化技术的火爆,可以预见:AR,VR,人工智能等技术将逐渐成为未来科技发展的潮流!但是这些技术的技术壁垒是相当高的,对于小白来说,难度着实太大,好在已经有一些公司开始提供SDK供用户集成使用。今天要讲的是一个国内相对来说比较成熟的AR SDK产品:EasyAR。目前EasyAR已经更新到2.0,但是可惜的是官网上的开发文档还是不够完善,只能自己慢慢摸索。下面会结合本人集成经验,讲解Android端如何集成EasyAR SDK。

EasyAR简介

百度EasyAR官网,可以看到以下5个部分:

《AR应用开发--EasyAR初体验(新手向)》

image.png
  • 产品:EasyAR产品分为两个EasyAR SDK和EasyAR CRS,其中EasyAR SDK 基础版提供开发AR的基本SDK,是免费的。EasyAR SDK
    PRO版提供3D物体识别功能以及录屏功能,是收费的。EasyAR CRS云服务提供云图库功能,也是收费的。
  • 支持:里面提供了1.3版本的EasyAR SDK以及EasyAR CRS的文档,2.0暂未提供。
  • 下载:分为Basic版以及PRO版,并且每个版本又可以分为Unity版本以及非Unity版本。这里的Unity版本是指用Unity3D开发识别后的AR内容,非Unity是指用openGL开发识别后的AR内容。(对于新手来说,据说Unity3D会更好学一点)
  • 开发:这里是工作台,在这边创建应用,得到key,在应用内填入key,就可以使用这个应用了。
  • 社区:这边就是官方的开发者交流平台,不过蛮冷清的就是了。

配置EasyAR开发环境

进入官网,点击支持->入门指南->配置EasyAR Android SDK(非Unity)
可以看到官方要求的环境:

  • JDK 1.7 或更新版本
  • Android Studio 1.5 或更新版本
  • Android NDK r10e
  • Android SDK with Build Tools 至少需要版本20.0.0
  • Android API 23 (可从Android SDK Manager中下载)
    其他的应该都比较简单,这里着重讲一下NDK的配置。首先,需要下载Android NDK r10e或更高版本,一般是exe版本直接打开,就会在本目录下有一个Android NDK r10e的目录。打开Android Studio,进入Project
    Structure,在Android NDK location选择NDK目录即可。
    《AR应用开发--EasyAR初体验(新手向)》

    Project Structure

EasyAR Demo

如果仅仅是按照官网配置SDK的方法配置,就仅是集成了SDK而已,怎么用还是不明白,所以直接从demo入手。进入官网,点击下载,下载EasyAR_SDK_2.0.0_Basic_Samples_Android,这里面包含了,Basic,PRO,以及CRS版本。
Basic版本包含一下几个demo:

  • HelloAR
    • 演示如何使用Java API创建第一个EasyAR应用
    • 演示创建target的不同方法
  • HelloARCpp
    • 演示如何使用C++11 API创建第一个EasyAR应用
    • 演示创建target的不同方法
  • HelloARCppNonstd (Android only)
    • 演示如何使用traditional C++ API创建第一个EasyAR应用
    • 演示创建target的不同方法
  • HelloARCppVS (Android only)
    • 演示如何使用C++11 API及Visual Studio 2015或更新版本创建第一个EasyAR应用
    • 演示创建target的不同方法
  • HelloARVideo
    • 演示如何使用EasyAR加载并在target上播放视频
    • 演示本地视频播放
    • 演示透明视频播放
    • 演示流媒体视频播放
  • HelloARMultiTarget_SingleTracker
    • 演示如何使用一个tracker同时跟踪多个目标
  • HelloARMultiTarget_MultiTracker
    • 演示如何使用多个tracker同时跟踪多个目标
  • HelloARMultiTarget_SameImage
    • 演示如何同时跟踪多个相同目标
  • HelloARQRCode
    • 演示如何同时检测二维码并跟踪目标

运行Demo HelloAR

首先直接import HelloAR,这时候会有很多错误,不用理会,然后打开
gradle-wrapper.properties,将你的环境的gradle配置复制进去,具体做法:新建一个工程,打开gradle-wrapper.properties,将里面的内容复制到HelloAR的gradle-wrapper.properties文件里。

《AR应用开发--EasyAR初体验(新手向)》

image.png

接下来,打开工程目录下的build.gradle文件,修改gradle版本为你环境的gradle版本,方法同上

《AR应用开发--EasyAR初体验(新手向)》

image.png

接下来打开app目录下的build.gradle文件,修改compileSdkVersion,buildToolsVersion以及下面的appcompat-v7的版本,方法同上。

《AR应用开发--EasyAR初体验(新手向)》

image.png

最后登录官网,点击开发进入后台,新建一个应用,输入应用名和包名,得到2.0的SDK的key值:

《AR应用开发--EasyAR初体验(新手向)》

image.png

打开HelloAR的MainActivity,输入刚才得到的key值。

《AR应用开发--EasyAR初体验(新手向)》

image.png

点击同步,这样就可以运行了。

Demo效果展示

在assert目录下放着所有能被识别到的图,这里称作Target。

  • 创建基础target
    • HelloAR
    • HelloARCpp
    • HelloARCppNonstd (Android only)
    • HelloARCppVS (Android only)
      这4个demo演示的是用不同的方法创建一个target,例如一张身份证照片,然后在身份证上显示一个OpenGL绘制的立体图像。具体效果都是一样的,效果如下:
《AR应用开发--EasyAR初体验(新手向)》

image.png
  • 在Target上播放视频
    • HelloARVideo
      这个demo演示的是在创建的Target上播放视频的功能,效果如下:
《AR应用开发--EasyAR初体验(新手向)》

image.png
  • 同时跟踪多个相同目标
    • HelloARMultiTarget_SingleTracker
    • HelloARMultiTarget_MultiTracker
    • HelloARMultiTarget_SameImage
      这3个demo演示的是同时识别多个相同或不同目标(Tracker代表可以识别的目标库),其效果基本一样,如下:
《AR应用开发--EasyAR初体验(新手向)》

image.png
  • 识别二维码同时跟踪目标
    • HelloARQRCode
      这个demo演示的是在识别目标图片的同时,识别出二维码,并且打印二维码日志。效果如下:
《AR应用开发--EasyAR初体验(新手向)》

image.png
点赞