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

?

人臉考試簽到系統(tǒng)的開發(fā)及應(yīng)用

2021-09-22 06:13:12吳梓祺
電子技術(shù)與軟件工程 2021年15期
關(guān)鍵詞:歐氏人臉程序

吳梓祺

(華南師范大學(xué) 廣東省廣州市 510555)

1 引言

當今世界信息技術(shù)日新月異,人臉檢測、人臉識別和人臉檢索等領(lǐng)域技術(shù)發(fā)展迅速,創(chuàng)造出許多人臉業(yè)務(wù)的解決方案,以及各種穩(wěn)定性好、泛化能力強、精度較高的模型,這讓基于深度學(xué)習(xí)的人臉考試簽到系統(tǒng)的開發(fā)成為了可能[1]。傳統(tǒng)的人工考場簽到方式存在效率低下和人工成本較高等諸多問題,而這一款微信小程序人臉考試簽到系統(tǒng)可很好地解決上述問題。首先,考生可以免去攜帶學(xué)生證的麻煩,只需把人臉圖片導(dǎo)入到系統(tǒng),便可通過系統(tǒng)的人臉簽到功能無障礙入場。其次,小程序比對成功并確認后,會自動把考生到場信息寫入數(shù)據(jù)庫,免去手動錄入系統(tǒng)的麻煩。最后,監(jiān)考人員只需一臺智能手機且安裝有微信,即可在登錄確認監(jiān)考員身份后,打開考場簽到小程序進行人臉簽到,小程序可以自動識別學(xué)生身份,無需監(jiān)考員人工比對。

由此傳統(tǒng)的人工考場簽到方式完全可由基于深度學(xué)習(xí)進行自動考場簽到的方式所取代。使用人臉考試簽到系統(tǒng)中的人臉業(yè)務(wù)模型,不僅可提高考試簽到效率,而且節(jié)約了大量的人工成本。

2 系統(tǒng)開發(fā)分析

2.1 設(shè)計原理

前端首先要打開微信小程序,通過手機攝像頭采集人臉圖片數(shù)據(jù),并用TensorFlow.js框架實現(xiàn)的Blaze Face輕量級人臉檢測模型進行實時人臉檢測,然后對檢測結(jié)果進行評估分析,把符合標準的圖像發(fā)送到后端,F(xiàn)lask后端通過TensorFlow框架實現(xiàn)的高精度FaceNet人臉識別模型從人臉圖像中提取出128維特征向量,該特征向量的歐氏距離作為人臉相似度的度量標準,然后通過Annoy算法快速查找于獲取人臉圖片相近的考生人臉,若相似度達到一定閾值,返回對應(yīng)學(xué)生的考試信息,最后手機確認,完成簽到。

2.2 系統(tǒng)前端設(shè)計

2.2.1 前端人臉檢測技術(shù)

由于考慮到簽到速度問題,把人臉檢測通過前端框架tensorflow.js實現(xiàn),采用BlazeFace[2]超輕量人臉檢測模型,模型大小小于400kb,推理速度達到亞毫秒級別。

2.2.2 BlazeFaceAPI代碼完善

對于BlazeFace模型,TensorFlow.js已經(jīng)給出了預(yù)訓(xùn)練模型以及對應(yīng)的API接口,只需要調(diào)用幾個函數(shù)就可以完成人臉檢測。但是在調(diào)用和解析BlazeFaceAPI源碼的過程中,作者作者發(fā)現(xiàn)源碼有以下幾點不足:

(1)每次啟動程序都要調(diào)用API從網(wǎng)上獲取模型權(quán)重和結(jié)構(gòu)等數(shù)據(jù),對服務(wù)器造成不必要的負載。

(2)人臉預(yù)測框會隨著輸入圖片長寬比的改變而改變。

對于以上缺陷,本文作出了以下幾點優(yōu)化:

(1)把API設(shè)計成第一次獲取到模型權(quán)重和結(jié)構(gòu)等數(shù)據(jù)后保存到微信小程序本地,這樣之后就可以離線識別了。

