Supervised Descent Method学习之路(持续更新)

工作面试,给了我一篇Supervised Descent Method and its Applications to Face Alignment。一篇CMU的Xuehan Xiong教授发表于2013年6月的论文,引用率很高,算法也很精妙。虽然从没在这个领域摸爬滚打过,但是还是被里面的算法所吸引,遂认真学习一番~

 

SDM工程项目所需函数记录:

将数据集打包为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还原为原始数组

 

posted @ 2016-10-19 09:56  AI小虾米  阅读(852)  评论(0编辑  收藏  举报