版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
內(nèi)容摘要基于深度學(xué)習(xí)的手勢(shì)識(shí)別處理計(jì)算機(jī)視覺領(lǐng)域中的關(guān)鍵技術(shù)之一,深度學(xué)習(xí)技術(shù)在近20年得到了快速的發(fā)展,其中在2014年就提出了VGG和GoogleNet這兩大高精度高準(zhǔn)確率的網(wǎng)絡(luò)模型。手勢(shì)識(shí)別是在圖像中捕抓到手部關(guān)鍵信息再通過手勢(shì)給機(jī)器傳達(dá)信息。手勢(shì)識(shí)別大多數(shù)情況下都是在實(shí)時(shí)視頻作為應(yīng)用環(huán)境,這就對(duì)模型有著實(shí)時(shí)處理和準(zhǔn)確性這兩個(gè)基本要求。隨著科技的發(fā)展和5G時(shí)代的到來,身處于深度學(xué)習(xí)領(lǐng)域的手勢(shì)識(shí)別技術(shù)越來越完善,在技術(shù)層面上相對(duì)現(xiàn)在一定會(huì)有了很大的進(jìn)步,但同時(shí)也面臨更加深層的困難,例如各個(gè)種群的人類膚色、背景復(fù)雜度、光照條件、多人情況下的手部重疊這類打擊性很大的干預(yù)因素,是每個(gè)開發(fā)手勢(shì)識(shí)別技術(shù)人員都會(huì)面臨的難題。本次論文將以近年來較為流行的深度學(xué)習(xí)領(lǐng)域中的卷積神經(jīng)網(wǎng)絡(luò)等等神經(jīng)算法展開,將獲取到的手部信息關(guān)鍵點(diǎn)給予邏輯處理得到準(zhǔn)確無誤的信息。關(guān)鍵詞:手勢(shì)識(shí)別深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)手部關(guān)鍵信息點(diǎn)AbstractOneofthekeytechnologiesinthefieldofcomputervisioningesturerecognitionprocessingbasedondeeplearning,Deeplearningtechnologyhasdevelopedrapidlyinthepast20years.Amongthem,thetwohigh-precisionandhigh-accuracynetworkmodelsofVGGandGoogleNetwereproposedin2014.Gesturerecognitionistocapturethekeyinformationofthehandintheimageandthenconveytheinformationtothemachinethroughthegesture.Gesturerecognitionisinmostcasesusingreal-timevideoastheapplicationenvironment,whichhastwobasicrequirementsforreal-timeprocessingandaccuracyofthemodel.Withthedevelopmentoftechnologyandtheadventofthe5Gera,thegesturerecognitiontechnologyinthefieldofdeeplearningisbecomingmoreandmoreperfect.Theremustbealotofprogressonthetechnicallevelcomparedwiththepresent,butitalsofacesdeeperdifficulties,suchasThestrikinginterventionfactorssuchashumanskincolor,backgroundcomplexity,lightingconditions,andhandoverlapinthecaseofmultiplepeoplearechallengesfacedbyeveryonewhodevelopsgesturerecognitiontechnology.Thispaperwillbedevelopedwithneuralalgorithmssuchasconvolutionalneuralnetworks,whicharemorepopularinthefieldofdeeplearninginrecentyears,andthekeypointsofthehandinformationobtainedwillbelogicallyprocessedtoobtainaccurateinformation.
Keywords:gesturerecognitiondeeplearningconvolutionalneuralnetworkkeyinformationpointsofhand目錄第一章緒論 第一章緒論1.1課堂背景及研究目的和意義 從2000年以來深度學(xué)習(xí)理論和技術(shù)逐漸完善,人工智能中的手勢(shì)識(shí)別這項(xiàng)技術(shù)從被提出開始就一直受到來自不同職業(yè)群體的廣泛關(guān)注。其中的商業(yè)價(jià)值更是讓人垂涎欲滴,以至于久久霸占著大眾的視野同時(shí)也一直備受科研人員的關(guān)注。手勢(shì)識(shí)別之所以一直熱度不減。這主要得益于兩個(gè)原因,第一個(gè)原因是理論和科技已經(jīng)能足夠支撐起手勢(shì)識(shí)別這個(gè)項(xiàng)目。第二個(gè)原因是手勢(shì)交流是除了語言交流外第二種便捷交流的方式,以至于科普由手勢(shì)識(shí)別衍生的產(chǎn)品的困難程度遠(yuǎn)遠(yuǎn)低于同為人工智能的其他技術(shù)產(chǎn)品。現(xiàn)如今該技術(shù)隨著時(shí)代的發(fā)展已經(jīng)越來越成熟,已經(jīng)開始運(yùn)用在廣泛的領(lǐng)域中有汽車行業(yè)、消費(fèi)電子領(lǐng)域、運(yùn)輸部門、游戲行業(yè)、智能手機(jī)、家庭自動(dòng)化等等。其中在手機(jī)領(lǐng)域中的華為已將該手勢(shì)識(shí)別技術(shù)帶入Mate30系列手機(jī)當(dāng)中,可見其商業(yè)潛力!但是手勢(shì)識(shí)別這項(xiàng)技術(shù)一直有一個(gè)或多或少會(huì)困擾開發(fā)人員的難點(diǎn),因?yàn)闊o接觸手勢(shì)識(shí)別技術(shù)是主要依靠光學(xué)等進(jìn)行手勢(shì)探測(cè),當(dāng)光照程度不良好時(shí)、背景復(fù)雜時(shí)或像素值于手部像素接近時(shí)、手部被物品遮擋時(shí)等等都會(huì)給模型造成相當(dāng)大的干擾。盡管如此,這些難點(diǎn)都可以去避免和修復(fù)。優(yōu)化數(shù)據(jù)和網(wǎng)絡(luò)等處理,例如進(jìn)行灰度化和色域轉(zhuǎn)換、膚色切割、閾值化、手部關(guān)鍵信息點(diǎn)、判斷邏輯化、神經(jīng)網(wǎng)絡(luò)層進(jìn)行調(diào)參和驗(yàn)證。對(duì)設(shè)備進(jìn)行升級(jí),例如給攝像頭補(bǔ)光、使用RPG高清攝像頭等等。都可以達(dá)到理想的效果。以至于人們依然十分樂意從這個(gè)研究方向進(jìn)行切入。本次實(shí)驗(yàn)我也會(huì)利用到上述講到的理論技術(shù)進(jìn)行研究達(dá)到在各種環(huán)境下的最優(yōu)化效果。最后5G時(shí)代的來臨一定是屬于人工智能大樹下手勢(shì)識(shí)別的一股春風(fēng),其商業(yè)用途之廣、惠及人群之多不言而喻。其實(shí)這句話早已被驗(yàn)證,而我相信凡是一項(xiàng)技術(shù)被越來越多的人關(guān)注時(shí),無論他是處于何種目的所驅(qū)動(dòng),都說明了一點(diǎn)它是當(dāng)下人們最需要的一項(xiàng)功能系統(tǒng)。1.2手勢(shì)識(shí)別研究現(xiàn)狀隨著科技和經(jīng)濟(jì)的發(fā)展,使用計(jì)算機(jī)的用戶還是廣度都有了很大的提升。屬于人機(jī)交互領(lǐng)域的手勢(shì)識(shí)別也在這20年間逐漸走向了大眾的視野。在這里我將從實(shí)現(xiàn)手勢(shì)識(shí)別的技術(shù)和前人所研究的成果進(jìn)行一個(gè)概況。手勢(shì)識(shí)別在系統(tǒng)中主要包括三個(gè)基本階段檢測(cè),跟蹤和識(shí)別,就目前來看實(shí)現(xiàn)手勢(shì)識(shí)別最主流的技術(shù)是利用深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)對(duì)目的數(shù)據(jù)進(jìn)行關(guān)鍵信息提取以及訓(xùn)練。但在這項(xiàng)技術(shù)的早期是難以做到讓人滿意的效果,主要的原因是當(dāng)時(shí)的技術(shù)處于起步階段和計(jì)算機(jī)綜合能力有限所限制的。隨著時(shí)代的發(fā)展,理論越發(fā)完善的同時(shí)和計(jì)算機(jī)的綜合能力有著顯著提升,在2014年就提出了GoogleNet和Vgg這種深層次和高參數(shù)量特性的網(wǎng)絡(luò),而這種網(wǎng)絡(luò)帶來的就是高準(zhǔn)確性。而這一切在深度學(xué)習(xí)領(lǐng)域種取得的成功主要原因是這項(xiàng)技術(shù)引起了眾多廣泛的關(guān)注。在2002年Bretzner[1]等人提出的使用RGB攝像頭對(duì)手部進(jìn)行多尺寸特征收集。2010年沙亮[2]等人研究了基于無標(biāo)記全手勢(shì)視覺的人機(jī)交互技術(shù),并提供了相應(yīng)的解決方案。2011年微軟公司[3]公布了Kinect,使用有紅外線攝像頭對(duì)手勢(shì)進(jìn)行識(shí)別和跟蹤。2015年江南大學(xué)的姜克[4]等人基于Kinect的研究實(shí)現(xiàn)了3D手勢(shì)識(shí)別2015年,谷歌ATAP部門[5]公布了ProjectSoli,它是采用了微小型雷達(dá)來識(shí)別手勢(shì)。手勢(shì)識(shí)別這項(xiàng)技術(shù)的進(jìn)步得益于的深度學(xué)習(xí)的發(fā)展,正所謂工欲善其事必先利其器。而輸入的數(shù)據(jù)也由最初的2D逐漸變?yōu)?D、準(zhǔn)確度和實(shí)時(shí)性也在逐漸升高。放眼看去,手勢(shì)識(shí)別隨著時(shí)間的向前、科技的發(fā)展,一路推陳出新。1.3主要研究?jī)?nèi)容及論文結(jié)構(gòu)本文共分為五章,具體結(jié)構(gòu)如下:緒論。主要介紹在現(xiàn)階段手勢(shì)識(shí)別的研究背景、目的和意義,研究現(xiàn)狀、社會(huì)價(jià)值,并介紹本文的組織結(jié)構(gòu)膚色分割,主要解釋YCrCb的作用和針對(duì)正常黃種人的膚色的范圍進(jìn)行分割。卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)理論[6]。介紹了卷積神經(jīng)網(wǎng)絡(luò)主要組成部分的理論知識(shí),簡(jiǎn)要闡明卷積神經(jīng)網(wǎng)絡(luò)的相關(guān)算法,并在手勢(shì)識(shí)別中起到的作用。GoogleNet在手勢(shì)識(shí)別上的應(yīng)用,這一節(jié)將主要關(guān)注模型和實(shí)現(xiàn)手勢(shì)識(shí)別的細(xì)節(jié),并為了清晰整個(gè)過程會(huì)繪畫出流程圖??偨Y(jié),在本章中對(duì)本次論文做出總結(jié)和引用的其他論文,并提出存在的問題和改進(jìn)的方向,且希望日后能對(duì)其中做出完善。此外對(duì)我有過幫助的人將表示感謝。第二章膚色切割2.1YCrCb顏色空間其實(shí)預(yù)處理對(duì)手部進(jìn)行膚色切割時(shí)可以用的色域不止一種,相信有所了解的人也知道這一點(diǎn),本次論文將使用YCrCb[7]空間。一般的圖像都是基于RGB空間的,在RGB空間里皮膚會(huì)受亮度影響相當(dāng)大,當(dāng)亮度足夠好時(shí)膚色可以在正常的范圍內(nèi),但是亮度低時(shí)膚色就無法呈現(xiàn)出來。因此我們需要將膚色和亮度分離開來,也就是說圖像在此空間時(shí)膚色點(diǎn)是離散的點(diǎn)。中間嵌有很多的非膚色,這為膚色區(qū)域標(biāo)定帶來了難題。如果把RGB轉(zhuǎn)為YCrCb空間的話,該問題就可以較為輕松的解決掉。YCrCb又稱為YUV,之所以使用該色域空間是因?yàn)樗軐⒘炼群蜕确蛛x開來,這也是RGB空間難以處理的一點(diǎn)。圖2-1梯度下降示例圖上圖2-1中Y表示為亮度(Luminance或Luma),通俗的講就是灰階值。而cr和cb表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的色彩。其中,cr和cb它們兩個(gè)受亮度的影響很小。因此這就是我選用YCrCb而不是使用其他顏色空間進(jìn)行膚色檢測(cè)的依據(jù),此外正常的黃種人的Cr分量大約在140~175之間,而Cb分量大約在100~120之間。這也就為后續(xù)的閾值化提供了很好的切入點(diǎn)。當(dāng)然我這種做法也有很明顯的缺點(diǎn),因?yàn)槲覀兪菍D片的RGB顏色空間轉(zhuǎn)換為YCrCb空間,如果圖片在RGB空間時(shí)由于受到了各種因素的影響導(dǎo)致膚色過于差勁,那么將其轉(zhuǎn)換為YCrCb空間也是無用之舉。所以這種算法還是無法完全避光照的強(qiáng)度等因素產(chǎn)生的影響,因此不算特別完美的算法。當(dāng)然如果該系統(tǒng)設(shè)備將來會(huì)應(yīng)用到特殊的環(huán)境下的話則需要加上濾波操作,例如中值濾波等等,效果會(huì)更好。2.2圖像閾值化在符合某種人為定義的規(guī)則之下的像素點(diǎn)便稱之為像素點(diǎn)分布規(guī)律。圖像閾值化就是利用了圖像素點(diǎn)分布規(guī)律進(jìn)行切割的。所謂的閾值化往簡(jiǎn)單方向說就是劃分成黑和白,通過設(shè)定一個(gè)標(biāo)準(zhǔn)如果該像素點(diǎn)符合這個(gè)標(biāo)準(zhǔn)則設(shè)置為白或不變,如果像素點(diǎn)不符合這個(gè)標(biāo)準(zhǔn)就設(shè)置為黑,這就是本次閾值化的大致原理。設(shè)f(i,j)表示圖像中的像素值區(qū)間[i,j],而i和j代表著正常亞洲人的像素值。當(dāng)像素值落在[i,j]之間就設(shè)置為255(白色),如果不在此區(qū)間設(shè)置為0(黑色)對(duì)圖像進(jìn)行像素點(diǎn)分割大致可以分為三步。第一步,在實(shí)現(xiàn)閾值化之前先讀取圖片,并保存在一個(gè)變量名為frame中,frame變量的類型為numpy.ndarray。這一步的目的是獲取整張圖像的像素值。為后續(xù)判斷和修改提供原材料。第二步,利用opencv庫(kù)中cvtColor函數(shù)將frame變量將RGB空間轉(zhuǎn)換成YCrCb空間。并單獨(dú)取出Cr和Cb兩個(gè)變量出來。第三步,我沒有使用opencv庫(kù)中的內(nèi)置閾值化函數(shù),而是自己利用for7if對(duì)該圖像進(jìn)行處邏輯理,當(dāng)Cr變量處于133和175區(qū)間之間并且Cb變量處于77和127區(qū)間之間時(shí)像素點(diǎn),其值不變(在此區(qū)間的像素值是正常亞洲人膚色的像素值,保留不變),而不在此區(qū)間的像素值統(tǒng)一設(shè)置為0(其效果為黑色)。效果如下(圖2-2):圖2-2閾值化效果圖經(jīng)過閾值化處理后的圖像僅保留了手部原始圖像且其余背景均大致被剔除。這一步的主要目的是將不必要的圖像噪音點(diǎn)盡可能的除掉,為后續(xù)處理提供最干凈的數(shù)據(jù)。當(dāng)然將圖像數(shù)據(jù)交付給神經(jīng)層時(shí)還需要將圖像灰度化,把RGB圖像的三層變?yōu)榛叶然瘍蓪?,以減少神經(jīng)層不必要的計(jì)算壓力。但是這樣做也不能完全不免無噪音的情況,因?yàn)楹谏南袼攸c(diǎn)它其實(shí)也是一個(gè)噪音,只不過被我們統(tǒng)一化了而已。第三章神經(jīng)網(wǎng)絡(luò)理論3.1向前傳播一個(gè)剛剛建立好的神經(jīng)網(wǎng)絡(luò),在還沒輸入數(shù)據(jù)去運(yùn)行訓(xùn)練時(shí),各個(gè)神經(jīng)元之間的參數(shù)是隨機(jī)的,前向傳播過程,向輸入層輸入特征向量時(shí),經(jīng)過權(quán)重參數(shù)w和偏置參數(shù)b的處理后再經(jīng)過一個(gè)激活函數(shù)處理得到中間隱含層1,同理再經(jīng)過第二個(gè)參數(shù)處理和激活函數(shù)得到中間隱含層2,依次類推。最后通過輸出處理得到輸出的過程。圖3-1前向傳播示意圖卷積神經(jīng)網(wǎng)絡(luò)的前向傳播需要三個(gè)信息,其一是卷積核提取的特征向量,其二是神經(jīng)元的連接關(guān)系(包含了卷積核、池化層和神經(jīng)元與神經(jīng)元之間的關(guān)系等等),其三是神經(jīng)網(wǎng)絡(luò)各神經(jīng)元的參數(shù),其中包括權(quán)重w和偏置b。3.2向梯度下降和方向傳播算法在說后向傳播之前有必要的先講一下梯度下降,因?yàn)樘荻认陆?gradientdescent)和反向傳播就像連體嬰兒一樣缺一不可的。在機(jī)器學(xué)習(xí)中應(yīng)用十分的廣泛,它的主要目的是通過迭代找到目標(biāo)函數(shù)的最小值,或者收斂到極小值。3.2.1梯度下降算法梯度下降算法的基本思想可以類比為一個(gè)人在山頂?shù)缴降椎倪^程。首先,我們有一個(gè)可微分的函數(shù)。這個(gè)函數(shù)就代表著一座山。我們的目標(biāo)就是找到這個(gè)函數(shù)的最小值,也就是山底??梢韵胂笠幌?,一般而言最快下山的方式就是找到當(dāng)前位置最陡峭的方向并沿著這個(gè)方向下去。對(duì)于函數(shù)而言有三種策略去實(shí)現(xiàn)。方法1:隨機(jī)尋找(不太實(shí)用),類似暴力算法一樣用許多參數(shù)一一帶入,然后從里面選一個(gè)損失函數(shù)做小的參數(shù)組,這種做法費(fèi)時(shí)費(fèi)力且效果不理想。方法2:隨機(jī)局部搜索,在現(xiàn)有的參數(shù)基礎(chǔ)上,隨機(jī)搜索一下周邊的參數(shù)嗎,查看有沒有比現(xiàn)在更好的參數(shù),然后用新的參數(shù)替換現(xiàn)有的參數(shù),不斷迭代。方法3:梯度下降,通俗的講就是計(jì)算可微函數(shù)極小值(無條件約束),找到最陡峭的方向從高點(diǎn)逐一小步下降。注意如果每一次的步長(zhǎng)如果過大則會(huì)錯(cuò)過最陡峭的方向甚至最佳點(diǎn),但步長(zhǎng)過小則會(huì)頻繁計(jì)算去尋找下降的方向會(huì)造成耗時(shí)過長(zhǎng)。所以需要合理的調(diào)整參數(shù)才能既保證不偏離方向的去尋找最佳點(diǎn)且耗時(shí)相對(duì)較短。圖3-2梯度下降示例圖假設(shè),y軸表示為損失函數(shù)的值而x軸表示取值。梯度下降算法的目的是將參數(shù)向右側(cè)移動(dòng)使圓點(diǎn)向下降落使得損失最小。而參數(shù)的梯度可以通過求偏導(dǎo)的方式計(jì)算。參數(shù)X,其梯度公式為3.3,再確定一個(gè)學(xué)習(xí)率(步長(zhǎng))n。那么就可以實(shí)現(xiàn)參數(shù)梯度下降(公式3.4)從而求出損失的最小值。 (3.3) (3.4)例如:損失函數(shù)為3.5,那么參數(shù)x的更新公式為如圖3-6。假設(shè)步長(zhǎng)為0.3且初始值為5,那么優(yōu)化過程為表3-7所示。 (3.5) (3.6)表3-7梯度下降優(yōu)化過程次數(shù)當(dāng)前值梯度*學(xué)習(xí)率更新后參數(shù)值152*5*0.3=35-3=2222*2*0.3=1.22-1.2=0.830.82*0.8*0.3=0.480.8-0.48=0.3240.322*0.32*0.3=0.1920.32-0.192=0.12850.1282*0.128*0.3=0.07680.128-0.0768=0.05123.2.2反向傳播算法根據(jù)前面我們介紹了梯度下降算法,但是在實(shí)際的開發(fā)中往往是面對(duì)海量的數(shù)據(jù),如果沒有一種合理的機(jī)制去快速利用這些數(shù)據(jù)實(shí)現(xiàn)梯度下降算法的話,那么這個(gè)開發(fā)的成本是相當(dāng)昂貴的。在20世紀(jì)中后期便提出了反向傳播算法來為此解決梯度下降算法的問題。反向傳播,通俗的講它是一個(gè)神經(jīng)網(wǎng)絡(luò)調(diào)整誤差并修正的學(xué)習(xí)過程。在機(jī)器學(xué)習(xí)中會(huì)反復(fù)的執(zhí)行正向傳播和反向傳播這個(gè)過程。執(zhí)行的順序?yàn)橄日蚝蠓聪?。在神?jīng)網(wǎng)絡(luò)運(yùn)行時(shí)正向傳播在輸入層接收到數(shù)據(jù)并逐層傳遞(其中就包含了隱含層),最終由輸出層輸出結(jié)果。如果輸出層輸出的結(jié)果與預(yù)期不一致則會(huì)進(jìn)入反向傳播,對(duì)各層的權(quán)值參數(shù)等進(jìn)行修改使得與預(yù)期期望值之間的誤差最小化。然后接著正向傳播,以此類推。圖3-8一次正向傳播如圖3-8所示,向x神經(jīng)元輸入-2、y神經(jīng)元輸入5和z神經(jīng)元輸入-4,最終整個(gè)網(wǎng)絡(luò)的輸出為-12。那么假如目標(biāo)值為-11呢?這時(shí)就需要方向傳播進(jìn)行修成。計(jì)算誤差為實(shí)際輸出值減去目標(biāo)值,接著計(jì)算出圖3-8中的x、y、z的偏導(dǎo)數(shù),如3.9、3.10、3.11結(jié)果所示 (3.9) (3.10) (3.11)假設(shè)設(shè)置為1,就可以求出。然后就更新x、y和z的值(如公式3.12、3.13、3.14所示)。 (3.12) (3.13) (3.14)3.3GoogleInceptionNet網(wǎng)絡(luò)結(jié)構(gòu)在說明本次使用的模型之前,有必要先介紹一下GoogleInceptionNet網(wǎng)絡(luò)(也可稱為GoogleNet)。GoogleInceptionNet網(wǎng)絡(luò)模型的出現(xiàn)是在2014年的ILSVRC比賽中,有趣的是同時(shí)期也出現(xiàn)了VGG網(wǎng)絡(luò)模型,但本文主角不是VGG也就不過多討論。GoogleInceptionNet網(wǎng)絡(luò)的創(chuàng)新是屬于結(jié)構(gòu)體系上的創(chuàng)新??v觀前三個(gè)版本的模型結(jié)構(gòu),最主要的改動(dòng)有兩點(diǎn),第一點(diǎn)在Inceptionv1中摒棄了全連接網(wǎng)絡(luò)層改而使用全局平均池化層來代替。第二點(diǎn)在Inceptionv3中分別對(duì)卷積層和池化層進(jìn)行了很大的改動(dòng),其中對(duì)大卷積核分解成多個(gè)小卷積核、池化層和卷積層改為并聯(lián)方式的結(jié)構(gòu)。圖3-15Inceptionv3結(jié)構(gòu)圖這一系列的改動(dòng)其最直接的效果是準(zhǔn)確率和錯(cuò)誤率分別有了很明顯的提升和降低。此外在GoogleInceptionNet網(wǎng)絡(luò)模型中給我們最大的特點(diǎn)是它在控制計(jì)算量和參數(shù)量的同時(shí)有效的提高網(wǎng)絡(luò)的性能。因此在內(nèi)存和計(jì)算機(jī)計(jì)算能力都有限的情況下,選擇GoogleInceptionNet是明智地。況且由于計(jì)算量和參數(shù)量的降低在實(shí)時(shí)性的性能上也很使我鐘意。而在本次使用的模型結(jié)構(gòu)是基于GoogleNet來構(gòu)建的如3-5圖[8]所示。圖3-16模型結(jié)構(gòu)在Conv-M模塊是包含著兩個(gè)結(jié)構(gòu)Inception-v3[9]、反褶積和ReLU。Inception-v3結(jié)構(gòu)。該結(jié)構(gòu)的特點(diǎn)是增加了模型的寬度和深度,雖然在3-5圖中由于省略了很多內(nèi)部細(xì)節(jié)不能很好的直觀感受。大卷積核被分解成多個(gè)小卷積核。比如7*7的卷積核拆分成7*1卷積核核1*7卷積核,或者將5*5卷積核拆分成兩個(gè)3*3的卷積核。這樣做的結(jié)果,一方面因?yàn)榫矸e數(shù)目的增加導(dǎo)致獲取的特征數(shù)據(jù)信息有所增多,另一方面模型的參數(shù)有所減少(5*5的參數(shù)為25個(gè)而3*3核和3*3核的參數(shù)和為18個(gè),降低了大約30%。)。但是該層在面對(duì)陰影等雜音時(shí)卷積核很有可能也會(huì)照樣采集導(dǎo)致特征數(shù)據(jù)信息中會(huì)有雜音[10],所有為了避免過度采集使用了反褶積[11]進(jìn)行一些反補(bǔ)機(jī)制,特別是對(duì)于小規(guī)模和中等規(guī)模的卷積核的問題上采用的較多。此外傳統(tǒng)的卷積層和池化層串聯(lián)的方式也進(jìn)行了革新改為并聯(lián)方式,極大的緩解了表達(dá)瓶頸使特征數(shù)據(jù)的卷積處理和池化處理都單獨(dú)分開,很大程度上降低了池化層的運(yùn)算量且更重要的是將數(shù)據(jù)特征的表達(dá)能力發(fā)揮的淋漓盡致。需要注意的是卷積層和池化層生成的特征數(shù)據(jù)的尺寸需要一致,以至于后續(xù)處理時(shí)能夠合并將數(shù)據(jù)交給下一層網(wǎng)絡(luò)。為了增加模型非線性能力,還包含著relu激活函數(shù),對(duì)非對(duì)稱性結(jié)構(gòu)的數(shù)據(jù)具有處理能力。linear結(jié)構(gòu)是輔助分類器。網(wǎng)絡(luò)的深度相對(duì)較大,為了以有效的方式將梯度傳播給所有神經(jīng)層的能力是值得我們關(guān)注的。一個(gè)有趣的發(fā)現(xiàn)當(dāng)網(wǎng)絡(luò)層處于中間這段的時(shí)候產(chǎn)生的特征數(shù)據(jù)信息是非常有識(shí)別力的。增加輔助分類器linear是希望模型在較低層就有識(shí)別的作用。這些輔助分類器的防止形式一般在Inception(4a)和(4d)模塊輸出之上。在整個(gè)訓(xùn)練期間它們產(chǎn)生的損失都會(huì)疊在在一起被作為總損失(輔助分類器的損失加權(quán)值一般為0.3)。在該模型的結(jié)尾處也遵循了GoogLeNet的基本理念,拋棄了全連接層。這也是GoogLeNet極具惹人注目的特色。在傳統(tǒng)的卷積網(wǎng)絡(luò)中,往往會(huì)加上全連接層。但在數(shù)據(jù)集龐大的實(shí)驗(yàn)中這樣的做法反而弊大于利。參數(shù)量呈現(xiàn)爆炸時(shí)增長(zhǎng),例如輸入100*100尺寸的數(shù)據(jù),假設(shè)輸入層中有100*100個(gè)節(jié)點(diǎn),那么第一個(gè)隱含層有100節(jié)點(diǎn)那么在該層中含有的參數(shù)為(100*100+1)*100=1百萬個(gè)參數(shù)??梢韵胂蠛罄m(xù)的全連接層參數(shù)會(huì)是一個(gè)怎樣的數(shù)量級(jí)。這對(duì)于計(jì)算機(jī)來說是一個(gè)很大的負(fù)擔(dān)。就拿圖片數(shù)據(jù)來說往往具有空間性,而當(dāng)這些數(shù)據(jù)進(jìn)入到全連接層后會(huì)直接將這些數(shù)據(jù)變?yōu)?維的數(shù)據(jù)形式。這很大程度上摧毀了數(shù)據(jù)的表達(dá)能力。由于全連接層給計(jì)算機(jī)帶的負(fù)擔(dān)過于巨大,且對(duì)數(shù)據(jù)的損壞程度顯著。一般很難在CNN網(wǎng)絡(luò)中有多層全連接網(wǎng)絡(luò),也就很難弄成一個(gè)深層次全連接網(wǎng)絡(luò),限制了模型的表達(dá)能力。在GoogLeNet網(wǎng)絡(luò)中拋棄了全連接網(wǎng)絡(luò)。在代替的方法中用AveragePool池化層代替了,是為了保證特征數(shù)據(jù)進(jìn)入softmax分類器之前,特征數(shù)據(jù)依然保留著最初的空間性(不被粗魯?shù)膲撼梢痪S數(shù)據(jù)形式),最后進(jìn)行分類。所以GoogleNet網(wǎng)絡(luò)模型在面對(duì)龐大的數(shù)據(jù)集時(shí),控制計(jì)算量和參數(shù)量的同時(shí)也獲得了非常好的性能,是一個(gè)非常優(yōu)秀且實(shí)用的模型。第四章GoogLeNet手勢(shì)識(shí)別應(yīng)用無論在實(shí)時(shí)視頻中還是已經(jīng)錄制好的視頻中,往往都是先對(duì)每一幀圖片都進(jìn)行了手掌檢測(cè)并實(shí)現(xiàn)跟蹤,但是在現(xiàn)實(shí)情況中我們會(huì)常常遇到兩大類難點(diǎn)。第一類,每一幀圖片中存在未知數(shù)量的手部,我們到底需要確定哪一個(gè)手部為數(shù)據(jù)的基準(zhǔn)呢。第二類,手部經(jīng)常會(huì)有自我遮擋或相互遮擋(例如手指的彎曲)或物體遮擋(手因抓住物體而被遮擋)等等,使得手部的信息有所殘缺。通用的解決方法主要由手部跟蹤(Handtracking)和手掌檢測(cè)(Palmdetection)兩個(gè)組成,手部跟蹤器對(duì)視頻中的每一幀圖片進(jìn)行邊界框檢測(cè)對(duì)人體手部實(shí)時(shí)跟蹤,再對(duì)邊界框中的手掌進(jìn)行手掌檢測(cè)并描繪關(guān)鍵點(diǎn)。因此在后續(xù)的處理識(shí)別功能時(shí)僅僅對(duì)信息關(guān)鍵點(diǎn)進(jìn)行操作即可。4.1算法實(shí)現(xiàn)4.1.1實(shí)現(xiàn)步驟1、導(dǎo)入訓(xùn)練有素的GoogleNet的模型,使用手部圖像數(shù)據(jù)進(jìn)行訓(xùn)練,訓(xùn)練出合乎理想的手勢(shì)模型。由于此數(shù)據(jù)集是用48個(gè)視頻中每30幀截取下來,用720*1280的尺寸和jpg格式將這些海量數(shù)據(jù)保存下來,將近20000張,因此礙于數(shù)據(jù)龐大,在這里先展示一部分?jǐn)?shù)據(jù)。圖4-1數(shù)據(jù)集展示再將這些數(shù)據(jù)投給一句設(shè)置好的GoogleNet網(wǎng)絡(luò)classifier.caffemodel和type_classifier.caffemodel模型,訓(xùn)練出hand_landmark.tflite手部追蹤器和palm_detection_without_custom_op.tflite手掌檢測(cè)器。由于這一過程已被官方人員所實(shí)現(xiàn),接下來我將著重講解怎么使用。此外為了對(duì)比一下性能,我將在這里另外使用Vgg19和LeNet網(wǎng)絡(luò)模型進(jìn)行對(duì)同樣的數(shù)據(jù)進(jìn)行訓(xùn)練和測(cè)試。實(shí)驗(yàn)過程將會(huì)使用訓(xùn)練準(zhǔn)確率、測(cè)試準(zhǔn)確率和訓(xùn)練時(shí)間這三個(gè)標(biāo)準(zhǔn)來進(jìn)行對(duì)比。表4-2性能比較模型訓(xùn)練集準(zhǔn)確率測(cè)試集準(zhǔn)確率訓(xùn)練時(shí)間GoogLeNet100%94.4%38minVgg模型100%91.3%47minLeNet模型92.3%84.3%26min如表4-2所示,可以看出在訓(xùn)練集準(zhǔn)確率上其實(shí)三個(gè)模型都相差不多,尤其是GoogleNet和Vgg這兩個(gè)網(wǎng)絡(luò)最為接近,在訓(xùn)練集準(zhǔn)確率上都達(dá)到了100%,但是在測(cè)試集準(zhǔn)確率上GoogleNet比Vgg高3.1%。單從準(zhǔn)確率這一方面的數(shù)據(jù)來看,可以體現(xiàn)出GoogleNet的泛化性會(huì)來的更好。而LeNet是比較舊式的卷積網(wǎng)絡(luò),在綜合能力上比不上前兩個(gè)網(wǎng)絡(luò)模型屬于意料之中。最后從訓(xùn)練時(shí)間來看由于Vgg的包含全連接層,而全連接層帶來的問題就是參數(shù)會(huì)急劇增多導(dǎo)致運(yùn)算量增加,所以在時(shí)間上GoogleNet會(huì)占據(jù)優(yōu)勢(shì)。而LeNet模型相對(duì)于前兩個(gè)層次為淺模型,因此花費(fèi)的時(shí)間肯定會(huì)比前兩個(gè)會(huì)少。單單從這一點(diǎn)來看LeNet為最優(yōu)但是綜合能力上它是三個(gè)里面最不理想的。2、讀入視頻文件,彈出相應(yīng)界面。在界面中通過攝像頭獲取輸入信息并將逐幀圖片輸入給程序[12],如果檢測(cè)到手掌數(shù)據(jù)就進(jìn)行后續(xù)的處理,如果沒有則繼續(xù)讀幀。如圖4-3所示,在僅僅露出手臂等其他情況下,是沒有檢測(cè)出手掌的。圖4-3無檢測(cè)出手部3、手掌傳入給程序中,緊接著就是閾值化,對(duì)膚色進(jìn)行分割并灰度化交給網(wǎng)絡(luò)層并得到關(guān)鍵點(diǎn)信息。4、得到手部信息關(guān)鍵點(diǎn)后,根據(jù)5個(gè)手勢(shì)各個(gè)分布的關(guān)鍵點(diǎn)進(jìn)行邏輯處理。先從食指判斷它的關(guān)鍵點(diǎn),依次為中指、無名指、尾指、大拇指。如果5號(hào)至8號(hào)關(guān)鍵點(diǎn)的坐標(biāo)呈現(xiàn)一個(gè)線性的。那么我們有理由預(yù)判它為1。再對(duì)中指、無名指、尾指、拇指輪流進(jìn)行判斷,假設(shè)此時(shí)中指的關(guān)鍵點(diǎn)坐標(biāo)呈現(xiàn)一個(gè)非線性,那么無名指、尾指、拇指進(jìn)行邏輯處理時(shí)只要其中有一個(gè)是呈現(xiàn)線性的,就不給予輸出(因?yàn)橐呀?jīng)超出了預(yù)設(shè)的手勢(shì))。如果除了食指而其他的手指均不呈現(xiàn)線性,那么輸出1數(shù)字。圖4-4手掌關(guān)鍵點(diǎn)信息5、將輸出信號(hào)傳給視頻界面顯給當(dāng)前做出手勢(shì)的結(jié)果。為了方便查看在這里畫出了實(shí)現(xiàn)手勢(shì)識(shí)別的流程圖。圖4-5實(shí)現(xiàn)的流程圖4.1.2環(huán)境與過程(a)實(shí)驗(yàn)環(huán)境硬件設(shè)備:CPU:IntelCorei77500U2.70GHz內(nèi)存:8G顯卡:NVIDIAGEFORCE940MX開發(fā)環(huán)境:Windows10開發(fā)語言及其編程軟件:Python+Jupyternotebook(b)實(shí)驗(yàn)過程本次論文使用手部跟蹤器和手掌檢測(cè)器來提取特征圖。本次論文中實(shí)驗(yàn)視頻均為本人所自行拍攝的手勢(shì)視頻。但是在實(shí)際運(yùn)用過程中周圍的環(huán)境一定比開發(fā)時(shí)更加廣泛和復(fù)雜。所以為了統(tǒng)一數(shù)據(jù)尺寸將其設(shè)置為256*256*3格式。此外也為了避免在識(shí)別的過程中出現(xiàn)多個(gè)邊界框的重疊的現(xiàn)象,我使用SSD瞄點(diǎn)和非最大抑制算法[13],在找到局部極大值時(shí)抑制非極大值元素。并將閾值設(shè)置為0.7才能進(jìn)入候選框,在候選框選取局部極大值,查看圖4-3。圖4-6非最大值抑制算法在對(duì)每一幀(間隔5幀)圖片進(jìn)行檢測(cè)時(shí),檢測(cè)到手部時(shí)將會(huì)對(duì)其進(jìn)行膚色分割并灰度化,預(yù)處理結(jié)束后才會(huì)交給卷積網(wǎng)絡(luò)。手掌檢測(cè)器檢測(cè)到手掌并設(shè)置其中的關(guān)鍵點(diǎn)[14]后,因?yàn)槭孪戎朗植扛櫰鞲櫴终圃趫D片中的坐標(biāo)并記錄下來,將這些關(guān)鍵點(diǎn)返回到原本圖片的坐標(biāo)上并將這些點(diǎn)相連(關(guān)鍵點(diǎn)信息為紅色,線段為黃色)。圖4-7效果圖剩下的就是對(duì)這些關(guān)鍵點(diǎn)進(jìn)行邏輯處理得出該手勢(shì)的含義[15]。其中判斷手勢(shì)的規(guī)則,當(dāng)表示1時(shí)只能豎起一個(gè)食指,表示2時(shí)需要同時(shí)豎起食指和中指,表示3時(shí)需要豎起食指、中指和無名指,表示4時(shí)需要豎起食指、中指、無名指和尾指,表示5時(shí)需要攤開手掌正對(duì)攝像頭。就拿2手勢(shì)而言,8號(hào)關(guān)鍵點(diǎn)減去6號(hào)關(guān)鍵點(diǎn),6號(hào)關(guān)鍵點(diǎn)減去0號(hào)關(guān)鍵點(diǎn)。然后除以各自的范數(shù)將向量單元化避免數(shù)據(jù)過大或者過小有溢出現(xiàn)象,再進(jìn)行點(diǎn)積運(yùn)算,如果大于預(yù)設(shè)好的閾值那么就顯示手勢(shì)2(1手勢(shì)成功的前提下)。需要注意的是用戶使用了預(yù)設(shè)好的手勢(shì)時(shí)就輸出結(jié)果,如果用戶使用的手勢(shì)是我們沒有預(yù)設(shè)的手勢(shì),雖然運(yùn)算關(guān)鍵點(diǎn)會(huì)正常運(yùn)行但因?yàn)闆]有與之匹配的類型則將不輸出結(jié)果。在實(shí)時(shí)性方面,由于將圖片數(shù)據(jù)經(jīng)過一系列的處理才能輸出結(jié)果,這一過程是需要一些時(shí)間的,當(dāng)然如果cpu和gpu的配置相當(dāng)高的話,那么這一過程的時(shí)間可以忽略不記。但如果硬件配置一般的話是不能立刻將結(jié)果返回到界面中以至于有延時(shí)效果,因此在計(jì)算本幀圖片的結(jié)果后,我將其輸出到下一幀的圖片上。圖4-8手勢(shì)識(shí)別效果圖第五章結(jié)論隨著技術(shù)的發(fā)展,實(shí)現(xiàn)手勢(shì)識(shí)別這項(xiàng)系統(tǒng)已經(jīng)不僅僅局限于本篇論文所提及的技術(shù)。我之所以使用卷積網(wǎng)絡(luò)來作為本片的基礎(chǔ)。兩個(gè)原因,第一個(gè)原因是因?yàn)樵诮鼛啄昃矸e網(wǎng)絡(luò)的發(fā)展越來越趨向于高準(zhǔn)確率和低參數(shù)量,這對(duì)于實(shí)時(shí)性和設(shè)備限制都有著很大的幫助。第二個(gè)原因是個(gè)人對(duì)這一領(lǐng)域有著相當(dāng)不錯(cuò)的興趣,這就是我做手勢(shì)識(shí)別的最初動(dòng)機(jī)。這里還有一些小插曲,我剛開始做的時(shí)候是用傳統(tǒng)的卷積網(wǎng)絡(luò)但效果是相當(dāng)讓人沮喪,無論在實(shí)時(shí)響應(yīng)性還是準(zhǔn)確率上。以至于我不得不尋找新的解決辦法,這就有了現(xiàn)在的GoogleNet網(wǎng)絡(luò)。因?yàn)镚oogleNet的改善了卷積層和池化層,其中的全連接層跟是直接拋棄掉,一邊讓網(wǎng)絡(luò)深層次的同時(shí)還防止了參數(shù)量不爆炸。得益于站在巨人的肩膀上,在光照等因素良好的情況下準(zhǔn)確率會(huì)高達(dá)92%。但盡管如此我的手勢(shì)識(shí)別系統(tǒng)還是存在這問題。例如在沒有手掌的情況下總是會(huì)時(shí)不時(shí)的彈出關(guān)鍵點(diǎn)信息,這可能與網(wǎng)絡(luò)的錯(cuò)判或非最大抑制算法存在的缺陷有關(guān),而且因?yàn)閷?duì)圖片的計(jì)算和預(yù)處理導(dǎo)致了實(shí)時(shí)性的性能有所下降。并且在有手掌的情況下關(guān)鍵點(diǎn)會(huì)存在不能準(zhǔn)確顯示的情況導(dǎo)致輸入正確手勢(shì)時(shí)會(huì)顯示不出正確的結(jié)果。而且該系統(tǒng)也非常容易環(huán)境因素的干擾,如果手部是處于黑暗環(huán)境下,那么我所作的一切將不會(huì)奏效。這些
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年汽車修理廠綜合維修工職業(yè)協(xié)議樣本版B版
- 2024年黃金產(chǎn)品銷售代表合同版B版
- 2025年度智能工廠產(chǎn)權(quán)轉(zhuǎn)讓及定金支付協(xié)議范本3篇
- 2024年度大蒜種植補(bǔ)貼項(xiàng)目采購(gòu)合同2篇
- 2024年環(huán)保設(shè)施運(yùn)營(yíng)管理服務(wù)合同
- 危重心律失常的急診處理
- 2025年度科幻小說改編劇本創(chuàng)作合同3篇
- 2024版自建房房屋買賣合同
- 2024年規(guī)范保健品購(gòu)銷合同模板版B版
- 2024年物業(yè)管理分包協(xié)議6篇
- 胃黏膜腸上皮化生
- 汽車離合器設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)
- 2023年房屋租賃管理模板
- 全部編版四年級(jí)語文下生字讀音、音序、偏旁及組詞
- 藥物的不良反應(yīng)
- 《公安機(jī)關(guān)人民警察內(nèi)務(wù)條令》
- 呼吸機(jī)常見報(bào)警及處理
- 巨力索具(河南)有限公司年生產(chǎn)10萬噸鋼絲及5萬噸鋼絲繩項(xiàng)目環(huán)境影響報(bào)告
- GB/T 26254-2023家用和類似用途保健按摩墊
- 蘇教版六年級(jí)數(shù)學(xué)下冊(cè)第三單元第3課《練習(xí)五》公開課課件
- 北京外國(guó)語大學(xué)自主招生考試綜合素質(zhì)測(cè)試面試試題答題技巧匯總
評(píng)論
0/150
提交評(píng)論