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

?

適用于FPGA的輕量實(shí)時(shí)視頻人臉檢測(cè)

2022-07-01 08:16趙興博陶青川
現(xiàn)代計(jì)算機(jī) 2022年8期
關(guān)鍵詞:卷積分支人臉

趙興博,陶青川

(四川大學(xué)電子信息學(xué)院,成都 610065)

0 引言

隨著社會(huì)的發(fā)展,城市吸納了越來(lái)越多的外來(lái)就業(yè)人口,大量的人口流動(dòng)和短期租住給社區(qū)公共安全的維護(hù)和保障帶來(lái)了新的挑戰(zhàn)。傳統(tǒng)的視頻監(jiān)控系統(tǒng)僅負(fù)責(zé)將部署的探頭采集的圖像數(shù)據(jù)傳輸?shù)奖O(jiān)控中心進(jìn)行集中保存,具體的監(jiān)控排查以及異常情況告警則交由人工進(jìn)行負(fù)責(zé)。隨著特大城市生活圈的逐步建立,人們生產(chǎn)生活的活動(dòng)區(qū)域也隨之?dāng)U張,因此需要進(jìn)行治安監(jiān)控的時(shí)間與區(qū)域同步擴(kuò)大,傳統(tǒng)的人工監(jiān)控成本隨之水漲船高;同時(shí),采用人工的方式不可避免地存在分析人員疏忽、怠惰的問(wèn)題,從而影響事件發(fā)生時(shí)監(jiān)控告警信號(hào)的及時(shí)性。因此,采用低成本平臺(tái)的自動(dòng)化實(shí)時(shí)智能分析監(jiān)控系統(tǒng)才是一種行之有效的解決辦法。

人臉檢測(cè)是智能視頻監(jiān)控的關(guān)鍵技術(shù)之一。如今人臉檢測(cè)技術(shù)廣泛應(yīng)用于人機(jī)交互領(lǐng)域,在面部情緒自動(dòng)化分析、視頻實(shí)時(shí)人像跟蹤等視覺(jué)任務(wù)中發(fā)揮重要作用。傳統(tǒng)的人臉檢測(cè)技術(shù)使用依賴于先驗(yàn)知識(shí)設(shè)計(jì)的特征描述算子,應(yīng)用廣泛的有哈爾特征算子(haar-like feature)、梯度方向直方圖統(tǒng)計(jì)(histogram of oriented gradient,HOG)等;而后將所提取的特征使用分類(lèi)算法歸類(lèi),諸如支持向量機(jī)(support vector machine,SVM)、迭代提升方法(boosting)等。傳統(tǒng)的機(jī)器學(xué)習(xí)方式不能自動(dòng)設(shè)計(jì)適用于目標(biāo)數(shù)據(jù)的特征提取算子,導(dǎo)致其泛化能力弱,實(shí)際使用效果較差;隨著人工智能的快速發(fā)展,深度學(xué)習(xí)技術(shù)作為成果之一,在視覺(jué)目標(biāo)檢測(cè)方面同樣成績(jī)斐然。以人臉檢測(cè)子領(lǐng)域?yàn)槔?,采用深度學(xué)習(xí)技術(shù)的算法準(zhǔn)確率和速度不斷提高,達(dá)到甚至超越人類(lèi)水平。目前主流的檢測(cè)方法,主要分為two-stage(兩階段檢測(cè))和one-stage(一階段檢測(cè))兩類(lèi)。以Faster RCNN為代表的兩階段檢測(cè)算法由于其先產(chǎn)生候選檢測(cè)框,再對(duì)候選框分類(lèi)的運(yùn)行邏輯導(dǎo)致計(jì)算開(kāi)銷(xiāo)大、推理速度慢,難以部署于具有實(shí)時(shí)性要求的低算力設(shè)備上。一階段檢測(cè)算法則不需要產(chǎn)生候選框,直接將目標(biāo)在輸入圖像位置上的求解過(guò)程轉(zhuǎn)化為預(yù)設(shè)檢測(cè)框中心位置的回歸問(wèn)題從而求解,因此檢測(cè)速度一般比兩階段算法更快,代價(jià)是精度有所降低。這類(lèi)算法常見(jiàn)的有SSD和YOLO系列。然而,面對(duì)監(jiān)控視頻中存在的小分辨率、遮擋、背景干擾以及姿態(tài)變化等復(fù)雜人臉,現(xiàn)有算法的高準(zhǔn)確率仍依賴于復(fù)雜模型和大量計(jì)算資源,在應(yīng)用到現(xiàn)實(shí)場(chǎng)景的人臉檢測(cè)任務(wù)時(shí)受到限制,因此,實(shí)時(shí)輕量級(jí)復(fù)雜人臉檢測(cè)方法受到廣泛關(guān)注。

