国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于圖像識(shí)別和神經(jīng)網(wǎng)絡(luò)技術(shù)的影視聲音后期工藝探索

2020-12-31 01:09:48郭境熙
現(xiàn)代電影技術(shù) 2020年8期
關(guān)鍵詞:關(guān)節(jié)點(diǎn)腳步正確率

郭境熙 劉 嘉

(北京電影學(xué)院聲音學(xué)院,北京 100088)

1引言

隨著影視文化產(chǎn)業(yè)的繁榮,社會(huì)對(duì)影視產(chǎn)品的需求也越來越大。今天,由于工業(yè)化技術(shù)水平的提高,影視聲音后期制作的分工越來越細(xì),質(zhì)量也越來越好。無(wú)論是院線電影、電視劇,還是網(wǎng)絡(luò)平臺(tái)上播放的一些劇集,甚至包括目前非常流行的抖音小視頻,都很明顯地感受到了這種趨勢(shì)。然而,隨著節(jié)目數(shù)量爆發(fā)性地增長(zhǎng),隨之而來的問題是有限的制作勞動(dòng)力資源與越來越多的節(jié)目數(shù)量和質(zhì)量需求之間不可調(diào)和的矛盾。從目前的工藝來看,聲音編輯環(huán)節(jié)在整個(gè)制作流程中占據(jù)了絕對(duì)的時(shí)間比例,它有著人力高度密集、工作強(qiáng)度大、時(shí)間占比長(zhǎng)、重復(fù)性勞動(dòng)非常多的特點(diǎn),在實(shí)際工作中,從業(yè)人員大量的時(shí)間和精力會(huì)耗費(fèi)在對(duì)聲音素材的檢索、分類、編輯、聲畫同步等工作上。與此同時(shí),我們看到聲音編輯工作并非簡(jiǎn)單勞動(dòng),一個(gè)合格的聲音編輯人員往往需要經(jīng)過長(zhǎng)時(shí)間的職業(yè)技能培訓(xùn),才能滿足這種藝術(shù)產(chǎn)品的生產(chǎn)質(zhì)量要求。所以,無(wú)論是采用簡(jiǎn)單地增加個(gè)體勞動(dòng)時(shí)間,還是快速擴(kuò)大聲音編輯從業(yè)人員的規(guī)模來滿足越來越多、越來越高的行業(yè)制作需求,都是不現(xiàn)實(shí)的。

從2015年起,人工智能的研究和應(yīng)用逐步開始進(jìn)入到大眾的視野,在圖像識(shí)別領(lǐng)域和神經(jīng)網(wǎng)絡(luò)系統(tǒng)領(lǐng)域不斷出現(xiàn)了一些有趣的思路和新的應(yīng)用場(chǎng)景。得益于算法的發(fā)展以及計(jì)算能力的提升,圖像識(shí)別的準(zhǔn)確度相對(duì)以前有了很大的提高,近年來ImageNet的年度大規(guī)模視覺識(shí)別挑戰(zhàn)賽中(ILSVRC),排名前五的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)錯(cuò)誤率即能做到小于5%。這其實(shí)已經(jīng)在分類準(zhǔn)確率上高于人類了,而隨著于計(jì)算機(jī)硬件的快速迭代和性能提升,在目前普通家用計(jì)算機(jī)平臺(tái)上利用性能稍好一點(diǎn)的GPU和CPU就能輕易地滿足以上視覺識(shí)別和神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)的需求。

在我們通常的習(xí)慣思維中,影視聲音后期往往被更多地認(rèn)為是一個(gè)藝術(shù)創(chuàng)作過程,技術(shù)性的手段被限定在了一個(gè)很有限的范圍里。并且由于聲音自身的特性以及基礎(chǔ)研究長(zhǎng)期停滯不前,造成了它幾乎是現(xiàn)在影視制作中自動(dòng)化和智能化程度最低的一個(gè)領(lǐng)域。但是,如果我們理性地對(duì)整個(gè)過程進(jìn)行結(jié)構(gòu)化的回溯,就會(huì)發(fā)現(xiàn)其實(shí)前面提到的很多工作內(nèi)容,尤其在重復(fù)性地耗費(fèi)大量精力進(jìn)行聲畫同步的聲音編輯過程中,可以將其分解為畫面同步點(diǎn)的判斷、聲音素材時(shí)間線位置確定和聲音素材的放置三個(gè)環(huán)節(jié)。假如采用現(xiàn)有的圖像識(shí)別和神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)技術(shù)建立標(biāo)準(zhǔn)模型,實(shí)現(xiàn)素材的自動(dòng)調(diào)用,則有可能實(shí)現(xiàn)整個(gè)過程或者過程中某些重要環(huán)節(jié)的智能化輔助。

鑒于此,筆者以影視作品中最常見的腳步聲編輯作為研究對(duì)象,在過程中利用開源的Openpose(人體關(guān)鍵點(diǎn)實(shí)時(shí)檢測(cè))框架對(duì)畫面人物的動(dòng)作進(jìn)行識(shí)別,將結(jié)果數(shù)據(jù)進(jìn)行必要的預(yù)處理后同時(shí)用SVM(支持向量機(jī))和MLP(多層感知器)進(jìn)行訓(xùn)練,觀察得到的訓(xùn)練模型的結(jié)果,并生成標(biāo)準(zhǔn)的時(shí)間線XML,導(dǎo)入工作站進(jìn)行素材鏈接,從而實(shí)現(xiàn)基本的聲音編輯過程中聲畫同步的自動(dòng)化。