(2)刪除意義不明確的函數(shù),把圖片預(yù)處理封裝為一個函數(shù),對預(yù)測后結(jié)果的處理再封裝為一個函數(shù),提高代碼可讀性。

(3)刪除微信小程序無法獲取到的入?yún)㈩愋汀?/p>

(4)把所有有關(guān)tensorflow.js的操作放到api內(nèi),外部調(diào)用應(yīng)該完全不涉及對tfjs的任何操作,提高代碼解耦性。

(5)對于輸入做截取正方形處理,提高人臉預(yù)測框和關(guān)鍵點的預(yù)測精度。

(6)修改圖片檢測結(jié)果的解碼函數(shù),讓預(yù)測框保持原來的正方形。

2.2.3 人臉檢測質(zhì)量評估

由于向后端上傳人臉圖片請求人臉識別服務(wù)比較消耗資源,前端需要考慮如何評估人臉檢測質(zhì)量,從而丟棄檢測質(zhì)量較差的圖片,減少請求次數(shù),達到減輕后端服務(wù)器壓力的目的。為實現(xiàn)高效合理的人臉檢測質(zhì)量評估機制,需要權(quán)衡程序執(zhí)行效率和評估準確度,通過把消耗計算資源較大的算法放到后面,可以較好的解決該問題。

微信小程序先通過攝像頭采集圖片并進行人臉檢測,人臉檢測模型會以數(shù)組的形式返回人臉預(yù)測框和人臉關(guān)鍵點,程序首先判斷數(shù)組長度,如果長度大于一,則證明有多張人臉,如果長度為零代表沒有檢測到任何人臉,若數(shù)組長度為一,繼續(xù)通過預(yù)測框檢驗人臉是否位于相機中間位置而不是位于采集圖片的角落中,還需要檢驗預(yù)測框的大小,以避免離相機太遠或太近的情況,接下來通過幀間關(guān)鍵點檢測,確保人臉沒有大幅度位移和轉(zhuǎn)向,保證圖片的清晰度,然后根據(jù)人臉檢測框裁切出人臉圖片,最后是曝光度和清晰度檢查,值得注意的是程序會先裁切出人臉,然后再做以上兩個檢測,目的是只檢查人臉部分的曝光度和清晰度,而不需要考慮背景。

2.3 系統(tǒng)后端設(shè)計

2.3.1 后端人臉識別技術(shù)

FaceNet是一個通用的系統(tǒng),可以用于人臉驗證、識別和聚類。FaceNet采用的方法是通過卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)將圖像映射到歐幾里得空間。空間距離直接和圖片相似度相關(guān):同一個人的不同圖像在空間距離很小,不同人的圖像在空間中有較大的距離。FaceNet使用TripletsLoss函數(shù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),使得網(wǎng)絡(luò)直接輸出128維度的特征向量,向量的歐氏距離即可用于度量人臉相似度。以下是模型的架構(gòu)圖。FaceNet在LFW數(shù)據(jù)集上,準確率為0.9963%,在YouTubeFacesDB數(shù)據(jù)集上,準確率為0.9512[3]。

2.3.2 人臉識別模型優(yōu)化、訓(xùn)練與測試

雖然在GitHub上,davidsandberg提供了在CASIA WebFace和VGGFace2兩個大型人臉數(shù)據(jù)庫上訓(xùn)練出來的預(yù)訓(xùn)練模型,且在LFW數(shù)據(jù)集上準確度分別達到0.99和0.996,但是由于訓(xùn)練集和驗證集都是外國人臉,在預(yù)測亞洲人臉上可能會有一定的精度丟失,所以作者在亞洲人臉數(shù)據(jù)集CASIA FaceV5中嘗試了訓(xùn)練FaceNet模型,CASIA FaceV5數(shù)據(jù)集包含了來自500個人的2500張亞洲人臉圖片。

為了驗證訓(xùn)練的成果的有效性,作者做了如下測試:分別用以上兩個模型對同一個亞洲人進行測試,然后比較得到的歐氏距離,如果我們訓(xùn)練的模型的歐氏距離比官方的模型要小,說明我們的訓(xùn)練是有效的。

