• 大小: 651KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 人脸识别  Python  

资源简介

可同时识别多人,并且识别出来的人的人名存入txt中

资源截图

代码片段和文件信息

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Copyright (c) Philipp Wagner. All rights reserved.
# Licensed under the BSD license. See LICENSE file in the project root for full license information.

import sys
import os
import cv2
import numpy as np

class Detector:
def detect(self src):
raise NotImplementedError(“Every Detector must implement the detect method.“)

class SkinDetector(Detector):
“““
Implements common color thresholding rules for the RGB YCrCb and HSV color 
space. The values are taken from a paper which I can‘t find right now so
be careful with this detector.

“““
def _R1(selfBGR):
# channels
B = BGR[::0]
G = BGR[::1]
R = BGR[::2]
e1 = (R>95) & (G>40) & (B>20) & ((np.maximum(Rnp.maximum(GB)) - np.minimum(R np.minimum(GB)))>15) & (np.abs(R-G)>15) & (R>G) & (R>B)
e2 = (R>220) & (G>210) & (B>170) & (abs(R-G)<=15) & (R>B) & (G>B)
return (e1|e2)

def _R2(selfYCrCb):
Y = YCrCb[::0]
Cr = YCrCb[::1]
Cb = YCrCb[::2]
e1 = Cr <= (1.5862*Cb+20)
e2 = Cr >= (0.3448*Cb+76.2069)
e3 = Cr >= (-4.5652*Cb+234.5652)
e4 = Cr <= (-1.15*Cb+301.75)
e5 = Cr <= (-2.2857*Cb+432.85)
return e1 & e2 & e3 & e4 & e5

def _R3(selfHSV):
H = HSV[::0]
S = HSV[::1]
V = HSV[::2]
return ((H<25) | (H>230))

def detect(self src):
if np.ndim(src) < 3:
return np.ones(src.shape dtype=np.uint8)
if src.dtype != np.uint8:
return np.ones(src.shape dtype=np.uint8)
srcYCrCb = cv2.cvtColor(src cv2.COLOR_BGR2YCR_CB)
srcHSV = cv2.cvtColor(src cv2.COLOR_BGR2HSV)
skinPixels = self._R1(src) & self._R2(srcYCrCb) & self._R3(srcHSV)
return np.asarray(skinPixels dtype=np.uint8)

class CascadedDetector(Detector):
“““
Uses the OpenCV cascades to perform the detection. Returns the Regions of Interest where
the detector assumes a face. You probably have to play around with the scaleFactor 
minNeighbors and minSize parameters to get good results for your use case. From my 
personal experience all I can say is: there‘s no parameter combination which *just 
works*.
“““
def __init__(self cascade_fn=“./cascades/haarcascade_frontalface_alt2.xml“ scaleFactor=1.2 minNeighbors=5 minSize=(3030)):
if not os.path.exists(cascade_fn):
raise IOError(“No valid cascade found for path=%s.“ % cascade_fn)
self.cascade = cv2.CascadeClassifier(cascade_fn)
self.scaleFactor = scaleFactor
self.minNeighbors = minNeighbors
self.minSize = minSize

def detect(self src):
if np.ndim(src) == 3:
src = cv2.cvtColor(src cv2.COLOR_BGR2GRAY)
src = cv2.equalizeHist(src)
rects = self.cascade.detectMultiScale(src scaleFactor=self.scaleFactor minNeighbors=self.minNeighbors minSize=self.minSize)
if len(rects) == 0:
return np.ndarray((0))
rects[:2:] += rects[::2]
return rects

class SkinFaceDetector(Detector):
“““
Uses the SkinDetector to accept only faces over a given skin color tone threshold (ignored for 
grayscale images). Be careful with skin color tone threshol

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-12-29 10:52  开源大作业\
     目录           0  2016-12-05 08:02  开源大作业\face\
     目录           0  2016-12-03 12:23  开源大作业\face\project\
     文件        5067  2016-12-01 18:51  开源大作业\face\project\detector.py
     文件        7443  2016-12-03 11:16  开源大作业\face\project\detector.pyc
     文件        4633  2016-12-06 17:59  开源大作业\face\project\face.py
     目录           0  2016-12-05 08:02  开源大作业\face\project\faces\
     目录           0  2016-12-05 08:02  开源大作业\face\project\faces\qkl\
     文件       11382  2016-12-03 12:24  开源大作业\face\project\faces\qkl\1.bmp
     文件       11382  2016-12-03 12:24  开源大作业\face\project\faces\qkl\2.bmp
     文件       11382  2016-12-03 12:24  开源大作业\face\project\faces\qkl\3.bmp
     文件       11382  2016-12-03 12:24  开源大作业\face\project\faces\qkl\4.bmp
     文件       11382  2016-12-03 12:24  开源大作业\face\project\faces\qkl\5.bmp
     文件       11382  2016-12-03 12:24  开源大作业\face\project\faces\qkl\6.bmp
     文件       11382  2016-12-03 12:24  开源大作业\face\project\faces\qkl\7.bmp
     目录           0  2016-12-03 13:33  开源大作业\face\project\faces\zq\
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\1.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\10.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\2.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\3.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\4.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\5.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\6.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\7.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\8.bmp
     文件       11382  2016-12-03 13:33  开源大作业\face\project\faces\zq\9.bmp
     目录           0  2016-12-04 16:47  开源大作业\face\project\faces\zxq\
     文件       11382  2016-12-04 16:47  开源大作业\face\project\faces\zxq\1.bmp
     文件       11382  2016-12-04 16:47  开源大作业\face\project\faces\zxq\10.bmp
     文件       11382  2016-12-04 16:47  开源大作业\face\project\faces\zxq\2.bmp
     文件       11382  2016-12-04 16:47  开源大作业\face\project\faces\zxq\3.bmp
............此处省略14个文件信息

评论

共有 条评论