Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Web AR 技术调研笔记

Web AR 技术调研笔记

原创
作者头像
邹成卓
修改于 2017-07-21 07:44:12
修改于 2017-07-21 07:44:12
8.4K1
举报
文章被收录于专栏:邹成卓的专栏邹成卓的专栏

1.技术体系

1.1技术体系整理

其中绿色底色的代表Demo中表现出的能力比较成熟,可以直接应用。

脑图地址:http://naotu.baidu.com/file/3392a895a903972520b2f65fda12ee3c?token=55695cff60c6e275

1.2 兼容性

Web AR的兼容性,可以认为是其用到两大核心技术的兼容性:

WebRTC:

WebGL:

1.3案例分析

公司的王者荣耀貂蝉AR广告, 《Web前端也能做的AR互动》

实际上就是一个基于Three.js渲染模型,并自行基于Three.js实现空间定位的一个AR应用。效果类似的是awe.js的空间定位功能,下面的Demo中有提供。

其开发模式为:

UI开发

  • 开发or导出貂蝉游戏人物模型
  • 开发人物皮肤贴图纹理
  • 开发模型动画
  • 使用3D软件导出Three.js支持的模型格式(这里看似简单,实际有大坑,不同的模型、骨骼、贴图、动画,导出时会有不同问题,还要控制模型资源大小,不能过大)

前端开发

  • · WebGL全景场景(不支持WebRTC设备柔性降级)
  • · 空间定位开发
  • · 模型渲染
  • · 交互与动画控制
  • · 终端适配

2.业界相关的库及Demo

整理了部分Demo:https://artoolkittest.sparta.html5.qq.com/

2.1JsArtoolkit

Artoolkit的js版本,支持pat marker和nft marker的识别与跟踪,配合threejs可渲染模型,目前的问题是nft marker跟踪的帧率不高。

JsArtoolkit的项目地址为:https://github.com/artoolkit/jsartoolkit5

Pat识别

https://artoolkittest.sparta.html5.qq.com/pat/examples/pattern_and_barcode_threejs.html

效果较好:

Nft识别

https://artoolkittest.sparta.html5.qq.com/nft/examples/nft_worker_threejs.html

2.2 Awejs

基于jsartoolkit实现了图片marker识别,并封装了空间定位能力,提供了AR/VR设备体验版本的Demo。

Awejs的项目地址为:https://github.com/buildar/awe.js

pat识别

https://artoolkittest.sparta.html5.qq.com/awe/examples/marker_ar/

空间定位

此Demo需要在手机中打开

https://artoolkittest.sparta.html5.qq.com/awe/examples/geo_ar/

结合Oculus Rift

暂未调研

结合体验仪器的体验(Google Glass、Kinect(XBOX体感外设))

暂未调研

2.3 JsObjectDetect

JsObjectDetect亮点功能在人脸和手势识别跟踪方面的表现,且能识别、跟踪人脸五官。

JsObjectDetect的项目地址:https://github.com/mtschirs/js-objectdetect/

人脸、五官识别

该Demo提供了人脸识别能力(嘴巴、眼睛、鼻子),从图片识别:

https://artoolkittest.sparta.html5.qq.com/jsobjectdetect/examples/example_image.htm

识别+跟踪

https://artoolkittest.sparta.html5.qq.com/jsobjectdetect/examples/example_sunglasses.htm

从效果来看,该库是Web AR中少有的人脸识别跟踪效果较好,且帧率较高的AR库。下面的Demo中可以选择一款眼镜,Demo识别到人脸后把眼镜放在眼部并跟踪。

另外,http://facedetection.jaysalvat.com/ 这是一个基于js-objectdetect的人脸识别jquery插件,可以识别图片和视频中的人脸,没有提供摄像头帧实时识别的Demo,估计是此插件计算性能应该跟不上,帧率不会高。

性能

JsObjectDetect自称人脸识别方面能力和效果秒杀其他库:

Chrome 40 / FF 35

Detections per Second

Detections

Seconds

js-objectdetect

17.5 / 16.9

50 / 50

2.86 / 2.96

jsfeat

9.4 / 6.3

30 / 30

3.18 / 4.75

tracking.js