2研究工具與對(duì)象的選取

腳步聲的編輯過程,我們按照工作流程把它分為了四個(gè)步驟:(1)在畫面中找出人物的腳部并觀察鞋、地的材質(zhì)用以確定聲音素材的選擇;(2)在時(shí)間線上找到左右腳觸地的精確位置(時(shí)間點(diǎn));(3)從聲音資料庫(kù)中檢索符合要求的素材;(4)將聲音擺放到時(shí)間線上并做相應(yīng)的微調(diào)??梢园l(fā)現(xiàn)在整個(gè)過程中重復(fù)性勞動(dòng)最多,耗費(fèi)時(shí)間最長(zhǎng)的是在步驟2和步驟4上,同時(shí),由于步驟1和步驟3目前還受制于相關(guān)基礎(chǔ)元數(shù)據(jù)的智能化標(biāo)記完善程度制約,所以,筆者暫時(shí)對(duì)這兩個(gè)步驟進(jìn)行簡(jiǎn)化(將在后文說明),事先根據(jù)所訓(xùn)練的對(duì)象準(zhǔn)備好一套適合的腳步素材庫(kù)以備調(diào)用,而把主要精力放到通過機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)算法將畫面中腳步在時(shí)間線上的精確定位(步驟2)和聲音素材的自動(dòng)套用上。

實(shí)驗(yàn)過程中首先借助開源框架Openpose來進(jìn)行畫面人物對(duì)象的識(shí)別和人物姿態(tài)推測(cè)。Openpose是一個(gè)由卡內(nèi)基梅隆大學(xué)維護(hù)的人體姿態(tài)識(shí)別開源庫(kù),基于CAFFE框架開發(fā),以卷積神經(jīng)網(wǎng)絡(luò)和監(jiān)督學(xué)習(xí)為手段在不通過任何傳感器的幫助下,實(shí)現(xiàn)畫面中一個(gè)或多個(gè)人物的姿態(tài)識(shí)別。目前,可以完成:?jiǎn)稳俗疃?5個(gè)身體/腳部關(guān)節(jié)的關(guān)鍵點(diǎn)識(shí)別(本研究選取方案);或42個(gè)關(guān)鍵點(diǎn)的手部關(guān)節(jié)識(shí)別(左右手各21個(gè));或70個(gè)面部關(guān)鍵點(diǎn)的識(shí)別,特別是身體關(guān)鍵點(diǎn)識(shí)別模式下,運(yùn)算時(shí)間與檢測(cè)出的人數(shù)無(wú)關(guān),這無(wú)疑為大規(guī)模的部署和真實(shí)應(yīng)用環(huán)境中復(fù)雜的畫面提供了非常強(qiáng)大的分析工具。

在得到關(guān)鍵點(diǎn)數(shù)據(jù)集之后,通過人工的方法對(duì)左右腳落地的時(shí)間進(jìn)行標(biāo)記和其他的預(yù)處理,構(gòu)成下一步模型訓(xùn)練的基礎(chǔ)。我們期望將原始數(shù)據(jù)和標(biāo)記后的數(shù)據(jù)通過機(jī)器學(xué)習(xí)對(duì)二者進(jìn)行擬合,最終訓(xùn)練得到一個(gè)可以通過每幀畫面人體關(guān)節(jié)點(diǎn)坐標(biāo)關(guān)系判定腳步落下的模型,用于實(shí)際工作中畫面的識(shí)別。在這個(gè)環(huán)節(jié)利用了目前比較常見的兩種神經(jīng)網(wǎng)絡(luò)算法:支持向量機(jī)(Support Vector Machines, SVM)和多層感知器(Multilayer Perceptron, MLP),我們?cè)谶^程中觀察各自的表現(xiàn),比較它們的結(jié)果并評(píng)價(jià)其差異。

經(jīng)過訓(xùn)練和擬合后的模型可以識(shí)別畫面中的人物,檢測(cè)畫面中人物的腳步落下時(shí)刻,最終將結(jié)果通過腳本導(dǎo)出XML文件,利用非線性編輯工作站實(shí)現(xiàn)腳步聲音素材在時(shí)間線上的自動(dòng)放置。

3數(shù)據(jù)的準(zhǔn)備與數(shù)據(jù)處理流程

訓(xùn)練樣本的獲取使用了GH5相機(jī)以1080p/60fps的格式拍攝下幾種不同狀態(tài)的單個(gè)人物運(yùn)動(dòng)視頻片段,包括了兩種機(jī)位方式以及四種維度的移動(dòng)(表1),以保證人物運(yùn)動(dòng)的多樣性。之所以拍攝單人而非多人,是考慮到在實(shí)驗(yàn)初期盡可能控制一些不必要的變量,實(shí)際上,Openpose對(duì)同一畫面中多人的姿態(tài)判定準(zhǔn)確程度與單人基本沒有差異,如果最終訓(xùn)練結(jié)果模型能適用,則多人畫面的處理僅僅為計(jì)算量的簡(jiǎn)單放大而已。此外,最初考慮60fps的原因是與時(shí)分秒的進(jìn)制數(shù)一致,為某些環(huán)節(jié)中可能出現(xiàn)的人工修正減少一些誤差。但是,這些視頻測(cè)試數(shù)據(jù)量的提高在實(shí)驗(yàn)中對(duì)于模型準(zhǔn)確性反而造成了不必要的擾動(dòng)。經(jīng)過觀察發(fā)現(xiàn)更低的幀率可以一定程度上解決上述兩個(gè)問題,不但提高精度,而且還降低計(jì)算成本,因此選擇將所拍攝畫面的幀率和分辨率等倍縮小成720p/30fps的數(shù)據(jù)。