本文主要工作:設(shè)計(jì)一種適用于FPGA的輕量級(jí)目標(biāo)檢測(cè)網(wǎng)絡(luò),以YOLO 算法為基礎(chǔ),采用RepVGG 方法進(jìn)行改進(jìn),通過(guò)結(jié)構(gòu)重參數(shù)化方式去除網(wǎng)絡(luò)分支結(jié)構(gòu),同時(shí)大幅減少計(jì)算量,使得目標(biāo)檢測(cè)網(wǎng)絡(luò)能夠適應(yīng)FPGA 設(shè)備低功耗、低算力、小內(nèi)存空間的客觀條件。訓(xùn)練過(guò)程中輔助聚類(lèi)分析重新劃分?jǐn)?shù)據(jù)集的方法,提高網(wǎng)絡(luò)空間信息的聚合能力,從而提高檢測(cè)精度。實(shí)驗(yàn)表明,該方法在FPGA設(shè)備上運(yùn)行時(shí)具有良好的檢測(cè)性能,可在保證精度的前提下滿足實(shí)時(shí)性要求。

1 YOLO檢測(cè)模型

目前被廣泛采用的YOLO 系列目標(biāo)檢測(cè)網(wǎng)絡(luò)YOLOv4,相較于YOLO 系列之 前 模 型來(lái)說(shuō),在確保模型結(jié)構(gòu)簡(jiǎn)潔的前提下,在較小目標(biāo)的識(shí)別效率上有極大提高,是此系列的集大成之作。YOLOv4 的模型及詳細(xì)結(jié)構(gòu)如圖1 所示,可從整體上劃分為三大部分。

圖1 YOLOv4模型結(jié)構(gòu)圖

首先是特征提取主干結(jié)構(gòu)CSPDarknet53,主要進(jìn)行圖像高級(jí)語(yǔ)義信息的提取,其由5 個(gè)CSP-n 模塊串聯(lián)而成。一個(gè)CSP-n 模塊則融入CSPNet的構(gòu)造特點(diǎn),首先堆疊一次步長(zhǎng)為2的下采樣,隨后跟隨由個(gè)串聯(lián)殘差塊單元(res unint)輔助一條貫穿輸入、輸出的殘差邊分支形成多支結(jié)構(gòu)并進(jìn)行合并,以便在不增加網(wǎng)絡(luò)深度的前提下保證高效的特征提取能力;最終,整個(gè)特征提取主干依次輸出最后三個(gè)CSP-n 模塊的特征提取結(jié)果,即相較于輸入尺寸進(jìn)行2倍、2倍和2倍下采樣得到3幅從大到小的提取特征圖。以輸入圖像尺寸為608 × 608 舉例,最終輸出的特征圖尺寸分別為76 × 76,38 × 38,19 × 19。

其次是SPP加PANet多尺度感受野特征融合結(jié)構(gòu)。SPP模塊通過(guò)所設(shè)計(jì)的多分支不同尺寸最大池化后進(jìn)行特征拼接,從而自底向上地增強(qiáng)了特征在尺度變換上的平滑性。隨后特征輸入到PANet特征融合模塊中進(jìn)行處理,與SPP模塊相對(duì)應(yīng),此處實(shí)現(xiàn)了自上到下的下采樣特征拼接操作。SPP 與PANet互相配合,實(shí)現(xiàn)了不同尺度特征的相互融合,從而使不同尺度的特征互補(bǔ)。

最后一個(gè)結(jié)構(gòu)為YOLOHead 檢測(cè)頭,對(duì)之前的網(wǎng)絡(luò)結(jié)構(gòu)提取到的特征進(jìn)行解析,從而得出最終的目標(biāo)檢測(cè)框位置以及分類(lèi)結(jié)果。

