一.人脸检测与跟踪

人脸检测算法:Haaradaboost算法检测

视频跟踪算法:粒子滤波器跟踪(改进均值权重粒子滤波器)

目标出现:何时需要跟踪一个新目标

目标消失:何时需要移除一个已经跟踪的目标

目标修正:什么时候跟踪系统的跟踪结果出现错误,如何修正错误。

a)假设人脸检测系统在第n帧检测到人脸,检测位置为LDn。

b)使用均值权重粒子滤波器,对检测到的目标进行跟踪。

c)for j=n:m,在j表示目标被跟踪的帧数,m表示目标能被跟踪的最后帧数。

(1)跟踪系统跟踪目标,且目标在每一帧的位置为LTj。

(2)检测系统检测每一帧是否有人脸,若检测到没有人脸,则返回步骤a,若有则记录检测到的人脸的位置LDj。

(3)计算LTj和LDj的欧式距离,若距离小D0,则更新LTj,LTj=LDj,同时,在更新的LTj区域进行粒子重采样,其中D0为自己设定的距离阈值。若距离大于D0,则返回步骤(2),认为有新的人脸进入,进行跟踪。

d)在目标离开检测区域时,保存人脸截图,并释放这个跟踪目标区域。

这样就在跟踪的同时利用了检测系统对跟踪结果进行修正,并在修正的同时重新散步了粒子,避免了粒子的衰减问题。

人脸识别:分为人脸身份识别(一对多)和人脸验证(一对一)判断是否是指定的某人。可以使用SIFT特征匹配算法。粒子群算法的视频跟踪与SIFT算法的区别。

二.基于Gabor和PCA特征提取的HMM人脸识别

人脸识别算法有特征脸(Eigenface)、Gabor、SVM,HMM,BLP,PCA结合LDA以及以上算法的改进算法。

特征提取算法:Gabor和PCA特征提取

识别决策:HMM算法。

隐马可夫模型是一种用参数表示的,用于描述随机过程统计特性的概率模型,由两部分组成:一个是隐含的马尔可夫链,称为隐含层;另一个是实际的观测量,称为观测层。

(1)  隐含状态数

(2)  观测符号集(可见状态链)

(3)  (隐含层的)转换概率

(4)  观测层的概率分布矩阵(输出概率)

(5)  初始状态概率分布

参考http://www.cnblogs.com/skyme/p/4651331.html;掷骰子事件为例。

