亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python基于opencv實(shí)現(xiàn)人臉識(shí)別

瀏覽:5日期:2022-06-30 13:23:16

將opencv中haarcascade_frontalface_default.xml文件下載到本地,我們調(diào)用它輔助進(jìn)行人臉識(shí)別。

識(shí)別圖像中的人臉

#coding:utf-8import cv2 as cv# 讀取原始圖像img = cv.imread(’face.png’)# 調(diào)用熟悉的人臉?lè)诸?lèi)器 識(shí)別特征類(lèi)型# 人臉 - haarcascade_frontalface_default.xml# 人眼 - haarcascade_eye.xml# 微笑 - haarcascade_smile.xmlface_detect = cv.CascadeClassifier(’haarcascade_frontalface_default.xml’)gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)# 檢查人臉 按照1.1倍放到 周?chē)钚∠袼貫?face_zone = face_detect.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)print (’識(shí)別人臉的信息:’,face_zone)# 繪制矩形和圓形檢測(cè)人臉for x, y, w, h in face_zone: # 繪制矩形人臉區(qū)域 thickness表示線(xiàn)的粗細(xì) cv.rectangle(img, pt1=(x, y), pt2=(x+w, y+h),color=[0,0,255], thickness=2) # 繪制圓形人臉區(qū)域 radius表示半徑 cv.circle(img, center=(x+w//2, y+h//2), radius=w//2, color=[0,255,0], thickness=2)# 設(shè)置圖片可以手動(dòng)調(diào)節(jié)大小cv.namedWindow('Easmount-CSDN', 0)# 顯示圖片cv.imshow('Easmount-CSDN', img)# 等待顯示 設(shè)置任意鍵退出程序cv.waitKey(0)cv.destroyAllWindows()

python基于opencv實(shí)現(xiàn)人臉識(shí)別

注意,此算法只能檢測(cè)正臉,并且任何算法都有一定的準(zhǔn)確率。如上圖所示,圖像中有一處被錯(cuò)誤地檢測(cè)為人臉。

CascadeClassifier:

是OpenCV中人臉檢測(cè)的一個(gè)級(jí)聯(lián)分類(lèi)器,既可以使用Haar,也可以使用LBP特征。以Haar特征分類(lèi)器為基礎(chǔ)的對(duì)象檢測(cè)技術(shù)是一種非常有效的技術(shù)。它是基于機(jī)器學(xué)習(xí)且使用大量的正負(fù)樣本訓(xùn)練得到分類(lèi)器。

Haar-like矩形特征:

是用于物體檢測(cè)的數(shù)字圖像特征。這類(lèi)矩形特征模板由兩個(gè)或多個(gè)全等的黑白矩形相鄰組合而成,而矩形特征值是白色矩形的灰度值的和減去黑色矩形的灰度值的和,矩形特征對(duì)一些簡(jiǎn)單的圖形結(jié)構(gòu),如線(xiàn)段、邊緣比較敏感。如果把這樣的矩形放在一個(gè)非人臉區(qū)域,那么計(jì)算出的特征值應(yīng)該和人臉特征值不一樣,所以這些矩形就是為了把人臉特征量化,以區(qū)分人臉和非人臉。

LBP:

是一種特征提取方式,能提取出圖像的局部的紋理特征,最開(kāi)始的LBP算子是在3X3窗口中,取中心像素的像素值為閥值,與其周?chē)藗€(gè)像素點(diǎn)的像素值比較,若像素點(diǎn)的像素值大于閥值,則此像素點(diǎn)被標(biāo)記為1,否則標(biāo)記為0。這樣就能得到一個(gè)八位二進(jìn)制的碼,轉(zhuǎn)換為十進(jìn)制即LBP碼,于是得到了這個(gè)窗口的LBP值,用這個(gè)值來(lái)反映這個(gè)窗口內(nèi)的紋理信息。LBPH是在原始LBP上的一個(gè)改進(jìn),在opencv支持下我們可以直接調(diào)用函數(shù)直接創(chuàng)建一個(gè)LBPH人臉識(shí)別的模型。比如:cv.face.LBPHFaceRecognizer_create()。

detectMultiScale:

檢測(cè)人臉?biāo)惴ǎ鋮?shù):? image表示要檢測(cè)的輸入圖像? objects表示檢測(cè)到的人臉目標(biāo)序列? scaleFactor表示每次圖像尺寸減小的比例? minNeighbors表示每一個(gè)目標(biāo)至少要被檢測(cè)到3次才算是真的目標(biāo),因?yàn)橹車(chē)南袼睾筒煌拇翱诖笮《伎梢詸z測(cè)到人臉? minSize表示目標(biāo)的最小尺寸? maxSize表示目標(biāo)的最大尺寸

