許庚林, 冉 峰, 鄧 良, 史華康, 郭愛英
(上海大學(xué)微電子研究與開發(fā)中心, 上海 200444)
隨著現(xiàn)代社會(huì)的發(fā)展, 嵌入式人臉抓拍設(shè)備在新零售場景和監(jiān)控安防等領(lǐng)域具有廣泛的應(yīng)用價(jià)值.人臉抓拍是在攝像頭視頻流數(shù)據(jù)中挑選每個(gè)行人最佳人臉并確定其身份的過程, 其步驟分為人臉檢測、人臉跟蹤、最佳人臉提取和人臉識(shí)別.
人臉檢測是人臉抓拍的基礎(chǔ).2015 年Ren等[1]提出了Faster R-CNN(convolutional neural network)檢測算法, 該算法利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征, 同時(shí)提出區(qū)域生成網(wǎng)絡(luò)(region proposal network, RPN)提取候選框, 大幅加快網(wǎng)絡(luò)計(jì)算速度;同年, He等[2]針對(duì)CNN 網(wǎng)絡(luò)梯度存在消失的問題, 提出了殘差神經(jīng)網(wǎng)絡(luò)(residual neural network, ResNet)算法, 該算法依靠150 層的網(wǎng)絡(luò)深度學(xué)習(xí), 得到更深層抽象的特征, 分類能力更強(qiáng);2016 年Zhang等[3]提出了多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(multi-task cascaded convolutional neural network, MTCNN)人臉檢測算法, 該算法使用3 個(gè)級(jí)聯(lián)CNN 網(wǎng)絡(luò)檢測人臉位置和關(guān)鍵點(diǎn), 且確定的人臉關(guān)鍵點(diǎn)可用于人臉對(duì)齊, 便于后續(xù)人臉識(shí)別的研究;2018 年, Deng 等[4]提出了附加角幅度損失(additive angular margin loss, ArcFace loss)算法, ArcFace loss 算法更加注重在角度空間里對(duì)類別進(jìn)行區(qū)分, 使用50 層的ResNet 進(jìn)行訓(xùn)練, Lfw 測試集上的準(zhǔn)確率達(dá)到了99.8%.
多目標(biāo)跟蹤作為經(jīng)典計(jì)算機(jī)視覺問題, 在單目標(biāo)跟蹤問題的基礎(chǔ)上額外增加了目標(biāo)ID(identification)的關(guān)聯(lián)任務(wù), 在人臉抓拍系統(tǒng)中主要為不同幀中的同一行人賦予相同標(biāo)簽.多目標(biāo)跟蹤的典型算法有卡爾曼濾波[7]、均值漂移、核相關(guān)濾波、多尺度空間跟蹤等.近年來, 基于深度學(xué)習(xí)的檢測器迅速發(fā)展, 在檢測速度和精度上刷新了幾乎所有的算法測試集榜單.在此背景下, 基于檢測的跟蹤(tracking-by-detection, TBD)思路逐步應(yīng)用在多目標(biāo)跟蹤中.2016 年, Yu等[8]首先基于Faster R-CNN 設(shè)計(jì)目標(biāo)檢測器, 再使用GoogleNet 提取目標(biāo)外觀特征, 最后采用匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián);2017 年, Bochinski等[9]以高精度檢測算法為背景,針對(duì)高幀率跟蹤場景, 提出使用交并比(intersection over union, IOU)跟蹤目標(biāo), 并對(duì)檢測算法設(shè)定雙閾值, 篩選檢測框以提高魯棒性;2018 年, Hilke等[10]設(shè)計(jì)了聯(lián)合檢測和跟蹤的神經(jīng)網(wǎng)絡(luò), 使用單網(wǎng)絡(luò)多目標(biāo)檢測器(single shot multibox detector, SSD)[11]檢測目標(biāo), 并把檢測結(jié)果傳到循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)中, RNN 負(fù)責(zé)計(jì)算當(dāng)前幀目標(biāo)與上一幀目標(biāo)的相似度矩陣, 最后通過匈牙利算法對(duì)相鄰幀目標(biāo)進(jìn)行相似度匹配, 從而實(shí)現(xiàn)多目標(biāo)的跟蹤.
盡管基于深度學(xué)習(xí)的人臉檢測、跟蹤和識(shí)別算法已經(jīng)取得了較好的效果, 但嵌入式設(shè)備資源相對(duì)有限, 難以部署需要高實(shí)時(shí)性的深度學(xué)習(xí).輕量化網(wǎng)絡(luò)以犧牲部分識(shí)別精度為代價(jià)精簡網(wǎng)絡(luò)參數(shù), 降低網(wǎng)絡(luò)計(jì)算復(fù)雜度, 更適用于嵌入式平臺(tái)的部署, 典型網(wǎng)絡(luò)有MobileNet[5]、ShuffleNet[6]等.目前多目標(biāo)跟蹤算法大多在關(guān)聯(lián)模型上投入大的時(shí)間開銷.關(guān)聯(lián)模型包括特征表達(dá)和特征關(guān)聯(lián), 特征表達(dá)是關(guān)聯(lián)模型的核心, 最常見的特征是目標(biāo)外觀特征和運(yùn)動(dòng)特征.提取深層次特征會(huì)造成較大的時(shí)間開銷, 但將多個(gè)淺層次特征融合, 不僅計(jì)算量低, 而且算法魯棒性也較單一淺層次特征算法高.因此, 多特征融合更有利于完成嵌入式平臺(tái)的實(shí)時(shí)多目標(biāo)跟蹤任務(wù).
本工作基于目前較優(yōu)秀的輕量化卷積網(wǎng)絡(luò)MobileNet, 對(duì)SSD 檢測網(wǎng)絡(luò)剪枝優(yōu)化, 構(gòu)建了速度更快的人臉檢測網(wǎng)絡(luò)MobileNet SSPD(MobileNet single shot multibox purning detector);再利用MTCNN 中的O-Net 網(wǎng)絡(luò)將人臉對(duì)齊以提高后續(xù)跟蹤和識(shí)別的精度;基于融合哈希(fusion Hash, fHash)算法提取人臉外觀特征, 并利用卡爾曼濾波跟蹤器估計(jì)人臉運(yùn)動(dòng)信息, 通過求解最優(yōu)關(guān)聯(lián)矩陣實(shí)現(xiàn)多人臉跟蹤;使用關(guān)鍵點(diǎn)歐氏距離、人臉尺寸和四方向Sobel 算子[12]對(duì)同一行人的人臉進(jìn)行最佳提取;使用輕量化網(wǎng)絡(luò)MobileFaceNet[13]提取該最佳人臉的特征, 利用余弦相似度進(jìn)行特征匹配.實(shí)驗(yàn)結(jié)果表明, 本工作基于嵌入式平臺(tái)設(shè)計(jì)的人臉抓拍系統(tǒng)能夠滿足實(shí)時(shí)抓拍的要求, 同時(shí)也能達(dá)到很高的抓拍準(zhǔn)確率.
本工作人臉抓拍系統(tǒng)將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型移植到嵌入式設(shè)備上, 實(shí)現(xiàn)離線人臉抓拍功能, 系統(tǒng)模型如圖1 所示.系統(tǒng)通過攝像頭捕捉圖像, 保存在緩存器中;經(jīng)過人臉檢測算法檢測人臉, 對(duì)齊之后進(jìn)行人臉跟蹤;提取當(dāng)前每個(gè)行人的最佳人臉, 直至行人離開視野后對(duì)其進(jìn)行識(shí)別;將識(shí)別結(jié)果發(fā)送至遠(yuǎn)端服務(wù)器進(jìn)行應(yīng)用管理.
圖1 人臉抓拍系統(tǒng)模型圖Fig.1 Model diagram of face capture system
人臉檢測是在預(yù)處理輸入圖像后, 進(jìn)行場景圖像特征提取和人臉預(yù)測框回歸的過程.人臉對(duì)齊是人臉檢測的后處理, 首先檢測面部關(guān)鍵點(diǎn), 再對(duì)關(guān)鍵點(diǎn)做仿射變換實(shí)現(xiàn)對(duì)齊.人臉對(duì)齊的目的是擺正人臉, 提高后續(xù)跟蹤和識(shí)別的準(zhǔn)確率.人臉跟蹤在檢測到人臉后進(jìn)行特征提取、運(yùn)動(dòng)估計(jì), 通過求解關(guān)聯(lián)矩陣實(shí)現(xiàn)跟蹤;然后通過人臉質(zhì)量評(píng)價(jià)函數(shù)提取最佳人臉.人臉識(shí)別與人臉跟蹤算法流程一致, 但是為了提高效率, 人臉抓拍系統(tǒng)只需對(duì)最佳人臉進(jìn)行識(shí)別;同一行人只識(shí)別一次, 人臉跟蹤則需對(duì)同一行人持續(xù)提取特征, 因此人臉跟蹤相比人臉識(shí)別需要更快速的特征提取方法.
在人臉抓拍系統(tǒng)中, 一位行人在視野期內(nèi)會(huì)被多次檢測和跟蹤, 人臉檢測和跟蹤算法的準(zhǔn)確度和復(fù)雜度直接決定抓拍系統(tǒng)的性能, 是人臉抓拍系統(tǒng)的關(guān)鍵技術(shù).本工作基于此提出了MobileNet SSPD 快速人臉檢測網(wǎng)絡(luò)和融合哈希人臉跟蹤算法.
人臉檢測網(wǎng)絡(luò)主要由2 個(gè)部分組成: 場景圖像特征提取網(wǎng)絡(luò)和人臉檢測網(wǎng)絡(luò).為了能夠在保證檢測精度的同時(shí)提高檢測速度, 本工作將輕量化網(wǎng)絡(luò)MobileNet 作為場景圖像特征提取器, 將剪枝優(yōu)化后的SSD 網(wǎng)絡(luò)SSPD 作為人臉檢測網(wǎng)絡(luò).通常, 卷積神經(jīng)網(wǎng)絡(luò)的不同層有不同的感受野, 而在SSD 網(wǎng)絡(luò)結(jié)構(gòu)中省缺框(prior box)不需要和每一層的感受野對(duì)應(yīng), 特定的特征圖負(fù)責(zé)處理圖像中特定尺寸的物體.MobileNet SSD 網(wǎng)絡(luò)適用于多物體檢測, Howard等[5]抽取了19×19、10×10、5×5、3×3、2×2、1×1 這6 個(gè)不同特征圖尺寸大小的網(wǎng)絡(luò)層的特征進(jìn)行人臉預(yù)測框的回歸.而人臉抓拍系統(tǒng)只需檢測出人臉, 而且特小尺寸的人臉圖像檢測后再識(shí)別的誤差較大, 故在后續(xù)最佳人臉提取中也會(huì)被舍棄.因此本工作對(duì)SSD 網(wǎng)絡(luò)進(jìn)行剪枝處理以提高人臉檢測效率.圖2 是剪枝優(yōu)化后的網(wǎng)絡(luò)MobileNet SSPD, 這里SSPD 只抽取前級(jí)MobileNet 中19×19 的第11 層卷積層和10×10 的第13 層卷積層的特征, 直接回歸出預(yù)測框的位置以及分類的置信度.其中抽取特征用來回歸最小檢測框的尺寸為第11 層卷積層的60 像素, 設(shè)定回歸框IOU 的舍棄閾值為0.5, 則SSPD 網(wǎng)絡(luò)可以過濾掉尺寸小于42 像素的人臉圖像.
圖2 MobileNet SSPD 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 MobileNet SSPD network structure
損失函數(shù)由位置損失Lloc和分類損失Lconf加權(quán)獲得,
式中:N為匹配正樣本的總量(如果N= 0, 則令L= 0);x,c分別為分類的指示量和置信度;l,g分別為預(yù)測框和實(shí)際標(biāo)注的真實(shí)框;α為位置損失的權(quán)重;位置損失Lloc為預(yù)測框l和標(biāo)注的真實(shí)框g之間的Smooth L1 損失;分類損失為分類置信度之間的Softmax 損失.
人臉對(duì)齊是在檢測到人臉后, 對(duì)人臉圖像進(jìn)行優(yōu)化處理的過程.O-Net 是MTCNN 中的第3 階段網(wǎng)絡(luò), 在MTCNN 中對(duì)第2 階段的預(yù)測框進(jìn)行進(jìn)一步的回歸和校正, 并為每個(gè)預(yù)測框生成5 個(gè)人臉關(guān)鍵點(diǎn),分別為2 只眼睛、鼻尖和2 個(gè)嘴角.利用5 個(gè)關(guān)鍵點(diǎn)坐標(biāo)使用OpenCV 進(jìn)行仿射變換, 實(shí)現(xiàn)人臉對(duì)齊, 其流程如圖3 所示.
圖3 人臉對(duì)齊流程Fig.3 Flow chart of face alignment
在人臉抓拍系統(tǒng)中, 人臉跟蹤是對(duì)檢測到的人臉持續(xù)標(biāo)記的過程, 即同一行人在不同視頻幀中具有同樣的人臉標(biāo)記.本工作提出的融合哈希算法快速提取人臉特征, 再將特征映射到漢明空間求得特征相似度;同時(shí)利用卡爾曼濾波預(yù)測下一幀目標(biāo)位置及大小獲取運(yùn)動(dòng)信息, 通過計(jì)算跟蹤子集的預(yù)測坐標(biāo)與檢測子集的當(dāng)前坐標(biāo)的IOU 和2 個(gè)子集運(yùn)動(dòng)向量的余弦相似度,實(shí)現(xiàn)運(yùn)動(dòng)信息模型的估計(jì);基于上述多特征模型的構(gòu)建及使用擇優(yōu)匹配求解相似度關(guān)聯(lián)矩陣,進(jìn)行多人臉跟蹤.系統(tǒng)流程如圖4 所示.
圖4 多人臉跟蹤算法流程Fig.4 Multi-face tracking algorithm flow
融合哈希特征提取算法將均值哈希(average Hash, aHash)與感知哈希(perceptual Hash,pHash)算法[14]相結(jié)合(見表1).首先求解2 幅圖像的均值哈希和感知哈希的特征向量, 再分別對(duì)2 組特征向量求漢明距離, 最后將漢明距離轉(zhuǎn)化為特征相似度.均值哈希算法利用人臉的低頻信息, 通過雙3 次插值法將人臉變換為8×8 的矩陣, 灰度化后計(jì)算灰度像素平均值;將64 位矩陣元素與灰度平均值作比較, 大于平均值記為1, 否則為0, 輸出64 位均值哈希向量.感知哈希算法使用離散余弦變換(discrete cosine transform, DCT)將人臉圖像從像素域變換到頻率域, 描述了2 維離散余弦正變換:
表1 融合哈希特征提取算法Table 1 Fusion Hash feature extraction algorithm
式中:f(i)為原始的信號(hào);f(u)為DCT 變換后的系數(shù);N為原始信號(hào)的點(diǎn)數(shù);c(u)為補(bǔ)償系數(shù),可以使DCT 變換矩陣為正交矩陣.感知哈希算法輸出也是64 位向量.
為了提高系統(tǒng)抓拍效率, 本工作對(duì)跟蹤到的每個(gè)ID 的人臉圖像做質(zhì)量評(píng)價(jià), 選出質(zhì)量最高的人臉?biāo)腿牒罄m(xù)的人臉識(shí)別網(wǎng)絡(luò).本工作使用3 個(gè)指標(biāo)評(píng)測人臉質(zhì)量.
(1) 人臉側(cè)轉(zhuǎn)角.人臉對(duì)齊后仍存在側(cè)臉情況, 本工作基于O-Net 的5 個(gè)關(guān)鍵點(diǎn)計(jì)算人臉側(cè)轉(zhuǎn)角.過鼻尖關(guān)鍵點(diǎn)作垂直x軸直線, 計(jì)算其余4 個(gè)關(guān)鍵點(diǎn)到該直線的距離, 設(shè)左眼、左嘴角、右眼、右嘴角到直線距離分別為e1,m1,e2,m2, 人臉側(cè)轉(zhuǎn)角得分t為
式中: 人臉越正,t的值越接近1;反之越接近0.側(cè)轉(zhuǎn)角得分計(jì)算如圖5 所示.
圖5 人臉側(cè)轉(zhuǎn)角計(jì)算Fig.5 Face side angle calculation
(2) 人臉尺寸.設(shè)當(dāng)前檢測目標(biāo)人臉框面積為s1, 當(dāng)前最清晰人臉圖像面積為s2.此時(shí)更大面積的人臉尺寸得分為1, 小面積人臉尺寸得分為s1/s2或s2/s1(舍棄大于1 的值).
(3) 人臉清晰度.本工作使用四方向sobel 算子計(jì)算圖像梯度, 同時(shí)使用強(qiáng)邊緣像素的強(qiáng)度均值表示清晰度評(píng)價(jià)值.
最后將3 種指標(biāo)加權(quán), 篩選最高質(zhì)量人臉.
3.1 實(shí)驗(yàn)設(shè)置及數(shù)據(jù)準(zhǔn)備
本工作訓(xùn)練模型的服務(wù)器運(yùn)行Ubuntu16.04 系統(tǒng), 配備Intel Xeon E5 2620 v4 處理器,64 GB 內(nèi)存, Nvidia GeForce GTX 1080Ti 顯卡.本人臉抓拍系統(tǒng)最終運(yùn)行在ARM 平臺(tái)上, 設(shè)備為酷芯AR9201 EVB 開發(fā)板, 開發(fā)板配置如表2 所示.
表2 開發(fā)板配置Table 2 Development board configuration
本工作在Wider 數(shù)據(jù)集下訓(xùn)練MobileNet SSPD, 并在Fddb 數(shù)據(jù)集下進(jìn)行測試.首先,對(duì)Wider 數(shù)據(jù)集進(jìn)行處理, 剔除其中人臉太小或太模糊的照片, 整理出279 408 張人臉圖像.使用Afad 亞洲人臉數(shù)據(jù)庫和Orl 標(biāo)準(zhǔn)人臉庫對(duì)融合哈希算法進(jìn)行測評(píng).對(duì)不同人臉, 從Afad 中挑選出2 040 張背景一致的不同人臉圖像, 相互組合進(jìn)行104 萬次測試.對(duì)相同人臉的評(píng)判數(shù)據(jù)庫用的是Orl 標(biāo)準(zhǔn)人臉庫, 包含40 個(gè)人, 每人10 張人臉圖像, 共計(jì)求出1 800(45×40)組數(shù)據(jù).
在一致的訓(xùn)練集上, 分別對(duì)MobileNet SSD 和MobileNet SSPD 進(jìn)行訓(xùn)練.初始學(xué)習(xí)率為0.01, 學(xué)習(xí)率下降策略為Multistep, 分別在以10 為倍數(shù)的Epoch 時(shí)下降學(xué)習(xí)率.在Fddb 測試集的表現(xiàn)如表3 所示, 第一行從左至右分別為模型、驗(yàn)證集上準(zhǔn)確率、Fddb 測試集召回率、開發(fā)板單核DSP 下的運(yùn)行時(shí)間及幀率.由表中數(shù)據(jù)可以觀察到MobileNet SSPD 在犧牲了0.3%準(zhǔn)確率的基礎(chǔ)上實(shí)現(xiàn)了22.7%的速度提升.
表3 MobileNet SSD 與MobileNet SSPD 性能比較Table 3 Performance comparison between MobileNet SSD and MobileNet SSPD
在人臉抓拍系統(tǒng)中, 衡量人臉抓拍效率的指標(biāo)是每秒人臉的準(zhǔn)確抓拍數(shù)(accurate capture of the face per second, ACFS):
式中: ACFS 值越高, 每秒人臉正確抓拍數(shù)越多, 系統(tǒng)效率越高.本工作將MobileNet SSPD 與時(shí)下表現(xiàn)較好的算法VGG-SSD、DeepFace、MTCNN 和MobileNet SSD 進(jìn)行比較.從表4 可以看出, 得益于輕量化的網(wǎng)絡(luò)結(jié)構(gòu), 本算法在檢測速度上優(yōu)于其他算法;在Fddb 數(shù)據(jù)集的召回率上網(wǎng)絡(luò)更深的VGG-SSD 和DeepFace 表現(xiàn)更好;本算法的Acfs 值遠(yuǎn)高于其他算法, 每秒準(zhǔn)確抓拍到的人臉數(shù)量最多, 是最適合人臉抓拍系統(tǒng)的人臉檢測算法.
表4 不同人臉檢測算法抓拍性能比較Table 4 Capture performance comparison between different face detection algorithms
通過將融合哈希算法在整理后的Afad 和Orl 數(shù)據(jù)集上測試可以看出, 當(dāng)閾值設(shè)為1.6 時(shí),融合哈希算法可以排除98.5%以上的不同人臉, 同時(shí)能將76.7%的相同人臉匹配.
表5 不同人臉/相同人臉在不同閾值下數(shù)據(jù)對(duì)比Table 5 Comparison of different faces/identical faces under different thresholds
在相同測試集下將本算法與aHash、pHash、互信息、余弦相似度進(jìn)行測試(見表6).可見, 本算法綜合性能表現(xiàn)最好, 在與余弦相似度跟蹤算法準(zhǔn)確率表現(xiàn)幾乎一致的情況下可大大減少計(jì)算時(shí)間.本算法的準(zhǔn)確率比aHash 和pHash 算法高出21.7%和10.1%.
表6 不同相似度算法性能比較Table 6 Comparison of performance between different similarity algorithms
使用Mot16 數(shù)據(jù)集驗(yàn)證本算法的有效性, 檢測器采用Pubilc detector.設(shè)定當(dāng)?shù)趍幀的某檢測結(jié)果未關(guān)聯(lián)到第m ?1 幀跟蹤序列子集時(shí), 將該檢測結(jié)果作為新目標(biāo), 從第m+1 幀開始ID 排序;當(dāng)關(guān)聯(lián)度超過閾值θ時(shí), 則關(guān)聯(lián)成功.在fHash 算法中,α表示為pHash 特征相似度所占權(quán)重;在總關(guān)聯(lián)度計(jì)算時(shí),α為卡爾曼濾波跟蹤器估計(jì)關(guān)聯(lián)度占總關(guān)聯(lián)度的權(quán)重.
圖6(a)中, 4 條實(shí)線表示對(duì)應(yīng)的算法在不同關(guān)聯(lián)度閾值下的跟蹤準(zhǔn)確率, 虛線為該算法在不同閾值段的準(zhǔn)確率平均值.可見在θ= 0.6 時(shí), 目標(biāo)跟蹤準(zhǔn)確率(multi-object tracking accuracy, MOTA)較高, 且融合哈希特征對(duì)多目標(biāo)跟蹤準(zhǔn)確率的提升效果明顯.圖6(b)中實(shí)線為該算法在θ= 0.6 時(shí)不同權(quán)重α下算法的表現(xiàn), 虛線為其均值.可見, 當(dāng)pHash 權(quán)重α為0.6,外觀特征相似度與運(yùn)動(dòng)信息估計(jì)相似度權(quán)重持平時(shí), 算法跟蹤準(zhǔn)確率最高.
圖6 不同條件下MOTA 得分(KF 表示卡爾曼濾波跟蹤器)Fig.6 MOTA score under different conditions (KF for Kalman filter tracker)
本算法與其他先進(jìn)多目標(biāo)跟蹤算法比較結(jié)果如表7 所示, 其中本算法實(shí)時(shí)性最高且具有較低的ID 交換次數(shù), 同時(shí)能保持較高精度的跟蹤準(zhǔn)確率, 這也取決于相似度矩陣關(guān)聯(lián)的擇優(yōu)匹配求取策略.
表7 不同多目標(biāo)跟蹤算法比較Table 7 Comparison of different multi-object tracking algorithms
在單目標(biāo)和多目標(biāo)條件下對(duì)本算法進(jìn)行測試, 測試數(shù)據(jù)為實(shí)際場景中的視頻圖像, 每隔1 s 抽取一張作為效果圖.從圖7 和8 可見, 同一目標(biāo)的ID 不變且無錯(cuò)檢, 說明算法準(zhǔn)確跟蹤到了該目標(biāo), 抓拍到最佳人臉后識(shí)別結(jié)果也均正確, 實(shí)際測試準(zhǔn)確率在95%以上.
圖8 多張人臉抓拍效果圖Fig.8 Capture effect diagram of multiple faces
表8 列出了本系統(tǒng)運(yùn)行時(shí)間測試結(jié)果, 整個(gè)人臉抓拍系統(tǒng)在單核DSP 下平均每幀處理時(shí)間為138 ms, 在4 核DSP 加速下, MobileNet SSPD、O-Net 和MobileFaceNet 平均運(yùn)算速度提高了4 倍, 整個(gè)系統(tǒng)抓拍速度能達(dá)到28 幀/s, 可滿足實(shí)時(shí)的人臉抓拍需求.
表8 系統(tǒng)運(yùn)行時(shí)間Table 8 System running time
表8 中, DSP 工藝制程為40 nm, 每秒可執(zhí)行1.2 萬億次運(yùn)算(1.2 tera operations per second, 1.2 TOPs).在人工智能應(yīng)用需求日益上升的背景下, 以手機(jī)為代表的嵌入式設(shè)備均加強(qiáng)了SoC 芯片算力: 高通驍龍855 芯片算力為7 TOPs;蘋果A12 芯片算力為5 TOPs;華為海思麒麟990 芯片運(yùn)行MobileNet(int8)達(dá)到970 幀/s.以上設(shè)備在工藝和算力上都優(yōu)于本工作所用開發(fā)板, 因此如果本算法部署在手機(jī)端, 則抓拍效率會(huì)更高, 具有更高的應(yīng)用價(jià)值.
本工作基于酷芯微開發(fā)板設(shè)計(jì)和實(shí)現(xiàn)了人臉抓拍系統(tǒng).首先, 本工作在MobileNet SSD 網(wǎng)絡(luò)的基礎(chǔ)上設(shè)計(jì)了MobileNet SSPD 快速人臉檢測網(wǎng)絡(luò), 再級(jí)聯(lián)MTCNN 中的O-Net, 并依據(jù)人臉關(guān)鍵點(diǎn)進(jìn)行仿射變換實(shí)現(xiàn)人臉對(duì)齊;然后, 基于均值哈希與感知哈希算法設(shè)計(jì)出融合哈希匹配算法跟蹤人臉, 使用側(cè)轉(zhuǎn)角、尺寸和清晰度這3 個(gè)標(biāo)準(zhǔn)得到最佳的人臉圖像;最后, 對(duì)最佳人臉進(jìn)行識(shí)別.本工作通過優(yōu)化算法和4 核DSP 加速, 在嵌入式系統(tǒng)上達(dá)到了較快的人臉抓拍速度, 并取得了較高的抓拍準(zhǔn)確率.