系列文章目录

1.3D Photography using Context-aware Layered Depth Inpainting论文
从0开始复现


文章目录

  • 系列文章目录
  • 前言
  • 一、论文有关资源介绍
  • 二、环境准备
    • 1.pytorch环境
      • (1)英伟达GPU配置
        • 首先更新显卡驱动(可略过)
        • 下载安装cuda
        • 下载安装cudnn
        • 添加环境变量
      • 安装pytorch
          • 关于tensorflow:
        • 安装验证
    • 2.复现运行
      • 安装其他依赖包
      • 打开项目装载模型
      • 运行main.py
      • windows下的一个更改
  • 总结

前言

CVPR2020论文3D Photography using Context-aware Layered Depth Inpainting 提出了一种单张图片转为3D视频的方法。
效果很棒,再此尝试在windows10系统下复现


一、论文有关资源介绍

知乎文章翻译介绍:知乎翻译
github:开源地址
paper:项目展示网址

二、环境准备

1.pytorch环境

(1)英伟达GPU配置

首先更新显卡驱动(可略过)

在电脑->设备管理器->显示适配器里找到电脑的显卡配置

进入网址 http://www.nvidia.com/Download/index.aspx 根据显卡型号搜索对应的显卡驱动并下载
exe文件直接运行,默认安装即可。其他双击红线处选择驱动更新文件。

下载安装cuda

按win+Q,输入NVIDIA Control Panel 打开NVIDIA控制面板。

帮助-》系统信息-》组件

近日刚更新,最高支持11.6版本(据说向下兼容)
cuda下载网址:cuda下载cuda的版本和你电脑显卡版本以及pytorch服务版本要对应
几个G耐心等待
下载完毕后默认安装(不确定更改配置会有什么影响,C盘空间足够就默认吧)
win+R-》cmd里使用 nvcc -V可以查到版本号。

下载安装cudnn

cudnn下载网址:cudnn
填写问卷,注册用户,之后下载cuda版本对应的即可
安装方式解压-》复制所有文件到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6(cuda安装路径下)主要是bin include lib三个文件夹,直接覆盖即可

添加环境变量

此电脑-》属性-》高级系统设置-》环境变量-》path里添加
(环境字节过长的问题):参考添加方法
path里加入%env_ex%
新建一个env_ex的环境变量与path同级
cmd输出path成功输出即添加成功
cuda添加环境变量参考

个人电脑安装了cuda11.0(tensorflow)和11.6(pytorch)

安装pytorch

下载网址:torch
选择cuda对应版本

个人cnda有问题,使用pip安装
老版本pytorch:老版torch安装原项目的环境为

conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit==10.1.243 -c pytorch

个人使用的pytorch==1.11.0可以成功运行
总之torch和gpu适配能使用GPU加速即可
关于下载中断的解决办法:
pip下载可以看到抓取网址:https://download.pytorch.org/whl/cu113

例如个人下载的版本如上,点击进入目录,选择pip中下载的版本手动下载至电脑,然后pip install 包位置即可

关于tensorflow:

https://www.tensorflow.org/install/source_windows
只要cuda,cudnn安装正确(一般也不会出错),选择对应版本的tf安装就没有问题,选择方式见上方网址

个人使用cuda为11.0的tf

安装验证

如下:

import tensorflow
tensorflow.test.is_gpu_available()
import torch
torch.cuda.is_available()
#返回true这说明GPU可用

2.复现运行

安装其他依赖包

过于基础的包这里不列举,创建虚拟环境应该必备

pip install -r requirements.txt
#requirements内容
opencv-python==4.2.0.32
vispy==0.6.4
moviepy==1.0.2
transforms3d==0.3.1
networkx==2.3
scikit-image
cynetworkx

顺利的话以上包会依次安装
下载慢可以使用清华镜像

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

记录一个bug:cynetworkx安装build失败的问题

pip install Cython==3.0a5
pip install git+https://github.com/pattern-inc/cynetworkx.git

结局方案如上:来源

打开项目装载模型


左侧为谷歌实验室运行后生成的一些文件夹以及下载的一些模型
文件夹会自动创建,问题在模型的下载需要科学上网否则下载会中断

chmod +x download.sh
./download.sh

模型下载代码如上(需要模型可以联系我)

运行main.py

至此,所有准备工作都完成,不出意外的话在image文件夹下方一张高清的图片(横竖像素大于1000,否则推理失败)

python main.py --config argument.yml

video文件夹下会生成四个视频,depth会生成深度图片

windows下的一个更改

报错:BoostingMonocularDepth\outputs下图片找不到
报错源于BoostingMonocularDepth下inputs才是图片入口
image的图片通过linux的cp命令复制到了inputs下
解决方法
打开boostmonodepth_utils.py文件
第27行cp改为copy

#os.system(f'cy {img_name} {tgt_name}')
os.system(f'copy {img_name} {tgt_name}')

2022-04-08更新
更新主要解决Linux与Windows不同命令行的执行无效问题
主要更改boostmonodepth_utils.py文件
改文件的用处在于
先清空inputs和outputs下的图片以及npy文件
再将image下的图片复制到inputs下

先导入包

import platform

第一处

        if (platform.system() == 'Windows'):now_system = 'win'print(now_system)os.system(f'copy {img_name} {tgt_name}')elif (platform.system() == 'Linux'):now_system = 'linux'print(now_system)os.system(f'cp {img_name} {tgt_name}')else:print('system not Linux or Windows')

