关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

人脸检测发展:从VJ到深度学习(二)

2020.10.26

  选好了窗口,我们开始对窗口中的图像区域进行观察,目的是收集证据——真相只有一个,我们要依靠证据来挖掘真相!在处理图像的过程中,这个收集证据的环节我们称之为特征提取,特征就是我们对图像内容的描述。由于机器看到的只是一堆数值,能够处理的也只有数值,因此对于图像所提取的特征具体表示出来就是一个向量,称之为特征向量,其每一维是一个数值,这个数值是根据输入(图像区域)经由某些计算(观察)得到的,例如进行求和、相减、比较大小等。总而言之,特征提取过程就是从原始的输入数据(图像区域颜色值排列组成的矩阵)变换到对应的特征向量的过程,特征向量就是我们后续用来分析和寻找真相的证据。

  特征提取之后,就到了决断的时刻:判别当前的窗口是否恰好包含一张人脸。我们将所有的窗口划分为两类,一类是恰好包含人脸的窗口,称之为人脸窗口,剩下的都归为第二类,称之为非人脸窗口,而最终判别的过程就是一个对当前观察窗口进行分类的过程。因为我们的证据是由数值组成的特征向量,所以我们是通过可计算的数学模型来寻找真相的,用来处理分类问题的数学模型我们通常称之为分类器,分类器以特征向量作为输入,通过一系列数学计算,以类别作为输出——每个类别会对应到一个数值编码,称之为这个类别对应的标签,如将人脸窗口这一类编码为1,而非人脸窗口这一类编码为-1;分类器就是一个将特征向量变换到类别标签的函数。

  考虑一个最简单的分类器:将特征向量每一维上的数值相加,如果得到的和超过某个数值,就输出人脸窗口的类别标签1,否则输出非人脸窗口的类别标签-1。记特征向量为,

人脸检测发展:从VJ到深度学习

  分类器为函数f(x),那么有:

人脸检测发展:从VJ到深度学习

  这里的t就是前面所说的“某个数值”,其决定了分类器在给定特征向量下的输出结果,我们称其为分类器的参数。不同形式和类型的分类器会有不同的参数,一个分类器可以有一个或者多个参数,参数或者其取值不同则对应到不同的分类器。选定了一个分类器之后,紧接着的一个问题就是:参数该怎么设置?具体到我们正在考虑的情况,就是:t的值该如何选取?

  要做出选择,就要有一个目标,在分类问题中,目标当然就是尽可能正确地进行分类,即分类的准确率尽可能高。然而,尽管我们对目标非常明确,我们也仍然没法给出一个最优的参数取值,因为我们并不使用机器所采用的二进制语言系统,我们并不懂什么才是对机器最好的。于是我们只有一种选择:把我们的目标告诉机器,举一些例子向其进行解释,然后让机器自己去学习这个参数,最后我们给机器设计一场考试,测试其是否满足了我们的要求。我们从一些图像上选出一部分人脸和非人脸窗口的样例,用对应的类别标签对其进行标注,然后将这些样例划分成两个集合,一个集合作为分类器学习所使用的训练集,另一个集合作为最终考查分类器能力的测试集,同时我们设定一个目标:希望分类的准确率能够在80%以上。

  学习过程开始时,我们先给分类器的参数设定一个初始值,然后让分类器通过训练集中带有“答案”(类别标签)的样例,不断去调整自己参数的取值,以缩小其实际的分类准确率和目标准确率之间的差距。当分类器已经达到了预先设定的目标或者其它停止学习的条件——期末考试的时间是不会因为你没有学好而推迟的,或者分类器觉得自己已经没有办法再调整了,学习过程就停止了,这之后我们可以考查分类器在测试集上的准确率,以此作为我们评判分类器的依据。这一过程中,分类器调整自己参数的方式和分类器的类型、设定的目标等都有关,由于这部分内容超出了本文所讨论的范畴,也并不影响读者对人脸检测方法的理解,因此不再展开进行讲述。


推荐
热点排行
一周推荐
关闭