python3 视频实时识别人脸

python3 视频实时识别人脸

今天把我前几天学的图片人脸识别简单的做一下总结,与大家共勉。我用的是python3.6和cv2、numpy这些你可以在python插件库中寻找(http://www.lfd.uci.edu/~gohlke/pythonlibs/)。
我用的是手机摄像头作为视频来源,通过局域网ip来分享。这里介绍安卓的朋友可以去应用市场下载“ip摄像头”。
下面我们就来简单的介绍一下代码:
import cv2
import numpy as np

引用cv2 和 numpy包。

cv2.namedWindow("camera")#命名一个窗口的名字。
video="http://admin:[email protected]:8081/"#链接手机局域网
cap = cv2.VideoCapture(video)#打开视频并解析
success, frame = cap.read()#解析每一帧的图片
color = (255,0,0)#人脸识别的时候框出来的框框颜色
classfier = cv2.CascadeClassifier(r'G:/python/Lib/haarcascades/haarcascade_frontalface_alt_tree.xml')

加载人脸识别的xml解析文件,要是没有的话可以网上找。

while success:
    success, frame = cap.read()
    size = frame.shape[:2]# 获得当前桢彩色图像的大小
    image = np.zeros(size, dtype=np.float16)
    #np.zeros(shape, dtype=float, order='C')
    # 参数:shape: 形状
    # dtype: 数据类型,可选参数,默认numpy.float64
    # dtype类型:t, 位域, 如t4代表4位
    # b, 布尔值,true or false
    # i, 整数, 如i8(64位)
    # u, 无符号整数,u8(64位)
    # f, 浮点数,f8(64位)
    # c, 浮点负数,
    # o, 对象,
    # s, a,字符串,s24
    # u, unicode, u24
    # order: 可选参数,c代表与C语言类似,行优先;F代表列优先
    image = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.equalizeHist(image, image)
    divisor = 8
    h, w = size
    minSize = (w // divisor, h // divisor)
    faceRects = classfier.detectMultiScale(image, 1.1, 2 ,cv2.CASCADE_SCALE_IMAGE, minSize)
   #image:图片路径
    #1.1:被检测对象的尺度变化。尺度越大,越容易漏掉检测的对象,但检测速度加快;尺度越小,检测越细致准确,但检测速度变慢
    #2:数值越大,检测到对象的条件越苛刻,反之检测到对象的条件越宽松;
    #minSize:检测的对象最小尺寸,单位是像素*像素,使对象落在检测器的大小范围内;
    #maxSize:检测的对象最大尺寸,单位是像素 * 像素,使对象落在检测器的大小范围内。
    #cv2.CASCADE_SCALE_IMAGE::scale0为比例系数,即被检测图像每一次被压缩的比例
    #说明:该方法返回的是一个列表,每个列表元素是长度为四的元组,分别表示脸部左上角的x,y值,脸部区域的宽度和高度。
    if len(faceRects) > 0:
        for faceRect in faceRects:
            x, y, w, h = faceRect
            cv2.rectangle(frame, (x, y), (x + w, y + h), color)
    cv2.imshow("camera", frame)
    key = cv2.waitKey(10)#按键退出
    c = chr(key & 255)
    if c in ['q','Q', chr(27)]:
        break
cv2.destroyWindow("test")

这是我在网上找的一张毕业照,做了一下测试,识别率在90%以上。照片如有不妥请见谅。
github代码:https://github.com/DIVIBEAR/pythonDemo/tree/master/demo/face

python3 视频实时识别人脸_第1张图片

你可能感兴趣的:(python)