在简介篇中我们简单说过图像特征,图像特征的提取有两种常用方式,一是提取例如SIFT特征,手工进行特征的筛选等,需要计算机视觉方面的先验性知识;二是使用当前很火的深度学习,训练出基于卷积神经网络模型的特征提取算子,某宝和某度用的就是这种方法。本文只涉及基于卷积神经网络提取出的特征。
关于特征
特征是计算机视觉的原材料,对最终模型的影响是毋庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能达到满意的精度。那对于特征,我们需要考虑什么呢?
特征表示的粒度
就一个图片来说,像素级的特征根本没有价值。例如下面的摩托车,从像素级别,根本得不到任何信息,其无法进行摩托车和非摩托车的区分。而如果特征是一个具有结构性(或者说有含义)的时候,比如是否具有车把手(handle),是否具有车轮(wheel),就很容易把摩托车和非摩托车区分,计算机视觉和深度学习算法才能发挥作用。
初级(浅层)特征表示
计算机视觉领域的大牛们很早发现,复杂图形往往由一些基本结构组成。比如下图:一个图可以通过用64种正交的edges(可以理解成正交的基本结构)来线性表示。比如样例的x可以用1-64个edges中的三个按照0.8,0.3,0.5的权重调和而成。而其他基本edge没有贡献,因此均为0。