写点什么

移动 AI 系列 - 百度智能小程序与 VR+N 的跨界实践

  • 2020-12-28
  • 本文字数:2627 字

    阅读完需:约 9 分钟

移动AI系列-百度智能小程序与VR+N的跨界实践

一、百度智能小程序及 VR 小程序组件介绍


小程序以其开发成本低,触手可及,即扫即用,用完即走,自带推广等优势获得了普遍认可;近几年,虚拟现实(Virtual Reality,VR)技术发展迅猛,商业化、市场化和产品化的趋势日益明显,百度在 VR 方面也做了一些探索,目前实现架构如下:



百度 VR 提供多种接入方式,支持多种平台;本文主要介绍方便易用的 VR 小程序组件,让开发者更易接入,用户更易使用。


1.1 认识百度智能小程序


打开手机百度 APP,进入推荐页面,会发现如下图一的左边页面有一行标示“智能小程序”,点击进入该小程序 ,如图一右边所示:



可以观察到,百度智能小程序通常由常规的网页内容(html/css/js),自定义组件(页面内功能模块的一种抽象,提升代码复用度)构成。


百度智能小程序采用自研渲染架构,在启动速度和运行性能上具有接近原生的体验,同时还提供了一些丰富易用的智能组件,包含语音组件 ,


视觉组件,自然语言组件,AR 组件,VR 组件等;


百度自定义智能小程序组件由以下文件组成:



下面是一个简单的 view 自定义组件的实现方法:



1.2 开发自定义的百度智能小程序


开发者基于手机百度 APP 平台,开发自定义智能小程序,流程如下图:



开发者首先通过百度提供的小程序开发工具编写自定义的小程序,小程序开发完成后,点击开发者工具上的发布;这时小程序会被打包上传到服务器的 B 端,工作人员会对上传的小程序进行审核预览,如果没有问题继续发布到服务器的 C 端,如果有用户点击该小程序,会从服务器 C 端加密传输并下载到用户的设备端,并通过手百进行渲染,最终显示给用户;开发者开发百度智能小程序时,时常会使用到百度提供的智能小程序组件,该组件往往是以动态库形式封装的,下面是使用步骤:


A  引入动态库   B 配置动态库  C 使用动态库



1.3 VR 小程序组件


百度 VR 小程序组件为开发者提供了 4 种功能:全景视频(组件名:vrvideo)、全景图(组件名: panoviewer)、3D 环物(组件名:spintileviewer)、3D 模型(组件名:modelviewer)。


1.3.1 全景视频



全景视频组主要应用在在 VR 直播,游戏等场景,使用方法如下:


i 在项目中引用动态库



app.json:"dynamicLib": { "myDynamicLib": { "provider": "vrvideo" } },
复制代码


ii 配置动态库


xxx.json:{ "usingSwanComponents": { "vrvideo": "dynamicLib://myDynamicLib/vrvideo" } }
复制代码


iii 使用动态库


xxx.swan:<vrvideo src="{{ src }}" style="width: 100%; height: 100%; display: block"></vrvideo>
复制代码


通过 src 设置相应的属性项,目前支持的属性如下:


支持 VR 视频类型(投影模式):球形、左右/上下立体、穹形 180 度/230 度;• 支持视频播放属性:播放、暂停、全屏、静音、循环播放、自动播放;• 支持交互模式:手势,陀螺仪,手势+陀螺仪;• 支持解码方式;软解和硬解;• 支持的显示模式:单目、双目;


1.3.2 全景图



全景图组件主要应用在 VR 看房,VR 地图,VR 游戏等场景;全景图使用方法如下:


i 在项目中引用动态库



app.json: “dynamicLib”: { “myDynamicLib”: { “provider”: “panoviewer” } },
复制代码


ii 配置动态库


xxx.json :