作者找了兩張本人不同時期的照片進行測試,運行train/compare.py比較圖片相似度,結(jié)果發(fā)現(xiàn)作者訓(xùn)練的模型計算出歐氏距離為0.6545而官方預(yù)訓(xùn)練模型計算出歐氏距離為0.737,可見訓(xùn)練的成果還是不錯的。

2.3.3 Annoy算法實現(xiàn)快速查找相近人臉

Annoy全稱是Approximate Nearest Neighbors Oh Yeah[4],是通過建立一種二叉樹索引結(jié)構(gòu),使得查詢一個點的近鄰點的時間復(fù)雜度為O(logn)。

假設(shè)需要建立索引的點在二維空間中。首先隨機選擇兩個點,以這兩個節(jié)點為初始中心節(jié)點,執(zhí)行聚類數(shù)為2的Kmeans算法,最終產(chǎn)生收斂后兩個聚類中心點。在兩個聚類中心點之間連一條線段(灰色短線),建立這條灰線的垂直平分線(黑色粗線)。這條黑色粗線把數(shù)據(jù)空間分成兩部分。在劃分的子空間內(nèi)進行不停的遞歸迭代繼續(xù)劃分,直到每個子空間最多只剩下K個數(shù)據(jù)節(jié)點。

最終原始數(shù)據(jù)會形成二叉樹結(jié)構(gòu):二叉樹底層是葉子節(jié)點記錄原始數(shù)據(jù)節(jié)點,其他中間節(jié)點記錄的是分割超平面的信息。我們通常會建立多個二叉搜索樹,來提高Annoy搜索算法的準確度。

查找的過程就是不斷判斷查詢點位于分割超平面的哪一邊。從二叉樹索引結(jié)構(gòu)來看,就是從根節(jié)點不停的往葉子節(jié)點查詢的過程。通過對查詢點和每個節(jié)點(分割超平面相關(guān)信息)進行相關(guān)計算來確定往這個節(jié)點左孩子節(jié)點走還是右孩子節(jié)點走。如果分割超平面的兩邊都很相似,那將會兩邊都查詢。直到查詢到葉子節(jié)點,返回葉子節(jié)點。

3 成果應(yīng)用

成果應(yīng)用如圖1-圖4所示。

圖1:監(jiān)考員信息展示界面

圖2:識別成功

圖3:考試列表界面

圖4:簽到情況展示界面

4 小結(jié)

作者以微信小程序為前端和Flask為后端,設(shè)計出基于Tensor-Flow深度學(xué)習(xí)框架的人臉考試簽到方案,并開發(fā)出一套完整的注冊登錄和查看學(xué)生簽到情況的后臺系統(tǒng)。人臉考試簽到系統(tǒng)利用前沿的深度學(xué)習(xí)技術(shù),在提高學(xué)??荚嚭灥焦ぷ餍实耐瑫r,降低了人工簽到成本,為學(xué)校實現(xiàn)教學(xué)信息化提供了新方案和參考依據(jù)。

猜你喜歡
歐氏人臉程序
有特點的人臉
試論我國未決羈押程序的立法完善
三國漫——人臉解鎖
動漫星空(2018年9期)2018-10-26 01:17:14
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進
馬面部與人臉相似度驚人
長得象人臉的十種動物
奇聞怪事(2014年5期)2014-05-13 21:43:01
基于多維歐氏空間相似度的激光點云分割方法
麗江“思奔記”(上)
探索地理(2013年5期)2014-01-09 06:40:44
宁南县| 凯里市| 横山县| 银川市| 会东县| 长泰县| 搜索| 昌乐县| 呼图壁县| 衡东县| 霍林郭勒市| 和平区| 江都市| 永新县| 涟源市| 道孚县| 山丹县| 和平区| 古浪县| 泽普县| 礼泉县| 新津县| 吐鲁番市| 阿拉尔市| 大足县| 内黄县| 石楼县| 台东市| 咸丰县| 军事| 商河县| 芦山县| 辛集市| 肇庆市| 库尔勒市| 浮梁县| 洞口县| 中江县| 九江县| 杭锦后旗| 漳州市|