点击“开发者技术前线”,选择“星标????”

在看|星标|留言,  真爱

17世纪之前,欧洲人认为天鹅都是白色的,但忽然有一天,人们看到了第一只黑天鹅,随着这个黑天鹅的出现,人们认知彻底坍塌,一切秩序都面临着推倒重建。

黑天鹅寓意着不可预测的重大稀有事件,它完全在意料之外,一只黑天鹅的出现就足以颠覆一切!

新型冠状病毒成了2020年飞出来的一只“黑天鹅”!这只2020年的黑天鹅,让网课、视频会议、视频面试、视频问诊越来越火。

这些基于实时音视频技术( 以下简称为 RTC, Real-Time Communication)的场景,支撑着我们在疫情期间工作、学习和生活可以继续,不至于停滞。不过 RTC 技术还可以做更多,只是需要我们去发掘。

在去年的 RTC 创新编程挑战赛上,有一支来自上海科技大学的团队将 RTC 技术与机器学习结合,开发了一个视觉辅助产品,可以帮助用户避障、导航、远程指引等。他们也希望这个作品不仅仅可以帮助那些有视觉障碍的人,同样可以服务于普通人。本文是来自这支团队的实践总结,源码也分享在了文末。

另外,今年的 RTC 创新编程挑战赛已经在线上开赛了!欢迎大家拉上小伙伴一起来线上约战!大赛准备了丰厚的大奖,点击阅读原文了解更多。

01

项目介绍

Guidoge是一套基于普通智能移动设备辅助视觉方案,它依托于Agora提供的实时音视视频与机器学习,主要面向视障人士、骑行爱好者等有着视觉辅助及拓展需求的群体。

我们通过RTC技术将移动端捕捉到的摄像头图像传回后端服务器,使用深度学习技术进行场景理解等操作,并通过语音和震动等方式与用户交互。这一产品无需复杂外设,仅凭一台手机和一根挂绳(Guidoge Loop)即可实现对象识别、语音反馈等丰富的视觉增强功能。

02

项目初心

AI是一项神奇的发明,特别是近些年深度学习领域中GAN、残差网络的提出让计算机视觉、语音合成等方向都有了长足的进步。

在调研最新的科研结果后,我想,既然我们已经有了合成自然语音以及表现出色的机器视觉技术,那么只要加上RTC实时传输,我们就能实现这个梦想:我们将移动设备随手挂在胸后,它便能在骑行时用自然的声音告知后方来车;对于视障人群,我们甚至不仅能让Guidoge告诉他们前方的障碍物,甚至能将天空中云的形状、街边发生的趣事都一一讲述给他们。Guidoge不只是一个面向视障群体开发的产品;它试图解决的是所有人共同面临的一个问题:视力的衰退与视觉面的不足。

03

主要功能

系统功能介绍

基于视觉辅助这一目的,Guidoge首先需要解决的问题就是障碍规避和导航。运行在移动设备上的客户端通过RTC接口将视频信息发送到Guidoge Server,在云端进行Depth estimation步骤得到前景的深度信息,并通过Object Detection进行障碍识别。除此之外,客户端程序还能根据预设路径,利用第三方导航服务的API获取路径方案。

Obstacle Detection(障碍检测)方案

在这一技术方案中不止计算机视觉技术大放异彩,自然、流畅的语音合成系统也是打造“有温度的交互”所必不可少的。片头视频中所采用的正是Google Tacotron2和WaveNet一同实现的TTS系统。

TTS(文字转语音)方案

系统功能框图

  • 接受前端图像数据并进行深度预测‍

from PIL import Imageimport base64from io import BytesIOdef parse_img(url):   url = url.split(',')[1]   data = base64.decodebytes(url.encode())   return Image.open(BytesIO(data))from sanic import Sanicfrom sanic.response import jsonfrom sanic_cors import CORS, cross_originapp = Sanic()CORS(app)@app.route("/")async def test(request):   return json({"hello": "world"})@app.route("/json", methods=['POST', 'OPTIONS'])def post_json(request):   ret = None   try:       img = parse_img(request.json['answer']).transpose(Image.ROTATE_90)       img.save('target_network.bmp')   except:       return json({ "received": True, "message": request.json })   ret = predict_depth(img, True, True)
  • 返回预测的depth map