{ “usingSwanComponents”: { “panoviewer”: “dynamicLib://myDynamicLib/panoviewer” } }
复制代码


iii 使用动态库


   xxx.swan :


<panoviewer options="{{ options }}" style="width: 100%; height: 100%; display: block"></panoviewer>
复制代码


全景图支持的属性如下:


投影模式:球形、等柱状体(equirectangular)、立方体、等角度立方体( EAC ),分级分块等;


交互模式:手势,陀螺仪,手势+陀螺仪;•旋转角度:支持 360 度,720 度自动旋转;


1.3.3 3D 环物



3D 环物组件主要应用在营销,产品展示等场景;环物组件的使用步骤和全景图组件类似:使用方法如下:


<spintileviewer options="{{ options }}" style="width: 100%; height: 100%; display: block"></spintileviewer>
复制代码


支持的属性:


•环物角度:360 度、720 度;•支持分级分块;•支持热点,细节查看;


1.3.4 3D 模型



3D 模型主要应用在教育和游戏等场景;3D 模型使用方法:


<modelviewer option="{{ option }}" style="width: 100%; height: 500px; display: block"></modelviewer>
复制代码


3D 模型支持的属性:


•模型格式:gltf、fbx、obj;•支持模型跳转;•支持动画播放,跳转;•支持热点;


基于以上四种功能,百度 VR 落地了直播,教育和营销三种场景,下面分别介绍。


二 、VR + 直播实践


VR 与直播技术的结合提升了直播观看体验,并使得观众从被动观看转换为主动参与,更加融入到现场,打破了空间与距离的隔阂;VR 直播主要有两大分类,


一类是专业生产内容(PGC),如体育赛事、综艺节目、新闻事件的直播;另一类直播是用户生产内容(UGC),如网红直播,户外直播等。目前百度 VR 在 2020 年初举行的全国二会直播上有过一些尝试,下面是百度 VR 直播架构实现图:



VR 音视频采集端需用专门的 VR 摄像机,目前能支持 180 度和 360 度拍摄,最大能支持 4k2K@30f/s 视频采集;


以下是 180VR 相机采集的的画面:



三 、VR + 教育实践


百度 VR 教室是百度针对教育领域研发的一套 VR 教室解决方案,让 VR 进入学校教学,为学校带来全新的教学工具,丰富教师的教学手段,学生可以身临其境体验和学习。


百度 VR 教室支持 PC VR 和一体机两种 VR 设备,提供两套硬件解决方案,同时提供先进的软件解决方案(包括教学管理系统、VR 课程体系)和完善配套服务,让学校有充分的选择空间,并能快速落地,开展教学。



下图是 VR 教室实际使用场景:



四 、VR + 营销实践


VR 以其沉浸交互式特点在营销内容呈现上具有独特的优势,在产品营销上具有极大的商业价值。百度 VR 在营销上的实践主要通过百度 VR 营销平台实现的,如下图所示:



整个平台分为采集,处理,展示三大环节,支持 3D 环物,全景图片/视频采集,3D 模型采集;



五 、结语


虽然 VR 技术近几年得到了迅速发展和推广使用,但是由于 VR 内容生产制作比较繁琐,成本相对较高,目前的的应用场景主要是面向 PGC 多一点,而面向 UGC 场景的直播,由于成本和带宽的限制,VR 采集到的视频分辨率低往往较低,一般会低于 4K,即使 4K 分辨率码率也只能达到 8Mbit/s,用户体验存在画面不清晰、眩晕的感受,一定程度限制了其发展。


相信随着千兆带宽和 5G 网络普及,设备端硬件性能的提升,有更好的体验的 8K 分辨率 VR,定会得到更大范围普及,百度 VR 小程序也将助各位开发者闯出一番天地。



头图:Unsplash

作者:gaoyuanfei

原文https://mp.weixin.qq.com/s/v5cLcce3jY-qixcRfbK9oA

来源:百度 App 技术 - 微信公众号 [ID:gh_59f5931152fe]

转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2020-12-28 23:172608

评论

发布
暂无评论
发现更多内容

测试环境与路由 | 阿里巴巴DevOps实践指南

阿里云云效

云计算 阿里云 运维 云原生 测试

架构实战营:模块八作业

Geek_93ffb0

「架构实战营」

Trisk:在 Flink 上实现以 task 为中心的流处理动态 Reconfiguration 的 Control Plane

Apache Flink

大数据 flink 开源 编程 实时计算

如何思考需求的优先级?

石云升

产品经理 需求分析 2月月更 需求排序

“首席AI架构师”+57人!百度AICA第五期结业啦

百度大脑

模块三:学生管理系统详细架构设计

刘璐

云计算情报局预告|告别 Kafka Streams,让轻量级流处理更加简单

阿里巴巴云原生

阿里云 云原生 消息队列 Kafka ETL

J2PaaS企业级低代码平台,如何支撑开发企业级应用?

J2PaaS低代码平台

低代码 低代码开发 企业级低代码平台 企业级应用

16 张图解带你掌握一致性哈希算法

华为云开发者联盟

负载均衡 分布式系统 一致性哈希 哈希算法 数据迁移

重磅!博睿数据发布新一代统一告警平台

博睿数据

Flink State - Backend Improvements and Evolution in 2021

Apache Flink

大数据 flink 开源 编程 实时计算

Python3 cpython优化 实现解释器并行

字节跳动终端技术

字节跳动 编程语言 代码优化 Python3 火山引擎MARS

外包学生管理系统架构设计

炎彬

「架构实战营」

Linux中buff-cache占用过高解决方案

入门小站

Linux

学生管理系统架构设计

随欣所遇

架构实战营

云原生小课堂 | Envoy请求流程源码解析(一):流量劫持

York

云原生 istio envoy

关于阿里云多活容灾的那点事

阿里巴巴云原生

阿里云 云原生 应用多活

Flink 实践教程-进阶(8):自定义标量函数(UDF)

腾讯云大数据

模块三作业

Geek_ec866b

架构实战营

如何设计一个复杂的业务系统?从对领域设计、云原生、微服务、中台的理解开始

阿里巴巴云原生

阿里云 云原生 架构设计

网站开发进阶(六十八)防抖节流

No Silver Bullet

防抖节流 2月月更

前后端分离项目,如何解决跨域问题?

CRMEB

在线JWT Token解析解码

入门小站

工具

一块屏幕的全球研发之旅

万事ONES

ONES 案例分析

六年老员工的幸福感

万事ONES

学生管理系统详细架构方案

IT屠狗辈

架构实战营 详细架构

安全专属的移动数字化平台WorkPlus加速国企数字化转型

BeeWorks

网络安全kali渗透学习 web渗透入门Metasploitable2靶机系统介绍

学神来啦

基于外包学生管理系统的架构文档

刘帅

1月云短信报告出炉,华为云跃居榜首

博睿数据

如何合理使用 CPU 管理策略,提升容器性能?

阿里巴巴云原生

阿里云 容器 云原生 资源管理 ACK

移动AI系列-百度智能小程序与VR+N的跨界实践_AI&大模型_百度App技术_InfoQ精选文章