2 改進(jìn)的YOLO目標(biāo)檢測(cè)模型

YOLOv4作為一類(lèi)通用目標(biāo)檢測(cè)網(wǎng)絡(luò),在設(shè)計(jì)之初便需要考慮不同尺寸、形態(tài)各異的各個(gè)類(lèi)別目標(biāo)物體的差異性,其所考慮的檢測(cè)目標(biāo)從火車(chē)到棒球無(wú)所不包,需要極強(qiáng)的特征提取能力以保證提取出的特征足夠有代表性。因此,其網(wǎng)絡(luò)的復(fù)雜度較高,例如其特征提取主干CSPDarknet53,采用多分支結(jié)構(gòu)CSP以及性能優(yōu)異的網(wǎng)絡(luò)組件殘差塊單元,通過(guò)加深的網(wǎng)絡(luò)層數(shù)(總計(jì)53 層),并且輔以大通道數(shù)來(lái)提高模型性能,最大通道數(shù)已達(dá)1024,最終導(dǎo)致模型在部署時(shí)需要設(shè)備有極高的計(jì)算能力和較大內(nèi)存,非常不利于工業(yè)場(chǎng)景(尤其是在算力受限的情況下)。針對(duì)視頻監(jiān)控中的人臉檢測(cè)問(wèn)題,由于目標(biāo)非常明確,僅需要檢測(cè)人臉,不需要如此復(fù)雜的網(wǎng)絡(luò),因此對(duì)其原本的特征提取網(wǎng)絡(luò)進(jìn)行輕量化設(shè)計(jì)。需要針對(duì)實(shí)時(shí)人臉檢測(cè)這一任務(wù)特性做出以下改進(jìn)。

(1)對(duì)網(wǎng)絡(luò)深度以及分支結(jié)構(gòu)進(jìn)行精簡(jiǎn)。對(duì)比YOLO 系列使用過(guò)激活函數(shù),目前主流的Mish 激活函數(shù)通過(guò)復(fù)雜的非線性映射進(jìn)行計(jì)算,在低算力設(shè)備上會(huì)加重計(jì)算開(kāi)銷(xiāo),因此全部替換為擁有良好性能優(yōu)化的ReLU 激活函數(shù);同時(shí)對(duì)比了現(xiàn)有多種分支設(shè)計(jì)結(jié)構(gòu),最終選用由一組3 × 3 卷積、1 × 1 卷積以及恒等映射(identity)組成的RepVGG 式分支組合結(jié)構(gòu)與ReLU 激活函數(shù)相結(jié)合的方式作為特征,提取主干結(jié)構(gòu)的基本構(gòu)成單元(REP_unit),并在原始結(jié)構(gòu)上通過(guò)將單元重復(fù)次數(shù)減半來(lái)縮減通道深度。

(2)為進(jìn)一步降低參數(shù)量和計(jì)算量,在訓(xùn)練得到的模型基礎(chǔ)上采用結(jié)構(gòu)重參數(shù)化的方法進(jìn)行分支合并以及算子融合,從而降低計(jì)算量,進(jìn)一步提升處理速度。

(3)同時(shí)針對(duì)人臉目標(biāo)數(shù)據(jù)集中目標(biāo)尺寸變化大,小模型訓(xùn)練過(guò)程不容易收斂所導(dǎo)致精度大幅降低的問(wèn)題,通過(guò)聚類(lèi)方法對(duì)數(shù)據(jù)進(jìn)行拆分訓(xùn)練,提高網(wǎng)絡(luò)的準(zhǔn)確率。

2.1 特征提取主干結(jié)構(gòu)的改進(jìn)