表1 拍攝內(nèi)容

3.1流程(圖1)

圖1 數(shù)據(jù)處理流程圖

3.2 Openpose框架

使用Openpose對(duì)拍攝畫面進(jìn)行分析和姿勢(shì)判定,設(shè)定最大推斷人數(shù)為1。在過程中人物的骨架信息被嵌入到輸出畫面中(圖2),并以單幀的形式輸出人物骨架的關(guān)節(jié)點(diǎn)信息。推斷結(jié)束后,得到帶有骨架圖像的視頻和連串的json序列,每個(gè)json文件中中包含人數(shù)、身體部位等屬性以及關(guān)節(jié)數(shù)據(jù)的一維矩陣。這個(gè)一維矩陣包含了25個(gè)關(guān)節(jié)點(diǎn)的x,y值絕對(duì)坐標(biāo)值,以及推斷對(duì)應(yīng)關(guān)節(jié)點(diǎn)x,y值的權(quán)重系數(shù),共75個(gè)特征參數(shù)。

圖2 左邊為原始視頻的縮略圖,右邊為經(jīng)過Openpose推斷后視頻的縮略圖

3.3 json序列轉(zhuǎn)化為csv文件

Openpose輸出的數(shù)據(jù)是基于幀的單個(gè)json文件,在訓(xùn)練模型時(shí),需要多次讀取數(shù)據(jù),這會(huì)耗費(fèi)不必要的時(shí)間,同時(shí),當(dāng)把時(shí)序信息作為訓(xùn)練特征的一部分時(shí),單幀輸入的數(shù)據(jù)會(huì)造成不利于模型訓(xùn)練的問題。因此在此次試驗(yàn)過程中,各個(gè)視頻導(dǎo)出的json序列里的一維都被逐個(gè)提取出來,各自存放在一個(gè)csv文件中,最終每個(gè)視頻得到的數(shù)據(jù)序列是一個(gè)二維數(shù)組,行是單幀的關(guān)節(jié)點(diǎn)信息,列為幀序列信息。

圖3 json文件序列轉(zhuǎn)換為單個(gè)csv文件

圖4 關(guān)節(jié)坐標(biāo)序號(hào)對(duì)應(yīng)圖

3.4數(shù)據(jù)標(biāo)注

在得到數(shù)據(jù)之后,首先需要對(duì)原始數(shù)據(jù)進(jìn)行以幀為精度的標(biāo)注,神經(jīng)網(wǎng)絡(luò)才會(huì)根據(jù)標(biāo)注的值去“學(xué)習(xí)”當(dāng)前特征數(shù)據(jù)所處的狀態(tài),并通過前向傳遞與反向傳遞算法擬合這批特征數(shù)據(jù)形成模型。另外需要特別提及一點(diǎn),在此進(jìn)行數(shù)據(jù)標(biāo)注所選用作為標(biāo)注依據(jù)的關(guān)節(jié)點(diǎn),與模型訓(xùn)練過程中所選擇的關(guān)節(jié)點(diǎn)沒有直接的關(guān)系,模型擬合的趨勢(shì)是由特征值自己本身數(shù)據(jù)導(dǎo)向的。

實(shí)現(xiàn)思路如下:將人物的運(yùn)動(dòng)抽象為左腳周期與右腳周期,左腳周期開始于左腳落到地面上的對(duì)應(yīng)幀f,左腳周期結(jié)束于右腳落到地面上的對(duì)應(yīng)幀f,并開始右腳周期,例如剛剛例子中左腳周期的幀數(shù)為n。圖4是骨架關(guān)節(jié)點(diǎn)的號(hào)碼對(duì)應(yīng)圖,本次研究中筆者使用[j~j]來表達(dá)0~24號(hào)(共25個(gè))關(guān)節(jié)點(diǎn)。左腳參照的關(guān)節(jié)點(diǎn)選擇[j,j,j,j,j]作為標(biāo)注依據(jù),右腳參照的關(guān)節(jié)點(diǎn)選擇[j,j,j,j,j]為標(biāo)注依據(jù),當(dāng)左腳[j,j,j,j]關(guān)節(jié)點(diǎn)接觸地面時(shí),開始右腳周期,[j,j,j,j]關(guān)節(jié)點(diǎn)接觸地面時(shí),結(jié)束右腳周期,開始新的左腳周期。左腳周期中所包含的所有幀都用0作為標(biāo)注值,右腳周期中所包含的所有幀都用1作為標(biāo)注值,最終圖像腳步識(shí)別的問題就被簡(jiǎn)化為二分類問題。

通過純圖像識(shí)別關(guān)節(jié)點(diǎn)的位置會(huì)有輕微波動(dòng),在標(biāo)注過程中,所用到的關(guān)節(jié)點(diǎn)都作等權(quán)重處理,所有關(guān)節(jié)點(diǎn)都會(huì)被用于狀態(tài)判別,這樣能縮小姿態(tài)推斷過程中骨架數(shù)據(jù)的輕微波動(dòng)帶來的影響。

