【Pytorch神经网络理论篇】 35 GaitSet模型:步态识别思路+水平金字塔池化+三元损失
代碼:
【Pytorch神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn)案例】28 GitSet模型進(jìn)行步態(tài)與身份識(shí)別(CASIA-B數(shù)據(jù)集)_LiBiGor的博客-CSDN博客1 CASIA-B數(shù)據(jù)集本例使用的是預(yù)處理后的CASIA-B數(shù)據(jù)集, 數(shù)據(jù)集下載網(wǎng)址如下。 http://www.cbsr.ia.ac.cn/china/Gait%20Databases%20cH.asp該數(shù)據(jù)集是一個(gè)大規(guī)模的、多視角的步態(tài)庫(kù)。其中包括124個(gè)人,每個(gè)人有11個(gè)視角(0,18,36,...,180),在3種行走條件(普通、穿大衣、攜帶包裹)下采集。1.1 CASIA-B數(shù)據(jù)集的兩種形式CASIA-B數(shù)據(jù)集有視頻和輪廓兩種形式。1.1.1 案例講解本例直接..https://blog.csdn.net/qq_39237205/article/details/124141716
1 步態(tài)識(shí)別思路
1.1 步態(tài)識(shí)別的本質(zhì)
步態(tài)特征的距離匹配,對(duì)人在多拍攝角度、多行走條件下進(jìn)行特征提取,得到基于個(gè)體的步態(tài)特征,再用該特征與其他個(gè)體進(jìn)行比較,從而識(shí)別出該個(gè)體的具體身份。
1.2 步態(tài)識(shí)別的主體思路
1.2.1 神經(jīng)網(wǎng)絡(luò)的角度看待步態(tài)識(shí)別的數(shù)據(jù)集
在步態(tài)識(shí)別中,需要將一組圖片作為一個(gè)樣本。
從神經(jīng)網(wǎng)絡(luò)的角度來(lái)看,步態(tài)識(shí)別的組圖片也只是在代表圖片[H,W,C]的基礎(chǔ)之上,多出一個(gè)張數(shù)的維度而已。
1.2.2 步態(tài)識(shí)別模型的數(shù)據(jù)處理的三種方式
整體處理:將輸入數(shù)據(jù)當(dāng)作一個(gè)完整的3D圖片數(shù)據(jù),來(lái)計(jì)算輸入數(shù)據(jù)在三維空間里所表現(xiàn)的整體特征。如對(duì)整體的輸入數(shù)據(jù)做3D卷積。
分散處理:將輸入數(shù)據(jù)當(dāng)作由多張圖片組成的序列數(shù)據(jù),先對(duì)單張圖片進(jìn)行特征處理,再對(duì)序列數(shù)據(jù)特征進(jìn)行處理。在分散處理的過(guò)程中,又可以分為重視序列順序關(guān)系(如基于慣性的步態(tài)識(shí)別)和不重視序列順序關(guān)系兩種做法。
混合處理:先對(duì)單張圖片進(jìn)行基于人形特征的預(yù)處理(如提取人形輪廓數(shù)據(jù)、人的姿態(tài)數(shù)據(jù)),再將預(yù)處理后的數(shù)據(jù)當(dāng)作原始輸入,進(jìn)行二次處理(可以使用整體處理或分散處理)。混合處理模式更為細(xì)致,也更為靈活。
1.2?CASIA-B數(shù)據(jù)集
CASIA-B是使用最廣泛的步態(tài)數(shù)據(jù)集, 包含124人的RGB和輪廓形式的多視角步態(tài)數(shù)據(jù)。從11個(gè)不同的視角進(jìn)行采集,范圍從0到180度,增量為18度。該數(shù)據(jù)集考慮了三種不同的行走條件,即正常行走(NM)、穿外套行走(CL)和攜包行走(BG),每個(gè)人每個(gè)視角分別有6、2和2個(gè)步態(tài)序列。
CASIA-B最常用的測(cè)試協(xié)議是受試者無(wú)關(guān)協(xié)議,該協(xié)議使用前74名受試者的數(shù)據(jù)進(jìn)行訓(xùn)練,其余50名受試者進(jìn)行測(cè)試。然后將測(cè)試數(shù)據(jù)拆分為一個(gè)注冊(cè)集,其中包括NM步態(tài)數(shù)據(jù)中的前四個(gè)步態(tài)序列,驗(yàn)證集由其余序列組成,即每個(gè)受試者每個(gè)視角的剩余2個(gè)NM、2個(gè)CL和2個(gè)BG序列,結(jié)果主要針對(duì)所有視角報(bào)告。
2 GaitSet模型
GaitSet模型屬于混合處理方式,該模型的二次處理部分使用了分散處理。
2.1 預(yù)處理
GaitSet模型的預(yù)處理部分,需要對(duì)視頻中抽離的圖片進(jìn)行基于人物識(shí)別的語(yǔ)義分割,得到基于人形的黑白輪廓圖,如圖所示。
?2.1.1 輪廓圖的優(yōu)點(diǎn)
通過(guò)將輪廓圖看作單通道圖片,實(shí)現(xiàn)基于人的多幀圖片被當(dāng)作多通道圖片進(jìn)行處理,即其形狀可以描述為[批次個(gè)數(shù),幀數(shù),高度,寬度] 與RGB狀為[批次個(gè)數(shù),通道數(shù),高度,寬度]相似。
2.2 特征處理
2.2.1?GitSet模型分散處理
GitSet模型采用分散處理,對(duì)每一張圖片計(jì)算特征,再對(duì)多個(gè)特征做聚合處理。
2.2.2?GitSet模型分散處理的核心部分
①多層全流程管線(Multlayer Global Pipeline,MGP)是一個(gè)類似FPN結(jié)構(gòu)的網(wǎng)絡(luò)模型,通過(guò)兩個(gè)分支進(jìn)行下采樣處理,并在每次下采樣之后進(jìn)行特征融合。
②水平金字塔池化(HorizontalPyramid Matching,HPM)按照不同的水平尺度對(duì)特征數(shù)據(jù)進(jìn)行池化,并將池化結(jié)果匯集起來(lái),從而豐富數(shù)據(jù)的鑒別特征。
2.2.3?GitSet模型分散處理的訓(xùn)練
在訓(xùn)練時(shí),將模型計(jì)算出的特征用三元損失(Triplet Loss)進(jìn)行優(yōu)化,使其計(jì)算出的特征與同類別特征距離更近,與非同類別特征距離更遠(yuǎn)。
在使用時(shí),具體步驟如下。
(1)對(duì)人物視頻進(jìn)行抽幀采樣。
(2)對(duì)采樣數(shù)據(jù)進(jìn)行處理,生成輪廓圖。
(3)將多張輪廓圖輸入模型得到特征。
(4)將該特征與數(shù)據(jù)庫(kù)中已有的特征進(jìn)行比較,找到與其距離最近的特征,從而識(shí)別出人物身份。
3?完整GitSet模型流程圖
4?多層全流程管線
主要分為兩個(gè)分支:一個(gè)是主分支,另一個(gè)是輔助分支。
4.1 主分支
主分支用于對(duì)從視頻分離出來(lái)的多幀數(shù)據(jù),基于全部圖片的特征進(jìn)行處理。
采用兩次卷積+一次下采樣的操作進(jìn)行特征計(jì)算與降維處理。
4.2 輔助分支
輔助分支用于對(duì)從視頻分離出來(lái)的多幀數(shù)據(jù),某于幀的特征進(jìn)行處理。
輔助分支與主分支的處理同步,并對(duì)每次下采樣后的數(shù)據(jù)講行特征提取,將提取后的幀特征融合到主分支的特征處理結(jié)果里。
4.3?多層全流程管線處理流程圖
(1)在主分支中,對(duì)每一幀數(shù)據(jù)進(jìn)行卷積外理。
(2)在主分支中,對(duì)卷積處理的結(jié)果進(jìn)行下采樣處理。
(3)將下采樣結(jié)果分為兩份,一份用于主分支,另一份用干輔助分支。
(4)在主分支中,對(duì)下采樣結(jié)果進(jìn)行基于帖特征的提取。
(5)在主分支中,對(duì)第(4)步的結(jié)果做卷積損作。
(6)在輔助分支中,繼續(xù)對(duì)下采樣結(jié)果做卷積操作。
(7)在輔助分支的卷積操作之后,進(jìn)行一次下采樣,并對(duì)下采樣結(jié)果講行基于特征的提取。
(8)在主分支中,也同步做一次下采樣。
(9)將第(6)和(7)步的結(jié)果融合起來(lái)。
(10)繼續(xù)重復(fù)第(5)~(9)步的步驟。重復(fù)次數(shù)與網(wǎng)絡(luò)規(guī)模和輸入尺寸右關(guān)其中第(4) 和(7) 步基于幀的特征提取部分使用了多特征集合池化(Set Pool in a)方法。經(jīng)過(guò)測(cè)試發(fā)現(xiàn)直接使用取最天值池化的方法效果更好,而且該方法更為簡(jiǎn)單。
第(9) 步融合特征的方式使用的是直接相加, 也可以用cat函數(shù)將其拼接在一起, 在本例中,使用的是簡(jiǎn)單相加。
卷積神經(jīng)網(wǎng)絡(luò)的不同層能夠識(shí)別不同的特征,通過(guò)深層卷積的組合,可以增大模型在圖片中的理解區(qū)域。同時(shí)在主管道中,融合了從不同層提取的幀級(jí)特征,使得模型計(jì)算的特征中含有更豐富的整體特征。?
5 水平金字塔池化
水平金字塔池化是來(lái)自行人再識(shí)別(Person Re-l dentification) 任務(wù)中的一種技術(shù)。它充分地利用了行人的不同局部空間信息,使得在重要部件丟失的情況下,仍能正確識(shí)別出候選行人, 增強(qiáng)了行人識(shí)別的健壯性(參見arXiv網(wǎng)站上編號(hào)為“1811.06186”的論文)。
5.1?行人再識(shí)別任務(wù)
行人再識(shí)別任務(wù)是從圖片或者視頻序列中找到特定行人的任務(wù)。
該任務(wù)屬于圖像檢索任務(wù)中的一種,常常與行人檢測(cè)、行人跟蹤任務(wù)一起被應(yīng)用在智能視頻監(jiān)控、智能安保等領(lǐng)域。
5.2?HPM模型的做法和原理
5.2.1?HPM模型的做法
將圖片按照不同的水平尺度分成多個(gè)部分, 然后將每個(gè)部分的全局平均池化和全局最大池化特征融合到一起。
5.2.2?HPM模型的結(jié)構(gòu)
這種做法相當(dāng)于引入了多尺度的局部信息互助作用來(lái)緩解不對(duì)齊引起的離群值問(wèn)題。其中每個(gè)局部的信息通過(guò)全局平均池化與全局最大池化策略結(jié)合得到的融合特征更具有判別能力。
全局平均池化:可以感知空間條的全局信息,并將背景上下文考慮進(jìn)去。
全局最大池化:實(shí)現(xiàn)提取最具判別性的信息并忽略無(wú)關(guān)信息(如背景、衣服等)。??
5.2.3?HPM模型在步態(tài)識(shí)別實(shí)例的作用
使用HPM模型作為整個(gè)網(wǎng)絡(luò)的最后部分, 對(duì)全連接層的特征進(jìn)行優(yōu)化,提升了特征的整體鑒別性。
6 三元損失
三元損失是根據(jù)3張圖片組成的三元組計(jì)算而得的損失 ,常用于基于樣本特征進(jìn)行匹配的模型中,如人臉識(shí)別、步態(tài)識(shí)別、行人再識(shí)別等任務(wù)的模型中。
6.1 三元損失算法圖解
在每次提取特征時(shí),同步輸入與該樣本相同類別和不同類別的兩個(gè)樣本。利用監(jiān)督學(xué)習(xí)使該樣本特征與相同類別的樣本特征間的差異越來(lái)越小,與不同類別的樣本特征間的差異越來(lái)越大。
如上圖所示,通過(guò)監(jiān)督學(xué)習(xí),可以讓輸入樣本經(jīng)過(guò)網(wǎng)絡(luò)計(jì)算之后的特征與相同類別的樣本特征距離更近,與不同類別的樣本特征距離更遠(yuǎn)。
三元損失訓(xùn)練的模型,最終將使相同類別的特征會(huì)更加相似,解決樣本特征指向不明確的問(wèn)題。
6.2 三元損失的使用
在使用三元損失時(shí),常會(huì)直接將一批次的輸入數(shù)據(jù)進(jìn)行內(nèi)部?jī)蓛山徊?#xff0c;并從中分出正向樣本(類內(nèi)距離)和負(fù)向樣本(類間距離)。這種方式可以保證與其他損失計(jì)算的接口統(tǒng)一,而又不需要額處開發(fā)選取正/負(fù)樣本的功能。
6.2.1?三元損失中的間隔margin
?6.2.2?三元損失的模式hard與full
full模式(默認(rèn)):?對(duì)所有的正向樣本和負(fù)向樣本進(jìn)行損失值的計(jì)算。
hard模式:只對(duì)最小的正向樣本和最大的負(fù)向樣本進(jìn)行損失值的計(jì)算, 目的在于優(yōu)化特征并使其指向偏離最大的樣本,運(yùn)算量會(huì)更小。
總結(jié)
以上是生活随笔為你收集整理的【Pytorch神经网络理论篇】 35 GaitSet模型:步态识别思路+水平金字塔池化+三元损失的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Tensorboard --logdir
- 下一篇: 【Pytorch神经网络实战案例】11