為構(gòu)建專(zhuān)用硬件上計(jì)算速度高、內(nèi)存小的高效模型,清華大學(xué)于2021年提出了RepVGG 式的主干設(shè)計(jì)思路:構(gòu)建僅使用3 × 3卷積算子堆疊,并通過(guò)對(duì)3 × 3 卷積算子權(quán)值重新賦值派生出特殊的1 × 1 卷積分支以及恒等映射Identity 分支結(jié)合的結(jié)構(gòu)。同時(shí)采用結(jié)構(gòu)重參數(shù)化的方式解耦訓(xùn)練時(shí)和推理時(shí)算法架構(gòu)。訓(xùn)練時(shí)參考ResNet 結(jié)構(gòu)的分支組合思路,為每一個(gè)3 × 3 卷積添加并行的1 × 1 卷積分支和恒等映射Identity 分支,從而計(jì)算更多的特征信息,提高檢測(cè)精度。在推理時(shí)對(duì)模型做等價(jià)轉(zhuǎn)換,得到實(shí)際部署模型。由于三種卷積算子均由同一種算子派生,因此結(jié)構(gòu)可轉(zhuǎn)化為無(wú)分支結(jié)構(gòu)類(lèi)VGG 的單路模型。此類(lèi)設(shè)計(jì)的單路模型具有以下優(yōu)點(diǎn)。

(1)單路模型并行度高,計(jì)算速度快。采用結(jié)構(gòu)重參數(shù)化的方式合并分支結(jié)構(gòu),節(jié)省了內(nèi)存占用。

(2)單路架構(gòu)靈活性更好,容易改變各層的寬度(如剪枝)。

因此,為滿足檢測(cè)模型實(shí)時(shí)性和精度的需求,本文使用REPVGG的基本構(gòu)成單元(REP_unit)對(duì)CSPDarknet53 的基本結(jié)構(gòu)進(jìn)行修改,并在原始結(jié)構(gòu)上通過(guò)將單元重復(fù)次數(shù)減半來(lái)縮減通道深度;并針對(duì)性地將激活函數(shù)替換為具有良好硬件性能優(yōu)化的ReLU 激活函數(shù)。重新設(shè)計(jì)的REP-YOLO 特征提取主干結(jié)構(gòu)如圖2所示。具體細(xì)節(jié)在接下來(lái)的小節(jié)中詳細(xì)說(shuō)明。

圖2 改進(jìn)后的REP-YOLO 特征提取主干結(jié)構(gòu)圖

2.2 結(jié)構(gòu)重參數(shù)化

結(jié)構(gòu)重參數(shù)化思想的核心是解耦訓(xùn)練時(shí)和推理時(shí)架構(gòu),即訓(xùn)練一個(gè)多分支模型;將多分支模型通過(guò)數(shù)學(xué)推理等價(jià)轉(zhuǎn)換為單路模型;最終得到部署單路模型。因此,可以同時(shí)利用多分支模型訓(xùn)練時(shí)性能高的優(yōu)勢(shì)以及單路模型推理時(shí)計(jì)算量小、方便模型高效部署的好處,達(dá)到獲取擁有復(fù)雜模型檢測(cè)能力的簡(jiǎn)單模型的目的。

為實(shí)現(xiàn)這一思想,Ding 等人采用數(shù)學(xué)推導(dǎo)的方式,并經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證了該思想的有效性。本文依照設(shè)計(jì)需求選取其中的BN(Batch Normalization)層與卷積層合并以及分支合并思想來(lái)實(shí)踐此方法。具體做法在以下兩小節(jié)進(jìn)行闡述。

2.2.1 BN(batch normalization)層與卷積層合并

在深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練過(guò)程中,為解決因網(wǎng)絡(luò)深度加深而導(dǎo)致梯度消失以及梯度爆炸的問(wèn)題,通常選擇在卷積層處理后增加層。層通過(guò)歸一化操作使得數(shù)據(jù)滿足標(biāo)準(zhǔn)分布,從而控制梯度在合理范圍內(nèi)加速網(wǎng)絡(luò)的收斂,并在一定程度上解決過(guò)擬合問(wèn)題。整個(gè)層的計(jì)算過(guò)程數(shù)學(xué)表達(dá)見(jiàn)公式(1)。

其中為層的輸入數(shù)據(jù),也就是前一層卷積的輸出。首先求出輸入數(shù)據(jù)的均值與方差;接著使用求得的均值與方差對(duì)輸入數(shù)據(jù)進(jìn)行偏移及縮放的歸一化操作,其中為縮放系數(shù)、為偏移因子。訓(xùn)練過(guò)程中,,,會(huì)依照輸入的數(shù)據(jù)特征進(jìn)行學(xué)習(xí),在前向推理時(shí)固定為常數(shù)。