7.7 / 8.97

48 / 48

6.24 / 5.35

Beyond Reality Face

7.4 / 1.7

41 / 41

5.50 / 23.98

CCV

2.2 / 4.4

8 / 8

2.22 / 1.80

手势控制3D模型

用手势控制3 D模型的姿态,可以控制,但是效果不佳,有点莫名其妙的意思。

https://artoolkittest.sparta.html5.qq.com/jsobjectdetect/examples/example_gesture_input.htm

手势翻页

用手势控制网页翻页,手在镜头下部时向下翻页,在镜头上部时向上翻页,点红框内链接开始。

https://artoolkittest.sparta.html5.qq.com/jsobjectdetect/examples/example_gesture_scroll.htm

2.4 Tracking.js

Tracking.js提供了人脸识别的能力,但是在浏览器里边表现不佳。另外,这个库还提供了显示识别特征点等能力。

tracking.js的项目地址为:https://github.com/eduardolundgren/tracking.js/

tracking.js的 Demo列表:https://trackingjs.com/examples/brief_camera.html

https://trackingjs.com/examples/face_fish_tank.html

tracking.js人脸+姿态 帧率不高 17.5 fps

2.5 caffejs

Caffejs支持在Web中运行神经网络功能,该项目提供了一些示例模型的演示。

如果能有一套成熟的方案把这个库包装一下用起来,意义还是挺大的:将图片识别的工作放在浏览器中完成,可以节省大量的网络流量和服务器资源。

但是目前浏览器中做识别由于性能原因,识别耗时较长,不能太过频繁的识别。

项目地址:https://github.com/chaosmail/caffejs

2.6 其他

CCV

http://wesbos.com/demos/html5-face-detection/

基于CCV的人脸识别demo

帧率并不高,没有深入看

Jsfeat

暂未研究

Beyond Reality Face

暂未研究

3.总结

目前Web AR业界已经有了一定的技术积累,但是还没有达到成熟可用的地步,用一句话概括一下:底层识别能力弱,上层渲染能力强。

3.1底层能力

Marker识别方面,jsartoolkit的pat模式识别跟踪效果不错,但是nft识别速度慢,且卡顿,无法达到可以应用的地步。

人脸识别方面,JsObjectDetect的表现还算不错,可以识别、跟踪人脸以及五官位置,据观察应该是只支持2D坐标的识别,不支持3D姿态的识别。

手势识别方面,JsObjectDetect支持手势识别能力,根据其提供的Demo来看,识别是可以识别,但是不够稳定,经常识别丢,难以在现实项目中应用。

图像识别方面,之前经x哥介绍看了下caffejs这个Web神经网络的项目,目前是官方的Demo可以跑起来,但是我们自己训练的模型跑出来结果不对。

3.2上层渲染

模型渲染,目前看到的Web中主流3D模型渲染方式是Three.js,做Web AR方面的开发,无论底层能力采用何种方案,都是必须系统学习一下Three.js的。

3D模型开发,需要专业的UI开发工程师来开发3D模型、贴图以及动画,涉及到maya、3Dmax等软件的学习。

