自監(jiān)督多視角3D人體姿態(tài)估計(jì)

論文:Self-Supervised Learning of 3D Human Pose using Multi-view Geometry

Github

該方法局限于訓(xùn)練時(shí)的數(shù)據(jù)集传黄,無(wú)法在訓(xùn)練集以外的業(yè)務(wù)場(chǎng)景中泛化坝锰,已由作者本人在Github上確認(rèn)收壕。

該方法大致步驟為:

EpipolarPose1.png

? 從2D多目圖片中預(yù)測(cè)3D姿態(tài)

  1. 輸入不同視角的2D圖像產(chǎn)生極線位置 (右側(cè)兩條分支)
  2. 由極線位置生成3D姿態(tài)A
  3. 由原始圖像直接生成3D姿態(tài)B(左側(cè)分支)
  4. A與B進(jìn)行自監(jiān)督學(xué)習(xí)
EpipolarPose2.png

如上圖象泵,2D與3D部分的主要構(gòu)成都是類似Hourglass的結(jié)構(gòu),為一個(gè)ResNet50+Deconv恢復(fù)維度,生成的Heatmap經(jīng)過(guò)Softmax計(jì)算,得到各種的關(guān)節(jié)預(yù)測(cè)結(jié)果衰粹。

每一個(gè)Hourglass都是在MPII 2D姿態(tài)數(shù)據(jù)集上預(yù)訓(xùn)練的,下半部分2D姿態(tài)估計(jì)在訓(xùn)練過(guò)程中是凍結(jié)(Frozen)的笆怠,也就是說(shuō)只使用這個(gè)預(yù)訓(xùn)練好的網(wǎng)絡(luò)得到結(jié)果寄猩,不更新參數(shù)。
作者說(shuō)使用它原因是避免直接生成3D坐標(biāo)會(huì)使得所有坐標(biāo)值坍塌到一個(gè)點(diǎn)骑疆。

在訓(xùn)練時(shí)田篇,算法步驟2由已知的相機(jī)內(nèi)參數(shù)(焦距、主點(diǎn))箍铭、外參數(shù)(旋轉(zhuǎn)角和平移位置)泊柬,建立一個(gè)針孔圖像投影模型(pinhole image projection model)計(jì)算3D坐標(biāo)。

EpipolarPose3.5.png

針對(duì)相機(jī)旋轉(zhuǎn)角未知的情況诈火,作者也提出使用RANSAC算法在多目圖片中求解相機(jī)的旋轉(zhuǎn)角(以第一個(gè)相機(jī)為中心)兽赁,然后使用三角多項(xiàng)式計(jì)算3D坐標(biāo)。

求解R的過(guò)程其實(shí)很有意思:兩個(gè)相機(jī)分別拍攝的圖片中冷守,相同的關(guān)節(jié)點(diǎn)Ui和Ui+1滿足:
對(duì)任意節(jié)點(diǎn)j刀崖,有Ui,jFUi+1,j=0,然后計(jì)算本質(zhì)矩陣E=KTFK拍摇,將E奇異值分解亮钦,就可以得到R的4個(gè)解,帶入3D投影能得到正的Z軸值的就是求得的R充活。

實(shí)際上在訓(xùn)練和測(cè)試過(guò)程中蜂莉,需要計(jì)算和更新參數(shù)的就是紅色底的3D姿態(tài)生成部分蜡娶,在測(cè)試時(shí)也只需要加載這部分的網(wǎng)絡(luò)。

2D姿態(tài)轉(zhuǎn)換計(jì)算的結(jié)果A和3D直接生成的結(jié)果求差為x映穗,然后計(jì)算loss:

EpipolarPose3.png

優(yōu)化單元:接受3D結(jié)果/噪聲輸入

? 2個(gè)計(jì)算單元

? BN窖张,LReLU,DropOut

? 有監(jiān)督地計(jì)算殘差損失

EpipolarPose4.png

目前有一些問題:(應(yīng)用場(chǎng)景:人在圓形遮擋物后旋轉(zhuǎn))

? 從頭訓(xùn)練需要多角度攝像頭構(gòu)建極線位置

? 論文并沒有討論該方法的實(shí)時(shí)性 – 測(cè)試大約0.6s

? 在圖像尺寸不匹配蚁滋、場(chǎng)景復(fù)雜時(shí)效果差

解決方案:

? 輸入圖片使用仿射變換 旋轉(zhuǎn)縮放

? 數(shù)據(jù)增強(qiáng)宿接,增加使用場(chǎng)景下的遮擋,準(zhǔn)備增加霍夫變換識(shí)別圓形

實(shí)驗(yàn)驗(yàn)證:

  1. 增加固定遮擋(80%圓形+30%隨機(jī)) 人在遮擋后旋轉(zhuǎn)
  2. 原始模型下原始采集圖片輸入 結(jié)果很差
  3. 原始模型下經(jīng)過(guò)人工裁剪之后作為輸入 效果可以
  4. 小batch進(jìn)行fine-tune之后 經(jīng)過(guò)人工裁剪之后作為輸入 效果不錯(cuò)

輸出維度細(xì)節(jié):

