Deformable Part-Based Model Learning Note

#

First, HOG
Second, star-structured deformable part: latent SVM 来学习,也就是说我们有了一张正样本的图片,标注了bounding box,我们要在某一位置,某一尺度,提取出一个区域作为某一component 的正样本。

自行车的车轮的位置,是完全没有位置标注的,只知道在bounding box区域附件有一个车轮。不知道精确位置,就没法提取样本。这种情况下,车轮会有很多个可能的位置,也就会形成一个正样本集,但里面只有部分是包含轮子的。MI-SVM。本质思想是将标准SVM的最大化样本间距扩展为最大化样本集间距。具体来说是选取正样本集中最像正样本的样本用作训练,正样本集内其它的样本就等候发落。同样取负样本中离分界面最近的负样本作为负样本。

Find the best BB of one positive by MI-SVM

Reference

标记训练图片样本的时候需要给出一个矩形框指明目标的位置,有可能标的不够准确,导致不同的样本之间对不齐,这时候可以将标记的矩形框做一些局部扰动得到一些新的矩形框,将它们一起看成一个bag,其中总有一个是最佳的正样本,也就是标记为正。而取一张没有目标的图片,作为负样本包:无论在里面怎么截取图片,都是负样本。这就是multiple instance problem。

此时要找到这个bag里唯一的/最好的正样本。

解决这个问题的方法其实挺直接的:迭代优化(alternative optimization)。也就是说,我们先假设已经知道了所有样本的标记,那么就可以通过某种监督学习的方法得到一个分类模型,通过这个模型我们可以对每个训练样本进行预测,然后更新它们的标记,我们又可以拿这一次新得到的标记重新训练分类模型了。所以整个优化过程分为两部分:监督学习,标记更新。

这里还有一些地方需要注意:

第一点, 训练监督学习的模型的时候,只从正样本包里挑选被预测的“最像正确”(也就是分类得分最高)的那一个,正样本包里面其他的样本,不管预测出来是正的还是负的都不要了。这是因为,其实多示例的问题也可以描述为,正样本包里面“最正确”的一个样本标记是正的,跟其他样本无关。所以,这种选择策略恰恰是符合问题定义的。

第二点,如果负样本足够多的话,可以只挑选每个负样本包里面被预测“最像正确”的一个样本作为负样本进行训练,这样子的负样本也叫做hard sample或者most violated sample。实践上来说,它们对于模型快速收敛是最有效的。

Train Parts Model by using Latent SVM

隐变量指的是部件位置(parts position)的配置变量,这个隐变量的配置可以类比于混合模型(Mixture Model)中决定一个样本属于哪个模型的虚拟变量,虽然不是分类器的一个input varible,要与分类器所有input variable的参数一起进行训练,所以才叫Latent SVM.

我们在训练的时候要找到一个隐变量的最优配置{V},使得整个分类器在对男女分别训练之后效果达到最好,最后训练的结果也就包含了样本中每个个体的性别变量V的配置,这也就是隐变量了,当我们用训练好的模型进行判别新的样本的时候,我们只需要分别计算新的样本在每个模型下的配置,用其中得分最高的那个配置判断该样本是不是人。当然,引入这样的隐变量在模型训练的时候会更麻烦,每次迭代求最优值都要考虑隐变量配置的调整。

The positions of the parts are not given in both the
training and the testing images. The variables that exist but not known in training samples are called latent variables. The learning algorithm must be able to find/discover the optimal values for the latent variables, namely the position of the parts.

Step 1. we suppose the positions of the parts are
fixed for each frame, and train part detector using
SVM

Step 2. Using the trained SVM classifier, find the
optimal part position in each training sample

Training process in general:

Training Details:



那个objective function 看起来和普通的SVMs 是一样的,只是在标准的SVM里f 直接等于beta点乘feature vetors 而在latent SVM里 phi依赖于latent variable z 然后训练每个example的时候,都要选一个z使得f最大。之后做gradiant decent 更新 weight 的方法latent SVM 和普通的SVM是差不多的。

Two Goals:

Conclusion:

Find Hard Negatives by Data Mining

A very large number of negative examples, find the hard negatives to do training.

Detect Different view of object by Mixture Model

Latent SVM

dpm latent svm algorithm details