馬金伯



摘 要:人體姿態估計是計算機視覺領域的一個研究熱點,已經應用于教育、體育等方面,在視頻監控、人機交互、智能校園等領域有著廣闊的應用前景。簡單的姿態估計基線方法在沙漏殘差模塊中加入幾層反卷積層,使用均方誤差(MSE)損失函數,結構和算法復雜度較低且能夠較為精確地預測出關節點熱圖。首先,采用分段函數H-ESL(huber-exponential squared loss)損失函數,克服了MSE損失函數對于異常值較為敏感的缺點。其次,提出的網絡在基線方法的網絡上加入了注意力機制,并將大的卷積核轉換成小的卷積核,使得網絡精度提升的同時減少參數量及計算量,從而提高網絡的預測效率。擬建網絡利用COCO2017數據集的地面真實值分別進行訓練和驗證,均實現了高精度,mAP提高了2.6%,證明該方法適用于各種人類關鍵熱圖的輸入,并能取得良好的效果。
關鍵詞:深度學習;人體姿態估計;損失函數;熱圖;COCO數據集
Abstract:As a hot topic in computer vision,human pose estimation has gradually penetrated into all aspects of education, sports and so on. It has a wide application prospect in the fields of video surveillance, human-computer interaction and intelligent campus.In the simple baseline method, several layers of deconvolution were added into the hourglass residual module, and the mean square error loss function is used.First, piecewise function H-ESL (Huber-Exponential Squared Loss) loss function is adopted to overcome the shortcoming that MSE loss function is sensitive to outliers.Secondly, the proposed network adds an attention mechanism to the network of the baseline method, and converts large convolution kernels into small convolution kernels, which improves the accuracy of the network and reduces the number of parameters and the amount of computation, thus improving the prediction efficiency of the network.The proposed network is trained and verified by ground truth value of COCO2017 dataset, and both of them achieve high precision. Map is increased by 2.6%, which proves that this method is suitable for heat mAP input of multiple human body key points and can achieve good results.
Key words:deep learning; human pose estimation; loss function;heat map; COCO datasets
人體姿態估計包括單人姿態估計和多人姿態估計兩種估計模式,姿態估計的過程包括標注圖片或者視頻中人體關節點的位置后對關節點進行最優連接。由于通過深度學習進行二維人體姿態估計的方法與傳統需要人工設定特征的方法相比較,更能充分地提取圖像信息且獲取更具有魯棒性的特征,因此基于深度學習的姿態估計方法是目前二維人體姿態估計算法研究的主流方向。相對而言,多人姿態估計應用領域更加廣泛,例如在自動駕駛時對路人的行為做出判斷以提前避免車禍的發生、使用人體關鍵點定位識別出病人的肢體行為以對病人的病情進一步了解、根據姿態估計判別運動員的形體動作是否規范等等。
給定人數,通過對圖像中給定的單人進行關節點的定位,從而確定人物位置的關節點定位的姿態估計過程就是單人姿態估計。單人姿態估計的算法模型在訓練時通常采用有監督方法,由于地面真值(Ground Truth)有不同的類型,單人姿態估計方法也不相同,分為基于坐標回歸和基于熱圖檢測兩種。多人姿態估計的難度比單人姿態估計更大,根據算法步驟的不同,多人姿態估計中使用的方法也不同,包括一步法(single-stage)和二步法(two-stage)兩種。其中,一步法是一種較為新穎的方法,顧名思義一步法可以一步獲取多人的姿態估計信息;而二步法的算法流程則較為復雜,首先需先進行人體框、關節點的檢測,其次再進行關節點分組。
與此同時,姿態估計的網絡結構也越來越復雜,這使得算法的比較與分析也比較困難。在MPII上較為顯著的網絡模型如文獻[1]中的堆積沙漏網絡、文獻[2]中整合多內容信息注意力機制到CNN網絡、文獻[3]中結構感知卷積以及文獻[4]中金字塔殘差模塊在許多細節上都有很大的差異,但在精度上差異不大,很難比較哪些細節起到了決定性作用。同樣,在COCO數據集上效果較為顯著的方法如文獻[5]中single-stage結合end-to-end的關節點檢測的方法,文獻[6]中Faster r-cnn與Fully Convolutional Resnet相結合的方法,文獻[7]中在Faster r-cnn的基礎上增加了一個mask預測分支(Mask r-cnn)的方法,文獻[8]中Cascaded Pyramid Network (CPN)網絡模型,以及文獻[9]中的PAF網絡結構,這些方法、網絡較為復雜,網絡結構的差異也比較大。
熱圖(Heatmap)通過把變量放置于行和列中,再將表格內的不同單元格進行分析著色來產生一個色彩發展變化情況從而能夠達到研究顯示信息數據、交叉檢查多變量的數據的目的。熱圖適用于很多場景,比如顯示多個變量之間的差異,顯示其中任意一個模塊,顯示是否有相似的變量,檢測數據之間是否有相關性。熱圖網絡(Heatmap Net)與基于二維坐標地面真實值(Ground Truth)回歸的算法相比較來說,能夠同時進行構建基于概率分布的地面真實值和添加一些人體部件之間的結構信息。熱圖網絡按結構進行分類可以分為顯式添加結構先驗和隱式學習結構信息。顯式添加結構在訓練之前就掌握了人體結構的先驗信息,在為各關節生成熱圖后,通過參照概率圖模型和人體各關節點連通性,顯式地搭建先驗網絡連接關系,因此,在訓練過程中,該網絡能夠控制各個關節點信息在網絡中的流向同時能夠提升網絡對這些特征信息流的敏感度。顯式添加結構表達了各個部件檢測器之間的依賴關系,因此雖然顯示網絡可以通過概率圖模型學習到人體各關節的結構信息,但網絡連接導致了網絡結構過于復雜。目前,大多數姿態估計方法主要是基于大感受野(Receptive Field)機制來隱式地學習人體結構信息。感受野是由CNN網絡的每一層輸出特征圖上的每個像素點在其原始圖像上映射區域的大小,值越大則表示該網絡模型能夠通過學習到的原始數據圖像進行特征研究范圍越廣,蘊含的信息管理更為全局化,語義層次也就越高,而值越小則該網絡所包含的特征越局部和細節。因此,若想學習到遠距離的關節點連接特征并且獲得語義層次更高的關節點結構信息,則可以通過擴大熱圖的感受野的方法來完成。這種基于大感受野隱式學習結構信息的方法具有較高的泛化性和魯棒性較高,許多方法也根據此方法進行了改進。熱圖的像素值表示該關節點在此位置的概率,而基于熱圖檢測的方法是指先獲取人體關節點熱圖,再獲取關節點定位信息。Xiao等人在文獻[10]中提出了簡單的姿態估計基線方法(Simple Baselines),該方法是基于熱圖進行預測的,將低分辨率的特征圖擴張為原圖大小來預測關鍵點熱圖。基線方法所使用的網絡結構是在沙漏殘差模塊中加入幾層反卷積,從而大大降低了算法的復雜度且得到了較高的預測精度。改進后的姿態估計網絡的主要貢獻包括:
1)該網絡是一個簡單高效的姿態估計網絡模型。在基線方法所使用的網絡模型基礎上加入了通道注意力機制并利用小卷積核代替了大卷積核,該網絡模型能夠在提高精度的同時減少參數,是一個簡單、高效且精度較高的姿態估計網絡模型。
2)使用H-ESL損失函數。該損失函數克服了MSE損失函數對異常值較為敏感的缺點。
1 姿態估計基線方法
1.1 網絡結構
He等人[11]提出的Resnet網絡是最常用的特征提取網絡,文獻[6]中的Faster r-cnn與Fully Convolutional Resnet相結合的方法和文獻[8]中的CPN網絡也使用了該網絡模型進行野外人體姿態估計。基線方法的網絡結構示意圖如圖1所示。
可以看出基線方法的網絡結構就是在Resnet的基礎上,取最后殘差模塊輸出特征層,在Resnet最后一個卷積上添加了三個反卷積模塊,每個模塊為Deconv、Batchnorm和Relu,使用了He等人[7]提出的R-cnn模塊、Ioe等人[12]提出的Batch歸一化以及Krizhevsky等人[13]提出的Relu激活函數,每一層采用256個4×4的濾波器,步長為2,最后添加三層1×1的卷積層,從而最終生成預測的熱圖,可以說是最簡單的根據深度低分辨率特征圖生成熱圖的網絡。
1.2 均值平方差損失函數
Tompson等人提出的MSE[14]是預測值與目標值之間的差值平方之和,它得出的結果越小,越能表明預測模型所描述的樣本數據具有較好的準確性。在回歸問題中,由于MSE具有無參數、計算成本低和物理意義明確等優點,該函數常被用作回歸問題中,以評估模型的損失或算法的性能高低。在姿態估計的基線方法中也使用該函數作為損失函數,它的公式可表示為
1.3 算法評價指標
1)平均精度(AP):平均精度AP指檢測出來的關鍵點個數占總個數的百分比,而APL和APM分別表示最大、最小的AP值。Object Keypoint Similarity(OKS)代表對模型的關節點進行相似度計算,計算方法是假設一張多人的2D圖片上一共有M個人,通過算法預測出N個人,將預測出來的人數和圖片原有人數相互對應計算OKS,便可得出一個M×N矩陣。給定一個閾值,如果OKS大于閾值則定義該關鍵點被檢測出來。AP的計算公式是
2 改進的姿態估計基線方法
2.1 Huber指數平方損失函數
誤差梯度用于在正確的方向和量上更新網絡權重,神經網絡訓練過程中計算的誤差梯度包括方向和數量。然而,在深度網絡或循環神經網絡的學習過程中,誤差梯度在更新過程中逐漸積累,從而值變大,導致網絡在訓練過程中的權重大大增加,更導致了網絡變得非常不穩定甚至溢出,比如進行訓練時網絡層之間值大于1的梯度重復相乘就會直接導致梯度的指數級增長,從而發展產生不同梯度信息爆炸。梯度爆炸帶來很多壞結果,比如網絡不穩定,網絡無法從訓練數據中學習,最壞的結果就是網絡的權值無法更新,從而導致訓練失敗。二維的姿態估計網絡模型大多使用的損失函數為MSE損失函數,該損失函數雖然是回歸損失函數中較為常用的誤差函數且各點都連續光滑,便于求導,得到的解也較為穩定,但是,由于當函數的輸入值遠離中心值時,使用梯度下降法解決時梯度非常大,可能導致梯度爆炸,因此損失的穩健性難以保證。
2.2 通道域注意力的使用
通道域注意力對不同的通道賦予不同的注意力權重值以對通道間的重要性進行篩選,從而對輸入特征圖的不同通道進行注意力權重賦值。采用的SENet結構示意圖如圖2所示,SENet網絡能夠通過在殘差模塊加入注意力機制來提高網絡的分類精度,方法是通過損失函數來學習特征權重,賦予更高效用的特征圖更高的注意力權重的同時降低低效用的特征圖的權重,從而實現通道的注意力權重分配。SENet主要由兩部分組成:Squeeze部分和Excitation部分。原始特征圖(feature map)的尺寸為H×W×C,H和W分別代表了特征圖的高度(Height)、寬度(width),而C則代表通道數(channel)。Squeeze部分的作用是把H×W壓縮成一維,即把H×W×C壓縮為1×1×C,在實驗中通常使用global average pooling來實現壓縮步驟。H把H×W×C壓縮為1×1×C后,一維的參數獲得了之前H×W全局的視野,這說明壓縮后的感受區域更廣。Excitation部分得到Squeeze的1×1×C的表示后,加入一個FC(Fully Connected)全連接層,這個層能夠對每個通道的重要性進行預測,在得到不同通道數的權重值大小后再激勵到之前的特征圖的對應通道數上,再進行后續操作。
2.3 小卷積核的使用
卷積核通過對輸入的某個局部塊進行加權求和,從而能夠實現對該輸入的局部進行感知,其尺寸定義為W×D×C,其中,W表示單個感受野的長度,D表示單個感受野的寬度,C表示卷積核的深度,深度代表著卷積核在三維深度上的連接需要,也就是輸入深度即輸入矩陣的通道數。每一個卷積核均輸出一個一維的特征圖,多個卷積核就會輸出對應個數的特征圖,這些特征圖堆疊在一起輸出的就是一個有深度的特征圖矩陣。一個大的卷積核可以帶來更大的接受場,但也意味著會產生更多的參數,獲得相同感受野的條件下,設置的卷積核尺寸越小,所需要的參數量就越小,同時計算量也就越小,例如5×5卷積核的參數有25個,3×3卷積核的參數有9個,可以看出前者的參數量是后者參數量的2.78倍。使用小卷積代替大卷積的具有很多優點,例如,集成了多個非線性激活層,集成的非線性激活層可以代替單個非線性激活層,從而提高了網絡的非線性擬合能力,再例如改進后的網絡減少了網絡參數的同時減少了計算量、多個小卷積核的串聯在網絡結構搜索中能夠給通道數設置增加更多的靈活性等等。改進后的網絡以3個3×3的級聯卷積代替1個7×7的卷積,原理示意圖如圖3所示。從圖3中可以看出該方法減少22個、45%的參數,且原本需計算7×7×L次,使用小卷積核后只需計算3×3×3×L次,減少了22×L次計算即45%的計算量,因此,提出的網絡模型是較輕量級,高效率的網絡模型。
3 實驗結果及分析
使用PyTorch[16]框架來搭建模型,以ResNet-50[17]網絡為基礎,加入了注意力機制、使用小卷積核代替大卷積核并使用H-ESL損失函數,將提出的模型與Hourglass、CPN和簡單基線網絡模型精度進行對比,結果如表1所列。
基線網絡給出的PyTorch開源源代碼mAP值為70.4,在我們的設備上得以復現。改進的網絡在降低參數量的同時mAP值達到了72.2,相對精度提高2.6%,這說明提出的模型是一個高效且高精度模型。
4 結 論
針對2D圖片多人姿態估計問題分別在網絡與算法上提出了改進,設計了一個高效率、高精度的網絡。該網絡加入了通道注意力機制SE結構、使用小卷積核代替大卷積核并使用H-ESL損失函數。通過注意力機制合理分配特征權重使結構能夠提取特征同時通過小卷積核代替大卷積核減少網絡參數,在算法上使用H-ESL損失函數克服了MSE對異常值敏感結果不穩定額缺點,結果是精度有所提升。該模型在COCO2017數據集上進行驗證,mAP達到了72.2。由于該模型精度高、參數量少,因此在一些實時人體定位場景中將有很好的應用價值。
參考文獻
[1] NEWELL A, YANG K, JIA D. Stacked hourglass networks for human pose estimation[C]// European Conference on Computer Vision, 2016: 483-499.
[2] CHU X, YANG W, OUYANG W, et al.Multi-context attention for human pose estimation[C]// IEEE Conference on Computer Vision and Pattern Recognition, 2017: 1831-1840.
[3] CHEN Y, SHEN C, WEI X, et al.Aware convolutional network for human pose estimation[C]// IEEE International Conference on Computer Vision, 2017: 1212-1221.
[4] YANG W, LI S, OUYANG W, et al. Learning feature pyramids for human pose estimation[C/OL]// IEEE International Conference on Computer Vision, 2017.
[5] NEWELL A, HUANG Z, DENG J. Associative embedding:End-to-end learning for joint detection and grouping[C]// Advances in Neural Information Processing Systems, 2017: 2274-2284.
[6] PAPANDREOU G, ZHU T, KANAZAWA N, et al.Towards accurate multi-person pose estimation in the wild[C]// Computer Vision and Pattern Recognition, 2017: 3711-3819.
[7] HE K, GKIOXARI G, DOLLAR P, et al.Mask R-CNN[C]// IEEE International Conference on R-Computer Vision, 2017: 2980-2988.
[8] CHEN Y, WANG Z,PENG Y, et al.Cascaded pyramid network for multi-person pose estimation[C/OL]//Computer Vision and Pattern Recognition, 2018.
[9] CAO Z, SIMON T, WEI S E, et al.Realtime multi-person 2D pose estimation using part affinity fields[C/OL]// Computer Vision and Pattern Recognition, 2017.
[10]XIAO Bin, WU Hai-ping, WEI Yi-chen. Simple baselines for human pose estimation and tracking[C]// European Conference on Computer Vision, 2018: 472-487.
[11]HE K, ZHANG X, REN S, et al.Deep residual learning for image recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770-778.
[12]IOE S, SZEGEDY C. Batch normalization: Accelerating deep network training by reducing internal covariate shift[J]. International Conference on Machine Learning, 2015: 448-456.
[13]KRIZHEVSKY A, SUTSKEVER I, HINTON G E. Imagenet classification with deep convolutional neural networks[C]// Advances in Neural Information Processing Systems, 2012: 1097-1105.
[14]TOMPSION J, JAIN A, LECUN Y, et al.Joint training of a convolutional network and a graphical model for human pose estimation[J]. Advances in Neural Information Processing Systems, 2014:179-1807.
[15]MARONNA R A, MARTIN R D, YOHAI V J, et al.Robust statistics: Theory and methods (with R)[M].New York:Wiley,2006.
[16]PASZKE A, GROSS S, CHINTALA S, et al. Automatic differentiation in PyTorch[C/OL]// NIPS 2017 Workshop Autodiff Submission, 2017.
[17]HE K, ZHANG X, REN S, et al.Deep residual learning for image recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770-778.