微软Hyperlapse技术:让第一人称摄像稳定而流畅
编者按:GoPro等第一人称摄像设备已经几乎成为了极限运动者的标配,但拍摄过程中的抖动常会让画面非常糟糕。微软Hyperlapse技术实现了将第一人称录像转化成稳定而流畅的视频。该成果的论文已发表在SIGGRAPH
2014大会。

Kopf头戴GoPro在攀登舒克桑山(Mount
Shuksan)
可以头戴的GoPro、iON这些第一人称摄像设备如今几乎成为了极限运动者的标配,无论是远足、登山还是漂流,一段从第一人称视角出发记录下主人公全程见闻的录像都会是日后弥足珍贵的回忆。但是,由于行进过程无可避免中的跑动和攀爬,有时剧烈抖动的画面就会令观看者顿时兴致全无。更糟糕的是当你想把全过程的视频快进,以免视频太过冗长让人失去兴趣时,抖动却会被进一步放大。
有类似苦恼的,还有微软研究院研究员Johannes
Kopf。Johannes是一名登山爱好者,一直想和朋友们分享自己从大本营出发到登顶的全过程。但当他试图将用GoPro拍摄下的录像快进浓缩成较短的视频时,他意识到自己想要和朋友们分享的愿望要落空了,因为市面上没有一种修复抖动的软件能让抖动的画面稳定下来。传统的抖动修复技术是将画面边缘的像素删除,来使得前后画面连贯起来。但面对第一人称的头戴式录像,晃动使得画面发生跳跃,要得到可以观看的视频就需要全新的解决思路。
于是Johannes与微软交互视觉媒体组(Interactive
Visual Media
Group)合作,开始了名为“Hyperlapse”的全新技术的研发,它能将抖动的第一人称录像转化成具有延时摄影效果、且稳定而流畅的视频。效果请见演示视频:
Johannes和同事们采取的方法是,首先根据原始视频,通过算法还原相机在拍摄过程中的运动轨迹,以及相机相对于每一帧画面中物体的距离和角度。接着,优化并模拟出一条相比原来更顺滑的相机运动轨迹,并从原始视频中抓取、拼接像素来重建在这条新轨迹下的场景,从而输出一段延时摄影效果的稳定、流畅的视频。
相机运动路径的还原与重构
日前,该项成果的论文已经被在温哥华召开的SIGGRAPH
2014接受。SIGGRAPH是由ACM
SIGGRAPH(美国计算机协会计算机图形专业组)主办的计算机图形与交互技术年度顶级会议。下面的视频更详细地介绍了背后的技术原理:
Johannes表示这绝不是这项技术的终点。他和同事们已经设计了一系列新算法来让加快渲染新视频的过程和减轻对计算机运算能力的负荷,最终他们计划将这项技术产品化,将其以Windows
应用的形式呈现给普通用户。
——————————————————————————————————————————————
相关阅读:
Hyperlapse: Technology that
can dramatically smooth motion in first-person
videos
欢迎关注:
微软亚洲研究院官方网站:http://www.msra.cn/zh-cn/default.aspx
微软亚洲研究院人人网主页:http://page.renren.com/600674137
微软亚洲研究院微博:http://t.sina.com.cn/msra
微软Hyperlapse技术:让第一人称摄像稳定而流畅的更多相关文章
- Microsoft Hyperlapse——让第一人称视频更快更流畅
Hyperlapse--让第一人称视频更快更流畅" title="Microsoft Hyperlapse--让第一人称视频更快更流畅"> 职业摄影师Nick Di ...
- 微软HoloLens技术解谜
HoloLens 是什么? HoloLens 是微软发布的可穿戴式增强现实计算设备,它拥有这么几个关键要素: 它是增强现实产品,即 Augmented Reality(AR),AR 技术将计算机生成的 ...
- 微软开放技术(中国)携 CKAN 和 OData 技术引入基于 Azure 的开放数据平台
今天,微软开放技术(中国)通过微软公有云Azure引入一个全新的开放数据平台,该平台基于开源数据门户解决方案 CKAN,以及由微软开放技术(中国)特别针对中国市场优化的ODATA插件来增强其国际化和本 ...
- 微软的技术态度 -- 从其对于CRT的设计考虑说起
很多人从C语言学习过来的人都知道,在编写程序时用到的像printf这样的函数,是作为该语言标准库函数提供的,这也是C语言标准中规定的内容.因此,操作系统必须对其保持一定程度上的透明,也就是说,作为一个 ...
- 微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库
发布于 2014-02-10 作者 陈 忠岳 持续集成 (CI) 的历史源远流长, 其宗旨在于软件团队在敏捷环境中不断将他们的工作整合为持续构建.管理 CI 进程的工具已存在一段时间.过去几年中 ...
- 【转】265行JavaScript代码的第一人称3D H5游戏Demo
译文:http://blog.jobbole.com/70956/ 原文:http://www.playfuljs.com/a-first-person-engine-in-265-lines/ 这是 ...
- 微软RPC技术学习小结
RPC,即Remote Procedure Call,远程过程调用,是进程间通信(IPC, Inter Process Communication)技术的一种.由于这项技术在自己所在项目(Window ...
- 微软的技术态度 -- 从其对于CRT的设计考虑说起(Thought on the CRT - What Microsoft Prefers)
很多人从C语言学习过来的人都知道,在编写程序时用到的像printf这样的函数,是作为该语言标准库函数提供的,这也是C语言标准中规定的内容.因此,操作系统必须对其保持一定程度上的透明,也就是说,作为一个 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引 代码工程地址: https://g ...
随机推荐
- springboot跨域请求接口示例
一.项目架构 二.项目内容 1.GlobalCrosConfig.java package com.config; import org.springframework.context.annotat ...
- Linux(CENTOS7) Tomcat服务成功发布但局域网浏览器无法访问
问题 : 我在linux搭建了一个tomcat服务器,tomcat开启后,发现在局域网浏览器上无法访问该tomcat,浏览器报无法访问服务器错误,我查看了tomcat的日志,路径..../tomcat ...
- leetcode 994.腐烂的橘子
题目: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂 ...
- 干货分享,FPGA硬件系统的设计技巧
PGA的硬件设计不同于DSP和ARM系统,比较灵活和自由.只要设计好专用管脚的电路,通用I/O的连接可以自己定义.因此,FPGA的电路设计中会有一些特殊的技巧可以参考. 1. FPGA管脚兼容性设计 ...
- java学习——内部类(一)
内部类 把一个类放在另一个类中定义,这个定义在其他内部的类被称为内部类,包含内部类 的类被成为外部类,Java从JDK1.1开始引入了内部类的定义. 内部类的作用: 内部类提供了更好的封装,可以把内部 ...
- Linux下自由切换用户
切换用户的命令是su,su是(switch user)切换用户的缩写.通过su命令,可以从普通用户切换到root用户,也可以从root用户切换到普通用户. 上述图中是linux下的终端页面,其中pyv ...
- 使用meshgrid生成热图和单位向量场
需求: 生成 中heatmap unit vector field 目前的数据: 图像的shape, 关键点的x,y , heatmap的半径R 思路: 如果使用for循环来判断距离,会很慢,如果预先 ...
- BBS注册功能
BBS注册功能 一.后端 1.组件校验数据 """ @author RansySun @create 2019-11-03-11:35 """ ...
- 吴裕雄--天生自然 JAVA开发学习:异常处理
try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 } import java.io.*; public class ExcepTest{ publi ...
- scala编程(九)——控制抽象
减少代码重复 所有的函数都被分割成通用部分,它们在每次函数调用中都相同,以及非通用部分,在不同的函 数调用中可能会变化.通用部分是函数体,而非通用部分必须由参数提供.当你把函数值用做参数时,算法的非通 ...