Face Alignment at 3000 FPS通俗易懂讲解
思想:先局部,再整体。
局部:获取标记点的局部二值特征。
二、LBP的获得
具体步骤如下:
对每一张图片的68个标记点进行局部二进制编码,每一个点生成一个子编码。一个子编码由随机森林,也就是10个决策树的编码组成。
要用到的参数:随机森林中每个决策树的阈值信息、两点坐标、树的深度。
1、两点坐标,用于对图像上的这两点计算像素差值,进行编码。
选择的两个坐标点是生成决策树节点分裂阈值时候随机选择的500个点有关(在固定半径内),根据这500个随机点得到的两个坐标点。因为树的深度为5,所以对于一个决策树,有31个这样的坐标点对。像素差值的个数为4。
2、阈值信息:随机森林中每个决策树的阈值,用来判断像素差值的编码结果。
对每一个标记点可得到4个像素差值,通过与分裂节点的阈值比较,最终抵达叶子节点,抵达的点编码为1,其余为0。
举例:
①树的深度为5,所以叶子节点一共有16个,而这里仅有一个点的编码为1,所以是很稀疏的矩阵。并且只需要比较前4个。
每个树的节点上都有自己的阈值,并且在每个深度都会有一个像素差值来与与之进行比较,来确定最终落到叶子节点。以一个实际编码的树来说明。通过比较像素差阈值和节点阈值,最终落到叶节点上。
得到了1个特征点的对应的1个决策树的局部二进制编码。
②对于1个标记点,可得到10个 16位的编码。这10个 16位的编码组合形成这1个标记点的特征映射。
得到了1个特征点的对应的随机森林的局部二进制编码。
③68个标记点得到68个特征映射,组成一个。
得到了68个特征点的对应的随机森林的局部二进制编码。
④N张图片分别有自己的特征映射。N个串联。
得到了N张图片局部二进制编码。
⑤每个层级有自己的N个。
得到了N层局部二进制编码。
每个最小的16位的编码会记录哪一个叶节点的值为1。