1 得到影象的特徵後,訓練乙個決策樹構建的adaboost級聯決策器來識別是否為人臉
2 opencv中自帶已訓練好的檢測器,包括面部,眼睛,貓臉等,都儲存在xml檔案中,我們可以通過以下程式找到他們:
主程式如下:
importview codecv2 as cv
import
matplotlib.pyplot as plt
#1.以灰度圖的形式讀取
#2.例項化opencv人臉和眼睛識別的分類器
face_cas = cv.cascadeclassifier( "
haarcascade_frontalface_default.xml")
face_cas.load(
'haarcascade_frontalface_default.xml')
eyes_cas = cv.cascadeclassifier("
haarcascade_eye.xml")
eyes_cas.load(
"haarcascade_eye.xml")
#3.呼叫識別人臉
facerects = face_cas.detectmultiscale( gray, scalefactor=1.2, minneighbors=3, minsize=(32, 32))
for facerect in
facerects:
x, y, w, h =facerect
#框出人臉
cv.rectangle(img, (x, y), (x + h, y + w),(0,255,0), 3)
#4.在識別出的人臉中進行眼睛的檢測
roi_color = img[y:y+h, x:x+w]
roi_gray = gray[y:y+h, x:x+w]
eyes =eyes_cas.detectmultiscale(roi_gray)
for (ex,ey,ew,eh) in
eyes:
cv.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
#5. 檢測結果的繪製
plt.figure(figsize=(8,6),dpi=100)
plt.imshow(img[:,:,::-1]),plt.title('
檢測結果')
#2.在每一幀資料中進行人臉識別
while
(cap.isopened()):
ret, frame =cap.read()
if ret==true:
gray =cv.cvtcolor(frame, cv.color_bgr2gray)
#3.例項化opencv人臉識別的分類器
face_cas = cv.cascadeclassifier( "
haarcascade_frontalface_default.xml")
face_cas.load(
'haarcascade_frontalface_default.xml')
#4.呼叫識別人臉
facerects = face_cas.detectmultiscale(gray, scalefactor=1.2, minneighbors=3, minsize=(32, 32))
for facerect in
facerects:
x, y, w, h =facerect
#框出人臉
cv.rectangle(frame, (x, y), (x + h, y + w),(0,255,0), 3)
cv.imshow(
"frame
",frame)
if cv.waitkey(1) & 0xff == ord('q'
):
break
#5. 釋放資源
cap.release()
cv.destroyallwindows()
總結
opencv中人臉識別的流程是:
讀取,並轉換成灰度圖
例項化人臉和眼睛檢測的分類器物件
#3 進行人臉和眼睛的檢測例項化級聯分類器
classifier =cv.cascadeclassifier( "
haarcascade_frontalface_default.xml")
#載入分類器
classifier.load('
haarcascade_frontalface_default.xml
')
rect = classifier.detectmultiscale(gray, scalefactor, minneighbors, minsize,maxsize)4 將檢測結果繪製出來就可以了
Robot Framework(6) 案例分層
案例層 測試流程 資料 流程層 元素操作 元素層 測試庫封裝 案例層 測試流程 資料 流程層 頁面層操作 頁面層 元素操作 元素層 測試庫封裝 1.新建資源檔案,引入selenium2library測試庫,新增關鍵字 元素層 開啟瀏覽器 輸入使用者名稱 將之前指令碼中的每一行都建立關鍵字 2.再建立...
10案例分析
銀行 信用風險,即客戶違約風險,是銀行風險管控的主要內容。不同行業,不同企業,財務指標的風險程度不同。假資料,假資訊,假報表的現象,財務資訊的質量問題有三個方面是非常重要的 1.建立識別假報表的管理體系 2.研究建立財務資訊的勾稽關係,即通過相互之間的購機關係的檢驗來判別資料的質量 3.建立資料的錄...
90 (案例)Lambda案例演示一
從匿名內部類到最簡化的lambda表示式逐漸演示 public inte ce demo02cookpublic class demo02 lambda方式 引數列表 一些重寫方法的 makecook lambda方式 繼續簡化 3 一些 如果 中的 只有一行,無論是否有返回值,都可以省略 retu...