假设我手里有三个不同的骰子。第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6。第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4。第三个骰子有八个面(称这个骰子为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。

假设我们开始掷骰子,我们先从三个骰子里挑一个,挑到每一个骰子的概率都是1/3。然后我们掷骰子,得到一个数字,1,2,3,4,5,6,7,8中的一个。不停的重复上述过程,我们会得到一串数字,每个数字都是1,2,3,4,5,6,7,8中的一个。例如我们可能得到这么一串数字(掷骰子10次):1 6 3 5 2 73 5 2 4

这串数字叫做可见状态链。但是在隐马尔可夫模型中,我们不仅仅有这么一串可见状态链,还有一串隐含状态链。在这个例子里,这串隐含状态链就是你用的骰子的序列。比如,隐含状态链有可能是:D6 D8 D8 D6 D4 D8 D6 D6 D4 D8

一般来说,HMM中说到的马尔可夫链其实是指隐含状态链,因为隐含状态(骰子)之间存在转换概率(transition probability)。在我们这个例子里,D6的下一个状态是D4,D6,D8的概率都是1/3。D4,D8的下一个状态是D4,D6,D8的转换概率也都一样是1/3。这样设定是为了最开始容易说清楚,但是我们其实是可以随意设定转换概率的。比如,我们可以这样定义,D6后面不能接D4,D6后面是D6的概率是0.9,是D8的概率是0.1。这样就是一个新的HMM。

同样的,尽管可见状态之间没有转换概率,但是隐含状态和可见状态之间有一个概率叫做输出概率(emission probability)。就我们的例子来说,六面骰(D6)产生1的输出概率是1/6。产生2,3,4,5,6的概率也都是1/6。我们同样可以对输出概率进行其他定义。比如,我有一个被赌场动过手脚的六面骰子,掷出来是1的概率更大,是1/2,掷出来是2,3,4,5,6的概率是1/10。

再例如,一个隐居的人可能不能直观的观察到天气的情况,但是民间传说告诉我们海藻的状态在某种概率上是和天气的情况相关的。在这种情况下我们有两个状态集合,一个可以观察到的状态集合(海藻的状态)和一个隐藏的状态(天气状况)。我们希望能找到一个算法可以根据海藻的状况和马尔科夫假设来预测天气的状况。

  一个更现实的例子是语音识别,我们听到的声音是声带、喉咙和一起其他的发音器官共同作用的结果。这些因素相互作用,共同决定了每一个单词的声音,而一个语音识别系统检测的声音(可以观察的状态)是人体内部各种物理变化(隐藏的状态、引申一个人真正想表达的意思)产生的。

某些语音识别设备把内部的发音机制作为一个隐藏的状态序列,把最后的声音看成是一个和隐藏的状态序列十分相似的可以观察到的状态的序列。在这两个例子中,一个非常重要的地方是隐藏状态的数目和可以观察到的状态的数目可能是不一样的。在一个有3种状态的天气系统(sunny、cloudy、rainy)中,也许可以观察到4种潮湿程度的海藻(dry、dryish、damp、soggy)。在语音识别中,一个简单的发言也许只需要80个语素来描述,但是一个内部的发音机制可以产生不到80或者超过80种不同的声音。

在上面的这些情况下,可以观察到的状态序列和隐藏的状态序列是概率相关的。于是我们可以将这种类型的过程建模为有一个隐藏的马尔科夫过程和一个与这个隐藏马尔科夫过程概率相关的并且可以观察到的状态集合。这就是本文重点介绍的隐马尔可夫模型。

隐马尔可夫模型 (Hidden Markov Model) 是一种统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析。下图是一个三个状态的隐马尔可夫模型状态转移图,其中x 表示隐含状态,y 表示可观察的输出,a 表示状态转换概率,b 表示输出概率。

将HMM应用到实际中,必须解决三个基本问题,分别如下:

三.人脸图像超分辨率重建

基于PCA的人脸超分辨率重建

原理:低分辨率图像使用PCA算法重建思想根据提取的特征向量维数的增大从而得到分辨率增大的图像。

四.文中出现的算法

PCA、LDA、LBP、SVM、HMM、Gabor、粒子群、K-mean、尺度不变特征SIFT(Scale-Invariant Feature Transform,SIFT)、基于Haar特征的adaboost算法,神经网络算法(可想到BP,卷积神经网络(CNN),深度神经网络(DNN))。

读 曹林的《人脸识别与人体动作识别技术及应用》笔记相关推荐

  1. 使用OpenVINO实现人体动作识别

    Paula Ramos著   张晶 译 目录 1.1 人体动作识别背景简介 1.2 OpenVINOTM Notebook简介 1.3 动作识别模型简介 1.4 实现实时动作识别 1.4.1 下载模型 ...

  2. 简单的机器学习程序_人体动作识别小程序【机器学习 人工智能】

    人体动作识别(Human activity recognition)是健康领域一个热点问题,它通过加速度计,陀螺仪等传感器记录人体运动数据,对人体动作进行识别.最近用微信小程序做了一个动作识别的项目, ...

  3. 基于kinect的人体动作识别系统

    基于kinect的人体动作识别系统(算法和代码都放出) 首先声明一下,本系统所使用的开发环境版本是计算机系统Windows 10.Visual Studio 2013.Opencv3.0和Kinect ...

  4. 基于3D关节点的人体动作识别综述(转)

    原文:2016,Pattern Recognition: 3D skeleton-based human action classification: A survey 摘要 近年来,基于深度序列的人 ...

  5. 人体动作识别与评价——区别、联系及研究进展

    摘要 人体动作识别与动作评价是近年来的热点研究问题.两者在数据类型.数据处理.特征描述等方面有许多相通之处.近年来,随着应用需求的显著增长,出现了大量有关动作识别与评价的研究工作,但两者间的区别与联系 ...

  6. 基于kinect的人体动作识别系统(算法和代码都放出)

    基于kinect的人体动作识别系统(算法和代码都放出) 首先声明一下,本系统所使用的开发环境版本是计算机系统Windows 10.Visual Studio 2013.Opencv3.0和Kinect ...

  7. java kinect 人体识别_基于kinect的人体动作识别系统

    [实例简介] 基于kinect v2的人体动作识别,配套博客(http://blog.csdn.net/baolinq/article/),基于mfc,可以识别左移右移.上蹦下跳等,也可以自己自定义其 ...

  8. 阿旭机器学习实战【2】KNN算法进行人体动作识别

    本系列文章为机器学习实战内容,旨在通过实战的方式学习各种机器学习算法的知识,更易于掌握和学习,更过干货内容持续更新- 目录 人类动作识别问题描述 导入相关数据并查看数据信息 构建KNN算法模型并查看准 ...

  9. 空间注意力机制sam_一种基于注意力机制的神经网络的人体动作识别方法与流程...

    本发明属于计算机视觉领域,具体来说是一种基于注意力机制的神经网络的人体动作识别的方法. 背景技术: 人体动作识别,具有着非常广阔的应用前景,如人机交互,视频监控.视频理解等方面.按目前的主流方法,可主 ...

最新文章

  1. 全排列:不含重复元素和含重复元素的全排列
  2. Git 创建两个“本地分支”协同工作
  3. python读取文件参数_Python 通过配置文件 读取参数进行
  4. 【BZOJ】3779 重组病毒
  5. 换个语言学一下 Golang (9)——结构体和接口
  6. Debian安装软件是Debian GNU/Linux 5.0.4 _Lenny_ - Official amd64 DVD Binary-1 20100131-22:09
  7. 字节跳动辟谣“出售AI技术”和“成立打车项目”;GitHub 因代码版权问题遭抵制;贝佐斯正式卸任亚马逊 CEO|极客头条...
  8. mac使用allure_制作测试报告,allure,生成
  9. OpenCV中神经网络的应用
  10. 电子科技大学《图论及其应用》复习总结--第五章 匹配与因子分解
  11. React Antd4 CRA / Next.js / Vite 按需加载组件的 CSS / Less
  12. CF 1467 B. Hills And Valleys
  13. iOS开发-舒尔特表
  14. 《MATLAB 神经网络43个案例分析》:第3章 遗传算法优化BP神经网络——非线性函数拟合
  15. LeetCode 71-80题
  16. 来了!Python官方文档中文版
  17. python opencv 人体/人脸识别 简易demo
  18. nginx配置IP白名单
  19. 农行上海研发中心面经
  20. UG/NX 8.0安装方法(图文详解)

热门文章

  1. Skyline产品总体介绍
  2. 热电阻和热电偶的区别
  3. 【2012Esri中国用户大会讲座】ArcGIS 10.1 for Server 安全机制(1)用户角色权限
  4. 南京理工大学微电子科学与工程专业各科学习心得
  5. 利用Bettercap实现密码的嗅探
  6. 专访星环CEO孙元浩:成国产基础软件第一股 解决卡脖子工程
  7. python123大小写转换_python人民币小写转大写辅助工具
  8. Arcmap高级标注(通过表达式设置颜色/字体/换行等)
  9. 【Unity3D插件】uMOBA插件分享《Moba类游戏框架插件》
  10. D-Link DCS系列监控 账号密码信息泄露漏洞