圖5 方框內(nèi)為手動(dòng)標(biāo)注內(nèi)容,“1”代表這部分?jǐn)?shù)據(jù)正處于右周期

3.5數(shù)據(jù)預(yù)處理

經(jīng)過Openpose獲得的原始數(shù)據(jù)能提供75個(gè)輸入特征,關(guān)節(jié)點(diǎn)的坐標(biāo)數(shù)值較大,各關(guān)節(jié)點(diǎn)x值的區(qū)間在[0,1280],y值區(qū)間在[0,720],推斷過程中的權(quán)重值c的區(qū)間在[0,1]之間,各點(diǎn)關(guān)系是離散的,這對(duì)模型擬合有極大影響(若不經(jīng)任何處理,直接將原始數(shù)據(jù)用于訓(xùn)練,模型在測(cè)試集上表現(xiàn)正確率為40%~60%)。為了提高模型的精確度,在數(shù)據(jù)輸入之前,需要提前做一些預(yù)備處理,此外,考慮到使用的機(jī)器學(xué)習(xí)模型包括SVM和MLP,這兩者對(duì)輸入特征的數(shù)據(jù)相對(duì)敏感,亦需要人為減少無(wú)用特征。

3.5.1特征提取

在訓(xùn)練開始前,需要預(yù)估某些特征值的作用,并將無(wú)用的特征值刪除。在本次研究中,對(duì)于人物腳步,由Openpose推斷所得的權(quán)重值c并無(wú)用處,經(jīng)過實(shí)驗(yàn)和觀察(可參考本文4.2),代表x值的特征以及頭部的特征對(duì)模型擬合沒有太大的意義,因此也將其刪除。

在本次研究中,筆者并沒有加入深度學(xué)習(xí)的算法,MLP或者SVM算法很難對(duì)畫面內(nèi)部信息進(jìn)行特征提取。每一個(gè)關(guān)節(jié)點(diǎn)都是絕對(duì)的坐標(biāo)值,意味著人物在畫面中從左向右移動(dòng),關(guān)節(jié)點(diǎn)的x值會(huì)逐漸增大,人物在畫面中上下移動(dòng)時(shí),y值會(huì)產(chǎn)生一些噪聲。通過下面的方法,可以將x,y的絕對(duì)坐標(biāo)值轉(zhuǎn)化為相對(duì)坐標(biāo)值:

x=x-x

y=y-y

x表示關(guān)節(jié)點(diǎn)1坐標(biāo)的x值,x表示關(guān)節(jié)點(diǎn)8坐標(biāo)的x值,y表示關(guān)節(jié)點(diǎn)1坐標(biāo)的y值,y表示關(guān)節(jié)點(diǎn)8坐標(biāo)的y值(圖4),x, y表示計(jì)算的出的參照點(diǎn)對(duì)應(yīng)的x,y值,y表示原始絕對(duì)坐標(biāo)值,y表示的是相對(duì)坐標(biāo)值。關(guān)節(jié)點(diǎn)1與關(guān)節(jié)點(diǎn)8的中間連線代表了人物骨架的軀干部分,處于整個(gè)骨架的中心位置,所以將軀干部分的中點(diǎn)設(shè)置為參照點(diǎn)。這種處理方式可以近似看作將人物從畫面中分割出來,并得到各關(guān)節(jié)點(diǎn)于參照點(diǎn)的相對(duì)位置(圖6)。

圖6 將人物從畫面中分割,獲得參照點(diǎn)

3.5.2算數(shù)插值

由于Openpose推斷出人物畫內(nèi)部分的姿態(tài),人物身體部分被遮擋或者超出畫面時(shí),這部分關(guān)節(jié)點(diǎn)的數(shù)值會(huì)被0填充,導(dǎo)致這部分的數(shù)值變成離散值,亦會(huì)影響模型的擬合。故使用以下方法對(duì)缺失幀f進(jìn)行填充:

其中,f表示第n幀的數(shù)值,f表示第n-2幀的數(shù)值,f表示第n+2幀的數(shù)值。需要特別說明的是,在研究階段的初期,希望盡可能研究典型狀態(tài)得到收斂結(jié)果,對(duì)于在長(zhǎng)時(shí)間段的關(guān)鍵點(diǎn)缺失問題暫時(shí)排除在本次研究范圍之外,因此采用了最簡(jiǎn)單的插值算法,只補(bǔ)充2幀以內(nèi)的數(shù)據(jù)缺失。這對(duì)于目前的數(shù)據(jù)集是可行的,但是一旦出現(xiàn)3幀或以上的數(shù)據(jù)缺失,這種降噪方式范圍反而會(huì)給整個(gè)數(shù)據(jù)集加入更多的干擾噪聲。另外,插值算法即使補(bǔ)全了缺失的值,依舊會(huì)對(duì)模型的準(zhǔn)確度產(chǎn)生影響。

3.5.3歸一化

歸一化是一種線性變化,可以將樣本的特征值映射到[-1,1]或[0,1]的區(qū)間內(nèi)。這種變化對(duì)數(shù)據(jù)改變合并不會(huì)造成數(shù)據(jù)失真,還能提高數(shù)據(jù)在模型擬合中的效率,而且這種變換不會(huì)改變?cè)紨?shù)據(jù)的數(shù)值排序。數(shù)值歸一化以后,能加快梯度下降的求解速度,而且避免了因?yàn)樘卣髦颠^大權(quán)重值偏移而導(dǎo)致過擬合。

