1. 简介

    人识别物体是根据物体的特征来进行识别、分类的。所以,计算机要识别所看到的物体,必须事先学习物体的特征。

特征学习:是计算机视觉的核心。

    人工设计的特征有:LBP、HAAR、HOG、SIFT等。

    深度学习:可从给予的样本中自动学习特征。

1.1 为什么要自动学习特征?

   1)机器学习中,获得好的特征是识别成功的关键;
   2)目前存在大量人工设计的特征,不同研究对象特征不同,特征具有多样性,如:SIFT, HOG, LBP等;
   3)手工选取特征费时费力,需要启发式专业知识,很大程度上靠经验和运气。

1.2 为什么采用层次网络结构?

1.2.1 人脑视觉原理

     1)1981年的诺贝尔医学奖获得者 David Hubel和TorstenWiesel发现了视觉系统的信息处理机制发现了一种被称为“方向选择性细胞的神经元细胞,当瞳孔发现了眼前的物体的边缘,而且这个边缘指向某个方向时,这种神经元细胞就会活跃

     2)人的视觉系统的信息处理是分级的


     3)高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图


     4)抽象层面越高,存在的可能猜测就越少,就越利于分类 

1.2.2 浅层学习的局限


     1)人工神经网络(BP算法)

       虽被称作多层感知机,但实际是种只含有一层隐层节点的浅层模型

     2)SVM、Boosting、最大熵方法(如LR,Logistic Regression)

       带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)的浅层模型

     3)局限性:有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受限。 

1.2.3 深度学习


     1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;

     2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服,逐层初始化可通过无监督学习实现的。

     3)本质:通过构建多隐层的模型和海量训练数据(可为无标签数据),来学习更有用的特征,从而最终提升分类或预测的准确性。“深度模型”是手段,“特征学习”是目的。

     4)与浅层学习区别:

     (1)强调了模型结构的深度,通常有5-10多层的隐层节点;
     (2)明确突出了特征学习的重要性,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。

2. 计算机视觉挑战

    由于以下原因,计算机视觉有很强的挑战性:
    1)视点变化
    2)照明变化
    3)对像变形(如猫的各种姿势)
    4)部分被遮挡
    5) 背景复杂
    6) 对象的多种类(如有多类猫)
    对于以上复杂的情况,无法硬编码一个算法来识别图片中的对象,如cat,dog。

3. 数据驱动方法

    数据驱动方法的流程如下:

    1)收集图像和标签的数据集
    2)使用机器学习训练一个图像分类器

def train(train_images, train_labels)
              // build a model for images -> labels ...
              return model

    3)使用一组预留的测试图像评估此分类器

def predict(model, test_images)
              // predict test_labels using the model ...
              return labels