打破虚拟边界的视频交互新方式,AR隔空书写的应用理念和探索实践

AR隔空书写演示
随着技术的发展和超视频化的时代驱动,交互的形式日渐丰富。从屏幕点触,到语音交互,人脸、指纹、声纹,再到近年流行的AR和VR……人类早在语言出现之前便习惯使用肢体和手势这种近乎本能的沟通方式来进行交流,作为最基础和自然的交互方式,手势交互的应用场景越来越多。
当前,市面上大部分视频应用的手势交互逻辑,主要是通过某个具体手势触发预置的单个特效,这种较为简单的交互不仅不能发挥出人类灵活手掌的潜力,在终端上的识别效果也有较大的提升空间。
尤其是受疫情影响以及在音视频会议和协同办公需求巨大的今天,使用实体白板画图写字进行远程沟通和协作非常困难。
虽然市面上有类似虚拟白板的产品,但是这类产品主要还是依赖于鼠标等设备来进行输入,我们可以利用手势的天然优势,代替鼠标、键盘、触屏等交互方式,实现AR隔空书写,在办公、生活、娱乐场景发挥其巨大价值。
AR隔空书写,打破虚拟白板壁垒
如何通过AR隔空书写来实现一个完善的虚拟白板?
最直接的想法是把写字的内容渲染在屏幕上,例如最近一个较火的开源项目“Yoha”便是通过这个想法实现了效果,但这也面临着因为摄像头视角有限导致字无法写得很小和书写内容有限等问题。

另一种方案,可以通过先书写一部分内容,将其缩小后,再写另一部分内容。这种解决方案看似可行,却面临着排版困难以及前后内容连续性差等问题。
阿里云视频云美颜特效SDK(以下简称“美效SDK”)的AR隔空书写能力,通过把AR隔空书写的窗口悬浮在虚拟白板上,使得AR隔空书写窗口可以自由的放大、缩小、平移,这样用户就可以自由控制写字的大小和位置,对书写内容的排版也会更具操控性。

对于摄像头捕捉的每一帧图像的边缘进行裁剪,然后再悬浮在白板上,用户可以放大或缩小ROI窗口,来实现对书写内容的大小和精细度的控制。

用户还可以通过移动AR隔空书写窗口来控制写字的位置。

当使用者的手势(虚拟笔尖)移到AR窗口边缘附近的时候,AR窗口将会自动朝对应的方向移动(参考DOTA、LOL、魔兽争霸等游戏移动窗口)。
参考动图,这种身体不需要移动的操作方式不仅符合人的书写使用习惯,也使得移动窗口的便利性和使用舒适性大大提高。

阿里云视频云将该AR隔空书写能力作为“隐藏黑科技”集成在钉钉的音视频会议硬件产品中,该能力可以帮助参会者在远程会议中通过隔空书写或是画图来助力沟通。在近期的钉钉发布会上,阿里云视频云也对该能力进行了交互展示。
丰富虚拟特效,让视频交互更趣意
AR隔空书写还可以和粒子特效结合,展现出雪花、火焰、水滴、花瓣、烟雾等各类丰富炫酷的特效,为用户进行个性创作提供发挥空间,让视频交互更美感、更有趣。


AR隔空书写能力近日上线于阿里云视频云的美效SDK,这是基于自研的面部关键点位技术,支持画面美化、人像美颜、抠像制作、贴纸美妆、动作识别、智趣交互、抠像处理等多种个性化的定制美效交互服务。
美效SDK具备多维度优势:
效果好:功能全面、一键组合与逐项DIY
包体小:基础美颜功能仅需0.78M
性能优:Android最低支持4.3系统,iOS系统最低支持到iOS-8系统,Mac支持最新M1
接入快速可定制:独立组装拆解、按需参数级调整定制
基于一系列的应用优势,美效SDK适用于直播、拍摄、会议、电商等多种业务场景,完美平衡了效果美化与性能开销的问题,助力视频交互更丰富智趣。
可以预见的是,手势交互是未来人机交互必不可少的一部分,一个轻盈无边界的沉浸式虚拟世界,不可能完全依赖“手持设备”和实体的“触点交互”,用技术解放双手才是虚拟与现实无缝链接的正确打开方式。
视频化场景的交互瓶颈已初显,阿里云视频云基于美效SDK的AR隔空书写能力的研发与应用,为超视频化时代的智趣新交互提供了更多可能,推动视频交互走向更远。
想体验AR隔空书写Demo或者交流的读者欢迎钉钉搜索群号:34197869,或扫下方二维码加入

