畢業一載有餘,把畢業設計作品分享一下,希望能幫助到有需要的同學們。
溫馨提示:資料獲取見文章底部。
簡介:
本設計基於linux操作系統,由客戶端(門禁設備)和服務器(後臺處理中心)組成,通過以太網形成組網,實現一個人臉識別門禁系統。客戶端爲嵌入式Linux設備,採用QT庫顯示界面,通過攝像頭採集圖像。服務器爲PC上 Ubuntu系統,採用QT庫顯示界面,以OpenCV庫爲基礎進行圖像處理,採用基於Haar特徵的人臉檢測及LBPH人臉識別算法。客戶端負責採集圖像並上傳服務器,以及控制門禁設備;服務器負責對圖像進行人臉識別,以及增刪人臉等的用戶管理,是整個系統的處理中心。
圖例:
以下摘取論文中部分內容,簡單介紹:
論 文 目 錄
3.3 嵌入式Linux平臺應用程序的設計及實現... 13
2 系統整體設計方案及實現框架
2.1 系統設計方案
本系統整體上實現一個基於嵌入式技術和人臉識別技術的門禁系統,大致可分爲兩個大模塊:客戶端-嵌入式門禁設備、服務器-後臺處理和管理中心。
- 客戶端:核心採用ARM系列芯片-S5PV210(Cortex-a8),外圍有USB攝像頭、LCD顯示屏、DM9000網卡及其他一些必要硬件。實現界面顯示、圖像採集、圖像處理、與服務器網絡通信(TCP連接)、控制門鎖等功能。
- 服務器:採用PC機上運行的Ubuntu系統,外圍有攝像頭。實現界面顯示、與客戶端網絡通信、圖像處理、人臉識別、用戶管理等功能,是整個門禁系統的管理中心。
系統框圖:
圖2.1 系統整體設計方案框架圖
系統的工作流程方案:系統啓動,服務器加載人臉庫數據,並與客戶端連接;客戶端通過攝像頭採集圖像並顯示於LCD,同時通過網絡將圖像數據發送至服務器;服務器收到圖像數據後,對圖像進行處理(數據格式轉換),人臉檢測與識別,同時將圖像顯示於界面上,並將經人臉檢測與識別後的結果反饋至客戶端;客戶端根據反饋結果選擇控制門鎖的開關。至此,完成一次完整的工作流程,大致流程如下:
圖2.2 系統的大致工作流程
2.2 系統實現框架
系統整體設計方案中已列出需求,現需對方案中的每個功能進行分析並確定其實現方法。通過查閱大量資料,功能及其實現整理如下:
- 客戶端-嵌入式ARM板上的功能:
- 嵌入式平臺:CPU採用三星公司的S5PV210(Cortex-a8),操作系統採用linux-2.6.35.7內核,選用粵嵌公司的GEC-210開發板符合上述條件;
- 圖像採集功能:硬件使用USB攝像頭,軟件採用視頻驅動V4L2子系統驅動架構;
- 圖像處理功能:主要指V4L2採集的圖像、OpenCV 圖像、QT圖像三者之間的格式相互轉換,需要藉助OpenCV 庫、QT庫及自編的函數實現;
- 界面顯示功能:顯示器爲LCD屏,採用QT庫進行界面的設計佈局和顯示;
- 網絡通信功能:採用linux系統的socket套接字通信,TCP連接方式;
- 門鎖控制功能:根據門鎖的驅動方式,採用GPIO驅動來控制;
- 服務器-PC機上Ubuntu系統:
- PC系統平臺:採用Ubuntu-14.04版本,運行於Win7上的虛擬機上;
- 界面顯示功能:同樣採用QT進行顯示;
- 網絡通信功能:同樣採用linux的socket通信,TCP方式;
- 人臉識別功能:採用OpenCV 庫進行人臉識別相關的算法,包括人臉庫模型訓練、人臉檢測、人臉識別等功能;
- 圖像處理功能:主要指V4L2採集的圖像、OpenCV 圖像、QT圖像三者之間的格式相互轉換,需要藉助OpenCV 庫、QT庫及自編的函數實現;
- 用戶管理功能:包括添加用戶、刪除用戶等,以自編函數實現;
5.2 實現功能的測試
測試是項目開發中的一個重要環節,有利於對整個項目開發的完成情況作出分析,找出存在問題,有利於不斷完善作品,提高其完整性及穩定性。
對本設計中的預期功能作針對性測試,各功能模塊的實際測試結果如下:
1、客戶端的圖像採集及界面顯示功能,在ARM板上的實際效果,如圖:
圖5.1 客戶端界面
由上圖可知,界面上的背景圖、信息標籤等組件顯示於設定的位置上,說明功能正常。
2、客戶端的圖像採集及顯示功能,ARM板上由攝像頭進行採集、LCD顯示,效果如圖:
圖5.2 ARM板的圖像採集及顯示
上圖中,上方爲攝像頭,LCD顯示的畫面爲攝像頭所採集,通過移動攝像頭可見捕捉到的畫面也爲攝像頭所對着的地方,顯示畫面實時性高,質量好,無花屏、卡頓等現象,證明該功能正常。
3、服務器的界面顯示功能,在服務器Ubuntu上顯示的主界面,如圖:
圖5.3 服務器界面
由圖可知,圖片、標籤等均顯示於設定位置上,功能正常。
4、網絡數據傳輸功能: 以圖像傳輸爲例進行測試,在ARM板上採集的圖像,通過以太網傳輸到服務器Ubuntu上,功能正常表現爲在Ubuntu上可顯示實時畫面,並與ARM板上顯示的圖像同步,如圖:
圖5.4 圖像傳輸
上圖中,服務器顯示的圖像爲客戶端所採集,移動客戶端的攝像頭,畫面也隨之發生變化,實現性高,無花屏、卡頓等現在,證明功能正常。
5、人臉檢測功能:當攝像頭採集到一個完整的正臉時,ARM板上LCD顯示如圖:
圖5.5 人臉檢測
由上圖可見,人臉部分被一個矩形框標出,標記位置正確,移動人臉,矩形框會隨着人臉移動變化,說明功能正常。
6、人臉識別及設備控制功能:
當視頻流中出現的人臉,不是人臉庫中某一人臉時,現象如圖5.5,該人臉通過多角度的測試均未成功通過人臉識別驗證,相似度僅爲59%,無法打開門鎖控制器(下方LED開關指示燈不亮);
當出現的人臉爲人臉庫中的某一人臉時,現象如圖:
圖5.6 識別人臉庫中某一人臉
上圖中,提示識別成功,人臉標籤爲10,相似度爲80%,名字爲“QiuQing”,同時,門鎖控制器成功開啓(開關指示燈變亮),由此知,功能正常。
7、添加人臉功能:用一個未錄入人臉庫的人臉進行測試,爲方便起見,將用上節中不能通過人臉識別測試的人臉進行添加。編輯輸入框內容“ZengZhaorong”,點擊添加人臉,現象如圖:
圖5.7 添加人臉
上圖中,已打開服務器Ubuntu上的攝像頭,當顯示檢測到人臉時點擊拍照按鈕,成功拍下人臉,並右下角顯示已拍人臉,連拍10張後,提示添加成功。
成功添加人臉後,再次到客戶端ARM板上測試人臉識別功能,現象如圖:
圖5.8 添加人臉後的人臉識別
由上圖知,提示識別成功,人臉標籤爲1,相似度爲81%,名字爲“ZengZhaorong”,同時,門鎖控制器成功開啓,由此知,添加人臉功能正常。
8、刪除人臉功能:將上節添加的人臉再次刪除。在刪除人臉選擇欄,選擇名字 “ZengZhaorong”,點擊刪除,現象如圖:
圖5.9 刪除人臉
上圖中,提示是否確認刪除,點擊“Yes”,即提示刪除人臉成功。再次用已刪除的人臉測試人臉識別功能,現象如圖:
圖5.10 刪除人臉後的人臉識別
上圖中,已刪除的人臉,通過多角度試驗,仍無法通過驗證,相似度爲63%,證明刪除人臉功能正常。
歷史版本源碼:詳細記錄開發過程如何一步一步搭建工程,逐個功能實現的。
☞QQ交流羣:701694037 (資料下載);
資料:項目源碼、論文、答辯PPT、環境搭建及運行說明文檔、歷史版本源碼、演示視頻。。。
如有疑問,可留言或私信。