嚴輝?徐勉?吳強



摘? 要:通過對嵌入式技術以及人臉識別的研究,提出了在基于IMX6ULL處理器上,搭建人臉識別門禁系統。根據系統的功能需求給出了系統總體框架以及各個功能模塊的實現方案,包括圖像采集模塊、存儲模塊和輸入輸出模塊的硬件設計和系統的軟件實現。該系統運行穩定,效率高,滿足人臉識別門禁系統的設計要求。
關鍵詞:人臉識別;門禁系統;IMX6ULL
中圖分類號:TP36;TP391.4 ? ? ? ? ?文獻標識碼:A文章編號:2096-4706(2022)02-0001-05
Abstract: Through the research on embedded technology and face recognition, a face recognition access control system based on IMX6ULL processor is proposed. According to the functional requirements of the system, the overall framework of the system and the implementation scheme of each functional module are given, including the hardware design of image acquisition module, storage module and input-output module and the software implementation of the system. The system has stable operation and high efficiency, and meets the design requirements of face recognition access control system.
Keywords: face recognition; access control system; IMX6ULL
0? 引? 言
隨著社會經濟的快速發展,人民生活水平的不斷提高,人們的安防理念也逐步提升。門禁系統作為安防的基礎,其所具備的智能化、自動化等特點,受到了大多數用戶的青睞。在追求更加安全,穩定的同時,對其成本以及便攜性也有了更高的要求,因此對門禁系統的研究尤為重要。
在門禁系統中,人臉識別技術相比于其他生物特征識別方式,有著更加自然、直接、友好等優勢。傳統的人臉識別門禁系統一般搭建在PC機上,由于其便攜性和靈活性不夠,并且成本高,所以在運用方面受到一些限制[1,2]。嵌入式系統是可以針對需求來定制的一種專用計算機系統,運用非常廣泛。隨著嵌入式技術的快速發展,處理器的性能也在不斷提高,嵌入式系統的運算速度更快,處理數據的能力更強,并且它的體積更便于攜帶,將嵌入式系統與人臉識別技術相結合,可以發揮出嵌入式系統體積小、成本低、專用性強,以及人臉識別的交互友好性、安全性等一系列特點[3]。
本文深入探討了嵌入式人臉識別門禁系統的設計,在基于IMX6ULL處理器的嵌入式系統上,進行了主要的硬件模塊設計以及介紹了系統的軟件實現,給出了系統的環境搭建以及系統的性能測試。
1? 系統總體設計
人臉識別門禁系統的主要工作是采集人臉圖像并進行一系列圖像處理,處理后的數據與人臉庫中的數據進行比對,通過識別的結果判斷是否開啟門禁[4]。系統的總體結構設計如圖1所示。
根據不同的功能可以劃分為主控模塊、圖像采集模塊、存儲模塊以及輸入輸出模塊。主控模塊為整個系統的核心,由硬件和軟件兩部分組成,硬件由IMX6ULL處理器擴展外圍電路而成,軟件為人臉檢測、人臉識別算法的應用程序實現,該模塊主要負責各個模塊的調度和數據處理;圖像采集模塊,通過前端攝像頭采集人臉圖像,實時顯示在顯示屏上,并傳給主控模塊進行數據處理;存儲模塊,主要存儲嵌入式Linux操作系統、應用程序以及用戶的人臉數據庫;輸入輸出模塊,主要為觸摸顯示屏運行人機交互的GUI界面程序,以及整個系統最后的執行機構,通過主控模塊的識別結果發送相應的信號來控制電子門鎖的開關狀態。
2? 系統硬件設計
2.1? IMX6ULL處理器
處理器是嵌入式門禁系統的核心,系統采用基于ARM Cortex-A7架構的IMX6ULL處理器,主頻可達792 MHz,自帶1個SDRAM控制器、4個I2C接口、1個攝像頭接口、1個RGB LCD控制器、2個以太網接口以及眾多的通用IO口等,板載512 MB的DDR3用于系統內存,以及8 GB的EMMC作為系統存儲器,可掛載Linux操作系統和應用程序的運行,以及數據的存儲。該處理器功耗低、性能好,能滿足人臉識別門禁系統的要求。
2.2? 攝像頭接口電路設計
采用ATK-OV5640攝像頭模塊,OV5640是一款CMOS類型的數字圖像傳感器,集成了有源晶振、LDO和自動對焦功能,該傳感器支持輸出最大為500萬像素的圖像,支持自動圖像控制功能與圖像質量控制,可以提高采集人臉圖像的質量,同時支持RGB、YUV、YCbCr等圖像輸出格式。該傳感器的高像素、低噪音和低串擾以及自帶的嵌入式微處理器,極大的方便應用程序對圖像數據進行處理。攝像頭連接示意圖如圖2所示。
OV_D[7:0]為8位數據的輸出,與IMX6ULL的CSI_DATA[7:0]連接;OV_PIXCLK為像素時鐘輸出,OV_VSYNC為幀同步信號輸出,OV_HSYNC為行同步信號輸出,OV_PWDN為掉電使能,OV_RESET為復位信號,分別與IMX6ULL的CSI_PIXCLK、CSI_VSYNC、CSI_HSYNC、CSI_PWDN、CSI_RESET相連接。攝像頭模塊通過SCCB串行攝像頭控制總線進行配置,由傳輸時鐘信號的OV_SCL和傳輸數據信號的OV_SDA組成,SCCB的傳輸協議類似I2C協議,因此連接到IMX的I2C2上[5,6]。AVDD接模擬電源,該芯片需要2.45 V到3.0 V的模擬電壓,為了節省電源芯片,這里采用2.8 V。DVDD為1.5 V核電壓,可以內部供應,所以外接電容后再接地。A38C4759-205F-4634-AD7C-11164E5A035B
2.3? LCD與觸摸屏接口電路設計
系統采用ATK-7016這款TFT LCD+觸摸屏相結合的電容觸摸屏。IMX6ULL自帶LCD控制器eLCDIF,用于連接RGB LCD接口的屏幕,由于RGB LCD內部沒有內存,需要在SDRAM中分配一段內存作為RGB LCD屏幕的顯存。eLCDIF通過DOTCLK接口與屏幕連接,包括DOTCLK像素時鐘信號、HSYNC水平同步信號、VSYNC垂直同步信號和ENABLE數據使能信號。驅動IC選擇FT5426觸控芯片,通過24根數據線和4個IO連接主控制器:復位引腳RST,中斷引腳INT,SCL與SDA為I2C引腳[7]。LCD連接示意圖如圖3所示。
R[7:0]、G[7:0]和B[7:0]這24根數據線分別連接著IMX6ULL的LCD_DATA[23:16 15:8 7:0],VSYNC,HSYNC,DOTCLK,ENABLE信號線連接IMX6ULL的LCD_VSYNC,LCD_HSYNC,LCD_CLK,LCD_ENABLE,由于這些IO均為復用引腳,還需要配置相關寄存器將這些IO復用為LCD功能[8,9]。主控制器通過I2C接口來讀取驅動IC里面的觸摸坐標數據,為了減小CPU的占用率,采用輪詢的方式不斷查詢是否有觸摸點按下,而不采用中斷的方式。所以將SCL、SDA連接到IMX的I2C2上,INT與RST分別連接到SNVS_TAMPER9與GPIO1_IO9上。
2.4? 存儲模塊電路設計
IMX6ULL作為核心處理器,運行Linux操作系統,應用程序以及人臉識別算法,需要較大的內存空間。因此,本系統的存儲器使用一片外接的512 MB的DDR3芯片,型號為NT5CC256M16EP。DDR3是在SDRAM的基礎上擴大數據的傳輸速率,本質上還是SDRAM。IMX6ULL內置SDRAM控制器
A[14:0]為地址線,列地址為A0~A9,共10根,行地址為A0~A14,共15根。BA[2:0]為BANK選擇線,實現一片DDR的8個BANK選擇,因此DDR總容量為8BANK×2^10×2^15×2=512 MB。DQ[15:0]為16根數據線,因此數據寬度為16位,通過數據選通引腳LDQS與UDQS進行數據選擇,LDQS選通低字節DQ0~7,UDQS選通高字節DQ8~15。(RAS)、(CAS)、(WE)分別為行選通信號、列選通信號和寫使能信號。DDR3采用差分時鐘線,CK和(CK) 為時鐘信號,所有的控制和地址信號都在CK的上升沿和(CK)的下降沿相交處采集[10]。
2.5? 電磁鎖電路設計
系統運行的結果通過電磁鎖來反饋,由于處理器芯片引腳電流驅動能力有限,需通過繼電器實現對電磁鎖的控制。電磁鎖電路設計如圖5所示。
IMX6ULL處理器的GPIO口與三極管相連,通過三極管放大電路增加電流驅動能力。當GPIO口輸出高電平時,三極管Q1處于飽和導通狀態,電源給繼電器線圈通電,繼電器吸合,常開觸點變為常閉觸點,電磁鎖通電使開關打開;當GPIO口輸出低電平時,三極管Q1斷開,繼電器觸點由閉合轉為斷開,電磁鎖斷電使開關閉合。為了降低三極管Q1的功耗,接1 kΩ的電阻R1限流。由于線圈中的電流在斷開的情況下不能立刻變為零,導致線圈兩端會產生一個較大的反向電動勢,所以與繼電器反向并聯一個保護二極管D1,抑制浪涌,防止三極管被反向擊穿。
3? 系統軟件設計
3.1? 系統軟件總體設計
根據人臉識別門禁系統的具體功能設計需求,將軟件系統分為五個功能模塊:人臉采集模塊、人臉識別模塊、人臉注冊模塊、LCD顯示模塊以及門鎖控制模塊[11]。在主線程下分別創建各個模塊的子線程,方便對系統的升級及優化。系統總體設計如圖6所示。
3.2? 主流程設計
系統上電后首先進行各設備的初始化,包括攝像頭設備、顯示屏設備等;通過獲取的視頻幀,檢測每一幀人臉數據,當檢測到人臉后,對人臉圖像進行灰度化、直方圖均衡化等一系列預處理降噪;然后對人臉數據進行特征提取;最后通過與人臉庫中的人臉特征數據進行比對,若匹配成功則發送相應的信號打開電控鎖開啟門禁。系統主程序的具體流程如圖7所示。
3.3? 人臉采集程序設計
人臉采集程序通過攝像頭采集人臉圖像,并將其以文件的形式保存在存儲器中,同時將采集到的人臉傳送至液晶屏顯示。人臉采集程序具體流程如圖8所示。
人臉采集部分采用V4L2規范的視頻設備接口框架。首先打開攝像頭設備文件并進行初始化工作,包括獲取攝像頭驅動信息、設置圖像格式;然后向內核申請視頻采集數據的緩沖區,并將申請到的內存緩沖區映射到用戶空間;最后開始采集人臉圖像,底層部分完成視頻的采集,應用程序取出幀緩沖并完成訪問后,將幀緩沖重新入隊;如果不繼續采集圖像則關閉攝像頭設備停止圖像采集。
3.4? 人臉識別程序設計
人臉識別主要作用是判斷采集到的人臉數據是否在已建立好的人臉數據集中,若存在則返回數據庫中的人臉信息。首先采用Adaboost算法進行人臉檢測,并提取人臉特征;然后計算該人臉特征與數據庫中已存在特征人臉的歐氏距離;最后判斷此距離與程序預設的閾值的大小,若小于設定的閾值,則識別成功,此人臉存在于數據庫中,為合法人臉[12]。人臉識別程序具體流程如圖9所示。
4? 系統開發環境
根據人臉識別門禁系統的實際需求,選擇QT Creator作為應用程序的開發工具。QT作為跨平臺的C++圖形庫和用戶界面語言庫,為應用程序開發者提供界面設計所需的所有功能,并具有豐富的API,函數接口簡單,易于編程,支持嵌入式開發。A38C4759-205F-4634-AD7C-11164E5A035B
OpenCV是一個開源計算機視覺庫,采用C/C++語言編寫,具有良好的移植性,可以Linux等各種主流的操作系統平臺運行。本系統在嵌入式Linux環境下對OpenCV進行編譯,將編譯好的OpenCV庫移植到系統的根文件系統的/usr/lib目錄,應用程序采用其提供的有關圖像信號處理和人臉識別算法相關的接口,極大程度地提高了系統的開發效率。
5? 系統測試
通過對系統軟硬件的設計以及開發環境的搭建,成功實現了人臉識別門禁系統的設計。系統測試主要是對人臉識別精度以及識別效率進行測試,系統運行畫面如圖10所示。
系統預設注冊了40張人臉數據,包括35張ORL人臉以及5張實驗室人員人臉。通過5次實驗進行注冊人臉與未注冊人臉識別,實驗結果如表1所示。實驗表明該系統具有較高的識別精度與識別效率。
6? 結? 論
本文詳細介紹了基于IMX6ULL處理器的人臉識別門禁控制系統的設計,給出了系統的硬件模塊設計以及相關的軟件實現方案。通過測試表明,本系統的人臉識別成功率較高,并具有較好的穩定性與安全性,滿足人臉識別門禁系統的設計要求。嵌入式系統與人臉識別技術相結合的智能門禁系統,成本低、專用性強、交互性友好,可拓展性強。本系統還有許多地方需要改進,比如隨著樣本數量的增加識別精度會有所下降,缺乏活體檢測等。所以,在中小型場所的門禁控制應用中,本系統有著一定的推廣價值。
參考文獻:
[1] 張建楠.基于嵌入式的人臉識別智能門禁系統研究與設計 [D].杭州:杭州電子科技大學,2020.
[2] 王會來,邵軍,呂雪棟,等.人臉識別技術在智能樓宇中的應用研究 [J].科技創新與應用,2021,11(20):182-184.
[3] 張燕,任安虎,王磊.人臉識別智能門禁系統的優化設計技術 [J].單片機與嵌入式系統應用,2020,20(4):55-58.
[4] 魏昂.基于ARM的智能接觸控制系統的硬件設計與實現 [D].北京:北京交通大學,2018.
[5] 王佳超,王思懿,李黨娟,等.基于FPGA圖像采集系統的硬件電路設計 [J].自動化儀表,2020,41(3):76-79+83.
[6] 陳培英,王承林,胡紅林,等.基于ARM及ZigBee的智能家居遠程監控系統實現路徑[J].現代電子技術,2017,40(19):41-44.
[7] 陳文明.大屏幕TFT-LCD驅動電路設計 [J].光電技術應用,2019,34(1):35-40.
[8] 劉義平.音視頻采集硬件電路設計及實現 [J].電子技術與軟件工程,2021(13):88-89.
[9] 鄔慧敏,吳琨愉,吳巍,等.基于IMX6UL核心板的多旋翼無人機通用接口的設計與實現 [J].機電工程技術,2019,48(8):99-102.
[10] 陳一波,楊玉華,王紅亮,等.基于DDR3-SDRAM的圖像采集與顯示系統 [J].電子器件,2017,40(3):702-707.
[11] 劉宇皓.基于ARM的通用型人臉識別系統軟件設計與實現 [D].成都:電子科技大學,2021.
[12] 馮晶.基于AdaBoost算法的人臉檢測系統研究及其SoC實現 [D].南京:南京航空航天大學,2017.
作者簡介:嚴輝(1962—),男,漢族,安徽合肥人,副教授,安徽建筑大學,本科,方向:計算機控制和嵌入式系統應用;徐勉(1995—),男,漢族,安徽安慶人,碩士研究生在讀,研究方向:嵌入式系統。A38C4759-205F-4634-AD7C-11164E5A035B