头发重建论文复现

简介

准备把一篇头发重建的论文中的代码跑起来,这篇文章主要用于记录跑这篇论文代码时出现的坑和解决过程。
论文链接:Data-driven 3D human head reconstruction

准备过程

解决缺失的运行环境

运行环境

代码中使用的是python2和C++

操作系统

突然发现这是运行在linux系统下的代码,而且该代码对于性能(GPU)较高,准备在我台式机上装双系统(windows11+Ubuntu 20.04 x64)

装双系统

通过下面这个链接的教程装好了。
装了5次Ubuntu,告诉你win10+Ubuntu双系统的正确打开方式

ubuntu配置

amd 显卡驱动设置
Radeon™ Software for Linux® 20.45 Release Notes

解决python2环境问题

准备换成python3.9
python3.9环境过新,dlib需要自己编译,考虑换成python3.6

用python自带的脚本2to3.py对所有文件进行转换
准备使用pycharm作为IDE。

pickle

pickle默认用ascii编码保存东西,但是由于python2与python3对于字符串默认编码不同,导致读取会报UnicodeDecodeError错误。
解决方案:使用encoding='latin1'或 encoding=‘bytes’
dd = pickle.load(open(fname_or_dict,'rb'))
to
dd = pickle.load(open(fname_or_dict,'rb'),encoding='latin1')

meshlab

MeshLab 是一个开源、可移植和可扩展的三维几何处理系统,主要用于交互处理和非结构化编辑三维三角形网格。该系统发布于2005年年底,旨在提供一整套三维扫描、 编辑、 清洗、 拼合、 检查、 呈现和转换网格数据的工具。

meshlab提示找不到,尝试在ubuntu下编译meshlab。下面链接是官方编译教程。
meshlab/src/
ubuntu 下需要安装qt、opengl
经师兄指点,只需要在windows下编译,开始尝试。
QT配置MSVC还需要安装WindowsSDK Qt配置使用MSVC编译器

pyigl


发现装了pyigl缺了很多函数,考虑去官网编译,然后直接添加到python程序路径里
编译过程中,是官网最新的版本会在使用cmake阶段去动态git clone 依赖库,我这里尝试了许多次都无法clone,下面链接提供了一个带所有依赖项的版本。
LIBIGL+CGAL+VS2019在win10上配置使用记录