層在網(wǎng)絡(luò)前向推理時(shí)作為常數(shù)算子,會(huì)帶來(lái)額外的內(nèi)存占用與計(jì)算量,因此會(huì)影響模型推理速度??紤]到本文網(wǎng)絡(luò)中大部分均為卷積層與層配合處理的結(jié)構(gòu),因此在部署前預(yù)先對(duì)層與卷積層進(jìn)行合并,減少計(jì)算層間通信與中間存儲(chǔ),從而提高實(shí)際部署模型前向推理的速度。卷積層對(duì)輸入特征圖的計(jì)算公式如公式(2)所示。

其中為卷積層權(quán)值,為偏移量。對(duì)公式(1)、(2)進(jìn)行合并計(jì)算,可得出卷積層與BN 層的輸入輸出計(jì)算公式(3)。

由于卷積層與層的運(yùn)算均不涉及非線性操作,因此依照矩陣操作的齊次性,合并過(guò)程同樣是線性運(yùn)算,可將整體看作一個(gè)新的卷積操作,新卷積的權(quán)值與偏移如公式(4)所示,此變換不改變整體的映射關(guān)系。

2.2.2 分支合并

本文所使用的REP_unit基礎(chǔ)模塊結(jié)構(gòu)在圖3中進(jìn)行展示。圖中為原始網(wǎng)絡(luò)所使用的ResNet 結(jié)構(gòu),為訓(xùn)練階段的REP_unit 基礎(chǔ)模塊,為推理階段的REP_unit基礎(chǔ)模塊。從可以看出,訓(xùn)練時(shí)存在三路并行的3 × 3 卷積分支、1 × 1 卷積分支以及恒等映射Identity 分支。由于1 × 1卷積和恒等映射Identity分支是通過(guò)對(duì)3 × 3 卷積算子權(quán)值重新賦值派生出的結(jié)構(gòu),因此REP_unit中的1 × 1卷積是相當(dāng)于一個(gè)除了卷積核中心位置權(quán)值存在,其他位置權(quán)值均為零的3 × 3 卷積,同樣的恒等映射Identity 分支操作,即輸入的每個(gè)特征元素直接對(duì)應(yīng)到輸出的相應(yīng)位置,相當(dāng)于以單位矩陣為卷積權(quán)值的1 × 1卷積,因此也是一個(gè)特殊的3 × 3 卷積。根據(jù)卷積的可加性,將三個(gè)分支的3 × 3 卷積的加和操作等價(jià)為一個(gè)同樣對(duì)應(yīng)位置是三個(gè)分支卷積對(duì)應(yīng)位置加和的新3 × 3 卷積,即將網(wǎng)絡(luò)基礎(chǔ)模塊從訓(xùn)練階段的多分支結(jié)構(gòu)融合為推理階段的單路結(jié)構(gòu)。

圖3 基礎(chǔ)模塊結(jié)構(gòu)對(duì)比

2.3 通過(guò)聚類(lèi)分析重新劃分訓(xùn)練數(shù)據(jù)集

目前深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)方法通常為隨機(jī)小批量數(shù)據(jù)加載訓(xùn)練法,對(duì)于多尺度目標(biāo)數(shù)據(jù)集,在數(shù)據(jù)集中隨機(jī)采樣分批訓(xùn)練會(huì)導(dǎo)致大目標(biāo)與小目標(biāo)的混雜。由于網(wǎng)絡(luò)中模塊感受野參數(shù)固定,無(wú)法靈活地針對(duì)不同尺度的目標(biāo)適應(yīng)卷積參數(shù),在訓(xùn)練過(guò)程中往往造成所訓(xùn)練的網(wǎng)絡(luò)輸出精度波動(dòng)大,從而導(dǎo)致性能下降;而對(duì)于輕量級(jí)的深度神經(jīng)網(wǎng)絡(luò)負(fù)面影響更嚴(yán)重。圖4 是本文采用的WIDER FACE 數(shù)據(jù)集目標(biāo)分布圖,可見(jiàn)該數(shù)據(jù)集中目標(biāo)尺度及長(zhǎng)寬比存在分布不均衡的情況。

圖4 樣本分布示意圖