第二处

        if (platform.system() == 'Windows'):now_system = 'win'print(now_system)os.system(f'del {paths_to_check}')os.system(f'rd {paths_to_check}')elif (platform.system() == 'Linux'):now_system = 'linux'print(now_system)os.system(f'rm {paths_to_check}')else:print('system not Linux or Windows')

总结

谷歌云端GPU运行了大概几分钟,自己电脑1050ti运行了十几分钟,模型效果很好,但这个时常让人难以接受,如果考虑做成产品模型还需优化,提速。
关于项目复现的问题欢迎点赞 关注 评论

从0开始复现3D Photography using Context-aware Layered Depth Inpainting相关推荐

  1. ECShop-v3.0.0漏洞复现

    ECShop-v3.0.0漏洞复现 配置文件写入导致代码执行 HTTP Host头部攻击导致任意页面跳转 HTTP Host头部攻击导致前台任意密码重置 后台任意文件删除 后台SQL注入 配置文件写入 ...

  2. 【论文阅读笔记】One Shot 3D Photography

    论文主页:https://facebookresearch.github.io/one_shot_3d_photography/ 代码地址:https://github.com/facebookres ...

  3. Poser v7.0 1DVD(3D 角色动画)

    Ulead产品: Ulead.Videostudio.v10.Plus-ISO 1CD Ulead.Video.Studio.9.CHS-ISO 1CD(简体中文,会声会影 是一套专为个人及家庭所设计 ...

  4. UG11.0压铸模具全3D实例设计视频教程 流道 结构 顶出设计

    UG11.0压铸模具全3D实例设计视频教程 流道 结构 顶出设计 链接:https://pan.baidu.com/s/1t4VAPrssotmcMiOlYCQW3w 提取码:fpgn

  5. nature文章再也不会出现模糊图片An integrated imaging sensor for aberration-corrected 3D photography

    说来惭愧,竟然没有去拜读nature science期刊的论文,知道lecun发过深度学习的论文,以前误认为上面大多为基础基础理论的论文.结果看到清华大学的用于像差校正 3D 摄影的集成成像传感器,  ...

  6. Android OpenGL ES 2.0 屏幕坐标和3D世界坐标转换

    Android OpenGL ES 2.0 屏幕坐标和3D世界坐标转换 查看全文 http://www.taodudu.cc/news/show-6705596.html 相关文章: word中如何加 ...

  7. tof摄像头手势识别_解决方案| USB 3D视觉TOF飞行时间深度摄像头Depth Eye

    原标题:解决方案| USB 3D视觉TOF飞行时间深度摄像头Depth Eye 今年年初,火了好久的保时捷概念车Mission E相继在各大车展首秀,再次引发这款酷炫电动车的热烈讨论.而Mission ...

  8. 目标检测--Object Detection via Aspect Ratio and Context Aware

    Object Detection via Aspect Ratio and Context Aware Region-based Convolutional Networks https://arxi ...

  9. creo三维生成二维图_proe5.0原创工程图教程(1)-proe5.0三维图(3D)怎么转换二维图(2D)初级版...

    proe5.0三维模型(3D)怎么转换二维模型(2D)后可以转换成pdf和dwg,这些优势是其他软件无可比拟的.因为proe3d和2D是关联的,是参数化的.打个简单的比方,你3D的孔发生了变化,2d就 ...

最新文章

  1. stm32f103 rtc 获取 日历 时钟
  2. 线程的退出 java_(转)Java结束线程的三种方法
  3. mysql 分钟_mysql分钟到小时和分钟
  4. Python爬虫 搜索并下载图片
  5. centos7 install virt-sysprep
  6. 怎样往mysql里添加数据_怎么往mysql表里添加数据
  7. Linux命令 ls -l s输出内容含义详解
  8. php7不解析下载,Centos7 配置apache和php,登陆web提示下载,不解析php文件
  9. 20155307 刘浩 信息安全技术(李冬冬) 实验三 数字证书应用 实验报告
  10. delphi xe 10 程式外观
  11. [无线]无线传输距离预估计算
  12. 2022T电梯修理考试题库模拟考试平台操作
  13. mumu模拟器崩坏3分辨率_网易mumu模拟器设置崩坏3不卡的方法
  14. 如何对接payjs的个人微信扫码支付接口
  15. 用Socket实现点对点的文件传输
  16. FL Studio教程之如何慢慢降音
  17. R 语言绘制带组的圆形条形图
  18. 动态规划解决最长公共子序列
  19. 低格硬盘用什么软件_越南人用的什么聊天软件,和越南人交流用什么软件翻译...
  20. [厂长首作]MIPCMS自适应新闻资讯模板

热门文章

  1. 20190415每周精品之淘宝
  2. [STM32]STM32CubeIDE开发环境安装与STM32F407-DISC kit实现Hello,LED
  3. 栈和队列详解(C语言)
  4. Unity3D开发简单化
  5. mac 使用ffmpeg命令合成MP4和srt字幕
  6. 论文笔记-连续HVAC控制的无模型强化学习算法的实验评估
  7. UiPath识别教程
  8. Labview兼职(部分)
  9. html中ing标签怎么写,HTML标签
  10. 使用Arc Map创建渔网(fishnet)