Lecture 12 Object Recognition 第十二章 目标识别 Lecture 12 Object Recognition
目标识别 怎样识别图像中物体,如汽车、牛等?
目标识别的应用
难点之一: 如何鲁棒识别?
类内差异(intra-class variability)
类间相似性(inter-class similarity)
难点之二:计算量大 一幅图像中像素个数多,目前每秒约产生30G像素的 图像/视频数据。 - Google图片搜索中已有几十亿幅图像 - 全球数字照相机一年产生180亿张以上的图片(2004 年) - 全球一年销售约3亿部照相手机(2005) 人的物体识别能力是强大的 - 灵长类动物约使用大脑皮层的一半来处理视觉信息 [Felleman and van Essen 1991] - 可以识别3,000-30,000种物体 - 物体姿态可允许30度以上的自由度。
难点之三:如何在小样本条件下学习
物体识别方法 检测(detection)vs. 不检测 表示(representation) - 颜色、纹理、边缘、梯度、局部特征、深度、运 动等等。 分类(classification or categorization) - K近邻(KNN) - 神经网络(NN) - 支持向量机(SVM) - Boosting(Adaboost等) - 隐马尔科夫模型(HMM) -其他 生成学习(Generative learning)vs. 判别学习 (discriminative learning)
两种分类器学习模式 生成学习 vs. 判别学习 生成学习 ---目标是学习到符合训练数据的类别模型 判别学习 --- 如EM算法(Maximum Likelihood) 判别学习 在训练阶段即考虑类别之间的判别信息 包括Support Vector Machines (SVMs), Boosting, Minimum Classification Error (MCE), Maximum Mutual Information (MMI), Lager Margin (LM), and etc. 判别学习算法比生成学习算法表现出更好的分类性能。
判别学习方法
人脸检测与识别
Car/non-car Classifier 1. 物体检测 基于二分类器 Car/non-car Classifier Yes, car. No, not a car.
Car/non-car Classifier 物体检测 在复杂背景下,通过滑动窗口(sliding windows)搜索感兴趣的物体。 Car/non-car Classifier
物体检测 Step1. 获取训练数据 Step2. 提取特征 Step3. 训练分类器 Step4. 利用分类器进行检测
人脸检测(Face detection) Viola-Jones人脸检测算法(基于AdaBoost)
Viola-Jones人脸检测算法(2004)
滤波器设计
Adaboost Adaboost是一种迭代算法,其核心思想是针对同一个训 练集训练不同的分类器(弱分类器),然后把这些弱分类 器集合起来,构成一个更强的最终分类器(强分类器)。 其算法本身是通过改变数据分布来实现的,它根据每 次训练集之中每个样本的分类是否正确,以及上次的 总体分类的准确率,来确定每个样本的权值。将修改 过权值的新数据集送给下层分类器进行训练,最后将 每次训练得到的分类器最后融合起来,作为最后的决 策分类器。 使用adaboost分类器可以排除一些不必要的训练数据特 徵,并将关键放在关键的训练数据上面。
Boosting Example
Boosting Example
Boosting Example
Boosting Example
Boosting Example
Boosting Example
Adaboost 学习目标:选择能够最有效地区分人脸与非人脸的矩形特征及其阈值
Adaboost 组合弱分类器(weak learners),得到更为精确的集成分类器(ensemble classifier)。 弱分类器:性能仅比随机分类稍好 根据矩形特征定义弱分类器:
Adaboost算法步骤 初始给每个训练样本以同等权重 循环执行以下步骤: 根据当前加权训练集,选择最佳弱分类器 提升被当前弱分类器错分的训练样本的权重 按照各弱分类器分类精度对其加权,然后将各个弱分类器形成线性组合,得到最终分类器。
Viola-Jones算法中的AdaBoost 每一次boosting迭代如下: 评价每一个样本上的每一种矩形特征 为每一种矩形特征选择最佳分类阈值 选择最优的矩形特征及其阈值组合 改变样本权重 计算复杂度: O(MNT) M:特征数,N:样本数, T:阈值数
级联分类器(Cascading Classifiers)
训练级联分类器
Viola-Jones检测算法-总体流程 用5K正样本,350M反样本学习 得到38层(共使用6060个特征)级联分类获得实时性
Viola-Jones人脸检测结果
Viola-Jones人脸检测结果
Viola-Jones人脸检测结果
2. 人脸识别(face recogntion) Zhao et al., Face Recogniton: a literature survey. ACM Computing survey, 2003
Face Recognition: 2-D and 3-D
图像 = 像素的集合 将由n个像素构成的图像视为n维空间中的点
最近邻分类器
Eigenfaces 使用主成分分析技术(Principle Component Analysis, PCA)减少维数
主成分分析(PCA, K-L变换) 降低特征向量的维数 获得最主要特征分量,减少相关性; 避免维数灾难
主成分分析(PCA, K-L变换)
主成分分析(PCA, K-L变换)
Eigenfaces 学习 1. 计算训练图像的均值和协方差矩阵. 2. 计算协方差矩阵的特征值,取前k个最大特 征值对应的特征矢量. 3. 将图像投影到k-维特征空间 (Eigenspace)。 识别 1. 将测试图像投影到Eigenspace. 2. 在特征图像上执行分类.
Eigenfaces: 训练图像
Eigenfaces
PCA方法的不足 可能损失重要的细节信息 方差最小的方向也可能是重要的 没有考虑判别任务 希望得到最具判别能力的特征 但判别能力最佳并不等同于方差最大
Fisherfaces:类特定的线性投影
PCA & Fisher的线性判别函数
PCA & Fisher的线性判别函数
Fisherfaces示例(ORL Database)
基于eigenfaces/fisherfaces的识别 训练: - 根据训练图像,利用PCA或Fisher方法确定投 影矩阵 - 将每个训练图像投影到子空间(eigenspace或fisherspace)。 识别: - 将测试图像投影到eigenspace或fisherspace。 - 子空间中距离测试图像最近的训练图像对应的类别为识别结果。
Project5:人脸合成 平均 就是 美 平均 人脸
Project5:人脸合成
Project5:人脸合成
Project5:人脸合成
Project5:人脸合成
Project5:人脸合成 FantaMorph,人脸合成软件
Project5:人脸合成 FantaMorph,人脸合成软件 手动标定人脸
Project5:人脸合成 FantaMorph,人脸合成软件 手动标定人脸
Project5:人脸合成 FantaMorph,人脸合成软件 产生多张合成图像,随机或者平均输出
Project5:人脸合成 Task:利用人脸检测算法,将上述过程改为自动完成,实现自动人类合成。