「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。公众号后台回复【技术】可加入阿里云视频云产品技术交流群,和业内大咖一起探讨音视频技术,获取更多行业最新信息。
打破虚拟边界的视频交互新方式,AR隔空书写的应用理念和探索实践的更多相关文章
- Microsoft Translator:打破语言障碍 拓展全球沟通新机遇
Translator:打破语言障碍 拓展全球沟通新机遇"> 作者:Olivier Fontana, 微软研究院Microsoft Translator产品战略总监 世界越来越小,全球协 ...
- Visual Studio 2012 应用软件开发新方式
微软正式发布Visual Studio 2012 应用软件开发新方式 2012-09-13 09:54 51CTO.com 我要评论(0) 字号:T | T “现在,开发者将有更好的机会开发与云服务连 ...
- 前端与后端数据交互的方式之ajax
前端与后端数据交互的方式之Ajax 对于前端学习而言,CSS+HTML+JavaScript的学习在自我学习的情况下掌握也不是很难,但是想要实现前后端的数据交互在没有指导的情况下学习会是一头雾水.接下 ...
- 异步编程新方式async/await
一.前言 实际上对async/await并不是很陌生,早在阮大大的ES6教程里面就接触到了,但是一直处于理解并不熟练使用的状态,于是决定重新学习并且总结一下,写了这篇博文.如果文中有错误的地方还请各位 ...
- 以交互的方式升级ESXi主机
以交互的方式升级ESXi主机 环境说明: 需求:要将 ESXi 6.0 主机和 ESXi 6.5 主机升级到 ESXi 6.7,可从 CD.DVD 或 USB 闪存驱动器引导 ESXi 安装程序. 注 ...
- 通过xib加载UITableViewCell的新方式
我们以前通常会这样做 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPa ...
- VirtualBox不能为虚拟电脑 Ubuntu 打开一个新任务
今天在用Vbox中的Ubuntu系统准备测试Python代码时,Vbox报了一个错误:"不能为虚拟电脑 Ubuntu 打开一个新任务".因为之前用的时候还好好的,也不知道是不是最近 ...
- 不能为虚拟电脑 ubuntu 打开一个新任务.
使用virtualbox报错: 不能为虚拟电脑 ubuntu3 打开一个新任务. The virtual machine 'ubuntu3' has terminated unexpectedly d ...
- flutter 交互提示方式
交互提示方式dialog和snackbar 首先看看dialog的方式 new PopupMenuButton( icon: new Icon(Icons.phone_iphone, color: C ...
- virtualbox更新完无法启动的问题(不能为虚拟电脑 Ubuntu 打开一个新任务)
具体错误: 不能为虚拟电脑 Ubuntu 打开一个新任务. VT-x is disabled in the BIOS. (VERR_VMX_MSR_VMXON_DISABLED). 返回 代码: E_ ...
随机推荐
- 8.3随记之Ubuntu 系统中修改 DNS 的两种办法和暗链
8.3 随记 在 Ubuntu 系统中修改 DNS 的两种办法 在终端进行修改编辑 sudo nano /etc/resolv.conf 进行修改文件 例如:nameserver 8.8.8.8, 保 ...
- L2-030 冰岛人
需要注意的地方: 我们只记录维京人的祖先,除了维京人的其他人不能记录它的祖先 #include <bits/stdc++.h> using namespace std; struct pe ...
- 分享我对DiscuzQ这款现代化开源轻社区的二次开发成果。DiscuzQ依然是站长的最佳选择!
简要说一下二开的功能:贴文列表样式优化.增加国内 AI 大模型功能.增加社区 AI 助手(会自动发帖和回帖).编辑器功能优化.pc 端导航优化.h5 端导航优化.修复各种加载不出来加载缓慢的问题等等细 ...
- React 应用构建(环境)
可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么? 一. 环境搭建 工作编辑器:Visual Studio Code. Javascript 解析 ...
- Jenkins从Ubuntu迁移至AlmaLinux问题及相关解决记录
相关背景 之前在Ubuntu平台上搭建了Jenkins(在Ubuntu机器上使用war包安装Jenkins),现在由于一些需求,需要将系统迁移到AlmaLinux平台.由于AlmaLinux属于Cen ...
- 关于 K8s 的一些基础概念整理
〇.前言 Kubernetes,将中间八个字母用数字 8 替换掉简称 k8s,是一个开源的容器集群管理系统,由谷歌开发并维护.它为跨主机的容器化应用提供资源调度.服务发现.高可用管理和弹性伸缩等功能. ...
- Shell的概念、shebang、bash的概念
什么是shell shell的作用是 解释执行用户输入的命令或程序等 用户输入一条命令,shell就解释一条 键盘输入命令,Linux给与响应的方式,称之为交互式 linux的计算机是如何跟用户进行交 ...
- 深入理解JavaScript堆栈、事件循环、执行上下文和作用域以及闭包
1. 堆栈 在JavaScript中,内存堆是内存分配的地方,调用栈是代码执行的地方. 原始类型的保存方式:在变量中保存的是值本身,所以原始类型也被称之为值类型. 对象类型的保存方式:在变量中保存的是 ...
- Go 语言为什么不支持并发读写 map?
大家好,我是 frank ,「 Golang 语言开发栈」公众号作者. 01 介绍 在 Go 语言项目开发中,我们经常会使用哈希表 map,它的时间复杂度是 O(1),Go 语言中的 map 使用开放 ...
- shared_ptr 自定义 deleter 删除器
一些结论 如果 shared_ptr 管理的资源不是 new 分配的内存,才考虑自定义删除器,这也是为什么 make_shared 不支持自定义删除器的原因,因为 make_shared 就是通过 n ...