網站架設下載附件 留存到相冊
2021-11-23 22:51 上傳
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252004-1833320059-g.jpg)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252004-3092008007-g.jpg)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252007-392247762-g.png)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252008-3454640681-g.png)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252008-3751136644-g.png)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252009-656447905-g.png)
對面部和眼睛進行辨識,最少辨識出兩隻眼睛(不管對錯)才進行貯存,輸出為 200x200的 png花樣。
我沒有設定minSize,因為我的數據有點少解析度落差也很大,所以不想要太嚴酷。
Python OpenCV 面部數據
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252004-2669878700-g.jpg)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252004-1609873042-g.jpg)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](http://www.tshopping.com.tw/data/attachment/forum/202111/23/225118vk0wxhc99z9kcjan.png)
文章出處
- import os
-
- img_list = []
- for fileNames in os.walk("."):
- filename_extension = ['.jpg', '.png', '.jpeg', '.JPG', '.gif']
- for fe in filename_extension:
- for fileName in fileNames[-1]:
- if fileName.endswith(fe):
- img_list.append(fileName)
-
- for img in img_list:
- detect(img)
複製代碼
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](http://www.tshopping.com.tw/data/attachment/forum/202111/23/225117h4q2quyw6qn5u215.jpg)
子瑜女神看來起來辨識滿成功的。
接著看看失敗的例子,用了一樣的參數辨識一下 Twice和愉快伙伴們?
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](http://www.tshopping.com.tw/data/attachment/forum/202111/23/225117bqqzvxbk454xx6dc.jpg)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](http://www.tshopping.com.tw/data/attachment/forum/202111/23/225117f4dcmtqsd3myssxq.jpg)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252004-424481055-g_n.jpg)
![Python 行使 OpenCV抓取相片中的臉部數據 網站架 Python 行使 OpenCV抓取相片中的臉部數據 網站架](https://pic.pimg.tw/netyea/1677252004-3872560071-g_n.jpg)
看來挺失敗的,娜璉和此中兩位興奮伙伴完全沒有辨識出臉,眼睛的部分大多都沒有辨識成功。為了辨識成功,可能需要調劑一下參數。至於若何避免 OpenCV攪渾眼睛和嘴,本人今朝沒有對策,求高手指導。不外還好集團照不是我要辨識的首要目的。
接著點竄 detect,把辨識出的臉,另存為供 AI練習的圖象。
利用 cv2.CascadeClassifier導入辨識對象,此中選擇了臉部和眼睛的辨識工具。
讀取圖象數據後,轉為灰階,哄騙detectMultiScale做面部和眼睛的辨識。
detectMultiScale中的數據參數劃分是
為了將圖片數據轉換為合適 AI練習的格式,使用 OpenCV先對臉部進行辨識,然後將臉部數據另存為統一的花樣。
- import cv2
-
- face_cascade = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml')
- eye_cascade = cv2.CascadeClassifier('./cascades/haarcascade_eye.xml')
-
- def detect(filename):
- img = cv2.imread(filename)
- gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- faces = face_cascade.detectMultiScale(gray,
- scaleFactor=1.2,
- minNeighbors=3,)
- for (x,y,w,h) in faces:
- roi_gray = gray[y:y+h, x:x+w]
- eyes = eye_cascade.detectMultiScale(roi_gray,
- scaleFactor=1.02,
- minNeighbors=3,
- minSize=(40,40),)
- img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
- for (ex,ey,ew,eh) in eyes:
- img = cv2.rectangle(img,(x+ex,y+ey),(x+ex+ew,y+ey+eh),(0,255,0),2)
- cv2.imwrite('./tzuyu_face.jpg', img)
-
- detect('tzuyu.jpg')
複製代碼
- import cv2
-
- face_cascade = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml')
- eye_cascade = cv2.CascadeClassifier('./cascades/haarcascade_eye.xml')
-
- face_filename = 1
- def detect(filename):
- img = cv2.imread(filename)
- gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- faces = face_cascade.detectMultiScale(gray,
- scaleFactor=1.2,
- minNeighbors=3,)
- for (x,y,w,h) in faces:
- roi_gray = gray[y:y+h, x:x+w]
- eyes = eye_cascade.detectMultiScale(roi_gray,
- scaleFactor=1.02,
- minNeighbors=3,)
- if len(eyes)>=2:
- f = cv2.resize(gray[y:y+h, x:x+w], (200, 200))
- global face_filename
- name = './face/%d.png' % face_filename
- cv2.imwrite(name, f)
- face_filename += 1
- else:
- pass
- print('Working with %s' % filename)
複製代碼
hallk6k22ej 發表在 痞客邦 留言(0) 人氣()