大學專題
第一章研究動機與目的
1-1動機
常常可以在國外的新聞上看見有學校被持槍挾持學生或是國內社會新聞經常報導的,有校外人士翻牆進入校園進行行竊或是攻擊學生老師,以及在本校某樓層的辦公室遭闖空門造成財物損失。
大學的校園是個開放的地方,每個人都可以隨意的進出校園,尤其做為觀光景點的學校更是嚴重,經常會有許多觀光客慕名而來,但有時會不小心在禁止開放的時間進入或是意外跑進禁止進入的區域,諸如此類的事件。
因此進入校園的人是單純的觀光客還是有意要來傷害或進行犯罪的人,我們無從得知,這樣會讓家長無法放心孩子在校園內的安全,並且讓陌生人躲在學校的機率就大大提升。
1-2目標
身為大學生的我們常常會看到一些爺爺奶奶進入校園運動,因為開放式的校園,我們無法去限制他們的行動範圍。除了我們看到的這些老人家外,還有可能會有危險人物進入校園,如果因為這些危險人物的出現造成學校物品遭竊,就無法即時的抓出兇手,又或者這些危險人物造成在校學生受到傷害,歸屬責任也是一件很困難的事情。
根據以上種種條件,我們希望可以在校園各個地方設置鏡頭,每隔20秒進行拍照,隨時捕捉照片,將當下有拍到校外人士的照片傳給管理者,讓管理者有個警惕,甚至在東西遺失時可以去查詢該時間點有誰經過,並列入嫌疑人名單。
1-3市場分析
我們認為目前就算人臉部分的產業雖然使用範圍廣泛,但是想要提高安全性的校園、大多數民眾或是一些中小企業仍然會選擇價錢較低,安全度也相對較低的攝像頭作為防護的作用。
單純攝像頭能起到的作用並不大,只能夠進行事後的補救,並不能在第一時間做到警報等反應,來做到事前防範。
我們可以很明顯的感受到這部分限制到市佔比率較低的高價格系統想要市佔比率增加的野心,對於類似像我們這種人臉辨識的警報系統想要提高市占比率,除了價格要如何降低與傳統價格低廉的攝像頭比拚,就是開發出更不一樣的功能來對比與現有的辨識系統抗衡外,以利提升本身的競爭性。
上述這些都是我們在專題中除了達到希望的成果外,也是未來臉部辨識功能要被廣泛使用的要點!
優勢(Strengths) |
劣勢(Weaknesses) |
1.成本較為低廉,售價為一般人家都能負荷。 2.小規模應用,但是足夠應校園與居家安全。 |
1.開發資金不夠,無法擴大規模。 2.市場上較多相同產品。
|
機會(Opportunities) |
威脅(Threats) |
1.一般低廉的攝像頭無法達到現在社會所需的安全性,我們價格不高昂,又有一定的安全保障。 2.我們為事前提醒、事後解決。 |
1.人臉辨識系統使用範圍多廣。 2.現今技術頗為成熟。 |
1-4分工
余珮瑄:監控介面、管理介面設計及傳輸
Webcamjs->開啟鏡頭進行拍照
WebSocket/Client->傳送照片到Server
HTML->頁面樣式設計
Mysql連接->連結資料庫,提取資料庫內資料並展示給使用者
黃品瑄:人臉偵測、比對資料庫資料
Face_recognition->偵測人臉並比對已有資料
YOLOv3->偵測人體或是物體
WebSocket/Server->接收Client傳送來的資料
Mysql連接->連結資料庫並提取資料庫內的資料進行比對
林佑璇:資料庫架設、訊息通知
Mysql->建立Database、資料表建立
Mysql連接->與Python使用mysqlclient連接
Mysql連接->與網頁使用PDO連接
Gmai->使用SMTP做訊息通知
第二章系統流程
2-1系統架構圖
利用鏡頭加一動裝置,將照片傳到server,在進入到資料庫進行比對。
圖2-1 系統架構
2-2系統流程
2-2-1監控
Webcam拍照,傳到server做Face_recognition及YoloV3的比對,傳回在校生、非在校生、人體,若為非在校生跟人體則寄送email給管理者。
圖2-2 監控流程
2-2-2網頁
登入後選擇身分並進行登入,在使用者中有新增、刪除、查詢可選擇,而管理者中則多一個修改的選項可以選擇。
圖2-3 網頁流程
2-3 人臉辨識步驟
1. 開啟xampp裡的Apache與MySQL
開啟xampp控制台後,可以直接按要啟用的Apache及MySQL旁的[Start] ,如圖2-4。
圖2-4 xampp
2. 利用Anaconda開啟SimpleSSLServer及wsserver
選擇檔案所存放的位置並利用python開啟,8000為所使用的port,如圖2-5。
圖2-5 開啟SimpleSSLServer
開啟另一個Anaconda,選擇檔案所存放的位置並利用python開啟,9000為所連接是伺服器,如圖2-6。
圖2-6 開啟wsserver
3. 遠端連接伺服器、開啟鏡頭在網頁上輸入伺服器端的IP即可開啟鏡頭。
4. Face_Recognition及YoloV3比對Face_Recognition系統流程,如圖2-7。
圖2-7 Face_Recognition
YoloV3系統流程,圖2-8,步驟如下。
1.
調整成448*448,圖片分割得到7*7網格(cell)
2.
CNN提取特徵和預測
3. 過濾bbox(通過nms)
圖2-8 YoloV3
5. 傳回欄位將處理完的照片傳回網頁端
第三章使用技術與平台
3-1頁面設計—Adobe Dreamweaver CS6
Adobe Dreamweaver CS6 網頁設計軟件,可以創建和編輯 HTML 網站。CS6使用專為跨平台兼容性設計的自適應網格版面在使用上可以更加得心應手。
Dreamweaver CS6,使用更新的“即時視圖”和“多屏預覽”面板高效創建和測試跨平台、跨瀏覽器的 HTML5 內容。
利用增強的 jQuery 和 PhoneGap 支持建構更出色的移動應用程序,並通過重新設計的多線程 FTP 傳輸工具來縮短上傳大文件所需的時間。
使用dreamweaver裡面的格式以及設計版面完成管理頁面的樣式製作並進行美化調整。
3-2前端鏡頭—Webcamjs
WebcamJS是一個小的JavaScript庫,用於捕獲計算機相機中的靜止圖像,並將照片轉成URI傳遞。
WebcamJS使用HTML5 getUserMedia,但提供了自動且不可見的Adobe Flash。
利用webcam進行拍照,將照片轉呈URL檔進行傳遞,然後可以將這些照片顯示在網頁中,並傳給server進行處理。
3-3傳輸協定—WebSocket
WebSocket使得用戶端和伺服器之間的資料交換變得簡單。
在WebSocket API中,瀏覽器和伺服器只需要完成一次握手,兩者之間就可以建立永續性的連接,並進行雙向資料傳輸。
在頁面中的每一格的傳遞連結都需要透過websocket傳輸,將資料與伺服器進行連結。
3-4人臉辨識—Face_Recognition
臉部辨識系統(Facial recognition system),又稱人臉識別。特指利用分析比較人臉視覺特徵信息進行身份鑑別的計算機技術。
廣義的人臉識別包括建構其一系列相關技術,如人臉圖像採集、人臉定位、人臉識別預處理、身份確認以及身份查找等;而狹義的人臉識別特指通過人臉進行身份確認或者身份查找的技術或系統。
人臉識別是一項熱門的計算機技術研究領域,它屬於生物特徵識別技術,是對生物體(一般特指人)本身的生物特徵來區分生物體個體。
3-5物體辨識—YoloV3
Yolo 系列 (You only look once, Yolo)是關於物件偵測 (object detection) 的類神經網路演算法,以小眾架構 darknet 實作,輕量、依賴少、演算法高效率,在工業應用領域很有價值,例如行人偵測、工業影像偵測等。
Yolo 目前已經出到第 3 代,但前 2 代的思路仍然十分值得參考:
1. YoloV1
從 RCNN、fast RCNN、faster RCNN、Yolo 的思路一路發展上來,Yolo 最大的特色是直接 end-to-end 做物件偵測,利用整張圖片作為神經網路的輸入,直接預測 bounding box 坐標位置、bounding box 含物體的confidence 和物體所屬的類別。
YoloV1 計算快速,能夠達到 real-time 速度需求,缺點是對位置的預測不夠精確,且小物體預測效果較差。
2. YoloV2
YoloV2 針對 YoloV1 的缺點做了一些改進:
引入 Faster RCNN 中的 anchor box,不再直接 mapping bounding box 的座標,而是預測相對於 anchor box 的參數,並使用 K-Means 求 anchor box 比例。
3. YoloV3
YoloV3 並沒有做革命性的創新,而是參考其他的論文對本身的模型做優化,效果十分顯著。
A.
使用 resnet 網路 (Residual Network)
新的基底網路為 Darknet-53,有 53 層,隨著網絡層數不斷加深 (數量級從 20~30 層到 ~50 層),採用了一般類神經網路加深時常用的 ResNet 結構來解決梯度問題。
B.
使用 FPN 網路 (Feature Pyramid Networks)
使用 FPN 多層級預測架構以提升小物體預測能力,特徵層從單層 13x13 變成了多層 13x13、26x26 和 52x52,單層預測 5 種 bounding box 變成每層 3 種 bounding box (共 9 種),詳見網路結構圖。使用 FPN 的架構可以讓低層較佳的目標位置和高層較佳的語義特徵融合,並且在不同特徵層獨立進行預測,使得小物體檢測改善效果十分明顯。
另外,種類預測從 softmax 改用 logistic classifier,每個 bounding 與 ground truth 的 matching 策略變成了 1 對
1,以符合分類種類並非互斥的實際情況。
3-6訊息通知—SMTP
SMTP的全名是「Simple Mail Transfer Protocol」,中文是處理郵件收發的通訊協定,當郵件伺服器安裝了SMTP, 就可以處理郵件的收發了。
SMTP是一個相對簡單基於文字的協定。在其之上指定了一條訊息的一個或多個接收者,然後訊息文字會被傳輸。可以很簡單地通過telnet程式來測試一個SMTP伺服器。
訊息通報的部分使用SMTP做Gmail發送通知,其中要附加圖片,所以還有使用from email.mime.application import MIMEApplication來傳送附件。
3-7伺服器—Apache
Apache HTTP Server簡稱為Apache,是Apache軟體基金會的一個開放原始碼的網頁伺服器軟體,可以在大多數電腦作業系統中運行。
Apache由於其跨平台和安全性,被廣泛使用,是最流行的Web伺服器軟體之一,並且因為它的快速、可靠以及可通過簡單的API擴充,將Perl/Python等直譯器編譯到伺服器中。
網頁與mysql皆通過Apache來開啟並做為媒介將兩者做連接。
3-8資料庫—MySQL
MySQL可以為多種程式語言提供API,這些語言包括Java、PHP、Python等,它不只能作為一個單獨的應用程式在客戶端伺服器網路環境中執行,也能夠作為一個程式庫而嵌入到其它的軟體中。
MySQL可以使用命令列來進行工具管理,也可以從MySQL的網站下載圖形管理工具MySQL Workbench來做使用。
在這裡使用xampp裡的MySQL,在其中可以使用phpMyAdmin方便MySQL資料庫的建立、修改、刪除資料庫及資料表。
phpMyAdmin是由php寫成的MySQL資料庫系統管理程式,讓管理者可用Web介面管理MySQL資料庫。這是一個簡易方式輸入繁雜SQL語法的途徑,在處理大量資料的匯入及匯出非常的方便。
沒有留言:
張貼留言