開源畢業設計:基於嵌入式ARM-Linux的應用OpenCV和QT實現的人臉識別系統(源碼+論文)

畢業一載有餘,把畢業設計作品分享一下,希望能幫助到有需要的同學們。

溫馨提示:資料獲取見文章底部。

 

簡介:

本設計基於linux操作系統,由客戶端(門禁設備)和服務器(後臺處理中心)組成,通過以太網形成組網,實現一個人臉識別門禁系統。客戶端爲嵌入式Linux設備,採用QT庫顯示界面,通過攝像頭採集圖像。服務器爲PC上 Ubuntu系統,採用QT庫顯示界面,以OpenCV庫爲基礎進行圖像處理,採用基於Haar特徵的人臉檢測及LBPH人臉識別算法。客戶端負責採集圖像並上傳服務器,以及控制門禁設備;服務器負責對圖像進行人臉識別,以及增刪人臉等的用戶管理,是整個系統的處理中心。

 

圖例:

 

以下摘取論文中部分內容,簡單介紹:

論 文 目 錄

1 緒論... 1

1.1   課題研究的背景及意義... 1

1.2 國內外研究的現狀及發展趨勢... 1

1.3 論文主要的研究內容及章節安排... 2

2 系統整體設計方案及實現框架... 3

2.1 系統設計方案... 3

2.2 系統實現框架... 4

3 客戶端嵌入式門禁設備的設計及實現... 6

3.1 嵌入式系統概述... 6

3.2 嵌入式Linux平臺運行環境的搭建... 6

3.2.1 嵌入式Linux平臺環境搭建概述... 6

3.2.2 嵌入式Linux系統的移植... 7

3.2.3 第三方庫的移植... 10

3.3 嵌入式Linux平臺應用程序的設計及實現... 13

3.3.1 圖像採集模塊的設計及實現... 13

3.3.2 圖像處理模塊的設計及實現... 14

3.3.3 顯示模塊的設計及實現... 15

3.3.4 網絡通信模塊的設計及實現... 16

3.3.5 外圍設備的設計及實現... 18

4 服務器應用程序和人臉識別功能的設計及實現... 20

4.1顯示模塊的設計及實現... 20

4.2 網絡通信模塊的設計及實現... 20

4.3 人臉識別實現流程概述... 21

4.4 人臉庫的建立及模型訓練... 22

4.5 人臉檢測算法的實現... 23

4.6 人臉識別算法的實現... 24

4.6.1 LBPH算法的原理... 24

4.6.2 LBPH算法的應用... 27

4.7 用戶管理功能的設計及實現... 29

4.7.1 添加用戶功能的實現... 29

4.7.2 刪除用戶功能的實現... 30

5 系統功能的測試展示及結果分析... 31

5.1 預期功能概述... 31

5.2 實現功能的測試... 32

5.3 系統的結果分析... 39

6 總結與展望... 40

參考文獻... 41

致謝... 42

 

 

2 系統整體設計方案及實現框架

2.1 系統設計方案

本系統整體上實現一個基於嵌入式技術和人臉識別技術的門禁系統,大致可分爲兩個大模塊:客戶端-嵌入式門禁設備、服務器-後臺處理和管理中心。

  1. 客戶端:核心採用ARM系列芯片-S5PV210(Cortex-a8),外圍有USB攝像頭、LCD顯示屏、DM9000網卡及其他一些必要硬件。實現界面顯示、圖像採集、圖像處理、與服務器網絡通信(TCP連接)、控制門鎖等功能。
  2. 服務器:採用PC機上運行的Ubuntu系統,外圍有攝像頭。實現界面顯示、與客戶端網絡通信、圖像處理、人臉識別、用戶管理等功能,是整個門禁系統的管理中心。

系統框圖:

圖2.1 系統整體設計方案框架圖

 

系統的工作流程方案:系統啓動,服務器加載人臉庫數據,並與客戶端連接;客戶端通過攝像頭採集圖像並顯示於LCD,同時通過網絡將圖像數據發送至服務器;服務器收到圖像數據後,對圖像進行處理(數據格式轉換),人臉檢測與識別,同時將圖像顯示於界面上,並將經人臉檢測與識別後的結果反饋至客戶端;客戶端根據反饋結果選擇控制門鎖的開關。至此,完成一次完整的工作流程,大致流程如下:

圖2.2 系統的大致工作流程

 

2.2 系統實現框架

系統整體設計方案中已列出需求,現需對方案中的每個功能進行分析並確定其實現方法。通過查閱大量資料,功能及其實現整理如下:

  1. 客戶端-嵌入式ARM板上的功能:
  1. 嵌入式平臺:CPU採用三星公司的S5PV210(Cortex-a8),操作系統採用linux-2.6.35.7內核,選用粵嵌公司的GEC-210開發板符合上述條件;
  2. 圖像採集功能:硬件使用USB攝像頭,軟件採用視頻驅動V4L2子系統驅動架構;
  3. 圖像處理功能:主要指V4L2採集的圖像、OpenCV 圖像、QT圖像三者之間的格式相互轉換,需要藉助OpenCV 庫、QT庫及自編的函數實現;
  4. 界面顯示功能:顯示器爲LCD屏,採用QT庫進行界面的設計佈局和顯示;
  5. 網絡通信功能:採用linux系統的socket套接字通信,TCP連接方式;
  6. 門鎖控制功能:根據門鎖的驅動方式,採用GPIO驅動來控制;

 

  1. 服務器-PC機上Ubuntu系統:
  1. PC系統平臺:採用Ubuntu-14.04版本,運行於Win7上的虛擬機上;
  2. 界面顯示功能:同樣採用QT進行顯示;
  3. 網絡通信功能:同樣採用linux的socket通信,TCP方式;
  4. 人臉識別功能:採用OpenCV 庫進行人臉識別相關的算法,包括人臉庫模型訓練、人臉檢測、人臉識別等功能;
  5. 圖像處理功能:主要指V4L2採集的圖像、OpenCV 圖像、QT圖像三者之間的格式相互轉換,需要藉助OpenCV 庫、QT庫及自編的函數實現;
  6. 用戶管理功能:包括添加用戶、刪除用戶等,以自編函數實現;

 

 

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、環境搭建及運行說明文檔、歷史版本源碼、演示視頻。。。


如有疑問,可留言或私信。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章