如何获取一张普通图片的深度贴图(Depth Map)
文章里面的东西虽然涉及了人工智能,但是还是选择投在了前端的版块,一来延续上一遍的内容,二来自己对AI这块连入门都算不上,避免被众大佬嗤笑,但是也欢迎大佬们说出里面的纰漏和不严谨的地方,3Q (〃'▽'〃)
上个教程讲了深度贴图的其中一个应用——生成3D效果的图片。这篇文章称热打铁,说下如何获取深度贴图吧。
如果你用过Unity、UE等游戏引擎或者Blender、Maya等三维制作软件,获取一个场景的深度贴图应该不是问题,鄙人没玩过这些,这里只说一下只有一张图片如何获取深度贴图。
假设你用支持拍摄出带深度信息的设备获取了一张文件后缀是heic的图片,可以在mac电脑中用PS打开,然后切换套通道标签,就能看到除RGBA外的另一个通道,这个就是z通道(也有叫景深通道的)。因为ps打开heic文件需要硬件解码,所以得系统支持,windows应该是暂时没有这类驱动。
如果你是windows系统的电脑,可以使用一个叫StereoPhoto Maker的工具来解压出heic文件中的隐藏数据。就是这个工具:
如果你只有一张普通的图片,可以使用ps手动绘制出深度贴图,网上有很多教程,直接去油管搜“3d photo ps”这几个关键字就有一堆视频教你如何制作。
重头戏来了,毕竟咱们是程序员不是设计师,总得像个“程序化”的办法来做到,当然我不会让你们自己写,咱们谷歌AI来帮我们生成深度贴图。
- 首先下载安装Python3.x版本,如果你的电脑已经装了2.x版本,建议用pyenv库来切换版本。
- 接下来,下载安装VS2015运行时环境,如果你已经装了2015的开发环境或者更高版本的运行时环境就不用再次下载了,这里提供一个下载地址:Microsoft Visual C++ 2015 Redistributable Update 3。
- 安装Python的深度学习框架Pytorch和torchvision。管理员方式打开终端,输入:
pip3 install https://download.pytorch.org/whl/cu90/torch-1.1.0-cp37-cp37m-win_amd64.whl pip3 install https://download.pytorch.org/whl/cu90/torchvision-0.3.0-cp37-cp37m-win_amd64.whl
网络不好的话,你也可以下载两个离线文件手动安装
- 安装另外三个库:scikit-image,h5py,scipy。有兴趣的可以去github上了解下
- 下载深度学习程序:2dtodepth.zip。解压出来的内容全都放到C盘根目录:C:\2dtodepth
- 把你需要转换的图片文件放到C:\2dtodepth\infile目录下
- 执行C:\2dtodepth\prog\2dtodepth.bat脚本文件
- 执行完后,你就能在C:\2dtodepth\outfile文件夹下看到包含原图和深度图的图片了
还没完呢,如果是电脑没有安装python,也懒得搞这一堆东西,那还有更简单的方式,不过请自带梯子(不得不说谷歌真实一个宝库,国内一刀切全封了对爱折腾的程序员来说真是一大损失)。
咱们可以把程序上传到谷歌云盘(Google Drive),然后使用谷歌的python程序在线编辑器Colaboratory直接调用里面的代码,然后把生成好的文件下载下来就行了!简单说下改怎么做,Colaboratory是个宝库,非常建议一玩。
- 当然要先创建一个谷歌账号详细不说了
- 下载并解压这个文件2dtodepth_colab.zip,把文件夹上传到Google Drive的根目录
- 和前面本地一样,把要转化的图片上传到“我的云端硬盘 / 2dtodepth / infile”目录
- 打开 Google Colab 页面, 选择 “文件 -> 新建 Python 3 记事本”。
- 在新页面点击上面的文件名可以修改名称
- 点击 编辑 -> 笔记本设置,修改参数如图:
- 保存后装载谷歌云盘
-
输入以下代码并运行:
%cd /content/drive/My Drive/2dtodepth !python 2dtodepth.py --input=single_view
第一行进入工程目录,第二行执行脚本
出现这个字样表示执行完毕,这时候就可以去谷歌云盘,到“我的云端硬盘 / 2dtodepth / outfile”目录下把文件下载下来啦
这个程序的成功率要具体看你的图片,大部分图还是会有一些下次,可以自己去PS修一修。
人工智能相关的部分内容翻译自这两篇博文,算半个翻译文吧~感谢那位博主。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
时序数据库 Apache-IoTDB 源码解析之文件格式简介(三)
上一章聊到在车联网或物联网中对数据库的需求,以及 IoTDB 的整体架构,详情请见: 时序数据库 Apache-IoTDB 源码解析之系统架构(二) 打一波广告,欢迎大家访问IoTDB 仓库,求一波 Star 。欢迎关注头条号:列炮缓开局,欢迎关注 OSCHINA博客 这一章主要想聊一聊: 行式存储、列式存储的区别 TsFile 的格式 行式与列式存储的区别 假如我们的逻辑上的数据表格式及数据为: 时间戳 人名 体温 1580950800 张三 36.5 1580950800 李四 36.9 1580950800 王五 36.7 那么他出现在硬盘格式就是: 行式数据 在我理解上,行式数据是把逻辑相关的数据在硬盘上放到一起,比如上面的例子,我们可以称之为体温表,所以在逻辑上:时间、人、体温,就成为了逻辑上紧密相关的数据。 所以把相关的数据的硬盘上的组织方式也变成连续的,假如我需要取 张三 的数据,那么当你读出 R1 文件块的时候,就是读出了所有 张三 相关的数据。 列式数据 列式数据在我理解是将物理相关的数据放到一起,比如时间是一类(long 类型)、名字是一类(string 类型)、体...
- 下一篇
Serverless 的运行原理与组件架构
本文重点探讨下开发者使用 Serverless 时经常遇到的一些问题,以及如何解决 过去一年,我们和大量 Serverless 用户进行了线上和线下的交流,了解大家的业务场景、对 Serverless 的看法和使用体验。 大部分用户认为 Serverless 会是云计算下一阶段的必然趋势,但不是现在。 为什么呢?因为构成 Serverless 架构的云函数尽管有引以为傲的自动扩缩能力,但是糟糕的开发体验、让人畏惧的冷启动、原有业务的改造难题等等,均降低了使用者的信心。 因此,尽管不少用户认可 Serverless 的价值,但依然认为其很难承载核心业务。 针对这些关键问题,腾讯云在今年 6 月份发布了 Serverless 2.0,全面升级了产品形态、系统调度以及开发者工具。为了便于大家理解,我们就从云函数的运行原理作为切入点,以解释问题产生的原因以及云函数的应对方法。 首先,我们看一下云函数,或者说 FaaS 和 IaaS、PaaS 的区别。 如下图所示,FaaS 不仅给用户提供了标准的 Runtime,同时在应用层也帮用户管理了请求的调度。开发者只需要聚焦在核心业务逻辑开发,按照函数...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16