作者信息:朱松纯,加州大学洛杉矶分校UCLA统计学和计算机科学教授,视觉、认知、学习与自主机器人中心主任
发表年份:2014
主要内容:这篇文章指出了当时主流的几种行为识别方法所存在的不足,例如模板匹配法依赖静态背景。Bow等基于感兴趣点的方法在构建视觉词袋时忽视了每个聚类不同的维度和复杂性,基于姿态估计的行为识别是只能处理静态的图像,不能处理动态的视频,无法捕捉长时或者短时的运动信息。基于场景上下文的方法也大多依赖静态图像,不能处理视频。作者结合这几种主流方法,提出了****APT(Animated Pose Templates)****模型。
-
MPT
Ω m p t ( n ) = { M P T i = ( S T i , M T i ) : i = 1 , . . . , n } \Omega_{mpt}(n)=\{MPT_i=(ST_i,MT_i):i=1,...,n\} Ωmpt(n)={MPTi=(STi,MTi):i=1,...,n}
MPT由ST和MT两部分构成, S T i ST_i STi由人体各部分(共m个部分)的模板 T i j T_{ij} Tij构成,用于表示外型:
S T i = ( T i 0 , T i 1 , . . . , T i m ) ST_i=(T_{i0},T_{i1},...,T_{im}) STi=(Ti0,Ti1,...,Tim)
其中 T i j T_{ij} Tij由以下部分构成:符号 含义 a i j a_{ij} aij 用来表示在身体的哪个部位 Z i j Z_{ij} Zij 表示该部分在图像中的位置(BBox) X i j X_{ij} Xij 图像的HoG特征 h i j h_{ij} hij 隐变量,相对于锚点的位移和旋转 M T i = ( V i 0 , V i 1 , . . . , V i m ) MT_i=(V_{i0},V_{i1},...,V_{im}) MTi=(Vi0,Vi1,...,Vim)
V i j V_{ij} Vij由以下过程得到:
1.计算光流
2.用cell进行pooling,每个cell包含8*8像素,将像素的速度投影到8个指定方向,得到一个8维向量
3.将每个单元的所有像素的向量想加,并用sigmiod规范化到[0,1], V i j V_{ij} Vij即为这些向量的串联。
文中将MPT按照人体部位表示为树状结构每个模板 M P T i MPT_i MPTi包含一个等长的参数向量 ω i = ( ω i A , ω i D , ω i M ) \omega_i=(\omega_i^A,\omega_i^D,\omega_i^M) ωi=(ωiA,ωiD,ωiM)(Appearance,Deformation,Movement),这个参数向量是通过机构化SVM的方式训练得到的,预测的t时刻模板 m p t ( t ) mpt^{(t)} mpt(t)的分数由以下函数确定:
S ( m p t ( t ) ) = ∑ j = 0 m < ω i j A , X i j ( t ) > + ∑ j = 1 m < ω i j D , d i j ( t ) > + ∑ j = 1 m < ω i j M , d i j ( t ) > S(mpt^{(t)})=\sum_{j=0}^m<\omega_{ij}^A,X_{ij}^{(t)}>+\sum_{j=1}^m<\omega_{ij}^D,d_{ij}^{(t)}>+\sum_{j=1}^m<\omega_{ij}^M,d_{ij}^{(t)}> S(mpt(t))=∑j=0m<ωijA,Xij(t)>+∑j=1m<ωijD,dij(t)>+∑j=1m<ωijM,dij(t)> -
APT
APT(animated pose template)由一个MPT序列构成,MPT之间存在转移概率。
我们可以把时间段 [ t s , t e ) [t^s,t^e) [ts,te)内的APT写成一个随机几何
Ω A P T = { a p t [ t s , t e ] = ( m p t ( t s ) ,   . . .   , m p t ( t e ) ) } \Omega_{APT}=\{{apt[t^s,t^e]=(mpt^{(t^s)},\,... \,,mpt^{(t^e)})}\} ΩAPT={apt[ts,te]=(mpt(ts),...,mpt(te))}
这个序列由markov概率决定
P ( m p t ( t s ) ) ∏ t = t s t e P ( m p t ( t + 1 ) ∣ P ( m p t ( t ) ) P(mpt^{(t^s)})\prod_{t=t^s}^{t^e}{P(mpt^{(t+1)}|P(mpt^{(t)})} P(mpt(ts))∏t=tsteP(mpt(t+1)∣P(mpt(t))
其中,初始概率 P ( m p t ( t s ) ) P(mpt^{(t^s)}) P(mpt(ts))是统一的,转移概率 P ( m p t ( t + 1 ) ∣ P ( m p t ( t ) ) P(mpt^{(t+1)}|P(mpt^{(t)}) P(mpt(t+1)∣P(mpt(t))包含两部分:
a. MPT标签 l ( t ) , l ( t + 1 ) l^{(t)},l^{(t+1)} l(t),l(t+1)的转移概率,这是个典型的HMM模型,速度体现在停留在当前状态的概率上。文中使用了两种HMM模型:
b.跟踪转移概率 P ( Z ( t + 1 ) ∣ Z ( t ) ) P(Z^{(t+1)}|Z^{(t)}) P(Z(t+1)∣Z(t)),若给定初始位置和尺度,假设人体各部分独立,则:P ( Z ( t + 1 ) ∣ Z ( t ) ) = ∏ j = 0 m P ( Z l ( t + 1 ) j ( t + 1 ) ∣ Z l ( t ) j ( t ) ) P(Z^{(t+1)}|Z^{(t)})=\prod_{j=0}^m{P(Z_{l^{(t+1)}j}^{(t+1)}|Z_{l^{(t)}j}^{(t)})} P(Z(t+1)∣Z(t))=∏j=0mP(Zl(t+1)j(t+1)∣Zl(t)j(t))
又由于 P ( Z l ( t + 1 ) j ( t + 1 ) ∣ Z l ( t ) j ( t ) ) P(Z_{l^{(t+1)}j}^{(t+1)}|Z_{l^{(t)}j}^{(t)}) P(Zl(t+1)j(t+1)∣Zl(t)j(t))是关于位置 ( x , y ) (x,y) (x,y)和尺度变化 s s sd的高斯函数
故可以将其转化为一个6维空间中的向量
ϕ i j ( t ) = ( d x i j , d x i j 2 , d y i j , d y i j 2 , d s i j , d s i j 2 ) \phi_{ij}^{(t)}=(d_{x_{ij}},d_{x_{ij}}^2,d_{y_{ij}},d_{y_{ij}}^2,d_{s_{ij}},d_{s_{ij}}^2) ϕij(t)=(dxij,dxij2,dyij,dyij2,dsij,dsij2)
由此我们可以把 P ( m p t ( t + 1 ) ∣ P ( m p t ( t ) ) P(mpt^{(t+1)}|P(mpt^{(t)}) P(mpt(t+1)∣P(mpt(t))这个概率转化为分数表示:
S ( m p t ( t + 1 ) ∣ P ( m p t ( t ) ) = A ( l ( t + 1 ) ∣ l ( t ) ) + ∑ j = 0 m < ω l ( t ) j T , ϕ l ( t ) j t > S(mpt^{(t+1)}|P(mpt^{(t)})=A(l^{(t+1)}|l^{(t)})+\sum_{j=0}^m<\omega_{l^{(t)}j}^T,\phi_{l^{(t)}j}^t> S(mpt(t+1)∣P(mpt(t))=A(l(t+1)∣l(t))+∑j=0m<ωl(t)jT,ϕl(t)jt>
其中A是 P ( l ( t + 1 ) ∣ l ( t ) ) P(l^{(t+1)}|l^{(t)}) P(l(t+1)∣l(t))的对数, ω l ( t ) j T \omega_{l^{(t)}j}^T ωl(t)jT是一个6维的参数,它将在SVM中被学习.
最终,动画姿态模板 a p t ( t s , t e ] apt(t^s,t^e] apt(ts,te]的分数可以表示为:
S ( a p t [ t s , t e ] ) = ∑ t = t s t e S ( m p t ( t ) ) + ∑ t = t s t e − 1 S ( m p t ( t + 1 ) ∣ S ( m p t ( t ) ) S(apt[t^s,t^e])=\sum_{t=t^s}^{t^e}{S(mpt^{(t)}})+\sum_{t=t^s}^{t^e-1}{S(mpt^{(t+1)}}|S(mpt^{(t)}) S(apt[ts,te])=∑t=tsteS(mpt(t))+∑t=tste−1S(mpt(t+1)∣S(mpt(t))
算法将设法找出分数最大的apt -
上下文目标
Ω r m o b j = { ′ g r o u n d ′ , ′ b u t t o n ′ , ′ c i g a r e t t e ′ , ′ c u p ′ … } \Omega_{rmobj}=\{'ground','button','cigarette','cup'\ldots\} Ωrmobj={′ground′,′button′,′cigarette′,′cup′…}为人类行为中可能相关的对象,它们分为弱目标和强目标两种。
弱目标通常难以检测,要么外观太小,要么外观变化太大,如香烟,地板。强目标则通常较为容易检测。
处理强目标的方法和身体部分相同,如下图中的杯子。假设有 m ′ m' m′个上下文对象
C O = ( T i m + 1 , … , T i m + m ′ ) CO=(T_{im+1},\ldots,T_{im+m'}) CO=(Tim+1,…,Tim+m′)
S ( C O t ) = ∑ j = m + 1 m + m ′ < ω i j A , X i j ( t ) > + ∑ j = m + 1 m + m ′ < ω i j D , d i j ( t ) > S(CO^t)=\sum_{j=m+1}^{m+m'}<\omega_{ij}^A,X_{ij}^{(t)}>+\sum_{j=m+1}^{m+m'}<\omega_{ij}^D,d_{ij}^{(t)}> S(COt)=∑j=m+1m+m′<ωijA,Xij(t)>+∑j=m+1m+m′<ωijD,dij(t)>
对于弱目标,则以一个二次函数 < ω i j D , d i j ( t ) > <\omega_{ij}^D,d_{ij}^{(t)}> <ωijD,dij(t)>的形式,利用与其交互的人体部位来定义弱目标,它的位置被限制在人体部分与目标之间。如下图中利用前臂小腿等人体部位的来定位地板,售货机和按钮
-
模型训练
假设N个训练帧中,前n帧由机构化标签 y i ∈ Y , i = 1 , … , n y_i\in Y,i=1,\ldots,n yi∈Y,i=1,…,n,剩下的帧为隐藏标签 h i ∈ Y , i = n + 1 , … , N h_i\in Y,i=n+1,\ldots,N hi∈Y,i=n+1,…,N
D = ( { x i , y i } i = 1 n , { x i , h i } i = n + 1 N ) D=(\{x_i,y_i\}_{i=1}^n,\{x_i,h_i\}_{i=n+1}^N) D=({xi,yi}i=1n,{xi,hi}i=n+1N)
它的学习过程分为三步
1.初始化MPT和APT模型
用EM算法对 标记了的帧进行聚类,形成一个MPT的字典,MPT对应不同的视角和不同速度,利用标签的统计频率初始化转移概率。
2.利用结构化SVM对MPT参数进行训练
训练的参数为 ω i = ( ω i A , ω i D , ω i M ) \omega_i=(\omega_i^A,\omega_i^D,\omega_i^M) ωi=(ωiA,ωiD,ωiM)
ϕ ( x i , y i ) \phi(x_i,y_i) ϕ(xi,yi)表示用标签 y i y_i yi提取到的特征, Δ ( y i , y i ^ ) \Delta(y_i,\hat{y_i}) Δ(yi,yi^)是一个间隔,问题转化为:
min w 1 2 ∣ ∣ w ∣ ∣ 2 + c n ∑ i = 1 n ξ i \min\limits_{w}\frac12||w||^2+\frac cn\sum_{i=1}^n\xi _i wmin21∣∣w∣∣2+nc∑i=1nξi
s t . max y ^ ∈ Y ω T ( ϕ ( x i , y i ) − ϕ ( x i , y i ^ ) ) ≥ Δ ( y i , y i ^ ) − ξ i st.\quad \max\limits_{\hat{y}\in Y}\omega^T(\phi(x_i,y_i)-\phi(x_i,\hat{y_i}))\geq \Delta(y_i,\hat{y_i})-\xi _i st.y^∈YmaxωT(ϕ(xi,yi)−ϕ(xi,yi^))≥Δ(yi,yi^)−ξi
这可以用cutting_plane算法解决。
3.用结构化SVM训练APT模型
在这一步中,加入未标记帧,训练各MPT之间的转移概率,定义隐变量结构化SVM的上界函数为:
g ( x , y , w ) = m a x { 0 , Δ ( y i , y i ^ ) + ω T ( ϕ ( x , y ^ ) − max h ∗ { ϕ ( x , h ∗ ) } } g(x,y,w)=max\{0,\Delta(y_i,\hat{y_i})+\omega^T(\phi(x,\hat{y})-\max\limits_{h^*}\{\phi(x,h^*)\}\} g(x,y,w)=max{0,Δ(yi,yi^)+ωT(ϕ(x,y^)−h∗max{ϕ(x,h∗)}}
ω = a r g min ω ∈ R d { 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 n g ( x i , y i , w ) + ∑ i = n + 1 N max h ∈ Y g ( x i , h i , w ) } \omega=arg\min\limits_{\omega \in R^d}\{\frac12||w||^2+\sum_{i=1}^ng(x_i,y_i,w)+\sum_{i=n+1}^N\max\limits_{h\in Y}g(x_i,h_i,w)\} ω=argω∈Rdmin{21∣∣w∣∣2+∑i=1ng(xi,yi,w)+∑i=n+1Nh∈Ymaxg(xi,hi,w)}
由于在实验中一次加入所有的未标注帧,效果非常差,所以作者选择每次只加入在当前参数 ω \omega ω下分数较高的帧,因为此时的结构化标签 y i y_i yi接近 t r u t h truth truth.加入了控制变量 v i v_i vi,当它为1时才允许其参与迭代。
迭代公式为
ω t + 1 = a r g min ω ∈ R d { 1 2 ∣ ∣ w t ∣ ∣ 2 + ∑ i = 1 n g ( x i , y i , w t ) + ∑ i = n + 1 N v i ( t ) max h ∈ Y g ( x i , h i , w t ) } − 1 N ∑ i = n + 1 N v i \omega_{t+1}=arg\min\limits_{\omega \in R^d}\{\frac12||w_t||^2+\sum_{i=1}^ng(x_i,y_i,w_t)+\sum_{i=n+1}^Nv_i(t)\max\limits_{h\in Y}g(x_i,h_i,w_t)\}-\frac1N\sum_{i=n+1}^Nv_i ωt+1=argω∈Rdmin{21∣∣wt∣∣2+∑i=1ng(xi,yi,wt)+∑i=n+1Nvi(t)h∈Ymaxg(xi,hi,wt)}−N1∑i=n+1Nvi -
预测过程
1.检测动作片段
对每一帧t都进行最佳模板 m p t ( t ) mpt^{(t)} mpt(t)匹配,定位各人体部位位置 Z ( t ) Z^{(t)} Z(t),得到类别标签 l ( t ) l^{(t)} l(t),同时得到上下文对象的位置和训练样本排序
2.通过mpt分数和转移概率在特定时间域内识别动画模板
a p t ∗ [ t s , t e ] = a r g max S ( a p t [ t s , t e ] ) apt^*[t^s,t^e]=arg\max S(apt[t^s,t^e]) apt∗[ts,te]=argmaxS(apt[ts,te]) -
性能分析
作者在五个不同数据集(作者对一些细节信息进行了额外标注(例如一些关键帧的肢体位置))上进行了测试,并和当时的其他方法做了比较:
i) The KTH dataset
ii) The Microsoft Research Action II (MSR) dataset
iii) The Coffee & Cigarette dataset
iv) The CMU human-object interaction dataset .
v) a contextual action detection dataset we collected at UCLA
campus(作者团队搜集).