raw_data = base64.encodebytes(ret) return json({ "received": True, "message": 'data:image/jpg;base64,' + raw_data.decode()})
  • Web端对视频数据的预处理

const width = video.videoWidth, height = video.videoHeight canvas.width = width canvas.height = height context.drawImage(video, 0, 0, width, height)const data = canvas.toDataURL('image/png') if (data.indexOf('base64') != -1) {   result.style="position: absolute;left: 0;top: 0;width: 100vw;height: 100vh;background:white"   postData(`${api_entrypoint}/json`, {answer: data})     .then(data => {       console.log(data)       resultimg.src = data.message       cont()     })     .catch(error => {       console.error(error)       cont()     }) } else {   cont() }
  • 连接到Agora提供的RTC服务

client = AgoraRTC.createClient({mode: 'live'});client.init(appId.value, function () {   client.join(channel_key, channel.value, null, function(uid) {       camera = videoSource.value;       localStream = AgoraRTC.createStream({streamID: uid, cameraId: camera, video: true, screen: false});   })});

值得一提的是,声网开发者中心提供的样例代码上手非常友好,虽然我自己此前未接触过音视频直播,但也成功实现了当天调通上线——当时我和队友凌晨三点开了瓶可乐庆祝,在实验场地带着运行了App的手机到处乱跑,是非常愉快的敏捷开发体验了!

04

未来展望

深度学习的进展使得AI技术呈现井喷式发展,大家都说短视频与直播是下一个互联网的“风口”,而5G套餐的第一个用户就产生数月前。我们深信这些技术本身就具有非常光明的前景,而从它们之间的交叉结合能诞生出更振奋人心的新事物。当然,深入实践的前提一定是对领域本身有足够深刻的理解,这很难离得开科技巨头和独角兽企业研发部门的通力合作。

对Guidoge方案本身,或许它离真正落地还有一段距离,这段距离可能是5G的全面应用,也有可能是边缘计算能力的提升。目前来说,Guidoge尝试的RTC+AI+云计算方案会是一种方向,为之后使用RTC服务的开发者们开拓思路,甚至吸引更多志同道合的战友一起深耕于这个实时化的、充满互动技术的未来(也是我们团队成员的美好愿望)。

我们相信,未来不会太远。

04

开源链接

  • Repo:https://github.com/AgoraIO-Community/2019-Hackathon-Works-Vision-Enhancement-Guidoge

  • 编译与运行指南已附在GitHub Repo中。

  • 作者姚沧力:上海科技大学FemtoTech工作室创始人之一,全栈开发者,热衷视频创作和各类新兴技术,现于声网 Agora 实习。

  • 姚沧力主页:https://github.com/nekowink

  • 作者张启煊:上海科技大学GeekPie社团社长,MARS实验室成员,热衷于计算机视觉与区块链技术。

  • 张启煊主页:https://github.com/eEhyQx

05

One More Thing

最后由声网 Agora 主办的 RTC 2020 编程挑战赛春季赛已经开启报名了!本次大赛准备了丰厚的大奖,获奖者更有机会进入声网 Agora 应聘快速通道,快拉上小伙伴报名吧!

点击「阅读原文」,报名参赛

