楊 君, 張素君, 張創(chuàng)豪, 黃晶晶
(武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,湖北 武漢430081)
隨著我國經(jīng)濟(jì)水平和生活水平的提高,人們的生活質(zhì)量和健康狀況受到更多的關(guān)注。人們?cè)阱憻捴惺軅麜?huì)影響生活和健康,系統(tǒng)提出的解決辦法是通過計(jì)算機(jī)或者傳感器等判斷人們的動(dòng)作是否標(biāo)準(zhǔn),從而避免損傷。這種識(shí)別方法主要有兩種:基于傳感器的方法[1~3]和基于計(jì)算機(jī)平臺(tái)的方法[4~6]。
目前基于人體特征的動(dòng)作識(shí)別研究受到了更多關(guān)注,如利用反向傳播(back propagation,BP)、SAM等[7,8]多種分類方式進(jìn)行人體動(dòng)作識(shí)別?;谌梭w特征的識(shí)別方法中對(duì)知識(shí)庫和訓(xùn)練數(shù)據(jù)的大量需求使得該方法有一定的局限性。
現(xiàn)在成熟的識(shí)別研究大多與人臉識(shí)別和手勢(shì)識(shí)別有關(guān),對(duì)動(dòng)作識(shí)別的研究較少,且往往沒有交互的過程。針對(duì)以往經(jīng)典的人體動(dòng)作對(duì)比識(shí)別方法的不足,本文在現(xiàn)有的應(yīng)用基礎(chǔ)[9]上分析研究,提出了一個(gè)基于OpenPose的單目圖像識(shí)別對(duì)比指導(dǎo)系統(tǒng)。
實(shí)驗(yàn)環(huán)境為戴爾Inspiron 15—7560筆記本電腦,CPU 為Intel i7—7500U,Windows 10 64位旗艦版操作系統(tǒng)。內(nèi)存為12 GB,1 600 MHz,顯卡為NVIDIA GEFORCE GT 640M,軟件平臺(tái)Visual Studio 2019。該系統(tǒng)安裝簡(jiǎn)單,所需設(shè)備數(shù)量少、成本低。系統(tǒng)流程圖如圖1所示。
圖1 系統(tǒng)流程圖
圖像在轉(zhuǎn)換和傳輸?shù)倪^程中,會(huì)受到成像設(shè)備和外部環(huán)境的影響,經(jīng)常會(huì)出現(xiàn)一些出現(xiàn)亮度偏差過大的區(qū)域,即噪聲,這些噪聲會(huì)干擾結(jié)果的準(zhǔn)確性。為了最大程度簡(jiǎn)化無關(guān)信息,首先對(duì)圖像進(jìn)行預(yù)處理提取有效信息[10];再采用中值濾波將圖象中的像素按RGB值排序,取中間值為有效值,平滑處理可以強(qiáng)化圖像的目標(biāo)特征;最后,銳化處理使用拉普拉斯模板對(duì)圖像邊緣增強(qiáng)。如圖2所示。
圖2 Laplace銳化模板
采用中值濾波和銳化處理能夠有效克服偶然因素的干擾,增強(qiáng)某些線性目標(biāo)的特征,有助于利用色彩差異分離人體和布景。中值濾波器使用非線性方法,在消除脈沖噪聲方面非常有效,但它的抗高斯噪聲的性能較差。這種方法可以保護(hù)圖像中物體的邊緣線條,過濾掉偏差較大的點(diǎn)。拉普拉斯銳化方法可以用于恢復(fù)圖像,預(yù)測(cè)殘差,對(duì)圖像進(jìn)行一定范圍內(nèi)的恢復(fù)。經(jīng)過測(cè)試,預(yù)處理操作對(duì)噪聲干擾有較強(qiáng)的魯棒性,如圖3所示。
圖3 預(yù)處理效果
OpenPose實(shí)時(shí)姿態(tài)監(jiān)測(cè)估計(jì)算法是由卡內(nèi)基梅隆大學(xué)的一個(gè)團(tuán)隊(duì)最先提出的。此算法使用一種叫做人體關(guān)鍵點(diǎn)親和域PAF(part affinity field)的方法連接人體關(guān)鍵點(diǎn)。圖4中的網(wǎng)絡(luò)結(jié)構(gòu)分支1的S1代表一組關(guān)鍵點(diǎn),分支2的Ll代表連接這些關(guān)鍵點(diǎn)的親和向量。重復(fù)此步,可以得到一個(gè)所有2D關(guān)鍵點(diǎn)的集合S和關(guān)鍵點(diǎn)相關(guān)度的向量集合L,再根據(jù)相關(guān)度連接將得到一個(gè)近似度高的棍型圖。系統(tǒng)采用的數(shù)據(jù)集是COCO和MPI,并且收集了試驗(yàn)者執(zhí)行的不同活動(dòng)并與計(jì)算機(jī)相關(guān)聯(lián),既能檢測(cè)人體,也能感知到周圍環(huán)境中的信息。
OpenPose提供了23個(gè)精確的身體部位,包括肩膀、肘部、手腕、臀部、膝蓋、腳踝等。為了減少數(shù)據(jù)集的冗余,系統(tǒng)參考不同身體關(guān)節(jié)的視覺效應(yīng),根據(jù)人體結(jié)構(gòu)和運(yùn)動(dòng)特征將關(guān)節(jié)分成不同的組,并給每個(gè)關(guān)節(jié)分配不同的權(quán)重。
1)面部五官:面部關(guān)節(jié)分布集中密集,活動(dòng)范圍小。它們很少表現(xiàn)出明顯的獨(dú)立運(yùn)動(dòng),因此這些部位將從表示方案中刪除。2)軀干關(guān)節(jié):軀干關(guān)節(jié)包括肩關(guān)節(jié)、脊椎中心和臀部,它們體現(xiàn)了身體運(yùn)動(dòng)位移的主要趨勢(shì),是連接身體和四肢的樞紐,因此添加到表示方案中。3)一級(jí)關(guān)節(jié):一級(jí)關(guān)節(jié)包括肘關(guān)節(jié)和膝關(guān)節(jié),包含大量關(guān)于四肢動(dòng)作的信息。當(dāng)身體旋轉(zhuǎn)和彎曲時(shí),它在視覺上相對(duì)軀干關(guān)節(jié)有更重要的作用,添加到表示方案中。4)二級(jí)連接:二級(jí)連接部位包括手腕和腳踝。手腕和踝關(guān)節(jié)比肘關(guān)節(jié)和膝蓋點(diǎn)延伸得更長(zhǎng),給人留下更加明顯的視覺印象,添加到表示方案中。5)三級(jí)連接:三級(jí)點(diǎn)包含右手、右臀、右腳、左手、左臀和左腳。手和腳是手腕和腳踝的延伸,沒有明顯的視覺印象,因此它們不在表示方案中。綜上所述,表示方案包括12種關(guān)節(jié),數(shù)據(jù)集合減少,但保留了起關(guān)鍵作用的信息。
OpenPose是自下而上識(shí)別人體的算法,即先找特征部位,再組合人體。它輸入三原色(RGB)圖像,輸出圖像中每個(gè)人解剖關(guān)鍵點(diǎn)的2D位置坐標(biāo),可以識(shí)別人體的關(guān)鍵點(diǎn)。此算法通過兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)進(jìn)行連接,預(yù)測(cè)每點(diǎn)的關(guān)鍵點(diǎn)的置信度S和親和度向量L,如圖5所示。兩個(gè)主要步驟如下:
1)輸出置信圖:原圖被第一個(gè)CNN處理后生成置信圖圖集,CNN利用卷積核對(duì)從原始圖像中取出的N×N的矩陣窗口進(jìn)行卷積運(yùn)算,每個(gè)置信圖包含一種圖像特征。第一個(gè)CNN輸出的置信圖和原始圖一起傳入到下一個(gè)網(wǎng)絡(luò)進(jìn)行計(jì)算,其中置信度表示實(shí)際值落在一個(gè)區(qū)間的概率。循環(huán)這一過程直到結(jié)果收斂為止,即輸出的置信圖都落在同一區(qū)間的概率較大。每個(gè)置信圖還包含每個(gè)特征點(diǎn)的置信度,置信度在貝葉斯統(tǒng)計(jì)中的對(duì)應(yīng)概念是可信區(qū)間即估計(jì)值落在的區(qū)間。
圖5 關(guān)鍵點(diǎn)的置信圖
2)輸出骨架圖:如圖6所示。其步驟里同樣包括兩個(gè)CNN,這兩個(gè)CNN連著第一個(gè)卷積網(wǎng)絡(luò)輸出的置信圖并重復(fù)第一步的步驟。新獲得的置信圖根據(jù)概率的大小將計(jì)算好的兩個(gè)關(guān)鍵點(diǎn)進(jìn)行連接,再根據(jù)關(guān)節(jié)部位和點(diǎn)的地方計(jì)算每個(gè)區(qū)域的法向向量實(shí)現(xiàn)關(guān)鍵點(diǎn)的聚集整合。
最后生成一個(gè)法向向量圖,通過貪心推理算法(每一步都選擇當(dāng)前狀態(tài)下的最好選擇)在法向向量圖中構(gòu)造出一條連接下一點(diǎn)的連線。由各個(gè)點(diǎn)的置信度來推測(cè)哪兩點(diǎn)是一條線上概率最大的兩點(diǎn),反復(fù)使用最小生成樹Prim算法,保持一個(gè)有n點(diǎn)圖連通最少的邊。隨著迭代次數(shù)的增加,可得到全部連線,并且區(qū)分左右,即人的骨架圖,完成了骨架的組裝。如果某個(gè)特征點(diǎn)在過程中缺失,則不計(jì)算該點(diǎn)的置信度且不連接放置它們所在的骨骼線。
總之,該系統(tǒng)通過兩分支多階段CNN對(duì)圖像進(jìn)行處理,其中第一分支是每個(gè)階段預(yù)測(cè)置信圖,第二分支是每個(gè)階段預(yù)測(cè)部分親和域。前饋網(wǎng)絡(luò)推測(cè)出一組人體部位的2D置信圖和一組反映局部關(guān)系度的2D向量場(chǎng),對(duì)關(guān)節(jié)之間的關(guān)聯(lián)程度進(jìn)行編碼。最后,通過推測(cè)解析置信度映射親和域,OpenPose輸出圖像中所有人的二維關(guān)鍵點(diǎn)。
圖6 法向向量圖中的連線
最后本文以 JSON 格式獲取了包含人體位置和檢測(cè)置信度的12個(gè)關(guān)節(jié)坐標(biāo),這些數(shù)據(jù)能夠以完整和獨(dú)特的方式表示每個(gè)姿勢(shì)。本文直接采用OpenPose使用小型數(shù)據(jù)集,可降低計(jì)算復(fù)雜性。
由于視頻幀中關(guān)節(jié)位置不連續(xù)是影響結(jié)果的主要因素,系統(tǒng)將對(duì)比標(biāo)準(zhǔn)定義為某些幀之間的關(guān)節(jié)骨骼之間的角度。關(guān)節(jié)骨骼之間的角度可以清楚地反映一個(gè)人整體的位置和移動(dòng)方向,并且人的體型、身高、膚色、年齡等差別都不會(huì)影響計(jì)算機(jī)判斷的結(jié)果。系統(tǒng)設(shè)定的骨骼點(diǎn)包括頭(包含眼鼻耳,但不分配權(quán)重)、脊柱中心、右手、左手等。
圖7 關(guān)節(jié)分組示意
根據(jù)視覺效果如圖7 ,對(duì)所有關(guān)節(jié)進(jìn)行分組,分組為:1)主體軀干:0,1,2,5,8,11。2)四肢:2,3,4,8,9,10(左);5,6,7,11,12,13(右)。
關(guān)節(jié)與關(guān)節(jié)之間的距離可用式(1)表示
(1)
式中dx,y,z為兩關(guān)節(jié)之間的距離,(xi,xj),(yi,yj),(zi,zj)為關(guān)鍵點(diǎn)坐標(biāo),cm。由于OpenPose將圖像中每個(gè)人的關(guān)節(jié)點(diǎn)生成2D位置作為輸出,將式(1)修改為式(2),(xi,xj),(yi,yj)為二維像素坐標(biāo)系上的關(guān)鍵點(diǎn)坐標(biāo),cm
(2)
根據(jù)此公式計(jì)算出一組內(nèi)的兩個(gè)關(guān)節(jié)之間的距離,再計(jì)算出角度。角度計(jì)算如圖8。
圖8 角度計(jì)算示意
圖中d1,d2是一個(gè)組內(nèi)相鄰點(diǎn)的距離,對(duì)于主體軀干還需要計(jì)算它們與豎直方向的偏移角φ
(3)
(4)
式中θ為一組中任一關(guān)節(jié)點(diǎn)與編號(hào)相鄰的兩個(gè)關(guān)節(jié)點(diǎn)連線間的夾角,d1,d2,d3分別為這三個(gè)關(guān)節(jié)點(diǎn)間的距離,cm;φ為主干與垂線的偏移角,(°)。使用式(5)可以計(jì)算某個(gè)實(shí)際動(dòng)作與標(biāo)準(zhǔn)動(dòng)作之間的角度偏差百分比P
(5)
式中θN為實(shí)際角度,θstandrd為標(biāo)準(zhǔn)角度,(°)。本系統(tǒng)根據(jù)不同身體關(guān)節(jié)的視覺效應(yīng)分配不同的權(quán)重給每個(gè)身體關(guān)節(jié),選取頭、軀干關(guān)節(jié),臀部中心、右手腕等為主要的關(guān)節(jié)。計(jì)算角度偏差百分比時(shí)默認(rèn)這些骨骼角度的權(quán)重相同。式(6)可以算出Ptotal總體人體的動(dòng)作擬合百分比
(6)
式中n為某一指定健身動(dòng)作中的骨骼角度的個(gè)數(shù)。規(guī)定當(dāng)偏差百分比大于30 %時(shí),用文字提示給出偏差較大的部位。最后測(cè)試結(jié)果如表1所示,能與人眼判斷基本吻合。
表1 測(cè)試結(jié)果
該系統(tǒng)實(shí)驗(yàn)環(huán)境為戴爾Inspiron 15—7560筆記本電腦,當(dāng)某個(gè)偏差大于規(guī)定值時(shí),界面將顯示此偏差計(jì)算公式中的關(guān)鍵點(diǎn)編號(hào)。交互性表現(xiàn)在:如果電腦判斷結(jié)果與實(shí)驗(yàn)者的判斷不吻合,可以調(diào)整兩個(gè)參數(shù)—最大偏差比和不同關(guān)節(jié)的權(quán)重來調(diào)試系統(tǒng)以達(dá)到理想的結(jié)果。最終系統(tǒng)根據(jù)提示調(diào)整實(shí)際中具體關(guān)鍵點(diǎn)的動(dòng)作,使之更加符合標(biāo)準(zhǔn)動(dòng)作,達(dá)到正確健身提高身體素質(zhì)的目的。經(jīng)過測(cè)試證明該系統(tǒng)安裝簡(jiǎn)單設(shè)備少,交互性較強(qiáng)。
系統(tǒng)也可以給不同的骨骼分配不同的權(quán)重,比如,在太極拳等下半身比較平穩(wěn)的運(yùn)動(dòng)中,可以調(diào)整上半身的權(quán)重值為下半身的2倍。此時(shí)公式調(diào)整為式(7)和式(8)
(7)
(8)
式中Pupper,Plower分別為上、下半身的偏差比,%。
基于OpenPose的單目圖像動(dòng)作識(shí)別對(duì)比指導(dǎo)系統(tǒng)可以通過調(diào)整最大偏差比和不同關(guān)節(jié)的權(quán)重來調(diào)試系統(tǒng),穩(wěn)定性好。系統(tǒng)在現(xiàn)有的方法和技術(shù)基礎(chǔ)上進(jìn)行分析研究,提出了一個(gè)二維人體基于OpenPose的單目圖像動(dòng)作識(shí)別對(duì)比指導(dǎo)系統(tǒng)。實(shí)驗(yàn)結(jié)果表明:系統(tǒng)判斷結(jié)果與人眼識(shí)別相吻合,安裝簡(jiǎn)單設(shè)備較少、交互性較強(qiáng)、設(shè)備成本低、數(shù)據(jù)較少并且對(duì)噪聲干擾有較強(qiáng)的魯棒性。