骨架中的各個(gè)關(guān)節(jié)點(diǎn)對(duì)應(yīng)的坐標(biāo)所在的數(shù)值區(qū)間各不相同,在此研究中,經(jīng)過得到各個(gè)關(guān)節(jié)點(diǎn)與x, y的相對(duì)坐標(biāo)值,例如頭部的坐標(biāo)點(diǎn)和腳步的坐標(biāo)點(diǎn)的相對(duì)距離會(huì)更大,肩部坐標(biāo)點(diǎn)與胯部坐標(biāo)點(diǎn)的相對(duì)距離會(huì)比前者要小,手部的坐標(biāo)點(diǎn)與胸部坐標(biāo)點(diǎn)的相對(duì)距離甚至?xí) 2煌卣鞯臄?shù)值區(qū)間分離過大時(shí),在模型訓(xùn)練的過程中每個(gè)參數(shù)學(xué)到的權(quán)重值很可能會(huì)偏移,所以需要通過歸一化將各個(gè)特征值歸一到一個(gè)相對(duì)數(shù)值比較小的區(qū)間中。

在本次研究中使用了均值歸一化:

方法(1)Mean Normalization

在實(shí)驗(yàn)的過程中還嘗試了另外兩種歸一化方法:

方法(2)Min-Max Scaler

方法(3)Robust Scaler

Robust Scaler用到了四分位數(shù)的思路,Q(m)等于該樣本中所有數(shù)值由小到大排列后排在1/4位置的數(shù)字,Q(m)等于該樣本中所有數(shù)值由小到大排列后排在3/4位置的數(shù)字。

當(dāng)前研究中輸入特征為稠密矩陣,各個(gè)輸入特征數(shù)值差距比較大,后兩種歸一化方法在原理上不太適合,且經(jīng)過多次對(duì)比測(cè)試后,發(fā)現(xiàn)使用均值歸一化處理過的數(shù)據(jù)做訓(xùn)練的模型,推斷結(jié)果的正確率平均高出2%~3%。

另一方面,在畫面中人物也會(huì)在畫面縱深方向移動(dòng),這意味著在同一段視頻內(nèi),如果人物在其中是縱深移動(dòng),點(diǎn)與點(diǎn)的絕對(duì)距離會(huì)根據(jù)近大遠(yuǎn)小的規(guī)則變化,這相當(dāng)于也在時(shí)序軸上加入了不可忽略的噪聲。在輸入數(shù)據(jù)之前,通過如下一種歸一化方法將這部分噪聲去除:

|jj|表示關(guān)節(jié)點(diǎn)1、8之間的距離,也就是軀干部分的長(zhǎng)度。在畫面內(nèi)人物遠(yuǎn)近移動(dòng)時(shí),身體各部分可視作在同一焦平面上,即各個(gè)部分點(diǎn)與點(diǎn)之間的距離比值幾乎是一致的,因此可將|jj|用作縮放系數(shù)。每一幀各個(gè)點(diǎn)與參考點(diǎn)的距離經(jīng)過除法運(yùn)算以后,由于遠(yuǎn)近而帶來的數(shù)值波動(dòng)能較好消除。

4模型選擇與訓(xùn)練

4.1訓(xùn)練工具與模型的選擇

本次試驗(yàn)中,筆者選擇scikit-learn這個(gè)機(jī)器學(xué)習(xí)庫(kù)。scikit-learn是一個(gè)python的機(jī)器學(xué)習(xí)庫(kù)(以下簡(jiǎn)稱為sk-learn),提供了多種機(jī)器學(xué)習(xí)模型以及數(shù)據(jù)處理方法。在訓(xùn)練中我們從sk-learn庫(kù)中選取了兩種機(jī)器學(xué)習(xí)任務(wù)中較為常用的模型:支持向量機(jī)(SVM)和多層感知器(MLP)。此外,筆者借助numpy庫(kù)的numpy.array作為數(shù)據(jù)在訓(xùn)練過程中的承載方式,所有的操作都以numpy.array的形式操作。

訓(xùn)練過程中以一幀作為一個(gè)單位樣本,目的在于通過每一幀的關(guān)節(jié)坐標(biāo)信息來判定畫中人物腳步所在的運(yùn)動(dòng)周期是左還是右。在訓(xùn)練過程中將人物的運(yùn)動(dòng)方式分為以下幾類分別進(jìn)行訓(xùn)練:

(1)固定機(jī)位,四向人物位置固定的腳步運(yùn)動(dòng);

(2)固定機(jī)位,人物向縱深位置的腳步運(yùn)動(dòng);

(3)固定機(jī)位,人物在畫面中從左向右/從右向左移動(dòng);

(4)機(jī)器跟隨人物,人物正面向前移動(dòng);

(5)機(jī)器跟隨人物,人物背面向前移動(dòng);

(6)機(jī)器跟隨人物,人物側(cè)面向前移動(dòng)。

4.1.1支持向量機(jī)(SVM)

SVM是在分類與回歸分析中分析數(shù)據(jù)的監(jiān)督式模型與學(xué)習(xí)的二元分類的廣義線性分類器,它的決策邊界是對(duì)學(xué)習(xí)的樣本求解最大邊距超平面。學(xué)習(xí)權(quán)重值分別選擇[0.1,1,10,100,200]。