識(shí)別視頻中的人臉

將視頻中每一幀圖像取出,進(jìn)行圖像人臉識(shí)別,標(biāo)記識(shí)別到的人臉,顯示每一幀圖像。

#coding:utf-8import cv2 as cvimport numpy as np# 加載視頻cap = cv.VideoCapture(’wang.mp4’)# 調(diào)用熟悉的人臉?lè)诸?lèi)器 識(shí)別特征類(lèi)型# 人臉 - haarcascade_frontalface_default.xml# 人眼 - haarcascade_eye.xm# 微笑 - haarcascade_smile.xmlface_detect = cv.CascadeClassifier(’haarcascade_frontalface_default.xml’)while True: # 讀取視頻片段 flag, frame = cap.read() if flag == False: break # 灰度處理 gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) # 檢查人臉 按照1.1倍放到 周?chē)钚∠袼貫? face_zone = face_detect.detectMultiScale(gray, scaleFactor = 1.5, minNeighbors = 8) # 繪制矩形和圓形檢測(cè)人臉 for x, y, w, h in face_zone: cv.rectangle(frame, pt1 = (x, y), pt2 = (x+w, y+h), color = [0,0,255], thickness=2) cv.circle(frame, center = (x + w//2, y + h//2), radius = w//2, color = [0,255,0], thickness = 2) # 顯示圖片 cv.imshow(’video’, frame) # 設(shè)置退出鍵和展示頻率 if ord(’q’) == cv.waitKey(25): break# 釋放資源cv.destroyAllWindows()cap.release()

python基于opencv實(shí)現(xiàn)人臉識(shí)別

識(shí)別攝像頭中的人臉

#coding:utf-8import cv2 as cv# 識(shí)別電腦攝像頭并打開(kāi)cap = cv.VideoCapture(0)# 調(diào)用熟悉的人臉?lè)诸?lèi)器 識(shí)別特征類(lèi)型# 人臉 - haarcascade_frontalface_default.xml# 人眼 - haarcascade_eye.xm# 微笑 - haarcascade_smile.xmlface_detect = cv.CascadeClassifier(’haarcascade_frontalface_default.xml’)while True: # 讀取視頻片段 flag, frame = cap.read() if flag == False: break # 灰度處理 gray = cv.cvtColor(frame, code=cv.COLOR_BGR2GRAY) # 檢查人臉 按照1.1倍放到 周?chē)钚∠袼貫? face_zone = face_detect.detectMultiScale(gray, scaleFactor = 1.1, minNeighbors = 5) # 繪制矩形和圓形檢測(cè)人臉 for x, y, w, h in face_zone: cv.rectangle(frame, pt1 = (x, y), pt2 = (x+w, y+h), color = [0,0,255], thickness=2) cv.circle(frame, center = (x + w//2, y + h//2), radius = w//2, color = [0,255,0], thickness = 2) # 顯示圖片 cv.imshow(’video’, frame) # 設(shè)置退出鍵和展示頻率 if ord(’q’) == cv.waitKey(40): break# 釋放資源cv.destroyAllWindows()cap.release()

以上就是python基于opencv實(shí)現(xiàn)人臉識(shí)別的詳細(xì)內(nèi)容,更多關(guān)于python opencv 人臉識(shí)別的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 亚洲精品m在线观看 | 色综合久久88色综合天天小说 | 久久88香港三级 | 国产大乳喷奶水在线看 | 国产精品高清视亚洲一区二区 | 免费人成观看在线网 | 国产欧美日韩在线观看 | 黄色综合网 | 九色视频在线观看免费 | 久草中文网 | 91精品福利手机国产在线 | 久久久久久国产精品免费免费 | 免费在线精品视频 | 美女视频全部免费 | 国产三级国产精品国产国在线观看 | 国产在线精品福利一区二区三区 | 九九视频在线观看视频6偷拍 | 久青草国产在线 | 欧美精品专区免费观看 | 久久精品国产亚洲 | 成人爱做日本视频免费 | 国产大片线上免费观看 | 国产一级片免费观看 | 91aaa免费免费国产在线观看 | xxx国产hd| 欧美a区| 国产看午夜精品理论片 | 步兵社区 | 国产精品hd在线播放 | 五月桃花网婷婷亚洲综合 | 真人一级一级特黄高清毛片 | 欧美 亚洲 中文字幕 | аⅴ资源天堂8在线 | 亚洲人成亚洲人成在线观看 | 久久99精品免费视频 | 丝袜紧身裙国产在线播放 | 高清欧美性狂猛bbbbbbxxxx | 91精品人成在线观看 | 亚洲午夜精品一级在线 | 91专区在线| 久久性妇女精品免费 |