开源|如何使用CNN将视频从2D到3D进行自动转换(附源代码)
http://www.sohu.com/a/128924237_642762
全球人工智能
文章来源:GitHub 作者:Eric Junyuan Xie
它是如何运行的?
在运行代码之前,请先根据官方文件安装MXNet。Deep3D要求MXNet的配置环境为Cuda7.0和Cudnn 4版本及以上。首先打开mxnet/config.mk,并将USE_CUDA和USE_CUDNN的值设置为1。然后,将EXTRA_OPERATORS=path/to/ deep3d/operators添加到path/to/mxnet/ config .mk后面,并重新编译MXNet。

研究动机
从2008年电影《阿凡达》首映以来,3D电影技术已经迅速发展并成为主流科技。每年3D电影的发行量大约为10到20部,并且伴随着OculusRift和其他VR头戴式耳机的推出,3D电影技术的需求只会有增无减。
然而,制作3D电影的难度依然很大。目前制作3D电影主要有两种方法,并且这两种方法在实际制作中的应用程度基本相同:一种是用特殊的3D立体摄像机直接拍摄成3D电影,另一种是先拍摄成2D电影,然后人工转换成3D的。但是这两种方法都不是很完美,对于第一种方法来说,3D摄像机十分昂贵并且使用很不方便,而第二种人工转换的方法需要请很多“深度艺术家”坐在那里,为每一帧画面绘制深度图。
设想一下,如果照片能自动的进行2D到3D的转换,也就是说用一个普通手机就可以照一张3D的立体自拍,这难道不是一件很酷的事情吗?
预告片
看到这里,或许你已经开始犯困了,下面我们展示了一些通过Deep3D技术将2D图片转换到3D的精彩电影截图。一般情况下我们需要使用3D眼镜或VR设备来观看3D图像,但是大部分人通常不会随身携带这些,所以我们用GIF的形式来展示这些3D图像的立体效果。








实现方法
3D图像有两个视角,一个是左眼的角度,另一个是右眼的角度。要把一张2D图像转换成3D立体图,首先需要估测每个像素点相对于相机的距离(即深度图),然后基于得到的深度图对图像进行处理来创建两个视角。
该算法中最困难的步骤是估测深度图。为了实现自动转换,我们可以让它通过学习得到一个算法模型。目前已经有一些工作是基于DNN实现的单张2D图像的深度估测。然而还需要用图像和深度图数据对来进行训练。由于这种数据对收集起来很困难,所以他们使用的数据库都比较小,比如NYU深度数据库和KITTI,这类数据库中只包含几百张样例。此外,这些数据集只有静态场景,很难想像如何将这项技术应用到人物照片里。
相比之下,Deep3D可以直接在具有数千万帧的3D电影的基础上进行训练。我们在进行训练时,把深度图作为一个网络内部的表示,而不是作为末端的预测输出。所以我们的方法并不是先预测一张深度图,然后用这张深度图通过一个单独的算法去重建缺失的视角,而是在同一神经网络中重新创建端到端的方法来训练它。
这里展示了一些可视化的网络内部深度结构,希望可以帮助大家理解网络是如何工作的:


