从实时视频流中识别出人脸区域,从原理上看,其依然属于机器学习的领域之一,本质上与谷歌利用深度学习识别出猫没有什么区别。程序通过大量的人脸图片数据进行训练,利用数学算法建立建立可靠的人脸特征模型,如此即可识别出人脸。幸运的是,这些工作OpenCV已经帮我们做了,我们只需调用对应的API函数即可,先给出代码:
import sys
from PIL import Image
def CatchUsbVideo(window_name, camera_idx):
cv2.namedWindow(window_name)
# 视频来源,可以来自一段已存好的视频,也可以直接来自USB摄像头
cap = cv2.VideoCapture(camera_idx,cv2.CAP_DSHOW)
# 告诉OpenCV使用人脸识别分类器
classfier = cv2.CascadeClassifier("D:\\anaconda\Lib\site-packages\opencv\\build\etc\haarcascades\\haarcascade_frontalface_alt2.xml")
# 识别出人脸后要画的边