haar特征

SIFT/SURF、haar特征、广义hough变换的特性对比分析[z]

南笙酒味 提交于 2019-12-26 03:31:07
SIFT/SURF基于灰度图, 一、首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点,再使用二次插值法得到精确特征点所在的层(尺度),即完成了尺度不变。 二、在特征点选取一个与尺度相应的邻域,求出主方向,其中SIFT采用在一个正方形邻域内统计所有点的梯度方向,找到占80%以上的方向作为主方向;而SURF则选择圆形邻域,并且使用活动扇形的方法求出特征点主方向,以主方向对齐即完成旋转不变。 三、以主方向为轴可以在每个特征点建立坐标,SIFT在特征点选择一块大小与尺度相应的方形区域,分成16块,统计每一块沿着八个方向占的比例,于是特征点形成了128维特征向量,对图像进行归一化则完成强度不变;而SURF分成64块,统计每一块的dx,dy,|dx|,|dy|的累积和,同样形成128维向量,再进行归一化则完成了对比度不变与强度不变。 haar特征也是基于灰度图, 首先通过大量的具有比较明显的haar特征(矩形)的物体图像用模式识别的方法训练出分类器,分类器是个级联的,每级都以大概相同的识别率保留进入下一级的具有物体特征的候选物体,而每一级的子分类器则由许多haar特征构成(由积分图像计算得到,并保存下位置),有水平的、竖直的、倾斜的,并且每个特征带一个阈值和两个分支值,每级子分类器带一个总的阈值

Haar特征

我怕爱的太早我们不能终老 提交于 2019-12-02 00:36:52
特征提取之Haar特征 一、前言(废话) 很久没有写博客了,一晃几年就过去了,为了总结一下自己看的一些论文,以后打算写一些自己读完论文的总结。那么,今天就谈一谈人脸检测最为经典的算法Haar-like特征+Adaboost。这是最为常用的物体检测的方法(最初用于人脸检测),也是用的最多的方法,而且OpenCV也实现了这一算法,可谓路人皆知。另外网上写这个算法的人也不在少数。 二、概述 首先说明,我主要看了《Rapid Object Detection using a Boosted Cascade of Simple Features》和《Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection》这两篇论文。 2.1为什么需要Haar特征,为什么要结合Adaboost算法 我们知道人脸检测是很不容易的,我们在实际进行人脸检测的时候,需要考虑算法的运行速度,以及算法的准确度,单单实现这两个指标就已经很不容易了。传统的人脸检测方法(指的是在Haar-like特征出来之前的方法,也就是2001年之前了)一般都是基于像素级别进行的,常见的方法有基于皮肤颜色的方法,这些方法的缺点就是速度慢,几乎不能实现实时性。 2.2算法的大体流程 首先给出训练过程 输入图像-

OpenCV15:Haar特征分类器做人脸识别

时光总嘲笑我的痴心妄想 提交于 2019-11-26 17:11:35
Haar特征用于人脸识别,总的来讲如果有训练好的模型可用以下五步实现 1、load Haar特征的 xml文件 2、load 人脸图片 3、计算Haar特征,但OpenCV已封装好了,我们只需要灰度处理即可,因为所有Haar特征都是基于灰度图片 4、检测图片中的人脸及眼睛,我们有两个xml文件,一个描述人脸,另一个描述眼睛 5、将脸与眼睛标注 代码如下所示: import cv2 import numpy as np face_xml = cv2.CascadeClassifier('OpenCV\\haarcascade_frontalface_default.xml') # 载入描述人脸的分类器 eye_xml = cv2.CascadeClassifier('OpenCV\\haarcascade_eye.xml') # 载入描述眼睛的Haar特征分类器 # 2、 load 图片 img = cv2.imread('OpenCV\\face.jpg') # 3、gray gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 4、detect 参数一:灰度图片参数二:缩放系数参数三:人脸最小像素范围 faces = face_xml.detectMultiScale(gray,1.3,5) print('face=',len(faces)