4.1.2多層感知器(MLP)

MLP是人工神經(jīng)網(wǎng)絡(luò)的一種,使用計(jì)算機(jī)構(gòu)成一個(gè)一個(gè)的神經(jīng)元,多個(gè)單元組成單層的神經(jīng)層,再由多個(gè)神經(jīng)層連結(jié)起來組成多層的神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)思路來源于人的大腦皮層,以此模仿人腦的思考方式。

在全連接神經(jīng)網(wǎng)絡(luò)的實(shí)驗(yàn)中,共有20個(gè)輸入單元,3個(gè)隱藏層,各個(gè)隱藏層的神經(jīng)元個(gè)數(shù)分別為[20,20,10],輸出單元為1個(gè),激活函數(shù)為ReLU,學(xué)習(xí)速率分別選擇a= [0.001,0.01,0.1,0.5]。由于樣本數(shù)量比較少,在訓(xùn)練過程中一次性將所有的樣本都用于模型的訓(xùn)練,不設(shè)置批次大小。

4.2訓(xùn)練流程

在訓(xùn)練開始前,所有的數(shù)據(jù)都會(huì)采用邏輯回歸模型用于基本二分類收斂測(cè)試,首先觀察通過邏輯回歸處理的數(shù)據(jù)集模型是否有收斂?jī)A向,確認(rèn)有數(shù)據(jù)集有收斂?jī)A向,再考慮進(jìn)行剩余模型的訓(xùn)練。由于實(shí)驗(yàn)是二分類問題,正確率高于50%+10%即視為有收斂?jī)A向。

在訓(xùn)練開始時(shí),先將csv文件導(dǎo)入到python項(xiàng)目中,使用numpy.array構(gòu)建一個(gè)矩陣承載數(shù)據(jù),矩陣的結(jié)構(gòu)與csv文件數(shù)據(jù)的結(jié)構(gòu)是一致的,行為單幀的關(guān)節(jié)點(diǎn)信息,列為幀序列信息。

sk-learn提供的MLP與SVM(在SVC類下)方法獲得訓(xùn)練數(shù)據(jù)的方式是一樣的,因此不需要單獨(dú)為這兩種模型重新構(gòu)建數(shù)據(jù)結(jié)構(gòu)。模型會(huì)將每一行視為單幀樣本,將每一行的各個(gè)元素視為一個(gè)輸入特征,當(dāng)?shù)谝粋€(gè)樣本擬合結(jié)束后,會(huì)自動(dòng)跳入到下一個(gè)單幀樣本,讀取下一個(gè)樣本的元素。我們將已標(biāo)注的數(shù)據(jù)集分成兩類:一類叫做訓(xùn)練集,另一類叫做測(cè)試集。訓(xùn)練集用于MLP與SVM模型的訓(xùn)練,測(cè)試集用于評(píng)判模型擬合的效果,得出正確率的值可以作為預(yù)處理方法和模型魯棒性優(yōu)劣的參考。

4.3幾種不同的思路

在模型訓(xùn)練過程中,嘗試了組合不同預(yù)處理方法的訓(xùn)練集。各種組合對(duì)于訓(xùn)練結(jié)果的正確率影響不同,其中包括對(duì)x,y輸入特征和各個(gè)關(guān)節(jié)點(diǎn)選擇的取舍,取舍原因在文中3.5提及。根據(jù)觀察判斷,與下半身相關(guān)的關(guān)節(jié)點(diǎn)會(huì)對(duì)結(jié)果產(chǎn)生直接影響,而腳步運(yùn)動(dòng)在畫面中也可以抽象為垂直運(yùn)動(dòng),亦可以預(yù)測(cè)y值會(huì)比x值重要。根據(jù)多次實(shí)驗(yàn)得到的結(jié)果確實(shí)可觀察得出,經(jīng)過降噪與歸一化后的數(shù)據(jù)用于處理有利于模型擬合。

在實(shí)驗(yàn)中所用的數(shù)據(jù)表示見表2。

表2 縮寫及對(duì)應(yīng)輸入特征關(guān)節(jié)點(diǎn)

下文列舉出幾個(gè)數(shù)據(jù)選擇和處理的典型:

4.3.1不經(jīng)過任何預(yù)處理,特征提取

圖7

不經(jīng)過任何數(shù)據(jù)預(yù)處理,輸入特征為[x,y],[heel joints]/[x,y],[ankle joints],在固定機(jī)位的所有組的測(cè)試集表現(xiàn)上正確率平均在92%,但是在跟隨機(jī)位的所有組的測(cè)試集表現(xiàn)上正確率平均只有65%。這意味著這個(gè)模型對(duì)于任何運(yùn)動(dòng)場(chǎng)景的泛化能力都比較差,而且如果一旦所選的這兩個(gè)關(guān)節(jié)點(diǎn)信息因?yàn)檎趽跤写蠖稳笔r(shí),模型就失去了推斷的能力。

4.3.2只進(jìn)行歸一化,特征提取

表3 不同關(guān)節(jié)點(diǎn)的準(zhǔn)確率

輸入特征為[x,y], [10 joints]/[8 joints]/[left/right joints]/[ankle/heel joints],采取均值歸一化策略,訓(xùn)練出來的模型,雖然在固定機(jī)位所有組訓(xùn)練得到的平均正確率區(qū)間在[79%-91%],但是在跟隨機(jī)位所有組的表現(xiàn)能力不佳,平均正確率見表3。