對(duì)目標(biāo)檢測(cè)算法進(jìn)行分析可知,目標(biāo)所處圖像相對(duì)位置的變化并不會(huì)影響算法性能,而算法性能對(duì)目標(biāo)框的長(zhǎng)寬比以及尺寸的改變非常敏感。就YOLO 系列算法舉例,便是預(yù)選框長(zhǎng)寬比的設(shè)置以及大中小三個(gè)檢測(cè)頭尺寸的檢測(cè)尺度與目標(biāo)尺寸的適配。從這一角度出發(fā),本文引入聚類(lèi)算法以適應(yīng)數(shù)據(jù)集尺度變化大的問(wèn)題。

為進(jìn)行聚類(lèi),本文采用數(shù)據(jù)集中標(biāo)簽?zāi)繕?biāo)框的高、寬屬性信息作為聚類(lèi)特征數(shù)據(jù),選取歐氏距離函數(shù)作為聚類(lèi)的相似性度量函數(shù)進(jìn)行K-means聚類(lèi),如式(5)。

其中x,x代表數(shù)據(jù)集中不同的目標(biāo)框,W,WH,H為兩個(gè)目標(biāo)框的寬與高。按照YOLO 的設(shè)計(jì)理念,將數(shù)據(jù)劃分為大中小三個(gè)聚簇。最終聚類(lèi)結(jié)果如圖4所示,圖中兩個(gè)較大黑色標(biāo)志點(diǎn)以及黑色區(qū)域的較大白色標(biāo)志點(diǎn)表示聚類(lèi)得出的三個(gè)聚簇中心,其余不同灰度顏色的標(biāo)志點(diǎn)則分別代表三個(gè)聚簇中的目標(biāo)點(diǎn)。

對(duì)于訓(xùn)練過(guò)程,經(jīng)驗(yàn)可知大尺寸的輸入目標(biāo)數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò)容易收斂,可獲得較高精度;而對(duì)于尺度較小的輸入數(shù)據(jù),由于特征較小,在訓(xùn)練初期模型很難收斂。對(duì)于單一目標(biāo)種類(lèi)的人臉檢測(cè)數(shù)據(jù)來(lái)說(shuō),即使尺寸存在差異,人臉的結(jié)構(gòu)特征是相似的,因此對(duì)大尺度目標(biāo)的學(xué)習(xí)也可對(duì)小尺度目標(biāo)的識(shí)別提供幫助。在訓(xùn)練過(guò)程中重新劃分訓(xùn)練數(shù)據(jù)集進(jìn)行分步訓(xùn)練,先使用容易訓(xùn)練的大尺度目標(biāo)聚簇對(duì)整個(gè)模型網(wǎng)絡(luò)進(jìn)行權(quán)值初始化;然后添加中尺度目標(biāo)聚簇進(jìn)行兩個(gè)尺度目標(biāo)的混合識(shí)別推理;最終使用完整的數(shù)據(jù)集進(jìn)行完整的多尺度目標(biāo)識(shí)別訓(xùn)練。

3 實(shí)驗(yàn)過(guò)程與分析

3.1 實(shí)驗(yàn)環(huán)境配置

本文的實(shí)驗(yàn)環(huán)境包括訓(xùn)練所用的通用GPU訓(xùn)練平臺(tái)以及實(shí)際應(yīng)用的FPGA平臺(tái)。通用GPU訓(xùn)練平臺(tái)搭建在處理器型號(hào)為Intel Core i5-9400F,16 GB 內(nèi)存,顯卡為NVIDIA GeForce GTX1080Ti,運(yùn)行Ubuntu 20.04 系統(tǒng)的主機(jī)上,深度學(xué)習(xí)框架為Pytorch。

采用的FPGA 設(shè)備為U280 FPGA 加速計(jì)算模塊,其詳細(xì)參數(shù)見(jiàn)表1。

表1 U280參數(shù)表

3.2 模型評(píng)價(jià)方法

本次實(shí)驗(yàn)選用以下幾個(gè)指標(biāo)作為標(biāo)準(zhǔn),以評(píng)價(jià)算法在FPGA類(lèi)型的低算力設(shè)備上的運(yùn)行情況:檢測(cè)精確率()、檢測(cè)速度以及模型參數(shù)量(Params)大小。

