公司网站开发文档,无锡网站建设报价明细表,企业建设网站价格,云南做网站的公司有哪些目标
学习了解Haar 特征分类器为基础的面部检测技术将面部检测扩展到眼部检测等。
基础 以Haar 特征分类器为基础的对象检测技术是一种非常有效的对象检测技术(2001 年Paul_Viola 和Michael_Jones 提出)。它是基于机器学习的,通过使用大量的正负样本图像训练得到一个cascade_…目标
学习了解Haar 特征分类器为基础的面部检测技术将面部检测扩展到眼部检测等。
基础 以Haar 特征分类器为基础的对象检测技术是一种非常有效的对象检测技术(2001 年Paul_Viola 和Michael_Jones 提出)。它是基于机器学习的,通过使用大量的正负样本图像训练得到一个cascade_function最后再用它来做对象检测。 现在我们来学习面部检测。开始时算法需要大量的正样本图像(面部图像和负样本图像(不含面部的图像来训练分类器。我们需要从其中提取特征。下图中的Haar 特征会被使用。它们就像我们的卷积核。每一个特征是一个值这个值等于黑色矩形中的像素值之后减去白色矩形中的像素值之和。 使用所有可能的核来计算足够多的特征。(想象一下这需要多少计算算仅仅是一个24x24 的窗口就有160000 个特征)。对于每一个特征的计算我们需要计算白色和黑色矩形内的像素和。为了解决这个问题作者引入了积分图像这可以大大的简化求和计算对于任何一个区域的像素和只需要对积分图像上的四个像素操作即可。非常漂亮它可以使运算速度飞快。
OpenCV中的Haar级联检测 OpenCV 自带了训练器和检测器。如果你想自己训练一个分类器来检测汽车飞机等的话可以使用 OpenCV 构建。其中的细节参考这里Cascade Classifier Training 现在我们来学习一下如何使用检测器。OpenCV 已经包含了很多已经训练好的分类器其中包括面部眼睛微笑等。这些 XML 文件保存在/opencv/data/haarcascades/文件夹中。下面我们将使用 OpenCV 创建一个面部和眼部检测器。首先我们要加载需要的 XML 分类器(Haar特征分类器就是一个XML文件)。然后以灰度格式加载输入图像或者是视频。
# -*- coding: utf-8 -*Created on Thu Jan 30 11:06:23 2014author: MZLimport numpy as np
import cv2
face_cascade cv2.CascadeClassifier(haarcascade_frontalface_default.xml)
eye_cascade cv2.CascadeClassifier(haarcascade_eye.xml)
img cv2.imread(sachin.jpg)
gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:img cv2.rectangle(img,(x,y),(xw,yh),(255,0,0),2)roi_gray gray[y:yh, x:xw]roi_color img[y:yh, x:xw]eyes eye_cascade.detectMultiScale(roi_gray)for (ex,ey,ew,eh) in eyes:cv2.rectangle(roi_color,(ex,ey),(exew,eyeh),(0,255,0),2)
cv2.imshow(img,img)
cv2.waitKey(0)
cv2.destroyAllWindows() 下面检测照片1927年第五届索尔维会议中的多个人脸
import cv2OPENCV_PATH rC:/Program Files/OpenCV2/opencv
face_cascade cv2.CascadeClassifier(OPENCV_PATH /data/haarcascades/haarcascade_frontalface_default.xml)img cv2.imread(test.png)
gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)faces face_cascade.detectMultiScale(gray, 1.3, 2)for (x,y,w,h) in faces:cv2.rectangle(img,(x,y),(xw,yh),(255,0,0),2)cv2.imshow(image,img)
cv2.waitKey(0)
cv2.destroyAllWindows()