每张图像后面是4*3的不同深度层的图示,按从近到远的顺序排列。离观众近的物体会出现在靠前的几张深度图中,而离观众远的物体则出现在最后几张。这表明内部深度表示法正在学习从2D图像推断深度,而不需要直接在图像上进行训练。
关于代码
这项工作是通过MXNet实现的,MXNet是一个灵活高效的深度学习库。训练模型和预测脚本包含在deep3d.ipynb中。我们近期将公开训练代码。
GitHub资源:https://github.com/piiswrong/deep3d
开源|如何使用CNN将视频从2D到3D进行自动转换(附源代码)的更多相关文章
- 用live555将内网摄像机视频推送到外网server,附源代码
近期非常多人问,怎样将内网的摄像机流媒体数据公布到公网,假设用公网与局域网间的port映射方式太过麻烦,一个摄像机要做一组映射,并且不是每个局域网都是有固定ip地址,即使外网主机配置好了每个摄像机的映 ...
- 2D到3D视频转换 三维重建
2D到3D视频转换(也称为2D到立体3D转换和立体转换)是将2D(“平面”)胶片转换为3D形式的过程,几乎在所有情况下都是立体声,因此它是创建图像的过程.每个眼睛来自一个2D图像. 内容 1概述 1. ...
- 论文翻译——Rapid 2D-to-3D conversion——快速2D到3D转换
https://blog.csdn.net/qq_33445835/article/details/80143598 目前想做一个关于2D转3D的项目,由于国内资料比较少而且大部分都是基于国外的研究 ...
- 介绍用C#和VS2015开发基于Unity架构的2D、3D游戏的技术
[Unity]13.3 Realtime GI示例 摘要: 分类:Unity.C#.VS2015 创建日期:2016-04-19 一.简介 使用简单示例而不是使用实际示例的好处是能让你快速理解光照贴图 ...
- Rapid 2D-to-3D conversion——快速2D到3D转换
https://blog.csdn.net/qq_33445835/article/details/80143598 目前想做一个关于2D转3D的项目,由于国内资料比较少而且大部分都是基于国外的研究 ...
- 单图像三维重建、2D到3D风格迁移和3D DeepDream
作者:Longway Date:2020-04-25 来源:单图像三维重建.2D到3D风格迁移和3D DeepDream 项目网址:http://hiroharu-kato.com/projects_ ...
- 《zw版·Halcon-delphi系列原创教程》 2d照片-3d逆向建模脚本
<zw版·Halcon-delphi系列原创教程> 2d照片-3d逆向建模脚本 3D逆向建模,是逆向工程的核心要素. 3D逆向建模,除了目前通用的3D点云模式,通过2D图像实现 ...
- css3动画2D、3D转换
css3动画的2D.3D转换代码: <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- GitHub开源:升讯威微信营销系统(第三方微信平台)完整源代码
GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction 升讯威微信营销系统开发实践系列升讯威微信营销系统开发实践:(1)功能设计与架构设 ...
随机推荐
- 9.12DjangoORM回顾和路由.
2018-9-12 13:44:41 周末继续整理一下博客!不知不觉记了好多! 越努力越幸运! 永远不要高估自己! 关于反射的复习 # /usr/bin/env python # -*- coding ...
- C++/C, Java学习资料
C++11系列-什么是C++11 [Java]Final 与 C++ Const的区别 C++开发者都应该使用的10个C++11特性 史上最明白的 NULL.0.nullptr 区别分析 C语言堆栈入 ...
- 安装coreseek与sphinx遇见的问题
1.问题 using config file 'etc/csft.conf'...indexing index 'xml'...WARNING: source 'xml': xmlpipe2 supp ...
- Nginx限制IP访问及获取客户端realip实战
做网站时经常会用到remote_addr和x_forwarded_for这两个头信息来获取客户端的IP,然而当有反向代理或者CDN的情况下,这两个值就不够准确了,需要调整一些配置.Nginx作为web ...
- CTP API 开发之二 :制作CTP java版 API
目前上期技术CTP系统提供的API版本是C++版本 SWIG是一个能将C/C++接口转换为其他语言的工具,目前可以支持Python,Java,R等语言. 本文主要介绍Windows 32/64位平台下 ...
- POJ 1185 - 炮兵阵地 & HDU 4539 - 郑厂长系列故事——排兵布阵 - [状压DP]
印象中这道题好像我曾经肝过,但是没肝出来,现在肝出来了也挺开心的 题目链接:http://poj.org/problem?id=1185 Time Limit: 2000MS Memory Limit ...
- SQL Fundamentals: Basic SELECT statement基本的select语句(控制操作的现实列)(FROM-SELECT)
SQL Fundamentals || Oracle SQL语言 Capabilities of the SELECT Statement(SELECT语句的功能) Data retrieval fr ...
- Linux连接字符串
https://blog.csdn.net/ysdaniel/article/details/6920866 或者 '/g' in.txt>out.txt
- 优云软件应邀出席 ITSS 数据中心运营管理工作组 2017 年春季研讨会
2017 年 4 月 15 日,中国电子工业标准化技术协会信息技术服务分会(以下称 ITSS 分会)数据中心运营管理工作组(以下简称 DCMG)在江苏省启东市召开春季研讨会. DCMG 工作组组长肖建 ...
- swap file "*.swp" already exists!
ll -a rm .*.swp