来了!新一代 App 视觉增强辅助方案它真的来了!相关推荐

  1. 《预训练周刊》第4期:智源「悟道1.0」发布、GPT-3对新一代APP的赋能路径

    No.04 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第4期< ...

  2. OneShot LiDAR Global Localization:基于单帧激光点云和视觉增强的全局定位方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:robot L | 来源:知乎 https://zhuanlan.zhihu.com/p/150 ...

  3. python bokeh slider_Bokeh数据可视化工具3视觉增强及服务器

    视觉增强 注释用于向绘图添加补充信息,例如标题,图例和彩色地图等. Widget通过按钮,下拉菜单,滑块和提供交互性支持. 视觉属性为绘图提供了广泛的视觉增强,例如线条和文字的颜色和填充,以及诸如的交 ...

  4. 三种实现app自动化的技术方案分析与总结

    当我们想要实现一个具有app自动化功能的软件时,首先想到的可能是招聘研发,然后开发.测试,最后交付,再维护升级等.其实还有其他两种技术方案:找兼职或者临时开发来解决问题:使用冰狐智能辅助之类的平台自己 ...

  5. 新一代企业级大数据应用方案

    摘要:本文的整理自2017云栖大会-成都峰会上阿里云资深专家张辉的分享讲义,讲义主要由大数据时代大数据方案的三个思考引出大数据时代企业数据应用架构:由数据模型层到计算模型层到接口层.随后介绍了OLT- ...

  6. iOS15 切换上架App图标的最新方案

    iOS15 切换上架App图标的最新方案 前言: Xcode13以及iOS15发布之前,Apple其实已经支持在应用内切换图标了,通过将不同的ICON图标打到包内,并手动配置,然后通过业务代码修改IC ...

  7. #计划# 机器视觉 #视觉增强 #python #数据库 #算法 #深度学习 #迁移学习 #matlab #数据融合

    #1.对振动位移的测量 直接法:位移传感器很难实现多点全场信息的非接触测量 间接法:加速度传感器要考虑本身质量.低频噪声难以滤除 方向:非接触.高精度.全场式 2.机器视觉:视觉传感器获取结构振动视频 ...

  8. Android Q app内存压缩优化方案介绍

    Android Q app内存压缩优化方案介绍 原创文章,谢绝转载! Android Q新增了部分系统性能优化方案,这里简单学习下,本篇文章先分析app compaction. 一.愿景: 在保证后台 ...

  9. APP开发技术架构方案

    近日,小程序百度搜索指数在7000左右,而APP搜索指数在12000左右,单从搜索指数看,APP的搜索量是小程序搜索量的1.7倍左右.虽然小程序开发目前比较火爆,但是APP开发需求量依然比较大,APP ...

最新文章

  1. 用Jquery自己开发个代阴影的对话框吧!
  2. MyEclipse中导入java文件出现乱码问题的解决方法
  3. C#高级技师语法,你会吗?
  4. STM32 - 定时器的设定 - 基础 01.1 - Repetition counter
  5. tomcat下多个app 不同的图标_iOS平台设计规范(五)图标与图片
  6. 国开计算机专业英语章节测试答案,国开大201x理工英语1第七单元网上测试答案...
  7. 打造自己的专业图像工具-Visual C++ 2005图像编程系列【四】
  8. np.where与np.argwhere共同点与区别分析
  9. 分窗 Gram-Schmidt 高光谱降维的 水稻纹枯病检测
  10. Project configuration is not up-to-date with pom.xml. Run Maven-Update Project or use Quick Fix
  11. macOS 汇编指南
  12. PetaLinux学习笔记 1
  13. VirtualBox搭建OpenWrt软路由
  14. 计算机换了主板c盘怎么办,电脑c盘太小,想重新分盘需要重装系统吗?
  15. linux如何禁用独立显卡驱动,Ubuntu中独立显卡不好用如何关闭独立显卡
  16. android+腾讯地图h5,在uniapp H5项目中使用腾讯地图sdk
  17. 概率论与数理统计-------参数估计-------区间估计------置信区间、枢轴变量
  18. CHIL-SQL-DEFAULT 约束
  19. 用深层神经网络识别猫咪图片:吴恩达Course1-神经网络与深度学习-week3week4作业
  20. 智能交通管理系统顶层设计方案(附下载)

热门文章

  1. MLCC电容啸叫的机理及解决方案
  2. 青龙扩展项目-全球骑士购
  3. 如何利用计算机做图像,什么是图像识别?图像识别是如何实现的?
  4. 使用 FFmpeg 开发播放器基础--使用 ffmpeg 解码视频文件
  5. 一部以中国现实为大背景的英国科幻电影《未来密码46》
  6. SpringBoot单元测试之mock静态方法
  7. 执行计划管理 (SPM)
  8. 提升智能工业领域人才就业率,维视智造开启产学研融合新航道
  9. 《Python知识手册》更新到V4.1版,快拿走学习
  10. PEG/g-C3N4量子点复合荧光纳米微球(g-cnqds-peg)的制备方法