深度網(wǎng)絡(luò)的輸出Preds:
Preds (1,1024,64,64): batch, depth* joints, height, width
Reshape(1,16,-1): batch, joints ,3D 每個(gè)關(guān)節(jié)64*64*64
Softmax(1,16,-1): dim2 歸一化: sum(preds,2) = 1
heatmaps.reshape(1,16,64,64,64): batch, joints, depth , height, width
accu_x = sum(dim=2 depth)→sum(dim=2 height): batch, joints, width 1,16,64
accu_y = sum(dim=2 depth)→sum(dim=3 width): batch, joints, height 1,16,64
accu_z = sum(dim=3 height)→sum(dim=3 width): batch, joints, depth 1,16,64
accu_x |accu_y |accu_z 分別 sum(dim=2 xyz) 求和 1,16 → x, y, z
(x, y, z)/(64,64,64)-0.5 三維坐標(biāo)系居中
Cat, Reshape(1,48): 拼接

數(shù)據(jù)集標(biāo)簽輸入Labels:
輸入224圖像時(shí)辕录,首先處理關(guān)節(jié)點(diǎn)坐標(biāo)睦霎,將xyz縮放到圖片尺度,并且中心在112,112
Joints[:,:]-=Joints[6,:] 居中
提取匹配圖片尺寸的2D姿態(tài)標(biāo)簽pts踏拜,計(jì)算3D姿態(tài)標(biāo)簽的縮放尺度
Scale= (2D骨架長(zhǎng)度之和)/(3D骨架長(zhǎng)度之和) = 0.127435
joints[:, :2] *= scale+112 縮放 居中
Joints[:,0]=width- Joints[:,0]-1: 左右互換
Joints[:,0:2] 根據(jù)圖像仿射變換進(jìn)行旋轉(zhuǎn)
Joints[:,2] = joints[:2]/(2000*scale)*256 深度歸一化,根據(jù)仿射變換縮放系數(shù)恢復(fù)到256
(Joints[:,0:2])/(256,256)-0.5三維坐標(biāo)系居中
(Joints[:,2])/(256) 深度已經(jīng)是居中值

測(cè)試畫圖:
輸出Preds (1,1024,64,64): batch, depth* joints, height, width
Reshape(1,16,-1): batch, joints ,3D 每個(gè)關(guān)節(jié)64*64*64
Softmax(1,16,-1): dim2 歸一化: sum(preds,2) = 1
heatmaps.reshape(1,16,64,64,64): batch, joints, depth , height, width
accu_x = sum(dim=2 depth)→sum(dim=2 height): batch, joints, width 1,16,64
accu_y = sum(dim=2 depth)→sum(dim=3 width): batch, joints, height 1,16,64
accu_z = sum(dim=3 height)→sum(dim=3 width): batch, joints, depth 1,16,64
accu_x |accu_y |accu_z 分別 sum(dim=2 xyz) 求和 1,16 → x, y, z
(x, y, z)/( 64,64,64)-0.5 三維坐標(biāo)系居中
Cat, Reshape(1,48): 拼接
Reshape(1,16,3)
((x,y)+0.5)*256 縮放并挪到正坐標(biāo)
z*256 縮放
拼接 傳送給畫圖函數(shù) 按照關(guān)節(jié)順序連接3D坐標(biāo)點(diǎn)

無(wú)法解決的問題:

模型的性能比較和實(shí)驗(yàn)測(cè)試都是在Human3.6數(shù)據(jù)集上進(jìn)行的低剔,在使用該模型對(duì)其他數(shù)據(jù)進(jìn)行測(cè)試時(shí)效果很差速梗。

也就是說(shuō)應(yīng)用于具體場(chǎng)景前,使用公共數(shù)據(jù)集進(jìn)行訓(xùn)練是不夠的襟齿,需要采集場(chǎng)景下的多目圖片重新訓(xùn)練或者fine-tune姻锁。

EpipolarPose5.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市猜欺,隨后出現(xiàn)的幾起案子位隶,更是在濱河造成了極大的恐慌,老刑警劉巖开皿,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涧黄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赋荆,警方通過(guò)查閱死者的電腦和手機(jī)笋妥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)窄潭,“玉大人春宣,你說(shuō)我怎么就攤上這事〖的悖” “怎么了月帝?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)幽污。 經(jīng)常有香客問我嚷辅,道長(zhǎng),這世上最難降的妖魔是什么距误? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任潦蝇,我火速辦了婚禮款熬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攘乒。我一直安慰自己贤牛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布则酝。 她就那樣靜靜地躺著殉簸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沽讹。 梳的紋絲不亂的頭發(fā)上般卑,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音爽雄,去河邊找鬼蝠检。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挚瘟,可吹牛的內(nèi)容都是我干的叹谁。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼乘盖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼焰檩!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起订框,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤析苫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后穿扳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衩侥,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年矛物,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了顿乒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泽谨,死狀恐怖璧榄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吧雹,我是刑警寧澤骨杂,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站雄卷,受9級(jí)特大地震影響搓蚪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丁鹉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一妒潭、第九天 我趴在偏房一處隱蔽的房頂上張望悴能。 院中可真熱鬧,春花似錦雳灾、人聲如沸漠酿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)炒嘲。三九已至,卻和暖如春匈庭,著一層夾襖步出監(jiān)牢的瞬間夫凸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工阱持, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夭拌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓衷咽,卻偏偏與公主長(zhǎng)得像鸽扁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子兵罢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容