非刚性人脸跟踪(一)

本文介绍了非刚性人脸跟踪的基本概念,包括几何约束、面部特征检测器、人脸检测与初始化以及跟踪过程。强调了数据驱动的重要性,特别是数据收集和标注在人脸跟踪算法中的作用。文中详细阐述了构建标注工具的过程,包括图像捕获、特征选择、连通性和对称性的标注,并提供了实际操作的示例。
摘要由CSDN通过智能技术生成

非刚性人脸跟踪是对视频流的每帧中人脸特征进行准密(quasi-dense)集估计。非刚性 是指面部特征间的相对距离会随着面部表情和人群的不同而变化。

书本涉及的内容:

实用工具:简要介绍本章中所使用的常用结构和约定,包括面对对象设计、数据存储与表示,以及数据收集和标注的工具。

几何约束:介绍如何从训练数据学习面部几何及其变化情况,也将介绍在跟踪过程中如何利用它们来约束输出,包括对面部进行线性的形状模型建模,以及如何在模型的表示中引入将全局变换。

面部特征检测器: 介绍如何学习面部特征的外观,以便在跟踪的人脸图像中检测它们。

人脸检测与初始化: 如何使用人脸检测来初始化跟踪程序。

人脸跟踪: 通过图像对其处理将前面介绍的所有内容联系起来,用于跟踪系统。

各部分联系如下:

这里写图片描述

一、面向对象设计

类的读取和写入序列化实现:引入XML/YAML文件存储类。展示例程:

#include <iostream>
#include <cv.h>
#include <highgui.h>

using namespace std;
using namespace cv;

class Test
{
public:
    int a, b;
    void write(FileStorage &fs) const
    {
        assert(fs.isOpened());
        fs << "{ " << "a" <<a << "b" << b << "}";
    }
    void read(const FileNode &node)
    {
        assert(node.type() == FileNode::MAP);
        node["a"] >> a;
        node["b"] >> b;

    }   
};

template <class T>
T load_ft(const char * fname)
{
    Test x;
    FileStorage f(fname, FileStorage::READ);
    f["ft_object"]>>x;
    f.release();
    return x;
}

template <class T>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值