Supervised Descent Method学习之路(持续更新)
工作面试,给了我一篇Supervised Descent Method and its Applications to Face Alignment。一篇CMU的Xuehan Xiong教授发表于2013年6月的论文,引用率很高,算法也很精妙。虽然从没在这个领域摸爬滚打过,但是还是被里面的算法所吸引,遂认真学习一番~
将数据集打包为tar文件,便于上传到服务器:
tar -cvf 打包后路径及文件名 需打包文件夹路径
tar -xvf 需解包文件夹路径 (为空则解包到当前路径下)
关于路径的异常处理:
import os assert os.path.exists(file_path) assert os.path.isdir(folder_path)
读取MATLAB的.mat文件:
from scipy import io io.loadmat(path)
读取.pts的坐标文件:
with open(file_path) as f: rows = [rows.strip() for rows in f] coords_set = [point.split() for point in rows[rows.index('{') + 1:rows.index('}')]] return np.array([tuple([float(point) for point in coords]) for coords in coords_set])
获取文件夹里全部文件的名称所组成的list,如果需要根据扩展名获取还可以利用正则表达式匹配:
assert os.path.exists(folder_path) assert os.path.isdir(folder_path) return os.listdir(folder_path)
显示人脸的标记点:
from PIL import Image from pylab import * img = Image.open(filepath) im = array(img) imshow(im) plot(X,Y,'b*') #其中,X和Y为所有坐标的x与y组成的array show()
图像像素向量的生成与逆推:
#x is a numpy ndarray x_flatten = x.flatten() #将x压缩为一个一维向量 x_recover = x_flatten.reshape(x.shape) #将x_flatten还原为原始数组