手把手教你實現人臉識別,有手就行
應用領域
金融領域。人臉識別當前在金融領域的應用最為廣泛,當前國內金融領域監管要求嚴格,金融相關產品都需要實名認證,並且具有較高的安全性要求,活體識別,銀行卡ocr識別,身份證ocr識別,人證對比等在各大手機銀行,金融app,保險app等都已經成為不可或缺的一個環節
安保領域。目前大量的企業,住宅,社群,學校等安全管理越來越普及,人臉門禁系統已經成為非常普及的一種安保方式。
通行領域。很多城市的火車站已經安裝了人臉識別通行裝置,進行人證對比過檢,有些城市的地鐵站也可以透過人臉識別的方式進行地鐵進出站通行。
泛娛樂領域。現在市場上火爆的美顏相機,網路直播,短影片等都是建立在人臉識別的基礎上對人臉進行美顏和特效處理。
公安,司法領域。公安系統在追捕逃犯時也會利用人臉識別系統對逃犯進行定位,監獄系統目前也會對服刑人員透過人臉識別系統進行報警和安防
自助服務裝置。如銀行的自動提款機,無人超市等。
考勤及會務。如工作考勤,會議出席人臉牆等。目前人臉識別市場上的巨頭主要有商場,也有很多領域內巨頭公司投資的小公司。
第一步:匯入模組
dlib模組安裝其實是比較繁瑣的,要認真耐心點,可以參考:dlib安裝,如果不行再看看別的教程。
import sys
import cv2
import face_recognition #dlib 人臉識別庫
第二步:載入圖片並數值化
face_img=face_recognition.load_image_file('1.png')
print(face_img)
列印結果:
第三步:獲取圖片中的人臉資料
face_encodings=face_recognition.face_encodings(face_img)#進行特徵提取向量化,獲取人臉的編碼
face_locations=face_recognition.face_locations(face_img)#五官對應的位置
print(face_encodings)
圖片中有幾個人臉就有幾個陣列:
第四步:人數計算
n=len(face_encodings)
print(n)
#這裡只做判斷兩個人是否為一個人,超出兩個就退出了
if n>2:
print('超過兩個人')
sys.exit()
列印可以分出是兩個人:
第五步:人臉比較
#獲取兩個人的資料
face1=face_encodings[0]
face2=face_encodings[1]
result=face_recognition.compare_faces([face1],face2,tolerance=0.6)#人臉比較,,誤差不超過0.6則可以,預設值也為0.6
print(result)
返回:
判斷出為不是同一個人。
再稍微修改一下,讓表達更清楚:
if result==[True]:
name='same'
print('兩個人為同一個人')
else:
print('兩者不是同一個人')
name='different'
返回:
第六步:框出人臉寫上文字
for i in range(len(face_encodings)):
face_encoding=face_encodings[(i-1)] #倒序獲取
face_location = face_locations[(i - 1)]
print(face_location)#獲取人臉位置
返回:
top,right,bottom,left=face_location#確定出座標
#畫框框
cv2.rectangle(face_img,(left,top),(right,bottom),(255,0,0))#傳參分別為:圖片,座標,RGB顏色,框粗細
#寫字上去
cv2.putText(face_img,name,(left-10,top-10),cv2.FONT_HERSHEY_DUPLEX,0.8,(255,255,0),2)#傳引數分別為:圖片,文字,座標,字型,字型大小,顏色,粗細
第七步:顯示處理好的影像
face_img_rgb=cv2.cvtColor(face_img,cv2.COLOR_BGR2RGB)#確保顏色不要混亂
#展示影像
cv2.imshow('compare',face_img_rgb)
#設定等待關閉
cv2.waitKey(0)
效果:
你只需要按步驟敲程式碼即可為全部程式碼,當然為了便於大家直接cv,程式碼展示如下:
# coding=gbk
"""
作者:川川
公眾號:玩轉大資料
@時間 : 2022/2/5 14:36
群:428335755
"""
import sys
import cv2
import face_recognition #dlib 人臉識別庫
face_img=face_recognition.load_image_file('1.png')
# print(face_img)
face_encodings=face_recognition.face_encodings(face_img)#進行特徵提取向量化,獲取人臉的編碼
face_locations=face_recognition.face_locations(face_img)#五官對應的位置
# print(face_encodings)
n=len(face_encodings)
print(n)
#這裡只做判斷兩個人是否為一個人,超出兩個就退出了
if n>2:
print('超過兩個人')
sys.exit()
#獲取兩個人的資料
face1=face_encodings[0]
face2=face_encodings[1]
result=face_recognition.compare_faces([face1],face2,tolerance=0.6)#人臉比較,,誤差不超過0.6則可以,預設值也為0.6
# print(result)
if result==[True]:
name='same'
print('兩個人為同一個人')
else:
print('兩者不是同一個人')
name='different'
for i in range(len(face_encodings)):
face_encoding=face_encodings[(i-1)] #倒序獲取
face_location = face_locations[(i - 1)]
# print(face_location)#獲取人臉位置
top,right,bottom,left=face_location#確定出座標
#畫框框
cv2.rectangle(face_img,(left,top),(right,bottom),(255,0,0))#傳參分別為:圖片,座標,RGB顏色,框粗細
#寫字上去
cv2.putText(face_img,name,(left-10,top-10),cv2.FONT_HERSHEY_DUPLEX,0.8,(255,255,0),2)#傳引數分別為:圖片,文字,座標,字型,字型大小,顏色,粗細
face_img_rgb=cv2.cvtColor(face_img,cv2.COLOR_BGR2RGB)#確保顏色不要混亂
#展示影像
cv2.imshow('compare',face_img_rgb)
#設定等待關閉
cv2.waitKey(0)
更高階的人臉識別專案
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014825/viewspace-2868779/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 手把手教你 python 人臉識別自動開機Python
- 手把手教你運用深度學習構建影片人臉識別模型(Python實現)深度學習模型Python
- 手把手教你運用深度學習構建視訊人臉識別模型(Python實現)深度學習模型Python
- 【opencv3】 svm實現手寫體與人臉識別OpenCV
- 四款支援3D人臉識別手機推薦 3D人臉識別手機有哪些3D
- 實戰四:手把手教你實現數字識別
- 基於Android平臺實現人臉識別Android
- 如何用Excel 9步實現CNN人臉識別ExcelCNN
- matlab實現人臉識別(數學基礎原理)Matlab
- 手把手教你使用LabVIEW OpenCV DNN實現手寫數字識別(含原始碼)ViewOpenCVDNN原始碼
- 有手就行!10分鐘上手實現文生圖!
- opencv 人臉識別OpenCV
- 機器學習實戰-SVM模型實現人臉識別機器學習模型
- 手把手教你實現pynq-z2條形碼識別
- 【ROS】OpenCV+ROS 實現人臉識別(Ubantu16.04)ROSOpenCV
- 64行程式碼實現簡單人臉識別行程
- 虹軟人臉識別ArcSoft3.0NodeJs 版本實現NodeJS
- 人臉識別和手勢識別應用(face++)開發
- 人臉檢測識別,人臉檢測,人臉識別,離線檢測,C#原始碼C#原始碼
- 妙招:使用Python實現圖片在人臉識別並顯示Python
- 人臉識別之特徵臉方法(Eigenface)特徵
- Mars演算法實踐——人臉識別演算法
- 人臉識別檢測專案實戰
- C#人臉識別入門篇-STEP BY STEP人臉識別--入門篇C#
- 智慧人臉識別門禁系統開發,人臉識別開鎖流程
- 基於mtcnn/facenet/tensorflow實現人臉識別登入系統CNN
- 【Linux學習】OpenCV+ROS 實現人臉識別(Ubantu16.04)LinuxOpenCVROS
- 前端人臉識別--兩張臉相似度前端
- python—呼叫API人臉識別PythonAPI
- python ubuntu dlib人臉識別3-人臉對齊PythonUbuntu
- 人臉活體檢測人臉識別:眨眼+張口
- 支小蜜人臉識別消費系統助力學校食堂實現“刷臉吃飯”
- 人臉識別之Python DLib庫進行人臉關鍵點識別Python
- 如何快速實現人臉識別通道?一文了解具體技巧
- 用飛槳做命名實體識別,手把手教你實現經典模型 BiGRU + CRF模型CRF
- 乾貨 | AI人臉識別之人臉搜尋AI
- 人臉識別智慧考勤系統開發_人臉識別考勤管理系統開發
- 美軍開發遠端人臉識別系統,實現1公里內目標識別