http://cvrc.ece.utexas.edu/Publications/Xia_HAU3D12.pdf
View Invariant Human Action Recognition Using Histograms of 3D Joints
The HOJ3D computed from the action depth sequences are reprojected using LDA and then clustered into k posture visual words, which represent the prototypical poses of actions. The temporal evolutions of those visual words are modeled by discrete hidden Markov models (HMMs).
特征定义
In this representation, the 3D space is partitioned into n bins using a modified spherical coordinate system. We manually select 12 informative joints to build a compact representation of human posture. To make our representation robust against minor posture variation, votes of 3D skeletal joints are cast into neighboring bins using a Gaussian weight function.
we acquire the 3D locations of 20 skeletal joints which comprise hip center, spine, shoulder center, head, L/ R shoulder, L/ R elbow, L/ R wrist, L/ R hand, L/ R hip, L/ R knee, L/ R angle and L/ R foot.
we compute our histogram based representation of postures from 12 of the 20 joints, including head, L/ R elbow, L/ R hands, L/ R knee, L/ R feet, hip center and L/ R hip. We take the hip center as the center of the reference coordinate system, and define the x-direction according to L/ R hip. The rest 9 joints are used to compute the 3D spatial histogram.
要达到视不变(不同视角下相同姿态正确归类):We achieve this by aligning our spherical coordinates with the person’s specific direction。We define the center of the spherical coordinates as the hip center joint.Define the horizontal reference vector α to be the vector from the left hip center to the right hip center projected on the horizontal plane (parallel to the ground), and the zenith reference vector θ as the vector that is perpendicular to the ground plane and passes through the coordinate center.
partition the 3D space into n bins
The inclination angle is divided into 7 bins from the zenith vector θ: [0, 15], [15, 45], [45, 75], [105, 135], [165, 180]
Our HOJ3D descriptor is computed by casting the rest 9 joints into the corresponding spatial histogram bins.
To make the representation robust against minor errors of joint locations, we vote the 3D bins using a Gaussian weight function:


For each joint, we only vote over the bin it is in and the 8 neighboring bins. We calculate the probabilistic voting on θ and α separately since they are independent (see Fig. 4). The probabilistic voting for each of the 9 bins is the product of the probability on α direction and θ direction. Let the joint
location be

The vote of a joint location to bin

is

输入为20*3(20个关节点,xyz3维空间坐标),输出为84位HOJ3D特征
特征为84维向量,水平方向12,垂直方向7
1,12个关节点局部坐标的计算:1,根据L_HIP和R_HIP的连线方向计算转换后的坐标 ; 2,计算相对于HIP_CENTER的坐标
2,之后计算两个偏转角 vector α 和 vector θ
3,在每个关节所属的bin中的8个邻域内,按双方向的单高斯分布乘积投票
特征降维
Linear discriminant analysis (LDA) is performed to extract the dominant features.
降维的目的是得到区分度更大的9个维度信息
输入为84维HOJ3D特征,输出为9维降维特征
特征聚类
We cluster the vectors into K clusters (a K-word vocabulary) using K-means. Then each posture is represented as a single number of a visual word.
聚类是为了减少观察特征表示,训练阶段需要把所有观测数据(所有动作,每一个动作包含若干帧,每帧的20个骨骼节点经过LDA降维成9)在9维空间中聚类,可以得到25个聚类中心的坐标(9维),依次标号
在识别阶段,将LDA之后的特征,分配到最近邻的聚类中心,记录其标号,作为HMM的输入参数
训练阶段,输入为所有动作的9维特征,输出为25个聚类中心
识别阶段,输入为每一帧的动作特征(9维),输出为距其最近的聚类中心的标号
动作识别
the HMM gives a state based representation for each action. After forming the models for each activity, we take an action sequence

and calculate its probability of a model

for the observation sequence,

for every model, which can be solved using the forward algorithm. Then we classify the
action as the one which has the largest posterior probability.

