基於OpenCV的實時面部識別


點擊上方小白學視覺」,選擇加"星標"或「置頂
python

重磅乾貨,第一時間送達git

咱們將使用一些簡單的代碼來實現實時面部識別代碼,咱們能夠對我的的面部進行預測。
如今,面部識別已成爲生活中的一部分。所以,在介紹主題以前咱們先看看實時面部識別示例。咱們在手機、平板電腦等設備中使用人臉信息進行解鎖的時候,這時就要求獲取咱們的實時面部圖像,並將其儲存在數據庫中以進一步代表咱們的身份。
經過對輸入圖像進行迭代和預測能夠完成這個過程。一樣,實時人臉識別可與OpenCV框架python的實現配合使用。 再將它們組合在一個組合級別中,以實現用於實時目的的模型。

人臉識別github

「面部識別」名稱自己就是一個很是全面的定義,面部識別是經過數字媒體做爲輸入來識別或檢測人臉的技術執行過程。web

人臉識別的準確性能夠提供高質量的輸出,而不是忽略影響其的問題因素。在這裏,要確保運行咱們的模型,必須確保在本地系統中安裝了庫。算法

pip install face_recognition數據庫

若是在 face_recognition庫的安裝過程當中遇到一些問題或錯誤,能夠點擊如下連接:https://www.youtube.com/watch?v=xaDJ5xnc8dcswift

人臉識別自己沒法提供清晰的輸出,所以出現了OpenCV實現的概念。後端

預先錄製的視頻中的人臉識別輸出示例。微信

OpenCVapp

OpenCV是python中一個著名的庫,用於實時應用程序。OpenCV在計算機世界中就像樹的根同樣很是重要。

face_recognition中的OpenCV對咱們訓練爲輸入的面部圖像進行聚類和特徵提取。它以圖像中的地標爲目標,以迭代方式在計算機視覺的深度學習方法中訓練它們。

在本地系統中安裝OpenCV

pip install opencv-python

使用深度學習算法,OpenCV檢測可做爲聚類,類似性檢測和圖像分類的表示。

爲何咱們使用OpenCV做爲實時Face_Recognition中的關鍵工具?

人類能夠輕鬆檢測到面部,可是咱們如何訓練機器識別面部?OpenCV在這裏填補了人與計算機之間的空白,並充當了計算機的願景。

以一個實時的例子爲例,當一我的遇到新朋友時,他會記住這些人的臉,以備未來識別。一我的的大腦反覆訓練後端的人臉。所以,當他看到那我的的臉時,他說:「嗨,約翰!你好嗎?」。

對面部的識別和能夠爲計算機提供與人類相同的思惟方式。

OpenCV是計算機視覺中的重要工具。若是咱們使用OpenCV,則遵循如下步驟:

經過輸入提取數據。

識別圖像中的面部。

提取獨特的特徵,以創建預測思想。

該特定人的性格特徵,如鼻子,嘴巴,耳朵,眼睛和麪部主要特徵。

實時人臉識別中人臉的比較。

識別出的人臉的最終輸出。

使用OpenCV python的Face_Recognition:

代碼下載:https://github.com/eazyciphers/deep-machine-learning-tutors/tree/master/Real-Time Face RecognitionGitHub

導入全部軟件包:

import face_recognitionimport cv2import numpy as np

加載並訓練圖像:

# Load a sample picture and learn how to recognize it.Jithendra_image = face_recognition.load_image_file("jithendra.jpg")Jithendra_face_encoding = face_recognition.face_encodings(Jithendra_image)[0]# Load a sample picture and learn how to recognize it.Modi_image = face_recognition.load_image_file("Modi.jpg")Modi_face_encoding = face_recognition.face_encodings(Modi_image)[0]

人臉編碼:

# Create arrays of known face encodings and their namesknown_face_encodings = [Jithendra_face_encoding,Modi_face_encoding,]known_face_names = ["Jithendra","Modi"]

主要方法:

當實時人臉識別爲true時,它將檢測到人臉並按照代碼中的如下步驟操做:

抓取實時視頻中的一幀。

將圖像從BGR顏色(OpenCV使用的顏色)轉換爲RGB顏色(face_recognition使用的顏色)

在實時視頻的幀中找到全部面部和麪部編碼。

循環瀏覽此視頻幀中的每一個面孔,並檢查該面孔是否與現有面孔匹配。

若是一我的臉沒法識別現有人臉,則將輸出視爲未知或未知。

識別後,不然在識別出的臉部周圍畫一個方框。

用其名稱標記識別的面部。

識別後顯示結果圖像。

退出:

# Hit 'q' on the keyboard to quit!
if cv2.waitKey(1) & 0xFF == ord('q'):
break

釋放攝像頭的手柄:

# Release handle to the webcam
video_capture.release()
cv2.destroyAllWindows()

輸入和輸出

在訓練過程當中提供給模型的樣本輸入…。

輸入

用於訓練代碼的樣本圖像

樣本輸入圖像進行訓練

輸出:

記錄輸出

代碼參考:https : //github.com/eazyciphers/deep-machine-learning-tutors


參考文獻:

https://www.pyimagesearch.com/2018/09/24/opencv-face-recognition/

https://www.superdatascience.com/blogs/opencv-face-recognition

https://zh.wikipedia.org/wiki/Facial_recognition_system


流羣


歡迎加入公衆號讀者羣一塊兒和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN算法競賽等微信羣(之後會逐漸細分),請掃描下面微信號加羣,備註:」暱稱+學校/公司+研究方向「,例如:」張三 + 上海交大 + 視覺SLAM「。請按照格式備註,不然不予經過。添加成功後會根據研究方向邀請進入相關微信羣。請勿在羣內發送廣告,不然會請出羣,謝謝理解~


本文分享自微信公衆號 - 小白學視覺(NoobCV)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索