公務員期刊網 論文中心 正文

FPGA下人臉識別系統(tǒng)實驗設計探析

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了FPGA下人臉識別系統(tǒng)實驗設計探析范文,希望能給你帶來靈感和參考,敬請閱讀。

FPGA下人臉識別系統(tǒng)實驗設計探析

摘要:隨著科技的快速發(fā)展,人臉識別技術逐漸進入了人們的生活中,成為了生活中密不可分的一部分。fpga不僅能夠進行數(shù)字系統(tǒng)設計,在人工智能領域也嶄露頭角。電子信息類本科生的實驗安排也必須跟上人才培養(yǎng)的需求、時代的步伐,為此,開發(fā)了基于FPGA的人臉識別系統(tǒng)實驗設計。該設計使用PYNQ實驗板,利用VivadoHLS高級綜合工具搭建電路系統(tǒng),用python調用設計的電路建立卷積神經網絡模型并訓練神經網絡,實現(xiàn)人臉識別技術,進一步加強學生學習EDA技術的意識。

關鍵詞:人臉識別;卷積神經網絡;PYNQ

眾所周知,我國集成電路領域人才缺口巨大,EDA技術是集成電路設計的核心。因此,EDA技術的發(fā)展才是集成電路卡脖子問題的關鍵所在。隨著人工智能以及機器學習、深度學習的快速發(fā)展,電子信息類本科學生的課程在不斷地與時俱進,傳統(tǒng)的實驗設計已經不適合人才培養(yǎng)的需求,開發(fā)新的能夠反映現(xiàn)代前沿信息技術的實驗設計勢在必行。對于公共場所,無接觸識別生物特征識別系統(tǒng)開始成為確認用戶身份的重要方式,其中人臉識別具有使用方便、識別更準確等優(yōu)勢,廣受用戶喜歡[1]。本實驗設計就是基于Xlinx公司的PYNQ開發(fā)板,采用VivadoHLS高級綜合工具利用硬件資源搭建電路系統(tǒng),用python調用設計的電路建立卷積神經網絡模型并訓練神經網絡,實現(xiàn)人臉識別技術,進一步加強學生學習EDA技術的興趣,激發(fā)學生解決我國集成電路領域卡脖子技術的熱情,培養(yǎng)學生的大國工匠精神。

1系統(tǒng)整體框架

盡管在不同的應用環(huán)境下,人臉識別系統(tǒng)的結構也有所不同,但大部分的人臉識別系統(tǒng)結構都包括人臉采集和檢測部分、圖像預處理部分、特征提取部分和人臉識別部分。人臉圖像被輸入系統(tǒng)后,將進行人臉檢測和人臉對齊,然后用特征提取器提取特征,系統(tǒng)再將提取的特征與圖庫人臉進行比較,進行人臉匹配。人臉圖像采集和檢測是根據(jù)人臉圖像的模式特征,在采集到的圖片中對人臉所在區(qū)域進行數(shù)據(jù)提取。人臉圖像預處理的目的主要是消除各種干擾,為后續(xù)人臉識別準確性做準備。人臉圖像特征提取是提取包括口、鼻、眼等特征,主要是根據(jù)位置構成的幾何結構等,以作為人臉圖像特征數(shù)據(jù)。人臉圖像識別就是通過提取一個人臉圖像的特征數(shù)據(jù)。當提取到特征數(shù)據(jù)與某個模板相似度超過了設定的概率時,則認為這個特征匹配成功,否則匹配失敗,同時輸出一個特征匹配結果。

2硬件設計