其正確率甚至低于邏輯回歸的分類正確率,故舍棄這個(gè)方法。

4.3.3部分降噪,歸一化、特征提取、刪除x值

輸入特征為[x,y]/[y], [20 joints],插值補(bǔ)全空值,采取均值歸一化策略,訓(xùn)練出來的兩個(gè)模型中,包含[x,y]的兩個(gè)值的模型在人物出現(xiàn)畫面左右移動(dòng)的模型里,正確率只有40%,即使是在固定機(jī)位縱深運(yùn)動(dòng)中人物也會(huì)有左右偏移,模型的精確率相比之前降低了20%。但是這些問題都伴隨[x]值被刪除得以改善,那些正確率只有40%模型,在刪除[x]輸入后重新訓(xùn)練,正確率回到了75%,而固定機(jī)位縱深運(yùn)動(dòng)中由于人物帶來20%下降也被消除。故在本階段研究中將[x]值刪除。

4.3.4完全降噪,歸一化、特征提取、刪除x值

考慮到之前所有的訓(xùn)練測(cè)試都沒有去除人物在畫面中所在位置對(duì)數(shù)據(jù)帶來的影響,因此才加入了新的降噪方法(見3.5.2的第二個(gè)降噪方法)。輸入特征為[y], [20 joints],插值補(bǔ)全空值,采取均值歸一化策略,訓(xùn)練出來的模型對(duì)于模型的正確率提高了10%左右。

圖7展示了經(jīng)過各步數(shù)據(jù)預(yù)處理方法數(shù)據(jù)精度提高的變化過程,順序?yàn)閺淖笾劣?,從上至下,每個(gè)圖標(biāo)縱坐標(biāo)為進(jìn)經(jīng)過每一步精度收斂后的值,橫坐標(biāo)為時(shí)間(幀)。各圖中不同顏色的曲線代表不同特征值的變化波動(dòng)范圍。

4.4訓(xùn)練結(jié)果以及精確度

最終方案(參照上文4.3.4)在不同的學(xué)習(xí)速率/學(xué)習(xí)權(quán)重值下,訓(xùn)練得到的結(jié)果除去人物沿縱深位置人物運(yùn)動(dòng)的情況正確率只有70%~80%以外,在別的典型案例中,模型檢測(cè)到正確的腳步運(yùn)動(dòng)周期準(zhǔn)確率都在90%左右。

筆者將已標(biāo)注的數(shù)據(jù)集分成兩類:一類叫做訓(xùn)練集,另一類叫做測(cè)試集。訓(xùn)練集用于MLP與SVM模型的訓(xùn)練,測(cè)試集被用于評(píng)判模型擬合的效果,得出正確率的值可以作為預(yù)處理方法和模型魯棒性優(yōu)劣的參考。其結(jié)果如圖8所示:

圖8

可以發(fā)現(xiàn),不同的學(xué)習(xí)權(quán)重值c(SVM)和不同的學(xué)習(xí)速率a(MLP)訓(xùn)練出的模型會(huì)對(duì)結(jié)果造成比較大的影響。SVM模型在學(xué)習(xí)權(quán)重值c為100時(shí)訓(xùn)練完成的模型,對(duì)于不同狀態(tài)運(yùn)動(dòng)的綜合表現(xiàn)最好。MLP模型在學(xué)習(xí)權(quán)重值a為0.1時(shí)訓(xùn)練完成的模型,對(duì)于不同狀態(tài)運(yùn)動(dòng)的綜合表現(xiàn)最好。

5部署思路

5.1腳步片段素材準(zhǔn)備

在本次研究中,尚未嘗試使用自動(dòng)的方法獲得腳步素材的片段,所以需要人工先從素材庫(kù)中找出與畫面中地面材質(zhì)、鞋子材質(zhì)符合的腳步素材,并將其切片分割為左、右兩類的素材,對(duì)素材文件進(jìn)行一致性命名,同種材質(zhì)單只腳保留20個(gè)樣本。

5.2利用模型輸出推斷數(shù)據(jù)的結(jié)果自動(dòng)編寫XML序列

模型推斷得出的數(shù)據(jù)結(jié)果分別為0和1,分別代表左腳周期與右腳周期,通過編寫一個(gè)腳本,使得在左右周期切換時(shí)標(biāo)注并記錄對(duì)應(yīng)的幀序列幀數(shù),這可以得到左右腳對(duì)應(yīng)落下時(shí)的對(duì)應(yīng)幀。將幀數(shù)序列轉(zhuǎn)換為以nn(frame) /30(frame) s的格式,這樣就可以得到一個(gè)包含左右腳交替落下的時(shí)間序列,將時(shí)間序列編碼成XML序列,同時(shí)XML序列中還包含了腳步素材的路徑,以及素材本身的部分元數(shù)據(jù)。

程序選擇腳步素材的過程是隨機(jī)過程,將單只腳素材映射為0到19的序列,當(dāng)程序檢測(cè)到需要左腳素材時(shí),程序會(huì)使用random方法去從0-19中挑選出一個(gè)數(shù)值,數(shù)值對(duì)應(yīng)的腳步素材的名字與各腳步起始時(shí)間點(diǎn)會(huì)被添加到XML文件中,往后右腳素材同理重復(fù)一遍次流程,如此往復(fù)。

