1 引言python
因爲是初次接觸軟件工程設計這種知識領域,並且是和搭檔一塊兒完成這個項目,要學習python計算機學習等多種東西,因此難度仍是有的。但願在作項目的過程當中能鍛鍊本身,在過程當中學習新知識,提升本身的實踐動手能力。算法
1.1 目的數據庫
在肯定選題,全面查閱相關資料,瞭解相關的知識背景後,撰寫了此項目需求規格說明書。該文檔是關於人臉識別簽到系統的功能和性能的描述,重點描述了系統的功能需求,並將其做爲系統設計階段的主要輸入。編程
本文檔的主要預期讀者包括:項目的需求分析人員、項目的設計人員、項目的開發人員、項目管理人員、項目測試人員以及用戶。後端
1.2項目背景安全
項目名稱:基於深度學習的人臉識別系統網絡
開發者:計科1703 吳坤 性能
計科1703 張珏鋮學習
計科 1703 宋劍橋測試
計科 1703 譚瑋
1.3縮寫說明
無
1.4術語定義
無
1.5參考資料
[1]Tensorflow技術解析與實戰[M].北京:人民郵電大學出版社,2017
[2]Python核心編程(第三版)[M].北京:人民郵電大學出版社,2016
[3]數字圖像處理(第三版)[M].武漢:武漢大學出版社,2003
[4]需求規格分析說明書標準[S].GB 856D-1988
1.6版本信息
修改編號 |
修改日期 |
修改後版本 |
修改位置 |
修改內容歸納 |
1 |
2019.3.24 |
1.0 |
所有 |
完成第一次編寫 |
2 |
2019.3.28 |
1.1 |
引言 參考資料 |
內容補充 排版完善 |
|
|
|
|
|
表一 具體版本信息
2任務歸納
2.1系統定義
2.1.1 項目來源及背景
在當下,人臉識別已經成爲了火熱的課題,有關人臉識別的各類研究成果層出不窮。圍繞着人臉識別這個課題,各國研究人員提出了各類各樣的算法,主要包括如下四個方面的研究:
1.提出不一樣的人臉空間模型,包括以線性判別分析爲表明的線性建模方法,以Kernel方法爲表明的非線性建模方法和基於3D信息的3D人臉識別方法。
2.深刻分析和研究影響人臉識別的因素,包括光照不變人臉識別、姿態不變人臉識別和表情不變人臉識別等。
3.利用新的特徵表示,包括局部描述子(Gabor Face, LBP Face等)和深度學習方法。
4.利用新的數據源,例如基於視頻的人臉識別和基於素描、近紅外圖像的人臉識別。而咱們打算採起深度學習的方法來設計這個項目。
2.1.2 項目的目標
本項目要完成的任務是人臉識別。系統在事先錄入用戶的照片數據後,用戶在攝像頭前拍攝本身的照片,而後提交給系統進行檢驗。檢驗後系統會反饋出識別結果。若是檢驗後發現是系統中已有的信息,系統將會提示識別到底人臉對應哪一個人。若是不是系統中已經保存的信息,系統會提示沒法識別並要求用戶重試。
2.1.3 系統總體結構
物理組成結構:
2.1.4 系統各部分組成、與其餘部分的關係、各部分的接口等
本系統僅需用帶有NVIDIA主板的計算機、採用GPU加速以及用自帶攝像頭採集圖像便可獨立完成,不需其餘接口。
2.2運行環境
2.2.1 設備環境
我的筆記本
2.2.2硬件環境
能運行主流編程軟件,有攝像頭,最好擁有GPU的筆記本。
2.2.3軟件環境
該系統基於Windows系統,採用Python 3.7.2,使用OpenCV,Keras(使用Tensorflow做爲後端)等庫
2.2.4網絡環境
本系統無需鏈接網絡,徹底使用本地資源,後期考慮採用GPU雲計算的方式進行神經網絡的訓練。
2.2.5操做環境
我的筆記本
2.2.6應用環境
系統工做流程以下圖所示:
2.3條件細則
2.3.1軟件開發工做的假定和約束,如經費限制、開發期限等
該系統基於Windows系統,採用Python 3.7.2,使用OpenCV,Keras(使用Tensorflow做爲後端)等庫
本項目由二人小組開發,要求於數字圖像處理課程結束前開發完畢。
2.3.2最終用戶,用戶的教育水平和技術專長
最終用戶要求會使用筆記本電腦的攝像頭。
2.3.3軟件的預期使用頻度等
本軟件在課前或課間進行人臉識別簽到,使用頻率中等。
3數據描述
3.1靜態數據
本系統須要採集圖片,須要訓練神經網絡,須要有輸出信息。所以,本系統須要存儲圖片和神經網絡的信息,以及需簽到成員的基本信息。
3.2動態數據
採集的用戶圖片信息
3.3 數據庫描述
MySQL 8.0
3.4 數據字典
3.5 數據採集
系統運行時須要預先讀取數據,或實時經過外設讀取數據
系統運行前須要讀取需簽到成員的大量圖片與對應的姓名和學號,系統啓動後需經過攝像頭讀取簽到成員的照片。
4功能需求
4.1功能劃分
4.1.1系統功能組成
攝像頭採集和處理圖片
本地圖片處理
卷積神經網絡的搭建與訓練
使用訓練好的模型進行測試
使用測試完畢的模型進行識別
4.1.2功能編號和優先級
編號 |
名稱 |
優先級 |
描述 |
主要發起者 |
1 |
攝像頭採集和處理圖片
|
重要 |
爲神經網絡提供樣本集 |
管理員 |
2 |
本地圖片處理 |
次要 |
對採集到圖片進行預處理以適應系統需求 |
管理員 |
3 |
卷積神經網絡的搭建與訓練
|
重要 |
核心,只有訓練好神經網絡的模型才能進行識別 |
管理員 |
4 |
使用訓練好的模型進行測試
|
次要 |
測試模型的精確度 |
管理員 |
5 |
使用測試完畢的模型進行識別 |
重要 |
採集用戶圖像進行識別 |
用戶 |
4.1.3 功能定義
攝像頭採集和處理圖片:使用OpenCV,自動打開攝像頭採集照片。在採集到過程當中自動檢測和定位人臉,改變不一樣的角度,實現採集不一樣效果的圖片,將圖片保存在本地備用。
本地圖片處理:對本地的圖片進行處理,例如進行灰度化,定位人臉,裁剪,把圖片處理成適合系統使用的尺寸,以知足系統使用的需求。
卷積神經網絡搭建和訓練:經過上述兩個子模塊獲得訓練集與測試集(訓練集與測試集比例爲8:2),開始搭建神經網絡並對模型進行訓練,最終搭建成符合須要的卷積神經網絡。
使用訓練好的模型進行測試:完成訓練後,用測試集對訓練好的模型進行精度測試,測試已經訓練好的模型的推廣能力。
使用測試好的模型進行識別:完成訓練後,使用搭建好的模型進行識別。在識別時,優先採集用戶圖像,而後提取用戶圖像的特徵,最終經過卷積神經網絡完成對用戶圖像的識別並反饋結果。
4.2 功能描述
4.2.1 功能說明
採集照片:指啓用攝像頭拍攝當前用戶的照片
4.2.2 詳情描述
5 性能需求
5.1數據精確度
系統所須要的圖片具備嚴格的格式要求,在輸入前必須知足格式要求。
5.2時間特性
通常操做的響應時間應在可接受的時間範圍內。
5.3 適用性
知足通常學生使用的需求,識別的速度應儘量的快,準確率儘量高。對前面提到的運行環境要求不該存在困難。
6 運行需求
6.1 用戶界面
6.1.1 界面風格
遵照Windows風格。
6.1.2 界面描述和樣式
根據最終需求設計相關的界面。
6.2 硬件接口
本系統須要調用計算機攝像頭,運行本系統的計算機應保證攝像頭可用。
6.3 軟件接口
運行在Windows 系統之上
6.4 故障處理
正常使用時不該出錯,若運行遇到錯誤,退出程序後自動重啓,並向開發者發送錯誤信息。
7其它要求
7.1檢測或驗收標準
人臉識別的準確率達到老師要求的標準。
7.2可用性,可維護性,可靠性,可轉換性,可移植性要求
軟件故障率低於10%。
軟件要求模塊設計,設備驅動可更換。
7.3安全保密性要求
無。
7.4開發要求
合適的OpenCV,Python,Keras,Tensorflow版本。
按照黑盒測試方法測試用例進行驗收