模型导出,3D模型要让Three.js能够使用,需要导出成特定格式,导出的过程中因模型、动画的不同,会有一些坑。另外资源大小的优化、压缩也是一个问题。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
前辈您好!非常感谢您的分享,我对NFT-web AR非常感兴趣,不知道您现在还对这方面是否有研究?再次感谢您的分享
前辈您好!非常感谢您的分享,我对NFT-web AR非常感兴趣,不知道您现在还对这方面是否有研究?再次感谢您的分享
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
元宇宙趋势下的前端,有哪些机会与挑战
作为大家口中的“互联网的最终形态”,需要如今大热的包括 AR、VR、5G、云计算、区块链等软硬件技术的成熟。才能构建出一个去中心化的、不受单一控制的、永续的、不会终止的世界。
Nealyang
2021/12/04
1.6K0
元宇宙趋势下的前端,有哪些机会与挑战
元宇宙相关的前端技术
作为大家口中的“互联网的最终形态”,需要如今大热的包括 AR、VR、5G、云计算、区块链等软硬件技术的成熟。才能构建出一个去中心化的、不受单一控制的、永续的、不会终止的世界。上面提到的各项技术,和目前前端关联比较大的,便是 AR、VR。
@超人
2021/11/17
1.6K0
元宇宙下的前端现状
作为大家口中的“互联网的最终形态”,需要如今大热的包括 AR、VR、5G、云计算、区块链等软硬件技术的成熟。才能构建出一个去中心化的、不受单一控制的、永续的、不会终止的世界。
coder_koala
2021/11/10
1.6K0
元宇宙下的前端现状
元宇宙趋势下的前端现状
作为大家口中的“互联网的最终形态”,需要如今大热的包括 AR、VR、5G、云计算、区块链等软硬件技术的成熟。才能构建出一个去中心化的、不受单一控制的、永续的、不会终止的世界。
ConardLi
2021/11/16
1.5K0
高级web网页人脸识别tracking.js
what?你没有看错,强大的JavaScript也可以实现人脸识别功能。小编精心整理了一个人脸识别的JavaScript库(tracking.js),通过这篇文章,你可以了解到如何在网页中实现一个人脸识别功能。 tracking.js
马克社区
2022/04/19
2.6K0
高级web网页人脸识别tracking.js
这几个人脸识别解决方案你用过没?
以上就是完成人脸识别所需的步骤,如果你想在这个基础上,做人脸比对或者身份证校验等拓展功能,可以借助用户的身份证、姓名等信息,再结合第三方的AI服务,比如腾讯云的人脸核身来完成,本质上底层数据支持来自公安的实名认证接口
树酱
2022/03/09
1.5K0
这几个人脸识别解决方案你用过没?
WebGL 技术在 AR 中的应用及其优势
WebGL 是一种基于 OpenGL ES 2.0 的 JavaScript API,用于在浏览器中渲染 2D 和 3D 图形。随着增强现实(AR)技术的发展,WebGL 在 AR 应用中的作用越来越重要。以下是 WebGL 技术在 AR 中的应用及其优势。
数字孪生开发者
2025/01/17
1500
WebGL 技术在 AR 中的应用及其优势
基于 Web 端的人脸识别身份验证
本文首发于政采云前端团队博客:基于 Web 端的人脸识别身份验证 https://www.zoo.team/article/web-face-recognition
政采云前端团队
2020/06/17
4.6K0
元宇宙基础案例 | 大帅老猿threejs特训
「元宇宙」这个概念在近来十分火热,但本质来上说,元宇宙这个词更多的是一个商业上的概念,在这个概念里面融入集成了很多现有的技术。具体可能包括:
IT从业者张某某
2023/10/16
6210
元宇宙基础案例 | 大帅老猿threejs特训
硬核看房利器——Web 全景的实现
疫情期间,打破社交距离限制的交互模式被推向前台,为不少行业的传统交易提供了想象的空间。
winty
2020/09/14
2.2K0
技术解码 | Web端AR美颜特效技术实现
文:shirly(腾讯云前端开发高级工程师) 直播、短视频、在线会议等应用越来越多地进入人们的生活,随之诞生的是丰富的各类创意玩法与新鲜体验,其中大量应用了以AI检测和图形渲染为基础的AR技术。 此类技术在原生应用已经十分成熟,而由于Web的功能和性能瓶颈,使得实现Web端上的AI人脸识别与实时渲染成为了一种挑战。而随着Web技术的不断成熟,AR技术在Web上的实现成为了一种可能。笔者总结了在Web端实现此功能的几个技术要点,跟大家一起探讨一下。 技术实现 抽象整体的实现思路如下,使用AI检测模型检测输
腾讯云音视频
2022/04/24
2.7K0
技术解码 | Web端AR美颜特效技术实现
Day2:Github项目每日优选之Smartcrop.js
各位宝友大家好,今天给大家带来了 smartcrop.js ,它是什么呢?通过名字我们大概能猜出来就是智能裁剪。我用我拙劣的东北英语大概翻译了下:Smartcrop.js 实现了一种算法来为图像找到好的裁剪。它提供了三种使用方式分别是 浏览器中、node、 和CLI 。
疯狂的技术宅
2021/09/23
9450
《 iPhone X ARKit Face Tracking 》
该文章讲述了作者从一名普通iOS开发者到Apple开发者的历程,包括开发经历、学习Apple官方文档、开发者社区、开发工具、代码仓库、团队协作、总结与收获。\n在开发过程中,作者通过学习Apple的官方文档,了解了Objective-C以及Swift编程语言,并逐渐掌握了iOS开发的核心概念。通过参加技术社区,了解到了ARKit、SceneKit、Core ML等框架,并深入学习了Objective-C与Swift编程语言的基础知识和最佳实践。在开发工具方面,作者使用了Xcode、Instruments、Sketch、Adobe XD、Figma等工具。在团队协作方面,作者通过使用GitHub进行版本控制,与团队成员进行代码共享、沟通、协作。\n通过开发iOS应用,作者深入了解了ARKit、SceneKit、Core ML等框架的原理和最佳实践,并逐渐掌握了基于这些框架的开发流程。同时,作者通过总结与收获,逐渐形成了一套适用于自己的iOS开发学习体系。\n
腾讯Bugly
2017/11/20
3.7K0
《 iPhone X ARKit Face Tracking 》
Web vs App(AR版)
关于更多机器学习、人工智能、增强现实、Unity、Unreal资源和技术干货,可以关注公众号:AIRX社区,共同学习,一起进步
三次方AIRX
2020/12/06
2.2K0
第1章 开启Threejs之旅(一)
技术在进步,如果半年不学习新技术,那么我就落后了。本教程将带你进入一个全新的技术世界,它叫做WebGL。
webvrmodel模型网
2022/05/09
1.8K0
第1章 开启Threejs之旅(一)
短视频特效“耍花招”:线上投篮、摆摊,让画中人摇摆,浅谈腾讯微视的AR基建
魔性的背景音乐、酷炫的AR特效、多元的内容题材,让大众欲罢不能的短视频App正在成为内容生产和传播主要渠道之一。
AI科技大本营
2021/01/21
1.1K0
ThreeJS实现船行效果
解决方法: 官方提供了射线捕获的接口 raycaster.intersectObjects, 但是只能识别自建的Mesh模型, 对于导入的模型则无法捕获, 主要是因为导入的模型最外层包了一层, 没有把自己内部的Mesh暴露出来 所以我们需要在模型导入后, 在onProgress回调中对其进行递归获取子Mesh, 将所有Mesh存在一个全局数组中. 在鼠标事件触发时, 将全局数组提供给raycaster.intersectObjects, 即可识别 1. 递归函数
治电小白菜
2020/08/25
4.9K0
ThreeJS实现船行效果
Github 项目推荐 | 基于 Three.js 的 web 3D 地球数据可视化的开源组件库
Gio.js 是一个基于Three.js的web 3D地球数据可视化的开源组件库。使用Gio.js的网页应用开发者,可以快速地以申明的方式创建自定义的Web3D数据可视化模型,添加数据,并且将其作为一个组件整合到自己的应用中。
AI研习社
2018/07/26
5K0
Github 项目推荐 | 基于 Three.js 的 web 3D 地球数据可视化的开源组件库
厉害了!浏览器都能做人脸检测了!
Shape Detection API 的发布已经有一些时日,其主要的提供的能力是给予前端直接可用的特征检测的接口(包括条形码、人脸、文本检测)。本文将简单的对其进行介绍,对前端进行人脸检测进行普适性的讲解。(本文不讲算法~望轻拍)
疯狂的技术宅
2019/03/28
1.3K0
厉害了!浏览器都能做人脸检测了!
增强现实让广告“活”起来——AR 赋能营销的新玩法
在这个信息爆炸的时代,消费者的注意力成为最稀缺的资源。传统广告早已难以满足用户的需求,而 增强现实(AR) 正在成为营销领域的一股革新力量,让广告从“平面”变成“立体”,从“被动接收”变成“互动体验”。今天,我们就来聊聊 AR 在广告营销中的创意玩法,以及如何利用技术实现这些想法。
Echo_Wish
2025/05/21
620
增强现实让广告“活”起来——AR 赋能营销的新玩法
相关推荐
元宇宙趋势下的前端,有哪些机会与挑战
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档