demo_reconstruct.py
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
- sys.path.insert(0,"/path") 的用法:这样新添加的目录path会优先于其他目录被import检查
- os.path.abspath:获取文件绝对路径
- os.path.join()函数:连接两个或更多的路径名组件:
1.如果各组件名首字母不包含’/’,则函数会自动加上
2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾 - __file__表示了当前文件的path
- os.path.dirname(file)表示:得到当前文件的绝对路径
- os.path.join(os.path.dirname(file), ‘…’)) 表示当前路径往上退一个文件
导入test images
decalib.datasets
- TestData类:处理数据,裁剪出人脸
提供kpt为txt文件或mat文件(适用于AFLW2000)
kpt = scipy.io.loadmat(kpt_matpath)['pt3d_68'].T
导入文件并且提取出脸上的68个特征点,将这个特征点组成的矩阵转置
src_pts:图像上框选的人脸所在的位置
DST_PTS:裁剪出的新图像大小
tform =使用skimage.transform.estimate_transform函数 :变换,得到对应的变换矩阵
skimage.transform.warp函数:将该变换应用到图像上去
然后将其转变为bbox,边框回归
deca.py
纹理的路径修改在:
DECA/decalib/utils/config.py
import yaml
把变量写进yaml做配置文件,然后python脚本从yaml文件里面取到变量
yacs是一个轻量级库,用于定义和管理系统配置,例如那些在为科学实验设计的软件中常见的配置。这些“配置”通常涵盖诸如用于训练机器学习模型的超参数或可配置模型超参数(诸如卷积神经网络的深度)之类的概念。
FLAME.py
- pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议。 “pickling”是将Python对象层次结构转换为字节流的过程, “unpickling”是反向操作,从而将字节流(来自二进制文件或类似字节的对象)转换回对象层次结构。pickle模块对于错误或恶意构造的数据是不安全的。
- setattr(a, ‘bar’, 5) # 设置属性 bar 值