训练阶段,输入为每一类动作的时序标号,输出为HMM模型参数
识别阶段,输入为某一动作的时序标号,输出为前向概率即模型匹配度最大的动作模型 —— 识别结束
- 基于ROS的运动识别
#!/usr/bin/env python # -*- coding: utf-8 -*- import rospy import cv2 import numpy as np from sensor ...
- HanLP中人名识别分析
HanLP中人名识别分析 在看源码之前,先看几遍论文<基于角色标注的中国人名自动识别研究> 关于命名识别的一些问题,可参考下列一些issue: 名字识别的问题 #387 机构名识别错误 关 ...
- leap motion
体感控制器: 识别:手,手指和工具,获取位置,手势,动作 范围:倒金字塔,塔尖在设备中心,2.5cm~0.6米 坐标系统:采用右手笛卡尔积坐标系,返回的数值:毫米 摆放:绿灯朝向自己,z轴距离屏幕越来 ...
- paper 92:图像视觉博客资源2之MIT斯坦福CMU
收录的图像视觉(也包含机器学习等)领域的博客资源的第二部分,包含:美国MIT.斯坦福.CMU三所高校 1)这些名人大家一般都熟悉,本文仅收录了包含较多资料的个人博客,并且有不少更新,还有些名人由于分享 ...
- paper 86:行人检测资源(上)综述文献【转载,以后使用】
行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域.从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,主要还是在性能和速度方面还不能达到一个 ...
- (转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU
首页 视界智尚 算法技术 每日技术 来打我呀 注册 OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的 ...
- 第六十四篇、OC_计步器
计步器的实现方式主要有那么两种 1.通过直接调用系统的健康数据,基于HealthKit框架的,但是貌似是一小时更新一次数据.如果要实时获取步数,这种方式并不是最佳. 2.基于CoreMotion框架, ...
- Kinect for Windows SDK开发入门(15):进阶指引 下
Kinect for Windows SDK开发入门(十五):进阶指引 下 上一篇文章介绍了Kinect for Windows SDK进阶开发需要了解的一些内容,包括影像处理Coding4Fun K ...
- iOS获取健康步数从加速计到healthkit
计步模块接触了一年多,最近又改需求了,所以又换了全新的统计步数的方法,整理一下吧. 在iPhone5s以前机型因为没有陀螺仪的存在,所以需要用加速度传感器来采集加速度值信息,然后根据震动幅度让其加入踩 ...
随机推荐
- 洛谷 P2147 [SDOI2008]洞穴勘测 LCT
Code: #include <cstdio> #include <algorithm> #include <string> #include <cstrin ...
- 洛谷 P1501 [国家集训队]Tree II Link-Cut-Tree
Code: #include <cstdio> #include <algorithm> #include <cstring> #include <strin ...
- Redis-Sentinel原理及配置详解【转】
https://www.cnblogs.com/zhoujinyi/p/5570024.html
- 二 JDK + mysql + yum + rpm
如果系统环境崩溃. 调用/usr/bin/vim /etc/profile 1 网络搭建 2 host配置 3 SSH无密码登录 4 rpm 安装 yum install ...
- ubuntu中开启、关闭防火墙
1.关闭ubuntu的防火墙 ufw disable 开启防火墙 ufw enable 2.卸载了iptables apt-get remove iptables 3.关闭 ...
- Nginx 性能调优
原文地址:http://nginx.com/blog/tuning-nginx/ Tuning NGINX for Performance Nginx 性能调优 NGINX is well known ...
- _DataStructure_C_Impl:Dijkstra算法求最短路径
// _DataStructure_C_Impl:Dijkstra #include<stdio.h> #include<stdlib.h> #include<strin ...
- Linux能ping通IP,ping不通域名
今天碰到个问题, 能ping通IP地址, ping不通域名, 一直以为是 DNS解析服务器的问题, 找了半天. 问题不在这里. [root@www postfix]# cat /etc/resolv. ...
- Deferred Rendering(三)反锯齿和半透明问题
Deferred 框架下的AA 前面说过Deferred 框架下无法使用硬件AA.这句话不严谨: Deferred Shading在G-Buffer之后,物体几何信息全被抛弃了,导致兴许每一个像素都独 ...
- Activity的launchMode和任务栈小结
对Activity的launchMode的理解一直没有好好总结下,这两天系统总结下launchMode的使用方法: Activity的launchMode属性决定了Activity和应用程序当前任务栈 ...