occupancy_networks demo复现

一、环境部署

创建镜像

本人使用Ubuntu18.04,cuda10.0,python3.6的镜像

(1)拉取镜像
docker pull rogerchen/cuda10.0-cudnn7-py3.6:latest
(2)创建容器
 run -it --gpus all -v 需要挂载的文件夹:/home/work/ rogerchen/cuda10.0-cudnn7-py3.6:latest /bin/bash
(3)安装Anaconda3

清华大学开源软件镜像站下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
下载 Anaconda3-2019.07-Linux-x86_64.sh(其他也可以)

 sudo sh Anaconda3-2019.07-Linux-x86_64.sh

然后一直回车键,直到出现

Please answer 'yes' or 'no'
输入 yes

最后退出镜像再重新进入

 conda --version  #输出conda 4.5.12 之类的版本信息,就说明安装成功了
(4)使用environment.yaml创建环境
conda env create -f environment.yaml
conda activate mesh_funcspace

如果遇见以下情况

ResolvePackageNotFound: 
  - pytorch=1.0.0

可以在environment.yaml中将对应行删掉,后续自己安装对应版本包
以我为例:
无法安装pytorch,去https://pytorch.org/get-started/previous-versions/下载torch-1.0.0-cp36-cp36m-linux_x86_64.whl,

pip install torch-1.0.0-cp36-cp36m-linux_x86_64.whl

二、 编译

(1)代码修改

setup.py 106行修改

setup(
    ext_modules=cythonize(ext_modules),
    cmdclass={
        'build_ext': BuildExtension
    },
    include_dirs=[np.get_include()]
)

setup.py中关于dmc_的全部注释掉
在这里插入图片描述**
同时将im2mesh/config.py.中的import dmc和下面的dmc注释掉**

(2)编译
python setup.py build_ext --inplace
(3)运行

运行前下载pt模型(官方的url没法用),csdn中就有(链接:https://download.csdn.net/download/qq_20044829/84993305?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168387504316800213038136%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fdownload.%2522%257D&request_id=168387504316800213038136&biz_id=1&utm_medium=distribute.pc_search_result.none-task-download-2allinsert_down_v2~default-3-84993305-null-null.142v87control_2,239v2insert_chatgpt&utm_term=Occupancy%20Networks&spm=1018.2226.3001.4187.4)
修改yaml
在这里插入图片描述
修改代码im2mesh/checkpoints.py
为了方便
在这里插入图片描述
最后运行

python generate.py configs/demo.yaml

最后在occupancy_networks/demo/generation/meshes输出结果
在这里插入图片描述在这里插入图片描述

三、后续

由于这个只是demo,如果要实现更好的效果,需要自己训练,由于官方提供的预处理数据集太大,本人没法训练;

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 占用网络是一种用于3D形状建模的深度学习方法。它使用神经网络来预测物体的占用空间,即物体在3D空间中的位置和形状。这种方法可以用于物体识别、姿态估计、形状重建等应用。占用网络的优点是可以处理不规则形状和变形物体,并且可以从单张图像中进行3D重建。 ### 回答2: Occupancy Networks是一种用于3D形状生成和分割的机器学习框架。它与传统的基于网格的方法不同,因为它不需要先对形状进行分割或预处理,并且可以在不同的形状之间共享学习,并且可以生成不同的形状变体。 这个框架的核心是一个神经网络,它可以预测整个三维空间的占据概率函数,指示了该空间中是否存在形状点。 这个网络可以被训练来生成新的3D形状,即使在训练集中没有这些形状的情况下。 Occupancy Networks的优点之一是它可以处理高维空间数据,因为常规的基于网格的方法可以很快消耗内存和处理时间。与传统的3D形状生成方法相比,Occupancy Networks具有优点,因为它可以提供更加准确和一致的形状生成,还可以根据指定的条件生成不同的形状变体。此外,它也具有较强的通用性,可以用于多种形状生成任务,包括3D渲染,建筑设计,医学图像分割和创建虚拟现实环境等领域。在实际应用中,Occupancy Networks具有潜在的应用价值,可以帮助人们更好地掌握和创造3D形状,推进计算机视觉技术的进步和发展。 ### 回答3: Occupancy networks是一种用于三维物体重建和生成的深度学习模型,最初由一组德国和美国研究人员在2019年提出。 Occupancy networks的关键思想是建立一个函数,该函数将三维物体的空间位置映射到其占据体的概率。在训练期间,该函数被用来预测给定三维物体的占据情况,而在生成期间,该函数可以被用来生成新的三维模型。 与传统的三维重建和生成技术相比,Occupancy networks有多个优点。首先,该方法可以处理任意形状和复杂度的三维物体,而不需要特别的先验知识。其次,模型能够从不同的角度观察三维模型,并从这些观察中提取更丰富的表示,更好地反映真实世界中的物体。最后,Occupancy networks能够进行端到端的训练,并且能够在输出时进行随机采样,因此可以生成具有一定随机性的三维物体。 另外,Occupancy networks也有一些挑战和限制。例如,该方法可能需要大量的数据,以克服三维空间的样本稀缺性。此外,Occupancy networks的训练和生成成本很高,需要更强的计算资源。 总而言之,Occupancy networks是一种有前途的三维物体重建和生成模型,它在许多方面的性能都有了很大的进步,但仍需要更多的研究和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值