在卷積神經網絡中,大量的計算是卷積的計算,F(xiàn)PGA的計算速度要比軟件計算速度快,這也是為什么FPGA能夠用于人工智能領域的原因,模型中所有的卷積計算和池化部分通過FPGA器件實現(xiàn),這樣可以使計算速度更快。PL端的設計首先使用VivadoHLS軟件實現(xiàn)卷積計算,然后將一些變量分別設置為輸入和輸出端口,在HLS軟件中通過pipeline和unroll等方法進行優(yōu)化設計,通過軟件綜合后查看硬件資源的使用量以及時序約束等情況,最后利用此高層次綜合工具生成IP核。當使用unrolling方法進行優(yōu)化時,折疊的for循環(huán)被展開,相當于電路被復制成需要的數(shù)量,假如使用N個相同電路,則只需要一步計算就完成,這就是為什么FPGA可以作為硬件加速器。如圖1中,一個循環(huán)次數(shù)為6的for循環(huán),當使用unrolling將其分為3個for循環(huán)后,原來需要6步完成的計算只需要2步就可以了。幾乎所有的優(yōu)化方法都是以增大硬件資源開銷來達到提高計算效率的目的。沒有進行優(yōu)化前使用的硬件資源(solution1)遠低于使用unroll優(yōu)化(solution2)后使用的硬件資源數(shù)量。隨著集成電路制造工藝的發(fā)展,在單片F(xiàn)PGA上已經能夠集成大量的硬件資源,所以在硬件上進行加速設計已經完全可行。可以通過同樣的步驟做最大池化IP核,如圖2所示。設計好IP核之后就可以通過Vivado中的BlockDesign進行整體的電路設計。將設計好的電路通過軟件生成bit文件和tcl文件,再將bit文件、tcl文件和hwh文件改為相同的文件名,放到PYNQ-Z2的文件夾中即可使用。

3軟件設計

LFW人臉數(shù)據(jù)庫[5]是設計用于人臉識別問題的人臉照片數(shù)據(jù)庫。這個數(shù)據(jù)庫里面的圖像是RGB彩色圖像。本實驗設計可以使用LFW人臉數(shù)據(jù)庫,也可以采集自己、同學等人臉照片進行識別訓練。由于數(shù)據(jù)集不只是包含人臉數(shù)據(jù),還包括身體等很多背景,所以需要對數(shù)據(jù)集中的圖像進行篩選,首先提取出人臉部分,再進行隨機旋轉、翻轉等幾何變換,以增大訓練集?,F(xiàn)在流行的卷積神經網絡算法如圖3所示。學生可以選擇AlexNet網絡模型,注意網絡參數(shù)數(shù)量要適應PYNQ-Z2的內存空間大小。例如表1模型參數(shù)雖然可以滿足訓練要求,但是在移植到PYNQ-Z2開發(fā)板上時,由于參數(shù)數(shù)量太多,開發(fā)板的緩存根本裝不下,但是在AlexNet模型上刪減使用的卷積核數(shù)量,又會使訓練效果不理想,準確率低,所以大家要考慮如何選擇模型參數(shù)。例如可以降低最后一層的輸出種類數(shù),即將人臉識別的結果分為正確和錯誤兩種,可以使正確率大大增加。如圖4所示,是以LFW數(shù)據(jù)集作為訓練集、訓練的結果。從圖4中可以看出,隨著訓練次數(shù)的增加準確率在逐漸增加,采用二值結果,最后訓練得到的模型準確率可達97%以上。但由于卷積核的數(shù)量越多,計算量就越大,相應的程序運行時間就越長,可以通過降低卷積核的數(shù)量來提高運行速度。表2是降低卷積核數(shù)量后的模型參數(shù)。按照表2參數(shù)訓練情況如圖5所示,在圖中可以看到訓練的準確率在訓練的第15次就穩(wěn)定在了98%以上,盡管訓練時間有所延長,但程序運行時間僅為按照表1參數(shù)的七分之一。隨著參數(shù)的降低,程序需要運行的時間雖然大幅度減少,但是訓練所需要的時間也成倍增加,訓練的準確率有所降低。要求學生綜合訓練時間、程序運行時間、準確率三方面因素,選擇合適的模型參數(shù)進行訓練和測試。

4系統(tǒng)測試

可以在程序中設定檢測到非人臉圖片時,提示不是人臉,跳過人臉識別步驟,直接輸出結果,不是人臉,結束識別任務??梢葬槍λo出的前三種訓練的模型進行人臉識別測試,當然也可以自己重新修改模型參數(shù),找到最優(yōu)模型。對比在什么情況下,識別效果最好。下面僅給出使用模型參數(shù)一對數(shù)據(jù)庫中一幅圖片進行識別的結果,要求學生自己進行其他圖像或者自拍照片進行人臉識別。

5結論

本實驗設計采用協(xié)同異構的方法,在PYNQ上利用FPGA設計卷積IP核和池化IP核等硬件電路,利用開發(fā)板中的ARM部分調用硬件電路逐層搭建卷積神經網絡,最終實現(xiàn)人臉識別設計,使學生對FPGA的認識從數(shù)字系統(tǒng)設計轉變到人工智能領域設計。

作者:韓力英 寧欣波 單位:河北工業(yè)大學電子信息工程學院