是目標(biāo)檢測(cè)常用的性能指標(biāo),它表示檢測(cè)器的性能,計(jì)算過(guò)程如公式(6),表示預(yù)測(cè)正確的目標(biāo)數(shù)占總的正類(lèi)預(yù)測(cè)個(gè)數(shù)的比例。本文所有實(shí)驗(yàn)中目標(biāo)檢測(cè)交并比大于0.5 視為真目標(biāo)。

其中,為目標(biāo)檢測(cè)網(wǎng)絡(luò)預(yù)測(cè)出的真目標(biāo)數(shù);為未能成功預(yù)測(cè)出的真目標(biāo)數(shù);+即總數(shù)為的預(yù)測(cè)目標(biāo)中正類(lèi)目標(biāo)的總數(shù)目;檢測(cè)速度代表檢測(cè)器的檢測(cè)速度,其定義為對(duì)一張輸入圖像進(jìn)行目標(biāo)檢測(cè)算法所消耗的時(shí)間,單位為毫秒(ms)。通常模型參數(shù)量Params 越小,代表部署時(shí)的硬件壓力越小,越容易搭建于低算力設(shè)備中。

3.3 實(shí)驗(yàn)結(jié)果以及分析

由于本文算法重點(diǎn)在于嵌入式設(shè)備上目標(biāo)檢測(cè)算法的性能,因此選取YOLOv4、Tiny-YOLOv3、與REP-YOLO進(jìn)行對(duì)比。

訓(xùn)練的實(shí)驗(yàn)參數(shù)設(shè)置如下:批大小設(shè)置為16,最大迭代步數(shù)設(shè)置為1000000,學(xué)習(xí)率為0.01,權(quán)重衰減設(shè)置為0.001,動(dòng)量設(shè)置為0.9。

為確保模型在訓(xùn)練中達(dá)到高準(zhǔn)確率的同時(shí)在真實(shí)數(shù)據(jù)上擁有泛化性,先使用COCO數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,得到主干結(jié)構(gòu)的預(yù)訓(xùn)練權(quán)值,再使用針對(duì)人臉目標(biāo)監(jiān)測(cè)的WIDER FACE 數(shù)據(jù)集進(jìn)行訓(xùn)練。具體的訓(xùn)練過(guò)程如圖5所示。

圖5 網(wǎng)絡(luò)訓(xùn)練流程

為了對(duì)比模型實(shí)際應(yīng)用場(chǎng)景的性能,將測(cè)試模型統(tǒng)一部署到FPGA 設(shè)備U280上進(jìn)行測(cè)試。具體部署過(guò)程如圖6所示。

圖6 模型部署流程

為客觀評(píng)價(jià)本文所進(jìn)行的各部分設(shè)計(jì)改進(jìn)的具體效果,設(shè)置對(duì)基礎(chǔ)網(wǎng)絡(luò)進(jìn)行不同部分修改的消融實(shí)驗(yàn),“√”表示使用相應(yīng)手段進(jìn)行修改,而“×”表示保持原樣,以COCO 數(shù)據(jù)集為基準(zhǔn)輸入尺寸為608 ×608 在GPU 上進(jìn)行測(cè)試,測(cè)試結(jié)果如表2所示。

表2 消融實(shí)驗(yàn)

從消融實(shí)驗(yàn)可以得出以下結(jié)論。從實(shí)驗(yàn)1、2的測(cè)試準(zhǔn)確率對(duì)比可以看出,實(shí)驗(yàn)使用聚類(lèi)分析劃分訓(xùn)練集訓(xùn)練的方法對(duì)于大模型來(lái)說(shuō),僅有1.3%的提升,效果不大;但從實(shí)驗(yàn)3、4的測(cè)試準(zhǔn)確率對(duì)比可以看出,對(duì)于小模型來(lái)說(shuō),使用重新劃分的數(shù)據(jù)集進(jìn)行訓(xùn)練可在原有基礎(chǔ)上提升14%,準(zhǔn)確率從0.344 提升至0.392,因此此項(xiàng)技術(shù)對(duì)于小型目標(biāo)檢測(cè)模型的訓(xùn)練是有幫助的;同樣的,從實(shí)驗(yàn)4、6 的模型參數(shù)量以及測(cè)試準(zhǔn)確率對(duì)比可以看出,結(jié)構(gòu)重參數(shù)化手段可在不改變網(wǎng)絡(luò)推理準(zhǔn)確率的前提下,減少將近五分之一的參數(shù)量,從20.3 M 降至16.8 M,因此該方法可以減少模型對(duì)設(shè)備計(jì)算能力的需求,加快模型推理。

