
















摘 要:針對直接應用深度學習分類算法所得模型泛用性較差的問題,提出了一種分兩個步驟完成人體坐姿識別的方法。所提方法首先提取圖片中人體上身關鍵點的坐標信息,在關鍵點檢測環節采用高分辨率主干網絡,并進一步改進了模型結構,在下采樣環節中引入SE(Squeeze-and-Excitation)注意力機制,加強了空間位置特征的表達,取得了更高的檢測平均精準度;然后采用隨機森林算法對關鍵點進行坐姿分類。實驗結果表明:所提方法識別準確率可以達到94%以上,并且在陌生場景下有更好的泛用性,能適應實際應用中復雜的人物環境。
關鍵詞:坐姿識別;高分辨率網絡;人體關鍵點檢測;隨機森林算法
中圖分類號:TP391.41 文獻標志碼:A
0 引言(Introduction)
機器視覺技術的成熟發展,使其快速應用于人們生活的方方面面。將機器視覺技術與物聯網技術相結合,是目前在個人或家庭應用場景下的一個趨勢。在人們的日常學習、工作與生活中,坐姿是人體最主要的姿態之一,為了避免長期不正確的坐姿給人體帶來的健康問題,研究人員開始在智能家具中部署坐姿提醒功能。
在采用視覺技術的識別方法中,葉啟朗等[1]提出了一種基于人體骨架連接關系的坐姿識別方法,通過正面的骨架圖像,使用殘差網絡模型進行坐姿識別分類。房志遠等[2]采用特征融合的方式將人體骨骼特征用于卷積神經網絡訓練,但識別準確率不高。在圖像識別分類研究中,通常直接采用深度學習網絡模型進行分類訓練。但是,對人體坐姿的分類與對物體的分類不同,更多關注的是姿態的變化。此外,生活場景復雜多樣,但是采集的圖像數據是有限的,不可能覆蓋所有環境,因此背景和人物的變化對網絡模型識別的準確率有較大的影響,導致模型泛用性較差。針對坐姿圖像識別方法中存在的問題,本文提出一種人體坐姿識別方法,它分兩步完成對人體不同坐姿行為的細致區分,具有準確率高、泛用性強,以及不受環境和人物變化影響等優點。
1 方法結構和理論分析(Algorithm structureand theoretical analysis)
1.1 方法總體結構
本文提出的坐姿識別方法的總體結構設計如圖1所示,它主要由兩個部分組成。首先,圖像經過深度學習訓練的網絡模型獲得人體關鍵點信息。相機的拍攝取景是人體正面坐姿,因此關鍵點選取眼、耳、鼻及肩膀4處位置,即輸出7通道的矩陣,每一個通道包含一個關鍵點的坐標位置。其次,在得到7個關鍵點坐標后,以此作為輸入參數通過機器學習訓練的算法模型預測坐姿的分類識別結果。這里設置正面、低頭、傾斜、側身等多個坐姿分類結果。
根據算法的整體結構可知,通過先識別關鍵點再分類的方法,已經將圖像信息進行了一次預處理,相當于提取了與坐姿高度相關的特征,再將這些特征做進一步分類,可以規避直接訓練分類模型帶來的低泛用性的問題。影響最終的坐姿識別結果的因素主要來自兩個方面:一是人體關鍵點的提取,二是對關鍵點的分類。下文將著重對這兩個方面進行研究及驗證。
1.2 主干網絡
對圖像進行深度學習訓練的本質在于,通過像素的特征提取圖片中所包含的特定信息,而關鍵點檢測的目的在于準確得到事物在圖像中的位置信息。該過程包括兩個任務:一是對不同關鍵點的圖像進行分類,二是對不同的關鍵點進行定位[3]。在常見的分類網絡中,通常要經過下采樣提取特征,隨著卷積神經網絡層數的增加,特征層的維度逐漸增大,但特征圖的寬高尺寸隨之縮小。這樣的網絡結構雖然能增強語義信息,有利于分類任務的進行,但是丟失了大量的空間位置信息,不利于關鍵點的準確定位。因此,針對關鍵點檢測的應用場景,主干網絡應當能始終保持較高的分辨率,并通過與低分辨率特征層進行融合,達到既有利于分類任務的進行,又不會丟失位置信息的效果,由此可以提高關鍵點檢測的準確性。
高分辨率網絡[4]采用了具有多個分支的網絡結構,其得名于始終有一條分支保持高分辨率特征層,而其他分支不斷做下采樣,縮小了特征層的尺寸大小,增強了網絡的特征表達能力。多個分支并行,相互之間進行多尺度的特征融合,最終匯聚到一起,主干網絡結構示意圖如圖2所示。
這種通過并行連接的方式構建的網絡對不同分辨率尺度的特征進行了融合,使其能夠在增強語義特征的同時保留空間信息。憑借這種結構,高分辨率主干網絡可以實現準確的關鍵點分類以及所在位置的檢測。本文在關鍵點檢測部分以此作為主干網絡,訓練適用于坐姿場景的神經網絡模型。
1.3 模型訓練
將人體圖片輸入主干網絡后,通過一個卷積核大小為1,卷積核個數為7的卷積層,得到7通道的特征層,其中每一層都是針對每一個關鍵點的熱力圖(Heat Map)[5]。網絡模型最后輸出的熱力圖的分辨率是原圖的1/4。其中,熱力圖上最大值所在的位置就是關鍵點的預測結果,將該位置映射回原圖中,就能得出該關鍵點檢測的坐標值。
圖3為關鍵點的熱力圖示意。對于每個關鍵點,以關鍵點坐標為中心施加一個二維的高斯分布,其高斯分布熱力圖可以表示為
其中:ai、bi 分別是關鍵點pi 在圖中所在的坐標位置,λ為控制分布擴散大小的常數。用高斯分布對每個關鍵點坐標進行處理的目的是更好地進行網絡收斂,如果只采用一個點作為正樣本,那么其他點都是負樣本,導致正負樣本比例不均,兩者差距懸殊,網絡就會出現難以收斂的情況。將結合高斯分布后得出的熱力圖與模型預測輸出的熱力圖進行對比,可以計算均方誤差損失(MSE)。用到的損失函數為
其中:Gi*(x,y)為網絡模型預測得出的熱力圖,Ggti (x,y)為數據集中標注的關鍵點坐標應用了高斯分布得到的熱力圖。K、Hw 、Hh 分別為關鍵點的個數和熱力圖的寬、高。計算出損失值后,通過反向傳播不斷迭代權重參數,使得預測結果與標注信息相接近。在使用訓練好的網絡模型進行預測時,可以選取模型輸出的熱力圖中最大值的所在位置求出相應關鍵點的坐標值。
1.4 機器學習分類方法
完成對人體關鍵點的檢測后,就要通過幾個關鍵點坐標得出坐姿的分類結果。不同于圖像輸入的大量像素點信息,該分類任務的參數變量較少,只有7個坐標點,即14個參數。出于模型輕量化和分類計算速度的考慮,這里選擇使用機器學習方法對坐姿進行分類。用于機器學習分類的方法有許多種,根據坐姿坐標的數據形式進一步篩選出K-近鄰算法、隨機森林算法、BP神經網絡等分類模型。這些模型都是有監督學習算法,適用于學習已經有明確的類型標注的數據集。
隨機森林算法是由大量的決策樹構成,并在決策樹的訓練過程中引入屬性選擇的隨機性。在進行分類任務時,放入訓練樣本后,森林中的每一個決策樹都會獨立完成學習,在對測試樣本進行預測時,每一個決策樹得到了各自的分類結果,統計這些輸出結果中出現最多的類別,隨機森林模型就以此作為最終的輸出。隨機森林算法具有訓練簡單、快速,能判斷特征重要性,以及抗過擬合能力較強等優點,適用于維度較高、特征較多的數據集。
K-近鄰算法沒有顯式的學習過程,在訓練階段只是把訓練樣本保存下來,當收到測試樣本時,再進行處理和計算。特征空間中的兩個實例點的間距就是其相似程度的反映,當測試樣本的點位與某一類的訓練樣本的距離最接近時,就將其歸為一類,得到分類結果。K-近鄰算法具有模型結構簡單、無須訓練等優點,適用于樣本容量較大的分類場景。
兩個實例點的間距計算公式如下:
圖4為BP神經網絡的結構示意圖。神經網絡由輸入層、隱藏層、輸出層3個部分組成。輸入樣本數據后,每個特征值乘以相應的權重,不斷向前傳播,計算出結果后,與標注的樣本結果進行對比,根據誤差進行反向傳播,修正權重參數,然后重新計算輸出,以上步驟循環往復,最終得出與預期相符的結果,完成映射模型的訓練,并得到相應的權重文件。BP神經網絡有很強的非線性表達能力,適用于復雜特征場景下的求解問題。
2 模型改進與對比實驗(Model improvement and comparison)
2.1 引入注意力機制
注意力機制是從人類視覺及認知過程中得到啟發的,被應用于神經網絡模型中[6]。在之前的網絡模型中,卷積、池化等操作都著眼于提取圖片中顯著的特征而忽略了隨意的線索,而注意力機制的加入使得這個過程有了一個可以學習的參數,該方法能使網絡能夠有偏向性地關注特征圖中的重要信息,選擇性地將注意力集中在某一些輸入數據上,從而達到提高模型預測準確率和泛用性的效果。
HU等[7]提出的SE注意力機制著重關注通道間的關系,是一種經典的通道注意力方法,其通過自適應地學習不同通道間的注意力權重,提高卷積神經網絡對特征的表達能力。SE 注意力機制模塊結構如圖5所示,從圖5中可以看出有3個階段,在Squeeze階段是通過平均池化方法將特征圖的高和寬降為1,每個通道僅用一個數表示,即壓縮為一個特征向量,其計算函數為
其中:H 和W 分別表示高和寬,uc 表示每個通道的特征矩陣。在Excitation階段通過疊加使用全連接層和非線性激活函數,學習生成權重信息,其計算函數為
s=Fex(z,W )=σ(g(z,W ))=σ(W2δ(W1z)) (5)
其中:W 權重就是注意力機制中的可學習參數,用于體現模型所需的特征相關性;向量s 為不同通道的權重信息。在Scale 階段,根據上一階段生成的權重向量s,對最初的特征圖進行權重計算,得到新的特征圖作為輸出。SE注意力機制模塊不會改變特征圖的尺寸大小,而是自適應地根據需要,加權調整特征圖每個通道的相應權重。該方法可以幫助網絡有選擇地關注重要的特征通道,起到改進模型和提高其準確率的作用。
在高分辨率網絡中存在多個分支并行計算,在多個分辨率特征進行融合時,由于分辨率的尺度不同,因此需要進行上采樣或下采樣等操作。在下采樣環節,要根據目標尺度疊加多個卷積核大小為3、步距為2的卷積計算,不斷縮小特征圖的分辨率,在到達目標尺寸前的最后一個卷積中,除了繼續縮小分辨率外,還要將特征圖通道擴大相應倍數,便于進行特征融合。在此過程中引入SE通道注意力機制,改進后下采樣模塊示意圖如圖6所示,通過引入SE通道注意力機制調整特征圖中的通道貢獻權重,使得高分辨率分支在下采樣后,在通道數擴增的基礎上加強重要特征的表達,以便在后續特征融合環節促進信息的有效整合,將高分辨率分支所包含的空間位置特征信息更顯著地融入進來。
2.2 關鍵點檢測
在訓練數據集方面,為了提高關鍵點檢測模型的泛用性,本實驗采用COCO數據集[8]進行模型訓練,數據集涵蓋了大量帶有人體關鍵點標注的樣本實例,是目前主流的人體姿態估計數據集之一。在正面坐姿檢測場景中只需用到7個點位坐標,因此本實驗在COCO數據集的基礎上進行了裁剪,僅選取了具有上身關鍵點信息的樣本。網絡的訓練基于Ubuntu操作系統以及Pytorch深度學習框架。本實驗采用高分辨率網絡、本文改進網絡、殘差網絡[9]以及改進殘差網絡(ResNeXt)[10]4種主干網絡分別進行模型訓練以及相應的驗證,并進行檢測效果對比。
在關鍵點任務中,一般采用OKS(Object KeypointSimilarity)表示預測點坐標和真實點坐標之間的相似程度,其值為0~1,值越接近1,表示模型預測的準確率越高。OKS的計算公式為
其中:i表示第幾個關鍵點,δ 表示關鍵點是否可見,di 表示預測點和真實點之間的歐式距離,s 為目標尺度因子,ki 為衰減常數。對驗證集樣本的關鍵點相似度進行統計分析,計算其平均精確率和平均召回率,并以此作為評判模型優劣的標準。
表1為不同主干網絡在COCO驗證集上的準確率表現,其中COCO驗證集僅選取了具有上半身關鍵點的部分樣本,表中計算了不同IoU(Intersection over Union)下的平均精確率和平均召回率。結果顯示,相較于改進殘差網絡,高分辨率網絡在平均精確率和平均召回率上都有更好的表現,其提升幅度約2百分點。而本文所提改進模型在高分辨率網絡的基礎上,進一步提升了關鍵點的識別能力,在平均精確率和平均召回率上都有更好的表現。
此外,為了驗證訓練得到的模型在真實坐姿場景下的準確率,除了使用COCO數據集中的驗證集樣本外,還采集了500 張不同的人物和背景的正面坐姿圖片,對其中的關鍵點進行標注,作為測試集樣本在完成訓練后對模型做進一步的準確率驗證。表2為不同主干網絡在自建測試集上的準確率表現,模型的平均精確率和平均召回率普遍可以達到80%以上,可見訓練所得模型部署用于正面坐姿的場景中也有較好的檢測效果。此外,高分辨率網絡相較于其他網絡的精確率更高,與殘差網絡相比,在精確度和召回率方面都有6%以上的提升,說明該算法更加適用于本項目的應用場景。在使用改進高分辨率網絡訓練的模型進行預測時,相比于原模型,準確率提升了1%。圖7為改進模型預測結果可視化,從圖7中可以看出,模型準確地標注出了人體上身7個正面坐姿關鍵點的坐標位置,并且模型在多種復雜場景中的預測準確率表現均證明其具有良好的檢測效果。
2.3 機器學習分類
在分類實驗中,將坐姿圖片分成6組,分別為正面、低頭、左傾斜、右傾斜、左側身、右側身,每張圖片以人體上身7個關鍵點坐標作為輸入數據,共14個特征。將6組圖片全部匯總后,按1∶4的比例隨機劃分訓練集和驗證集,分別通過K-近鄰算法、隨機森林算法、BP神經網絡等分類算法訓練模型,并驗證其分類準確率。此外,除了直接用像素坐標作為輸入,還增加了一組像素坐標值歸一化后的樣本,以相同的方法進行訓練,作為對比組。
如圖8所示為不同分類算法的準確率。圖8中的數值為10次訓練獲得的準確率的平均值。結果顯示,3種分類算法都能完成坐姿分類任務且具有比較高的分類準確率,都能達到95%以上。其中,隨機森林算法的分類準確率最高,K-近鄰算法次之。此外,數據歸一化操作對于BP神經網絡訓練有較大的提升作用,但對于K-近鄰算法反而有不利的影響。
由于隨機森林算法的分類準確率最高,因此選用該算法模型進行坐姿分類識別,并在此做進一步的分析。圖9為隨機森林分類模型混淆矩陣。混淆矩陣作為一項評判分類模型效果的指標,可以直觀地分析出各個分類項具體的識別情況。從圖9中可以看出,在各項坐姿類別中,模型都有比較高的分類準確率。
2.4 實驗結果的對比與分析
將關鍵點檢測和機器學習分類算法結合,組成坐姿識別模型,將其與其他常見的圖像分類網絡模型進行對比。為了驗證本文所提方法相較于采用深度學習做分類的方法在泛用性上的優勢,設計了有針對性的實驗。選取VGG網絡[11]、ResNet殘差網絡、ShuffleNet網絡[12]等經典的網絡模型為例,對坐姿圖像進行訓練和測試。除了直接使用這些通用的分類模型外,還增添了一組文獻[13]中提到的識別方案,在訓練前對圖像進行人物前景提取。為了驗證模型的泛用性,準備了兩份驗證集,一份驗證集是與訓練集一起從上文的數據集中隨機按比例劃分出來的,由于人物和背景重復,因此這一份驗證集對于模型來說是比較熟悉的。另一份驗證集采集了與之前的背景和人物不同的圖像,這些陌生場景都是之前訓練數據集中從未出現過的。
表3為場景變化對不同模型準確率的影響,從表中可以看出,對于在訓練中已經學習過的場景和人物,各個模型都有比較高的分類準確率,但當背景和人物發生變化時,模型的分類準確率就出現了顯著的下降,文獻[13]中的方法雖然去除了背景環境帶來的干擾,但是在人物發生變化時,分類準確率仍受到了較大影響。而本文提出的兩步式分類模型基本不受場景變化的影響,始終能保持較高的分類準確率,具有較好的泛用性。可見,直接應用深度學習進行圖像分類的方法在固定場景下能得到較高的分類準確率,但是當模型應用于陌生場景時,就難以保證分類的準確率,這對于機器視覺產品應用落地是不利的,而本文提出的兩步式分類模型能夠更好地滿足多變環境中的坐姿識別需要。
3 結論(Conclusion)
本文提出了一種將深度學習和機器學習相結合的坐姿識別方法,將識別任務劃分成關鍵點檢測和機器學習分類兩個步驟。第一步是基于多尺度分支的高分辨率主干網絡,通過引入SE注意力機制改進模型,利用COCO數據集中大量的人體姿態樣本訓練出高精確度的人體上身7個關鍵點的檢測模型。第二步是以檢測到的關鍵點坐標作為特征值,采用隨機森林算法訓練分類模型,并對比研究了多種分類算法在此應用場景中的分類效果,最終得到了一種兩步式的坐姿識別模型。在檢測部分的實驗結果表明,改進主干網絡后的模型相較于原始模型,在平均精確率上提升了1百分點,人體上身關鍵點檢測的平均精確率可達90%。在分類部分的實驗結果表明,兩步式分類模型的坐姿分類識別準確率可以達到94%以上,并且相較于直接應用圖像分類深度學習模型,具有更好的泛用性,更適用于復雜生活場景。
參考文獻(References)
[1] 葉啟朗,李戴薪,南海. 一種基于人體骨架的任意角度坐姿識別方法[J]. 計算機應用研究,2023,40(11):3509-3514.
[2] 房志遠,石守東,鄭佳罄,等. 基于神經網絡的骨骼特征融合下坐姿快速識別[J]. 傳感技術學報,2022,35(5):613-620.
[3] 梁橋康,吳樾. 基于HRNet的輕量化人體姿態估計網絡[J]. 湖南大學學報(自然科學版),2023,50(2):112-121.
[4] SUN K,XIAO B,LIU D,et al. Deep high-resolution representationlearning for human pose estimation[C]∥IEEE.Proceedings of the IEEE:2019 IEEE Conference on ComputerVision and Pattern Recognition(CVPR). Piscataway:IEEE,2019:5686-5696.
[5] BULAT A,TZIMIROPOULOS G. Human pose estimationvia convolutional part heatmap regression[C]∥LEIBEB,MATAS J,SEBE N,et al. Computer Vision -ECCV2016:14th European Conference on Computer Vision ECCV2016. Cham:Springer,2016:717-732.
[6] VASWANI A,SHAZEER N,PARMAR N,et al. Attentionis all you need[DB/OL]. (2023-08-02)[2023-10-24].https:∥arxiv.org/abs/1706.03762.
[7] HU J,SHEN L,ALBANIE S,et al. Squeeze-and-Excitationnetworks[C]∥IEEE. Proceedings of the IEEE:2018IEEE Conference on Computer Vision and Pattern Recognition(CVPR). Piscataway:IEEE,2018:7132-7141.
[8] LIN T,MAIRE M,BELONGIE S,et al. Microsoft COCO:common objects in context[DB/OL]. (2015-02-21)[2023-10-24]. https:∥arxiv.org/abs/1405.0312.
[9] HE K M,ZHANG X Y,REN S Q,et al. Deep residual learningfor image recognition[C]∥IEEE. Proceedings of theIEEE:2016 IEEE Conference on Computer Vision and PatternRecognition(CVPR). Piscataway:IEEE,2016:770-778.
[10] XIE S N,GIRSHICK R,DOLLAR P,et al. Aggregatedresidual transformations for deep neural networks[C]∥IEEE. Proceedings of the IEEE:2017 IEEE Conferenceon Computer Vision and Pattern Recognition(CVPR).Piscataway:IEEE,2017:5987-5995.
[11] SIMONYAN K,ZISSERMAN A. Very deep convolutionalnetworks for large-scale image recognition[DB/OL]. (2015-08-10)[2023-10-24]. https:∥arxiv.org/abs/1409.1556.
[12] ZHANG X Y,ZHOU X Y,LIN M X,et al. ShuffleNet:anextremely efficient convolutional neural network for mobiledevices[C]∥IEEE. Proceedings of the IEEE:2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Piscataway:IEEE,2018:6848-6856.
[13] 黃旭. 基于判別式深度學習的坐姿視覺識別方法研究[D].長沙:湖南大學,2018.
作者簡介:
徐寅哲(1999-),男,碩士生。研究領域:機器學習,嵌入式技術。
屠佳佳(1987-),男,博士生。研究領域:紡織裝備智能化。
李洲(1998-),男,碩士生。研究領域:嵌入式技術。
史偉民(1965-),男,博士,教授。研究領域:紡織裝備機電控制技術。