5.3 XML序列綁定腳步片段導(dǎo)入時(shí)間線

將XML序列導(dǎo)入到支持XML導(dǎo)入的工作站中,以DaVinci Resovle這個(gè)軟件為例,軟件會(huì)自動(dòng)將XML中的元數(shù)據(jù)信息,從對(duì)應(yīng)文件夾中找出對(duì)應(yīng)的聲音素材文件,自動(dòng)排布在時(shí)間線上,完成后再利用DaVinci的媒體文件導(dǎo)出功能,將時(shí)間線導(dǎo)出為aaf、omf交換文件格式,就可以進(jìn)入正常的工業(yè)流程了。

6實(shí)驗(yàn)的局限與展望

本次實(shí)驗(yàn)的不足主要體現(xiàn)在以下三個(gè)方面:

首先,在判定的過程中,需要事先采用人工的方式,考慮人物不同運(yùn)動(dòng)狀態(tài)以及攝影機(jī)運(yùn)動(dòng)的狀態(tài),分別進(jìn)行模型的訓(xùn)練才能保證模型用于預(yù)測(cè)時(shí)的精度,自動(dòng)化和智能化程度尚待進(jìn)一步提高。

其二,由于聲音素材的現(xiàn)狀,智能化元數(shù)據(jù)標(biāo)注還非常不完善,所以在實(shí)際應(yīng)用環(huán)節(jié)上還需要通過手動(dòng)指派素材類型的XML文件,很大程度上失去了大規(guī)模工業(yè)化的實(shí)用性。

第三,由于目前使用的神經(jīng)網(wǎng)絡(luò)相對(duì)比較簡(jiǎn)單,自發(fā)提取骨架特征難以實(shí)現(xiàn),也從一定程度上影響了這個(gè)方法的大規(guī)模部署。

因此,在后續(xù)的研究中,可能會(huì)考慮在以下幾個(gè)方面進(jìn)行優(yōu)化和改進(jìn):

首先,更換神經(jīng)網(wǎng)絡(luò)模型,大幅度提升性能,如使用GCN網(wǎng)絡(luò)使得計(jì)算機(jī)能“讀懂”骨架每一部分的含義,以及各部分對(duì)腳步落下影響大小的權(quán)重值,這樣能大幅提升模型的魯棒性以及精確度,當(dāng)骨架某些部分被遮蔽時(shí),計(jì)算機(jī)也可以依靠別的部分去推斷腳步落下的狀態(tài)。另一方面,GCN網(wǎng)絡(luò)還能根據(jù)骨架進(jìn)行別的動(dòng)作的判定。

第二,對(duì)于畫面中識(shí)別對(duì)象長(zhǎng)時(shí)間消失(如某一只腳)而造成的數(shù)據(jù)缺失,因人的步伐頻率相對(duì)固定,除了采用前一個(gè)方法外,其實(shí)還可以嘗試只使用一只腳作為依據(jù),直接機(jī)算另一周期所包含的幀。

注釋

①ImageNet: A large-scale hierarchical image database. ImageNet: 一個(gè)大規(guī)模層級(jí)的圖像數(shù)據(jù)庫(kù) Jia DengSocher, Li Fei-Fei, Wei Dong, Kai Li and Li-Jia LiR. Miami, FL, USA: IEEE Computer Society, 2009.[C]2009 IEEE Conference on Computer Vision and Pattern Recognition(CVPR). pp. 248-255.

②Scikit-learn: Machine Learning in Python. Pedregosaand Varoquaux, 開源項(xiàng)目G. and Gramfort, A. and Michel, V. and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P. and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.F. 2011, Journal of Machine Learning Research, pp.2825-2830.

③nn代表在整個(gè)序列的所在幀數(shù),30代表視頻的幀速率,s為單位(秒)。

猜你喜歡
關(guān)節(jié)點(diǎn)腳步正確率
基于深度學(xué)習(xí)和視覺檢測(cè)的地鐵違規(guī)行為預(yù)警系統(tǒng)研究與應(yīng)用
放牧遠(yuǎn)方的腳步
鴨綠江(2021年35期)2021-04-19 12:24:08
關(guān)節(jié)點(diǎn)連接歷史圖與卷積神經(jīng)網(wǎng)絡(luò)結(jié)合的雙人交互動(dòng)作識(shí)別
門診分診服務(wù)態(tài)度與正確率對(duì)護(hù)患關(guān)系的影響
春的腳步
四季的腳步
搞好新形勢(shì)下軍營(yíng)美術(shù)活動(dòng)需把握的關(guān)節(jié)點(diǎn)
生意
品管圈活動(dòng)在提高介入手術(shù)安全核查正確率中的應(yīng)用
生意
上杭县| 陵川县| 英吉沙县| 贞丰县| 上虞市| 南开区| 军事| 岐山县| 广宁县| 新密市| 沁源县| 安达市| 沅陵县| 炉霍县| 安平县| 仙游县| 涡阳县| 衡阳县| 思茅市| 甘德县| 卢龙县| 图木舒克市| 昆山市| 古田县| 大同县| 航空| 临朐县| 无为县| 社会| 小金县| 天长市| 洛南县| 青阳县| 吴堡县| 安乡县| 鄂尔多斯市| 汶川县| 哈巴河县| 调兵山市| 广州市| 蕉岭县|