為了驗(yàn)證所設(shè)計(jì)算法的實(shí)際效果,我們選取YOLOv4 以及同樣以輕量化為設(shè)計(jì)前提的YOLOv4-tiny 作為對(duì)比,測(cè)試三者使用WIDER FACE 數(shù)據(jù)集進(jìn)行訓(xùn)練并部署在FPGA 設(shè)備上測(cè)試人臉檢測(cè)的具體效果,結(jié)果如表3所示。

表3 WIDER FACE數(shù)據(jù)集人臉檢測(cè)結(jié)果對(duì)比

由表3 可以看出,本文算法的速度相對(duì)于YOLOv4 來(lái)說(shuō)提升了2.2 倍,而即使是同樣輕量化設(shè)計(jì)的YOLOv4-tiny,速度依然有1.5 倍的提升;在檢測(cè)準(zhǔn)確率方面,對(duì)于簡(jiǎn)單目標(biāo)與中等目標(biāo),本文算法檢測(cè)精度與YOLOv4-tiny 相差無(wú)幾,僅略遜于YOLOv4。在困難目標(biāo)檢測(cè)方面,由于此類(lèi)目標(biāo)場(chǎng)景存在分辨率小、部分遮擋以及姿態(tài)變化等復(fù)雜難點(diǎn),輕量化設(shè)計(jì)的特征提取主干結(jié)構(gòu)能力稍有不足,但仍能成功檢測(cè)出將近八成目標(biāo)。

為直觀展示改進(jìn)算法在真實(shí)場(chǎng)景下的效果,我們從網(wǎng)上隨機(jī)選取若干圖片進(jìn)行人臉檢測(cè),檢測(cè)結(jié)果如圖7所示,可以看出在真實(shí)場(chǎng)景下算法有著良好的泛化性能。

圖7 算法效果展示

4 結(jié)語(yǔ)

針對(duì)目前算法依賴于大參數(shù)量以及高算力設(shè)備,在應(yīng)用到現(xiàn)實(shí)場(chǎng)景的人臉檢測(cè)任務(wù)時(shí)受到限制的現(xiàn)狀,本文設(shè)計(jì)了一種基于YOLO 的識(shí)別改進(jìn)算法。通過(guò)使用REPVGG 式結(jié)構(gòu)結(jié)合結(jié)構(gòu)重參數(shù)化方法對(duì)YOLO 目標(biāo)檢測(cè)算法主干進(jìn)行了精簡(jiǎn),并通過(guò)聚類(lèi)分析劃分訓(xùn)練集分批次訓(xùn)練的方法來(lái)保證輕量化結(jié)構(gòu)的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,該算法針對(duì)中大型人臉目標(biāo)的檢測(cè)具有良好的可靠性,同時(shí)該算法模型在FPGA類(lèi)型的低算力設(shè)備上能實(shí)時(shí)進(jìn)行準(zhǔn)確的目標(biāo)檢測(cè)。在接下來(lái)的研究中,將結(jié)合模型的量化與剪枝算法對(duì)深度神經(jīng)網(wǎng)絡(luò)參數(shù)量做進(jìn)一步壓縮,以此確保精度的前提下達(dá)到更高的實(shí)時(shí)性。

猜你喜歡
卷積分支人臉
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準(zhǔn)確測(cè)定
基于圖像處理與卷積神經(jīng)網(wǎng)絡(luò)的零件識(shí)別
玻璃窗上的人臉
基于深度卷積網(wǎng)絡(luò)與空洞卷積融合的人群計(jì)數(shù)
基于git工具的多分支并行開(kāi)發(fā)上線流程
用“分散數(shù)論”對(duì)“哥德巴赫猜想”的初等證明
智力考場(chǎng):有趣的圖片測(cè)試
含有二階冪零鞍點(diǎn)的雙同宿環(huán)附近的極限環(huán)分支
卷積神經(jīng)網(wǎng)絡(luò)概述
“領(lǐng)家系”可愛(ài)臉VS“高冷系”美人臉