人脸关键点定位.Face Alignment by Coarse-to-Fine Shape Searching 算法源码详解(下)

这篇博客详细解读了Face Alignment算法——Coarse-to-Fine Shape Searching的源码,包括训练和测试部分。重点讨论了learnCFSS.m的核心训练过程,以及分析了analyse_tpt.m中的代表性点选择策略。测试部分重点关注inferenceCFSS.m,并指出测试速度较慢可能的原因。文章还提到了训练和测试过程中需要注意的配置和依赖问题。
摘要由CSDN通过智能技术生成

首先按照源码中read me配置。可能运行出错的部分,用黄字高亮了解决方案。

以下分别解说训练和测试代码。

====训练部分===============

l learnCFSS.m为核心训练文件。需要顺序运行getParametricModels;addAll; learnCFSS;

运行需要matlabpool。如果数据N<100,则不启动并行。如果没有并行工具箱,可以手工修改代码不启动并行

至少需要约900个样本,才能通过PCA部分的数量断言。需要较大内存要求。

poseVoting.m中使用dist函数,需要神经网络工具箱。如果没有该工具箱,可以手工添加dist函数。

至少需要约2700个样本,才能通过traintestP.m中,训练SVC时的数量断言。

traintestP.m中调用了libsvm的函数svmtrain。未避免调用到VLFEAT中的同名函数,在进入这部分之前,先去除VLFEAT的路径,之后再添加上

 

learnCFSS

各种load

for level = 1:stageTot        实际只用3次迭代

 

% Re-trains仅在第一次迭代调用

trainingSetGeneration:返回旋转对齐图像(images),生成平均脸(referenceShape),图像旋转回归器B,对齐变换T。

Pr:先验概率。,N *N,每行对应一个原始样本,表示取得每一个原始样本的概率。设定为均匀分布,对角线零,其他位置均等。

model.tpt:当前level目标形状。N*2L。用来在测试时依照概率生成样本。

主要作用:归一化样本

% from Pr to sub-region center

traintestReg:生成回归模型regModel和当前形状currentPose(相当于论文中sub-region center)。

T:当前形状到平均脸(referenceShape)的变换

images:用T进一步更新图像

model.tpt:当前level目标性状,记为targetPose。

主要作用:根据概率Pr,生成扩展初始值,用回归器移动形状,得到currentPose。

% Train-test Pr

traintestP:估计当前各个训练图像上,各个训练集形状的概率Pr。

 

 

 

trainingsetGeneration

只在第一次迭代调用

% 输入

 

% Loading original images

Tb:每个原始图像中simple face(左右眼角左右嘴角)到标准形状的变换。N*2L。其中标准形状为target_simple_face(0-1之间)放大到priorsInfo.win_size(250*250)。

targetPose:旋转到标准simple shape之后的L个关键点。

referenceShape:平均形状。

% Label angle estimation according to targetPose

Te:每一个targetPose(已经粗略旋转过)到referenceShape(平均形状)的变换。是一个较小较精细的变换。

angle:Te变换的旋转角度。

% Dataset partition

set_id:N*1。把所有原始数据随机分成均等两组。用于训练两个旋转角度回归器。

% Training

B:两个角度回归器。互为校验。

for s = 1:2           分别使用两组数据训练B{s}

 

Tb_train:本次训练中,从原始图像到标准形状的变换。

angle_train:本次训练中,从粗略旋转到精细旋转的变化角度。

mp:用于本次训练的样本数。约为N/2。

MP:扩展后的样本数。扩展10倍(priorsInfo.augTimes)。

im:本次训练中,原始图像经过旋转得到的augment结果。N/2*扩展数。

label:扩展样本的随机旋转角度,最大旋转45°(priorsInfo.maxRoll)。

for i = 1: augTimes

 </

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值