【人体姿态估计1】Convolutional Pose Machines_2016
文章目錄
- 1. Introduction
- 2. 網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)介
- 3. Method
- 3.1 Pose Machines
- 3.2 Convolutional Pose Machines —— CPMs
- 3.2.1 Keypoint Localization Using Local Image Evidence
- 3.2.2 Sequential Prediction with Learned Spatial Context Features
- 3.2.3 CMP的學(xué)習(xí)過(guò)程
- 4. 實(shí)驗(yàn)
- 4.1 分析
參考博客:
https://www.aiuai.cn/aifarm176.html
https://blog.csdn.net/shenxiaolu1984/article/details/51094959
代碼鏈接:
caffe
tensorflow
該論文展示了如何將卷積網(wǎng)絡(luò)嵌入到人體姿態(tài)估計(jì)框架中,來(lái)學(xué)習(xí)圖像特征和與圖像無(wú)關(guān)的空域特征。
貢獻(xiàn)點(diǎn):
使用序列化的卷積結(jié)構(gòu)來(lái)表達(dá)圖像信息和空間信息。
序列化的卷積結(jié)構(gòu)表現(xiàn)在網(wǎng)絡(luò)分為多個(gè)階段,每個(gè)階段都有監(jiān)督訓(xùn)練的部分,前面階段使用原始圖片作為輸入,后面階段使用之前階段的特征圖作為輸入,產(chǎn)生對(duì)局部位置越來(lái)越精細(xì)的估計(jì)。主要是為了融合空間信息,紋理信息和中心約束。另外,對(duì)同一個(gè)卷積架構(gòu)同時(shí)使用多個(gè)尺度來(lái)處理輸入的特征和響應(yīng),能夠在保證精度的同時(shí),不失其空間結(jié)構(gòu)信息。
1. Introduction
本文提出了一種針對(duì)人體姿態(tài)估計(jì)任務(wù)的 Convolutional Pose Machines (CPMs)
CPMs的特點(diǎn):
- 能夠從數(shù)據(jù)中直接學(xué)到圖像和空間信息的特征表達(dá)
- 能夠使用BP進(jìn)行端到端的學(xué)習(xí)
- 能夠解決大量數(shù)據(jù)的高效訓(xùn)練
CPMs組成結(jié)構(gòu):序列化的卷積網(wǎng)絡(luò),能夠不斷的提取每個(gè)局部位置的2D特征圖
每個(gè)stage的輸入: 來(lái)自前一stage的圖像特征+響應(yīng)圖
每個(gè)響應(yīng)圖(belief maps)可以提供:為下一階段的stage提供每個(gè)部件的表達(dá)性強(qiáng)的非參數(shù)化編碼。
網(wǎng)絡(luò)學(xué)習(xí)的東西: 沒(méi)有使用圖形化模型[28,38,39]或?qū)iT(mén)的后處理步驟[38,40]來(lái)顯式解析這種響應(yīng)圖,而是學(xué)習(xí)直接作用于中間響應(yīng)圖的卷積網(wǎng)絡(luò),并學(xué)習(xí)每個(gè)部分之間依賴(lài)于圖像的隱式空間模型間的關(guān)系。
每個(gè)部件響應(yīng)的空間信息可以提供很強(qiáng)的二義性消除線(xiàn)索,所以,CPM的每個(gè)stage都可以提供對(duì)每個(gè)部件的位置信息越來(lái)越精確的估計(jì),如下圖所示:
為了捕捉每個(gè)部件間的 long range 的關(guān)系,每個(gè)stage的設(shè)計(jì)都是為了實(shí)現(xiàn)在圖像上和響應(yīng)圖上的大的感受野。并且,經(jīng)過(guò)實(shí)驗(yàn),我們發(fā)現(xiàn)響應(yīng)圖上大的感受野對(duì)學(xué)習(xí) long range 空間關(guān)系非常重要。
CPM中將多個(gè)卷積網(wǎng)絡(luò)組合起來(lái)帶來(lái)的問(wèn)題: 訓(xùn)練過(guò)程會(huì)有梯度消失現(xiàn)象
CMP中如何解決: 使用對(duì)稱(chēng)的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)修正梯度,并通過(guò)網(wǎng)絡(luò)定期執(zhí)行中間監(jiān)督來(lái)引導(dǎo)網(wǎng)絡(luò)生成越來(lái)越精確的響應(yīng)圖。
主要貢獻(xiàn):
- 通過(guò)有序的組合卷積結(jié)果來(lái)學(xué)習(xí)隱式空間模型
- 利用對(duì)稱(chēng)的網(wǎng)絡(luò)來(lái)同時(shí)學(xué)習(xí)圖像特征和依賴(lài)于圖像的空間模型
2. 網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)介
網(wǎng)絡(luò)結(jié)構(gòu):
網(wǎng)絡(luò)輸入彩色圖像(綠色ori image)。以半身模型為例,分為四個(gè)階段(stage)。每個(gè)階段都能輸出各個(gè)部件的響應(yīng)圖(藍(lán)色score),使用時(shí)以最后一個(gè)階段的響應(yīng)圖輸出為準(zhǔn)。
center map(綠色)是一個(gè)提前生成的高斯函數(shù)模板,用來(lái)把響應(yīng)歸攏到圖像中心。
第一階段:
第一階段是一個(gè)基本的卷積網(wǎng)絡(luò)1(白色convs),從彩色圖像直接預(yù)測(cè)每個(gè)部件的響應(yīng)。半身模型有9個(gè)部件,另外包含一個(gè)背景響應(yīng),共10層響應(yīng)圖。
第二階段:
第二階段也是從彩色圖像預(yù)測(cè)各部件響應(yīng),但是在卷積層中段多了一個(gè)串聯(lián)層(紅色concat),把以下三個(gè)數(shù)據(jù)合一:
- 階段性的卷積結(jié)果(4646*32)→→ 紋理特征
- 前一階段各部件響應(yīng)(464610)→→ 空間特征
- 中心約束(46461)
串聯(lián)后的結(jié)果尺寸不變,深度變?yōu)?2+10+1 = 43。
第三階段:
第三階段不再使用原始圖像為輸入,而是從第二階段的中途取出一個(gè)深度為128的特征圖(feature image)作為輸入。同樣使用串聯(lián)層綜合三種因素:紋理特征+空間特征+中心約束。
原始圖像和128層中的部分特征圖層:
后續(xù)階段:
第四階段結(jié)構(gòu)和第三階段完全相同。在設(shè)計(jì)更復(fù)雜的網(wǎng)絡(luò)時(shí)(例如全身模型),只需調(diào)整部件數(shù)量(從10變?yōu)?5),并重復(fù)第三階段結(jié)構(gòu)即可。
數(shù)據(jù)擴(kuò)展:
為了豐富訓(xùn)練樣本,對(duì)原始圖片進(jìn)行隨機(jī)旋轉(zhuǎn)縮放鏡像。
這部分由一個(gè)新定義的caffe層cpm_data實(shí)現(xiàn)。僅在訓(xùn)練時(shí)使用。
標(biāo)定:
姿態(tài)數(shù)據(jù)集中標(biāo)定的是各個(gè)部件的位置,可以通過(guò)在每個(gè)關(guān)鍵點(diǎn)的真實(shí)位置上放置一個(gè)高斯響應(yīng),來(lái)構(gòu)造響應(yīng)圖的真值。
對(duì)于包含多個(gè)人的圖像,生成兩種真值響應(yīng):
a. 在每個(gè)人的相應(yīng)部件位置,放置高斯響應(yīng)。(下圖左)
b. 只在標(biāo)定的人的相應(yīng)部件位置,放置高斯響應(yīng)。(下圖右)
由于第一階段只能考慮局部特征,故將a用于第一階段網(wǎng)絡(luò)訓(xùn)練,b用于后續(xù)階段網(wǎng)絡(luò)訓(xùn)練。
中間監(jiān)督優(yōu)化:
每層輸出都計(jì)算loss
多尺度:
訓(xùn)練時(shí),已經(jīng)通過(guò)cpm_data層對(duì)數(shù)據(jù)進(jìn)行了尺度擴(kuò)充。在測(cè)試時(shí),直接從原圖生成不同尺度的圖像,分別送入網(wǎng)絡(luò)。將所得相應(yīng)結(jié)果求和。下圖示出第1,4,8,12尺度:
3. Method
3.1 Pose Machines
每個(gè)位置的坐標(biāo) (u,v)(u,v)(u,v),YPY_PYP? 是第 p 個(gè) part 的像素位置
本文的目標(biāo): 預(yù)測(cè) PPP 個(gè) parts 在圖像中的位置 Y=(Y1,...,YP)Y=(Y_1,...,Y_P)Y=(Y1?,...,YP?).
Pose Machine組成部分: 一系列的多類(lèi)別預(yù)測(cè)器 gt(.)g_t(.)gt?(.),這個(gè)預(yù)測(cè)器分別被用來(lái)預(yù)測(cè)每個(gè)尺度特征圖中 part 位置。
在每個(gè)stage t∈1,...,Tt \in{1,...,T}t∈1,...,T中, gt(.)g_t(.)gt?(.) 會(huì)預(yù)測(cè)響應(yīng)圖,用來(lái)給每個(gè) part分配位置。
上述位置怎么得到:
- 1、每個(gè)位置 zzz 上所抽取的圖像特征 xzx_zxz?
- 2、前一個(gè)stage ttt 的分類(lèi)器得到的 YPY_PYP? 附近的上下文信息
stage t=1 時(shí),分類(lèi)器 gtg_tgt? 預(yù)測(cè)的響應(yīng)值為:
其中,b1p(Yp=z)b_1^p(Y_p=z)b1p?(Yp?=z) 是分類(lèi)器 g1g_1g1? 的第一個(gè)stage中預(yù)測(cè)的第p個(gè)部件在位置 z 上的得分。
記在圖片中每個(gè)位置 z 的部件p的所有置信得分為 bt∈Rw×hb_t \in R^{w\times h}bt?∈Rw×h,其中,w和h分別為寬和高。
則:
方便起見(jiàn),將所有部件(關(guān)鍵點(diǎn))的響應(yīng)圖(belief maps)集合標(biāo)記如下,p個(gè)關(guān)鍵點(diǎn)+1個(gè)背景類(lèi)
stage>1時(shí),分類(lèi)器基于兩種輸入來(lái)預(yù)測(cè)關(guān)鍵點(diǎn)位置的置信(belief):
- 圖片特征 xztx_z^txzt?
- 前一stage分類(lèi)器輸出的每個(gè)關(guān)鍵點(diǎn)周?chē)纳舷挛男畔?/li>
其中,?t>1(.)\phi_{t>1}(.)?t>1?(.) 是置信 bt?1b_{t-1}bt?1? 到上下文特征的映射。
每個(gè)stage計(jì)算的置信(beliefs)對(duì)每個(gè)關(guān)鍵點(diǎn)的位置估計(jì)越來(lái)越精細(xì)。
這里,第一個(gè)stage之后的所有stage用到的圖像特征 x′x'x′ 和 stage=1時(shí)所用到的圖像特征 xxx 是不同的。
pose machine 使用 boosted random forests 來(lái)作為分類(lèi)器 g(t)g(t)g(t),手工設(shè)計(jì)每個(gè)stage的所有圖像特征 (x’=x),手工設(shè)計(jì)特征圖來(lái)學(xué)習(xí)所有stages的空間信息。
3.2 Convolutional Pose Machines —— CPMs
本節(jié)描述如何利用CPM來(lái)代替PM來(lái)實(shí)現(xiàn)直接從數(shù)據(jù)來(lái)學(xué)習(xí)圖像和上下文的特征表示。
根據(jù)源碼給出的 deploy.prototxt,CPM 部署時(shí)是 multi-scales 的,處理流程:
[1] - 基于每個(gè) scale,計(jì)算網(wǎng)絡(luò)預(yù)測(cè)的各關(guān)節(jié)點(diǎn) heatmap;
[2] - 依次累加每個(gè)關(guān)節(jié)點(diǎn)對(duì)應(yīng)的所有 scales 的 heatmaps;
[3] - 根據(jù)累加 heatmaps,如果其最大值大于指定閾值,則該最大值所在位置 (x,y) 即為預(yù)測(cè)的關(guān)節(jié)點(diǎn)位置.
3.2.1 Keypoint Localization Using Local Image Evidence
stage=1時(shí)的關(guān)鍵點(diǎn)定位
stage=1時(shí),CPM僅僅根據(jù)局部圖像信息(Local image evidence)來(lái)預(yù)測(cè)關(guān)鍵點(diǎn)。
局部圖像信息:stage=1時(shí),網(wǎng)絡(luò)的感受野被約束到輸出像素位置的small patch(小的塊兒),如圖所示:
輸入圖像經(jīng)過(guò)一個(gè)全卷積網(wǎng)絡(luò):5 個(gè)卷積層和 2 個(gè)1x1 卷積層
為了得到較好的precision,文中將輸入crop到368x368大小,上述全卷積網(wǎng)絡(luò)的感受野就是160x160大小。
該網(wǎng)絡(luò)結(jié)構(gòu)可以被看做:大小為368x368的圖像,經(jīng)過(guò)一個(gè)卷積網(wǎng)絡(luò)的滑動(dòng)提取特征,從每個(gè)在160x160大小的patch 中的局部圖像信息中回歸一個(gè)p+1個(gè)輸出向量,表示每個(gè)位置上每個(gè)關(guān)鍵點(diǎn)出現(xiàn)的得分。
卷積層不改變圖像大小,經(jīng)過(guò)三次pooling,輸出46x46大小的特征圖,共p+1個(gè)特征圖。
t>=2時(shí),網(wǎng)絡(luò)的輸出是一致的,都是46x46x(p+1)的特征圖。
3.2.2 Sequential Prediction with Learned Spatial Context Features
檢測(cè)外觀(guān)始終比較一致的landmarks會(huì)比較容易,比如頭和肩膀。但一些低于人體固件鏈接的 landmarks 的準(zhǔn)確率會(huì)很低,由于這些的結(jié)構(gòu)和外觀(guān)很多變。
盡管關(guān)鍵點(diǎn)鄰域內(nèi)的響應(yīng)圖會(huì)有一定的噪聲,但是同樣可以提供很多的信息。
如圖3所示,當(dāng)檢測(cè)類(lèi)似于右手手肘這些有挑戰(zhàn)性的關(guān)鍵點(diǎn)時(shí),右肩膀的響應(yīng)圖會(huì)有一個(gè)尖銳的峰值,這可以被看做一個(gè)強(qiáng)線(xiàn)索。
也就是容易檢測(cè)的關(guān)鍵點(diǎn)可以為難以檢測(cè)的關(guān)鍵點(diǎn)提高有用的信息。
容易檢測(cè)的關(guān)鍵點(diǎn)隊(duì)友后續(xù)stage的響應(yīng)圖來(lái)說(shuō),有助于消除其錯(cuò)誤的估計(jì)(紅色),提升其正確的估計(jì)(綠色)。
stage>1時(shí),所有 stage 的預(yù)測(cè)器(gt>1g_{t>1}gt>1?)都可以使用圖像位置 zzz 鄰域內(nèi)的噪聲響應(yīng)圖的空域信息,因?yàn)橐粋€(gè)關(guān)鍵點(diǎn)肯定出現(xiàn)在一個(gè)固定的幾何關(guān)系空間。
t=2時(shí),分類(lèi)器 g2g_2g2? 的輸入如圖,包括:
- 原始圖像特征圖像特征 xz2x_z^2xz2?
- 卷積結(jié)果:前面的stage對(duì)每個(gè)關(guān)鍵點(diǎn)的belief,通過(guò)特征函數(shù) ?\phi? 計(jì)算得到的特征
- 生成的center 的Gaussian中心約束(caffe代碼)
t>2時(shí),分類(lèi)器 gt>2g_{t>2}gt>2?的輸入,不再包括原始圖片特征,而是替換為上一層的卷積結(jié)果,其它的輸入與 t=2 相同. 也是三個(gè)輸入.
特征函數(shù) 的作用是對(duì)先前 stage 不同關(guān)節(jié)點(diǎn)的空間 belief maps 編碼.
CMP中,不需要用函數(shù)計(jì)算上下文特征,而是定義 ?\phi? 作為分類(lèi)器在前一stage的belief上的感受野。
設(shè)計(jì)網(wǎng)絡(luò)的靈感:為了實(shí)現(xiàn)第二個(gè)stage的輸出足夠大,能夠保證可以學(xué)習(xí)到關(guān)鍵點(diǎn)間的潛在信息和 long-range 聯(lián)系。
大的感受野可以通過(guò)很多方法來(lái)得到:
- pooling,會(huì)犧牲精度
- 大的kernel size,會(huì)使參數(shù)量增加,訓(xùn)練時(shí)出現(xiàn)梯度消失的風(fēng)險(xiǎn)
- 提升卷積層數(shù)量
該文章中使用如圖2(d)中的方法來(lái)提升感受野:
- 使用多個(gè)卷積層來(lái)實(shí)現(xiàn)在8x下采樣的heatmap上的大的感受野
- 作者發(fā)現(xiàn)步長(zhǎng)為8的網(wǎng)絡(luò)可以和步長(zhǎng)為4的網(wǎng)絡(luò) 表現(xiàn)效果相當(dāng),大步長(zhǎng)帶來(lái)了大的感受野
3.2.3 CMP的學(xué)習(xí)過(guò)程
將pose machine換成深度的結(jié)構(gòu),會(huì)導(dǎo)致參數(shù)量增加,也會(huì)出現(xiàn)梯度消失的現(xiàn)象。
pose machine 的每個(gè)stage 都會(huì)產(chǎn)生每個(gè)關(guān)鍵點(diǎn)的預(yù)測(cè)結(jié)果,重復(fù)的輸出每個(gè)關(guān)鍵點(diǎn)位置的belief maps,以逐漸精細(xì)化的方式估計(jì)關(guān)鍵點(diǎn)。
所以,每個(gè)stage輸出后都計(jì)算loss,作為中介監(jiān)督loss避免梯度消失的問(wèn)題。
loss函數(shù):最小化每個(gè)關(guān)鍵點(diǎn)的預(yù)測(cè)和真實(shí) belief map 的 l2l_2l2? 距離
關(guān)鍵點(diǎn)p的ground truth belief map 記為 b?p(Yp=z)b_*^p(Y_p=z)b?p?(Yp?=z),是通過(guò)在每個(gè)關(guān)鍵點(diǎn) p 的真實(shí)為(x,y) 放置gaussian函數(shù)模板的方式得到的。
如:
loss函數(shù)是最小化每個(gè)level中每個(gè)stage的輸出,所以:
每個(gè)stage的loss函數(shù):
最終的loss函數(shù):
所有的 stage t>=2,共享特征圖x‘(caffe實(shí)現(xiàn)中 T=6)’
4. 實(shí)驗(yàn)
4.1 分析
梯度消失:
證明使用中間loss對(duì)梯度消失的作用:
圖5中是不同深度的結(jié)構(gòu),有/無(wú)中間監(jiān)督的梯度情況
early epoch:沒(méi)有中間監(jiān)督時(shí),由于有梯度消失,所以梯度的分布在0周?chē)?br /> 有中間監(jiān)督時(shí),每個(gè)層的梯度分布方差都較大
端到端訓(xùn)練的效果: Fig6(a)
中間監(jiān)督的效果: Fig6(b)
每個(gè)stage的結(jié)果: Fig6?
實(shí)驗(yàn)結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的【人体姿态估计1】Convolutional Pose Machines_2016的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: xls文件怎么转成xlsx文件
- 下一篇: 论文写作专题记录