本申請涉及計算機視覺,具體涉及姿勢估計方法和裝置、計算機系統。
背景技術:
關節(jié)型對象的姿勢估計是計算機視覺領域中的基本任務之一。其解決了在圖像中對象的部位定位問題,并具有如動作識別和人體跟蹤等很多重要的應用。該任務所面臨的主要挑戰(zhàn)在于高度關節(jié)化、遮蔽、服裝、燈光、雜亂的背景等。近來在人體姿勢估計領域已利用深度卷積神經網絡(DCNN)實現了最先進的性能。這些方法主要分為兩類:利用DCNN對每個身體部位位置的熱圖(heat map)進行回歸;以及學習深度結構化輸出以進一步對身體關節(jié)之間的關系進行建模。
基于DCNN的熱圖回歸模型已顯示出學習更好的特征表達的可能性。但是,如圖1(b)和圖1(d)所示,這些方法可產生諸多假陽性。例如,在圖1(b)中多數假陽性區(qū)域為未標注人員的頭部,雖然這些假陽性區(qū)域是合理的但是將在訓練中被當作誤報。這些區(qū)域上的誤差將反向傳播以影響與頭部檢測對應的特征,而這是不適當的。圖1(d)中示出了另一示例,其中處于背景(左上角)中的假陽性區(qū)域將在訓練中被當作難陰性。
近來,深度結構化輸出學習吸引了相當大的關注,并且在諸如語義分割、目標檢測和深度估計等任務中顯示出了可喜的成果。對于人體姿勢估計,最近的研究將DCNN與全連接馬爾可夫隨機場(Markov Random Field)或身體部位位置的弱空間直方圖結合,以檢測身體關節(jié)位置之間的結構性約束。然而,利用卷積核學習空間約束的參數空間太大,使得學習變得非常困難。此外,對于具有各種可能姿勢的人,例如,在圖像中頭部并不總是處于肩膀上方,這些方法效果甚微。
技術實現要素:
本申請實施例提供了一種姿勢估計技術方案。
本申請實施例的一方面公開了一種姿勢估計方法,該方法包括:提取圖像中對象的多個身體部位中每個身體部位對應的特征以生成多個特征圖,其中每個所述身體部位對應至少一個部位類型;為每個所述特征圖中的每個特征預測部位類型分值,并根據所預測的部位類型分值建立多個部位類型得分圖;對于每個所述部位類型得分圖中的至少一點,根據與所述點對應的身體部位的相鄰身體部位相關的消息,優(yōu)化所建立的部位類型得分圖;以及根據經過優(yōu)化的部位類型得分圖確定每個所述身體部位的估計位置和估計部位類型,以得到所述對象的估計姿勢。
根據本申請的實施例,所述消息表示與所述點對應的身體部位的所述相鄰身體部位的置信,以及在所述根據與所述點對應的身體部位的相鄰身體部位相關的消息,優(yōu)化所建立的部位類型得分圖之前,姿勢估計方法還包括:根據與所述點對應的身體部位的相鄰身體部位的部位類型得分圖確定所述相鄰身體部位的置信。
根據本申請的實施例,根據與所述點對應的身體部位的相鄰身體部位相關的消息,通過置信傳播來優(yōu)化所建立的部位類型得分圖。
根據本申請的實施例,所述消息還表示所述身體部位與所述相鄰身體部位之間的空間相容性。
根據本申請的實施例,根據所述身體部位與所述相鄰身體部位之間的相對位置信息確定所述身體部位與所述相鄰身體部位之間的空間相容性。
根據本申請的實施例,在確定所述空間相容性之前,姿勢估計方法還包括:根據第一距離和第二距離確定所述相對位置信息,其中所述第一距離表示在x軸方向上所述身體部位與所述相鄰身體部位之間的距離,所述第二距離表示在y軸方向上所述身體部位與所述相鄰身體部位之間的距離。
根據本申請的實施例,通過卷積神經網絡來提取所述圖像中的所述特征。
根據本申請的實施例,通過卷積神經網絡來提取所述圖像中的所述特征之前,姿勢估計方法還包括:根據預設數據集提取的特征圖與所述預設數據集的參考部位類型之間的差別,訓練所述卷積神經網絡。
根據本申請的實施例,通過消息傳遞單元來傳遞消息和優(yōu)化所建立的部位類型得分圖,其中所述消息傳遞單元根據預設數據集預測的部位類型得分圖與所述預設數據集的參考部位位置圖之間的差別訓練而得。
本申請實施例的另一方面公開了一種姿勢估計裝置,該裝置包括:提取模塊,提取圖像中對象的多個身體部位中每個身體部位對應的特征以生成多個特征圖,其中每個所述身體部位對應至少一個部位類型;預測模塊,為每個所述特征圖中的每個特征預測部位類型分值,并根據所預測的部位類型分值建立多個部位類型得分圖;優(yōu)化模塊,對于每個所述部位類型得分圖中的至少一點,根據與所述點對應的身體部位的相鄰身體部位相關的消息,優(yōu)化所建立的部位類型得分圖;以及確定模塊,根據經過優(yōu)化的部位類型得分圖確定每個所述身體部位的估計位置和估計部位類型,以得到所述對象的估計姿勢。
根據本申請的實施例,所述消息表示與所述點對應的身體部位的所述相鄰身體部位的置信,以及所述優(yōu)化模塊還用于根據與所述點對應的身體部位的相鄰身體部位的部位類型得分圖確定所述相鄰身體部位的置信。
根據本申請的實施例,所述優(yōu)化模塊用于對于每個所述部位類型得分圖中的至少一點,根據與所述點對應的身體部位的相鄰身體部位相關的消息,通過置信傳播來優(yōu)化所建立的部位類型得分圖。
根據本申請的實施例,所述消息還表示所述身體部位與所述相鄰身體部位之間的空間相容性。
根據本申請的實施例,所述優(yōu)化模塊還用于根據所述身體部位與所述相鄰身體部位之間的相對位置信息確定所述身體部位與所述相鄰身體部位之間的空間相容性。
根據本申請的實施例,所述優(yōu)化模塊還用于根據第一距離和第二距離確定所述相對位置信息,其中所述第一距離表示在x軸方向上所述身體部位與所述相鄰身體部位之間的距離,所述第二距離表示在y軸方向上所述身體部位與所述相鄰身體部位之間的距離。
根據本申請的實施例,所述提取模塊用于通過卷積神經網絡來提取所述圖像中的所述特征。
根據本申請的實施例,姿勢估計裝置還包括:網絡訓練模塊,用于根據預設數據集提取的特征圖與所述預設數據集的參考部位類型之間的差別,訓練所述卷積神經網絡。
根據本申請的實施例,所述優(yōu)化模塊包括消息傳遞單元,所述優(yōu)化模塊用于通過所述消息傳遞單元來傳遞消息和優(yōu)化所建立的部位類型得分圖;以及姿勢估計裝置還包括:單元訓練模塊,用于根據預設數據集預測的部位類型得分圖與所述預設數據集的參考部位位置圖之間的差別,訓練所述消息傳遞單元。
本申請實施例的另一方面還公開了一種計算機系統,該系統包括:
存儲器,存儲可執(zhí)行指令;
一個或多個處理器,與存儲器通信以執(zhí)行可執(zhí)行指令從而完成以下操作:
提取圖像中對象的多個身體部位中每個身體部位對應的特征以生成多個特征圖,其中每個所述身體部位對應至少一個部位類型;
為每個所述特征圖中的每個特征預測部位類型分值,并根據所預測的部位類型分值建立多個部位類型得分圖;
對于每個所述部位類型得分圖中的至少一點,根據與所述點對應的身體部位的相鄰身體部位相關的消息,優(yōu)化所建立的部位類型得分圖;以及
根據經過優(yōu)化的部位類型得分圖確定每個所述身體部位的估計位置和估計部位類型,以得到所述對象的估計姿勢。
本申請實施例的又一方面公開了非暫時性計算機存儲介質,該介質存儲計算機可讀指令,當這些指令被執(zhí)行時使處理器執(zhí)行以下操作:提取圖像中對象的多個身體部位中每個身體部位對應的特征以生成多個特征圖,其中每個所述身體部位對應至少一個部位類型;為每個所述特征圖中的每個特征預測部位類型分值,并根據所預測的部位類型分值建立多個部位類型得分圖;對于每個所述部位類型得分圖中的至少一點,根據與所述點對應的身體部位的相鄰身體部位相關的消息,優(yōu)化所建立的部位類型得分圖;以及根據經過優(yōu)化的部位類型得分圖確定每個所述身體部位的估計位置和估計部位類型,以得到所述對象的估計姿勢。
附圖說明
在下文中,參照附圖描述了本申請的示例性且非限制性的實施方式。這些附圖僅為說明性的并且通常不代表精確的比例。不同附圖中相同或相似的元件以相同的附圖標記表示。
圖1(a)示出了頭部的真實位置;
圖1(b)示出了通過傳統深度卷積神經網絡預測的頭部的位置;
圖1(c)示出了腳踝的真實位置;
圖1(d)示出了通過傳統的深度卷積神經網絡預測的腳踝的位置;
圖2示出了根據本申請的示例性身體部位的示意圖;
圖3示出了根據本申請的身體部位的組合的示例;
圖4示出了根據本申請實施方式的姿勢估計方法的流程圖;
圖5示出了根據本申請實施方式的姿勢估計方法的示意圖;
圖6示出了根據本申請實施方式的訓練CNN的流程圖;
圖7示出了根據本申請實施方式的訓練消息傳遞單元的流程圖;
圖8示出了根據本申請實施方式的姿勢估計裝置的示意圖;以及
圖9示出了適合實施本申請實施方式的計算機系統的結構圖。
具體實施方式
在下文中,將參照詳細的說明及附圖對本申請的實施方式進行詳細的說明。
術語“身體部位”旨在描述所選擇的身體的部位,優(yōu)選地描述如頭、頸、肩、膝蓋、腳踝的部位,如圖2所示。但是,本申請并不旨在受限于本文中所公開的實施方式。例如,出于準確性或效率考慮,可包括更多或更少的身體部位、甚至完全不同的身體部位。
術語“部位類型”旨在代表身體部位與相鄰身體部位的組合信息,尤其是,身體部位與相鄰身體部位之間的空間關系。例如,與處于水平狀態(tài)的手臂(以下稱為水平手臂)連接的手腕歸為部位類型為1的手腕,與處于豎直狀態(tài)的手臂(以下稱為豎直手臂)連接的手腕歸為部位類型為2的手腕。每個部位類型對應于一組具有相似相對位置的身體部位示例。圖3示出了七個示例性身體部位的一些空間關系示例。從相對位置獲得的組合信息與身體部位的外觀具有極強的相關性。例如,水平手臂對應一種部位類型,豎直手臂對應另一種部位類型,這兩種部位類型在姿勢構型和外觀上相異。身體部位的部位類型數量可以是預定的。不同身體部位的部位類型的數量可以是相同的或不同的。本申請在這方面不進行限制。
術語“特征圖(feature map)”旨在代表從圖像中提取的特征。特征圖中的每個點對應于一個圖像塊,該圖像塊的中心為該圖像中與特征圖中的該點對應的點。
術語“卷積神經網絡(Convolutional Neural Network)”及其縮寫詞“CNN”旨在表示用于機器學習的各種類型的前饋人工神經網絡,在該網絡中,各神經元可以以響應于覆蓋視野的重疊區(qū)域的方式進行布置。
術語“最大后驗(maximun a posteriori)”旨在描述根據經驗數據通過使用擴充的優(yōu)化目標來獲得對難以觀測量的點的估計,其中該擴充的優(yōu)化目標結合了期望估計量的先驗概率分布。
術語“反向傳播算法”旨在描述一種與最優(yōu)化方法(如梯度下降法)結合使用的、用來訓練人工神經網絡的通用方法。該方法用來計算損失函數(loss function)針對網絡中所有權重的梯度。該梯度會反饋給最優(yōu)化方法而使其利用該梯度更新權重以試圖使損失函數最小化。
圖4示出根據本申請實施方式的姿勢估計方法的流程圖。
在步驟100中,提取圖像中對象的多個身體部位中每個身體部位對應的特征以生成多個特征圖,其中每個身體部位對應至少一個部位類型。該圖像可以是某一靜態(tài)圖像,也可以是視頻的某一幀圖像,本申請在這方面不進行限制。具體地,在該步驟中,針對每個身體部位的每個部位類型生成一個特征圖。本領域的技術人員應理解,可使用多種方法提取特征圖。例如,傳統的方法使用手動生成的特征(如HOG和顏色直方圖)借助監(jiān)督分類器(如潛在支持向量機(latent SVM)或提升的隨機森林算法)來檢測圖像中的身體部位。根據本申請的實施方式,可通過例如但并不限于卷積神經網絡(CNN)來提取特征圖。在本申請中,特征圖中的每個點處的數值表示CNN的一個神經元對輸入圖像的圖像塊的響應。例如,如果神經元對圓形具有更高的響應,則在特征圖中出現圓形處的點可具有更大的數值。
在步驟200中,為每個特征圖中的每個特征預測部位類型分值,并根據所預測的部位類型分值建立多個部位類型得分圖。在特征圖中的每個點處預測的身體部位的部位類型的部位類型得分,組成該身體部位的部位類型的部位類型得分圖。某一身體部位的某一部位類型的部位類型得分圖中每個點處的數值,表示該點所對應的該圖像塊對應于該部位類型的該身體部位的可能性。根據本申請的實施方式,部位類型得分可通過例如但不限于Softmax函數單元,然后是對數函數單元來得出,其中通過Softmax函數單元對特征圖中的每個點處的數值執(zhí)行softmax函數功能,然后對數函數單元對經過Softmax函數單元處理的數值執(zhí)行對數函數(log)功能以得到部位類型得分,但是并不限于此。
在步驟300中,對于每個部位類型得分圖中的至少一點,根據與該點對應的身體部位的相鄰身體部位相關的消息,優(yōu)化所建立的部位類型得分圖。在本申請實施方式中,上述的至少一點可通過對每個部位類型得分圖進行例如但不限于降噪處理、采樣處理、濾波處理等而選擇得到。
在本申請實施方式中,上述消息可表示與該點對應的身體部位的相鄰身體部位的置信。在本申請實施方式中,可根據與上述點對應的身體部位的相鄰身體部位的部位類型得分圖確定該相鄰身體部位的置信。
如圖2所示,可將身體部位建模為樹狀結構。但是,也可將身體部位建模為環(huán)狀結構。在本文中,本申請使用循環(huán)結構作為示例來解釋根據本申請的實施方式的消息傳遞過程,并且對于本領域的技術人員顯而易見的是,本申請也適用于樹狀結構。在本申請實施方式中,根據與所述點對應的身體部位的相鄰身體部位相關的消息,通過置信傳播來優(yōu)化所建立的部位類型得分圖。然而,本領域技術人員可理解,還可通過其他各種方法來優(yōu)化所建立的部位類型得分圖,例如但不限于方差分析、因子分析、回歸分析等。
在本申請中,消息傳遞過程和所建立的部位類型得分圖的優(yōu)化處理可由消息傳遞單元執(zhí)行。具體地,在該步驟中,對于每個部位類型得分圖中的每個點,消息傳遞單元根據與該點對應的身體部位的相鄰身體部位相關的消息,來更新該點處的數值,從而優(yōu)化所建立的部位類型得分圖。在本申請實施方式中,該消息還可表示該身體部位與相鄰身體部位之間的空間相容性。例如,如圖5的左邊部分所示,身體部位被建模為環(huán)狀結構。消息傳遞如圖5的右邊部分所示。例如,身體部位頸部的相鄰身體部位包括頭部、左肩和右肩,因此對于頸部,消息傳遞單元根據與頸部相關的消息來優(yōu)化頭部、左肩和右肩的部位類型得分圖,以及根據與頭部、左肩和右肩相關的消息來優(yōu)化頸部的部位類型得分圖。消息傳遞單元可通過執(zhí)行最大和置信傳播算法(max-sum belief propagation algorithm)進行消息的傳遞。但是,對于本領域的技術人員顯而易見的是,還可采用其他適當的方法。
在本申請的實施方式中,根據身體部位與相鄰身體部位之間的相對位置信息確定該身體部位與該相鄰身體部位之間的空間相容性。在確定空間相容性之前,根據本申請實施方式的方法還包括根據第一距離和第二距離確定相對位置信息,其中第一距離表示在x軸方向身體部位與相鄰身體部位之間的距離,以及第二距離表示在y軸方向身體部位與相鄰身體部位之間的距離。在本申請的實施方式中,可根據第一距離、第二距離、第一距離的平方以及第二距離的平方,確定該相對位置信息。具體地,兩個相鄰的身體部位i和j的空間相容性(spatial compatibility)Ψ可由公式(1)定義:
其中,li=(xi,yi)表示身體部位的像素位置,t表示身體部位的部位類型,d(li,lj)是由d(li-lj)=[Δx Δx2 Δy Δy2]T定義的形變特征,Δx=xi-xj以及Δy=yi-yj是身體部位i相對于身體部位j的相對位置,并且是四維形變權重。在本申請中,通過公式(1)所示的二次形變約束,可以以正則化方式減小參數空間。然而,本領域技術人員還可理解,可根據第一距離和第二距離,以及第一距離和/或第二距離中至少之一的加權等信息確定身體部位與相鄰身體部位之間的空間相容性。
以下將詳細描述本申請的消息傳遞過程。對于身體部位j,消息傳遞單元從相鄰身體部位i獲取的消息定義為mij(lj;tj),身體部位i的置信(belief)定義為ui(li;ti)。身體部位i的置信ui(li;ti)可根據以下來確定:部位類型為ti的身體部位i的部位類型得分圖中對應于像素位置為l處的值;以及該身體部位i的相鄰身體部位相關的消息。對于身體部位j,從其相鄰身體部位i獲取的消息mij(lj;tj)可根據以下方式來確定:各身體部位i和該身體部位j之間的空間相容性與身體部位i的置信的和的最大值。在本申請實施方式中,消息傳遞單元例如可根據規(guī)則(2)和(3)更新消息和置信:
其中,αm和αu為歸一化項,并且N(i)表示身體部位i的相鄰身體部位的集合,φ(li,ti)是由對數函數單元所輸出的對數概率。為簡化標記,在此省略了模型參數。在本文中,使用泛洪機制(flooding schedule)進行消息傳遞過程。根據泛洪機制,在每個時間步上,在每個連接的兩個方向同時傳遞消息。
如圖5的右邊部分所示,通過利用泛洪機制,根據公式(2)和(3),每個消息傳遞單元執(zhí)行一次置信傳播迭代。消息傳遞單元使每個身體部位向其每個相鄰身體部位同時發(fā)送消息(表示為實線連接),并且在每個節(jié)點處通過將其一元勢能與所有發(fā)來的消息進行求和而更新每個節(jié)點的置信(表示為虛線連接)。在本申請實施方式中,所有的消息在置信傳播迭代開始時均初始化為常數函數。
雖然置信傳播可能需要多次迭代而收斂,但是觀察到三個消息傳遞單元的串聯可足以產生令人滿意的結果。然而,對于本領域技術人員顯而易見的是,可使用更多或更少的消息傳遞單元,本發(fā)明對此沒有限制。
在步驟400中,根據經過優(yōu)化的部位類型得分圖確定每個身體部位的估計位置和估計部位類型,以得到所述對象的估計姿勢。在本申請實施方式中,對于每個身體部位,可在經過優(yōu)化的部位類型得分圖中選擇具有最高得分的位置作為該身體部位的位置,并且選擇與該身體部位的位置對應的部位類型作為該身體部位的部位類型。然而,本領域技術人員可理解,還可通過其他方式確定出每個身體部位的估計位置和估計部位類型,例如但不限于在經過優(yōu)化的部位類型得分圖中選擇得分超過預設閾值的位置作為該身體部位的位置,或對經過優(yōu)化的部位類型得分圖再進行加權處理后選擇數值最大的位置作為該身體部位的位置,或在經過優(yōu)化的部位類型得分圖中選擇具有得分極大值的位置作為該身體部位的位置等。
例如,在本申請實施方式,在置信傳播收斂之后,通過為每個身體部位選擇具有最大置信的位置和類型而獲得最優(yōu)姿勢估計。例如可通過公式(4)得出身體部位的估計位置和估計部位類型:
其中,是在最后一次迭代中所計算出的置信,該置信為具體位置和具體部位類型的最大后驗,是最大后驗分配,并且K表示身體部位的數量。
在本申請中,通過使用身體部位類型和二次形變約束,可排除假陽性區(qū)域,并減小參數空間的大小,從而更加有效且更加準確地估計對象姿勢。
為了能夠考慮身體部位的組合,可通過具有利用部位類型的局部圖像塊對CNN進行預訓練。現有的人體姿勢數據集使用身體部位位置l來標注,但是沒有部位類型t。假設rij表示從身體部位i至其相鄰身體部位j的相對位置,則相對位置rij在訓練集上被聚類為Ti個集群。如圖2所示,通過邊連接的兩個身體部位為相鄰身體部位。每個集群對應于一個具有相似的相對位置的部位示例的集合,并且每個身體部位的部位類型可由集群成員導出。然后,為數據集獲得真實的部位類型。在本申請中,集群可通過k均值聚類法(K-means clustering)獲得。但是,本申請在這方面不進行限制。
在本申請實施方式中,可根據卷積神經網絡從預設數據集提取的特征圖與該預設數據集的參考部位類型之間的差別來訓練該卷積神經網絡。
圖6示出根據本申請實施方式的訓練CNN的流程圖。如圖6所示,CNN可通過以下步驟進行訓練:
1)從預定的訓練集獲得圖像塊及相應的真實部位類型;
2)利用CNN提取特征并預測部位類型;
3)計算預測的部位類型與真實部位類型之間的差別;以及
4)利用該差別調整CNN的參數。
重復1)至4)直到預測的部位類型收斂為真實部位類型。步驟4)例如可利用反向傳播算法執(zhí)行,但是并不限于此。
在本申請實施方式中,可根據從預設數據集預測的部位類型得分圖與該預設數據集的參考部位位置圖之間的差別來訓練消息傳遞單元
圖7示出根據本申請實施方式的訓練消息傳遞單元的流程圖。如圖7所示,消息傳遞單元可通過以下步驟進行訓練:
1)從預定的訓練集獲得圖像和相應的真實部位位置得分圖;
2)利用CNN提取特征并預測部位類型,以建立部位類型得分圖;
3)利用消息傳遞單元優(yōu)化部位類型得分圖,并根據經過優(yōu)化的部位類型得分圖確定出部位位置得分圖;
4)計算所確定的部位位置得分圖與真實部位位置得分圖之間的差別;以及
5)利用該差別調整消息傳遞單元的參數。
重復1)至5)直到預測的部位類型得分圖收斂為真實部位位置得分圖。步驟5)例如可利用反向傳播算法執(zhí)行,但是并不限于此。步驟5)中被調整的參數包括例如但不限于上述的規(guī)則(2)和(3)中的歸一化項αm和αu等。在本申請中,現有的人體姿勢數據集使用身體部位位置(即,真實的位置)來標注,但沒有部位類型。真實部位位置得分圖是二值化圖,并且通過將相對于真實位置的距離l小于或等于閾值的點處的數值設為1、以及將相對于真實位置的距離l大于閾值的點處的數值設為-1而生成。
根據本申請實施方式,在上述的步驟5)中,CNN和消息傳遞單元的參數可通過所確定的部位位置得分圖與真實部位位置得分圖之間的差別來聯合地調整。通過聯合訓練CNN和消息傳遞單元,從而能夠在通過結合全局姿勢一致性進行訓練時有效地減少模糊性和挖掘難陰性。通過二次形變約束,可以以正則化方式減小參數空間。
本領域技術人員可理解,雖然結合在圖像中估計人體姿勢的示例描述了本申請,但根據本申請實施方式的姿勢估計方法也可用于其他對象(如動物,玩具等)的姿勢的估計,本申請對此沒有限制。
現參照圖8,其示出了根據本申請實施方式的姿勢估計裝置的示意圖。
如圖8所示,姿勢估計裝置800可包括:提取模塊810、預測模塊820、優(yōu)化模塊830、確定模塊840、網絡訓練模塊850以及單元訓練模塊860。
提取模塊810提取圖像中對象的多個身體部位中每個身體部位對應的特征以生成多個特征圖,其中每個身體部位對應至少一個部位類型。
預測模塊820為每個所述特征圖中的每個特征預測部位類型分值,并根據所預測的部位類型分值建立多個部位類型得分圖。
優(yōu)化模塊830對于每個所述部位類型得分圖中的至少一點,根據與所述點對應的身體部位的相鄰身體部位相關的消息,優(yōu)化所建立的部位類型得分圖。
確定模塊840根據經過優(yōu)化的部位類型得分圖確定每個所述身體部位的估計位置和估計部位類型,以得到所述對象的估計姿勢。
本領域的技術人員應理解,提取模塊810可通過實施多種方法提取特征。例如,提取模塊810可通過使用手動生成的特征(如HOG和顏色直方圖)借助監(jiān)督分類器(如潛在支持向量機(latent SVM)或提升的隨機森林算法)來檢測圖像中的身體部位。根據本申請的實施方式,提取模塊810可包括例如但并不限于卷積神經網絡(CNN),提取模塊810通過卷積神經網絡來提取特征。在本申請的實施方式中,姿勢估計裝置800還可包括網絡訓練模塊850,其用于根據預設數據集提取的特征圖與預設數據集的參考部位類型之間的差別,訓練卷積神經網絡。然而,本領域技術人員可理解,在通過其他單元或模塊提取特征時,姿勢估計裝置800可包括用于訓練該單元或模塊的訓練模塊??商娲缘兀鶕旧暾垖嵤┓绞?,姿勢估計裝置800可不包括網絡訓練模塊850,本申請對此沒有限制。
根據本申請的實施方式,預測模塊820可包括Softmax函數單元和對數函數單元。Softmax函數單元用于執(zhí)行softmax函數,以及對數函數單元用于執(zhí)行對數函數。Softmax函數單元對通過提取模塊810得到的特征圖應用softmax函數,然后對數函數單元再對其執(zhí)行對數函數功能,以得到部位類型得分。
根據本申請的實施方式,優(yōu)化模塊830可用于建模為樹狀結構或環(huán)狀機構的身體部位,本發(fā)明對此并不限制。此外,優(yōu)化模塊830包括至少一個消息傳遞單元,優(yōu)化模塊830通過消息傳遞單元來傳遞消息和優(yōu)化所建立的部位類型得分圖。對于每個部位類型得分圖中的至少一個點,消息傳遞單元根據與該點對應的身體部位的相鄰身體部位相關的消息,來更新該點處的數值,從而優(yōu)化所建立的部位類型得分圖。在本申請實施方式中,優(yōu)化模塊830根據與部位類型得分圖中的每個點對應的身體部位的相鄰身體部位的部位類型得分圖獲取消息。在本申請實施方式中,上述消息可表示與部位類型得分圖中的點對應的身體部位的所述相鄰身體部位的置信,并且優(yōu)化模塊830可根據與部位類型得分圖中的點對應的身體部位的相鄰身體部位的部位類型得分圖確定所述相鄰身體部位的置信。此外,上述消息還可表示所述相鄰身體部位的置信和所述身體部位與所述相鄰身體部位之間的空間相容性,并且優(yōu)化模塊830還可根據身體部位與相鄰身體部位之間的相對位置信息確定該身體部位與相鄰身體部位之間的空間相容性。優(yōu)化模塊830根據第一距離和第二距離確定相對位置信息,其中第一距離表示在x軸方向上該身體部位與相鄰身體部位之間的距離,以及第二距離表示在y軸方向上該身體部位與相鄰身體部位之間的距離。在本申請的實施方式中,優(yōu)化模塊830可根據第一距離、第二距離、第一距離的平方以及第二距離的平方,確定該相對位置信息。對于每個部位類型得分圖中的至少一點,優(yōu)化模塊830可根據與該點對應的身體部位的相鄰身體部位相關的消息,通過置信傳播來優(yōu)化所建立的部位類型得分圖。在本申請實施方式中,消息傳遞單元可執(zhí)行最大和置信傳播算法(max-sum belief propagation algorithm)來傳遞消息并優(yōu)化部位類型得分圖。但是,對于本領域的技術人員顯而易見的是,消息傳遞單元還可采用其他適當的方法。每個消息傳遞單元根據泛洪機制,在部位類型得分圖中,在相鄰的身體部位所對應的點之間進行消息傳遞,并且每個消息傳遞單元執(zhí)行一次置信傳播迭代。在部位類型得分圖中,與身體部位對應的點向每個相鄰身體部位所對應的點同時發(fā)送消息(如圖5的右邊部分中示出的實線連接),并且每個點的置信通過將其一元勢能與所有發(fā)來的消息進行求和而更新(如圖5的右邊部分中示出的虛線連接)。優(yōu)選地,優(yōu)化模塊830中包括3個消息傳遞單元,然而本發(fā)明并不限于此。在本申請實施方式中,姿勢估計裝置800還可包括單元訓練模塊860,用于根據預設數據集預測的部位類型得分圖與預設數據集的參考部位位置圖之間的差別,訓練消息傳遞單元。然而,本領域技術人員可理解,在通過其他單元或模塊優(yōu)化部位類型得分圖時,姿勢估計裝置800可包括用于訓練該單元或模塊的訓練模塊??商娲缘?,根據本申請實施方式,姿勢估計裝置800可不包括單元訓練模塊860,本申請對此沒有限制。
在本申請的實施方式中,對于每個身體部位,確定模塊840可在經過優(yōu)化的部位類型得分圖中選擇具有最高得分的位置作為該身體部位的位置,并且選擇與該身體部位的位置對應的部位類型作為該身體部位的部位類型。具體地,在置信傳播收斂之后,確定模塊840根據公式(4)并通過為每個身體部位選擇具有最大置信的位置和類型而獲得最優(yōu)姿勢估計。
此外,根據本申請實施方式,姿勢估計裝置800還可用于執(zhí)行圖6所示的訓練CNN的方法,以及可執(zhí)行圖7所示的訓練消息傳遞單元的方法。具體地,姿勢估計裝置800可通過根據通過所述卷積神經網絡從預設數據集提取的特征圖與該預設數據集的參考部位類型之間的差別來訓練卷積神經網絡,以及根據從預設數據集預測的部位類型得分圖與該預設數據集的參考部位位置圖之間的差別來訓練消息傳遞單元。此外,姿勢估計裝置800還可通過預測的部位位置得分圖與真實部位位置得分圖之間的差別來聯合地調整CNN和消息傳遞單元的參數。通過聯合地訓練CNN和消息傳遞單元,從而能夠在通過結合全局姿勢一致性進行訓練時有效地減少模糊性和挖掘難陰性。通過二次形變約束,可以以正則化方式減小參數空間
應當理解,裝置800中記載的諸模塊或單元與參考圖4至圖7描述的方法中的各個步驟相對應。上文針對文件識別方法描述的操作和特征同樣適用于裝置800及其中包含的模塊,在此不再贅述。裝置800中的相應模塊或可以與終端設備和/或服務器中的模塊或單元相互配合以實現本申請實施方式的方案。
現參照圖9,該圖示出了適合實施本申請實施方式的計算機系統900的結構示意圖。
如圖9所示,計算機系統900包括中央處理單元(CPU)901,其可根據存儲在只讀存儲器(ROM)902中的程序或從存儲部分908加載至隨機存取存儲器(RAM)903中的程序而執(zhí)行各種適當的動作和過程。在RAM 903中,還存儲有系統900操作所需要的各種程序和數據。CPU 901、ROM 902和RAM 903通過總線904彼此連接。輸入/輸出I/O接口905也與總線904連接。
以下為與I/O接口905連接的部件:包括鍵盤、鼠標等的輸入部分906;包括陰極射線管CRT、液晶顯示設備LCD和揚聲器等的輸出部分907;包括硬盤等的存儲部分908;以及包括網絡接口卡(如LAN卡和調制解調器等)的通信部分909。通信部分909通過諸如因特網等網絡執(zhí)行通信處理。根據需要,驅動器910也與I/O接口905連接。如磁盤、光盤、磁光盤、半導體存儲器等的可拆卸介質911可安裝在驅動器910上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分908。
具體地,根據本公開的實施方式,以上參照圖4、圖6和圖7描述的過程可實施為計算機軟件程序。例如,本公開的實施方式包括計算機程序產品,該產品包括有形地體現在機器可讀介質中的計算機程序。該計算機程序包括用于執(zhí)行圖4、圖6和圖7中的方法的程序代碼。在這種實施方式中,計算機程序可通過通信部分909從網絡上下載并進行安裝,和/或可從可拆卸介質911安裝。
附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個接連地表示的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
本申請的實施方式所涉及的單元或模塊可通過軟件或硬件實施。所描述的單元或模塊也可設置在處理器中。這些單元或模塊的名稱不應被視為限制這些單元或模塊。
在另一方面,本申請還提供計算機可讀存儲介質。計算機可讀存儲介質可以是包括在上述實施方式的裝置中的計算機可讀存儲介質,其也可以是未裝配在上述裝置中的計算機可讀存儲介質。計算機可讀存儲介質存儲一個或多個程序,一個或多個處理器使用上述程序來執(zhí)行本申請中所描述的估計方法。
上文僅僅是對本申請的優(yōu)選實施方式以及所應用的技術原理的描述。本領域的技術人員應理解,本申請的發(fā)明范圍并不限于由上述技術特征的特定組合構成的技術方案。在不脫離本發(fā)明的構思的情況下,本發(fā)明的范圍還應覆蓋由上述技術特征及其等同特征的任意組合構成的其他技術方案。例如,通過將以上公開的特征替換為具有相似功能的技術特征而構成的技術方案也落入本發(fā)明的范圍內。