Machine learning 关键点识别作为分类?

Machine learning 关键点识别作为分类?,machine-learning,image-recognition,keypoint,Machine Learning,Image Recognition,Keypoint,在介绍的末尾,他们说“工作得很好”中使用的方法。然而,这篇论文描述了一个二值人脸识别系统,所要解决的问题是关键点的分类,而不是整个图像。我很难弄清楚,到底该如何调整中提琴/琼斯系统来识别关键点 我假设我应该为每个关键点训练一个单独的分类器,我的一些想法是: 迭代固定大小的子图像并对每个子图像进行分类,其中以关键点为中心像素的图像就是一个积极的例子。在这种情况下,我不确定如何处理靠近图像边缘的像素 使用l*w可能的类(每个像素一个)来训练分类器,而不是训练二进制分类器。最大的问题是,我怀疑它的速

在介绍的末尾,他们说“工作得很好”中使用的方法。然而,这篇论文描述了一个二值人脸识别系统,所要解决的问题是关键点的分类,而不是整个图像。我很难弄清楚,到底该如何调整中提琴/琼斯系统来识别关键点

我假设我应该为每个关键点训练一个单独的分类器,我的一些想法是:

  • 迭代固定大小的子图像并对每个子图像进行分类,其中以关键点为中心像素的图像就是一个积极的例子。在这种情况下,我不确定如何处理靠近图像边缘的像素

  • 使用l*w可能的类(每个像素一个)来训练分类器,而不是训练二进制分类器。最大的问题是,我怀疑它的速度会非常慢,因为每个弱分类器突然都必须执行l*w*原始操作

  • 我的第三个想法在我的脑海中还没有完全阐明,但由于关键点是一张脸更大部分的每个部分(例如,眼睛的左、右中心),也许我可以尝试将子图像分类为一只眼睛,然后使用左、右和中心像素(以y坐标为中心)每个面零件的最佳拟合子图像的

这些想法有什么优点吗?有没有我没想到的方法

然而,这篇论文描述了一个二元人脸识别系统

不,仔细看报纸。他们所描述的并不是特定于人脸的,人脸检测是激励问题。Viola-Jones的论文介绍了一种新的二进制对象识别策略

你可以训练一个中提琴-琼斯风格的级联,一个用于眼睛,一个用于鼻子,一个用于你感兴趣的每个关键点

然后,当您运行代码时,您应该(希望)为每个人脸获得2只眼睛、1个鼻子等


如果您得到了预期的项目数量,那么您可以说“这里是关键点!”需要更多工作的是获得足够的数据,为您想要检测的每件事情构建一个良好的检测器,并优雅地处理误报/漏报

我最终对这个问题进行了广泛的研究。我使用了“深度学习”,也就是多层神经网络。我使用卷积网络。您可以通过查看以下演示了解更多关于它们的信息:

我对典型的卷积网络做了以下更改:

  • 我没有做任何下采样,因为任何精度的损失都会直接转化为模型分数的降低

  • 我做了n向二进制分类,每个像素被分类为一个关键点或非关键点(在我的原始帖子中列出的东西中为2)。正如我所怀疑的,计算复杂性是这里的主要障碍。我试图用我的GPU来克服这些问题,但神经网络中的参数太多,无法放入GPU内存中,因此我最终使用xl amazon实例进行训练

下面是我所做的一些工作的github回购协议:

不管怎么说,鉴于深度学习已经风靡全球,肯定有人在这方面做得比我好得多,并发表了相关论文。下面是一篇看起来不错的评论:


我并不怀疑他们所描述的系统是用于一般物体识别的。我对如何识别一个对象(即一组像素)和单个像素位置感到困惑。你怎么能从单个像素识别任何对象?你不能。您可以识别占用多个像素的鼻子。如果你需要一个最中间的位置,你可以取被确定为鼻子的中心像素。同样,问题是像素位置的识别,而不是物体识别。这正是问题所在。不,像素位置不是问题所在。不可能说“这是鼻子像素”。你在要求一些不可能的事情。链接中显示的像素是noes/眼睛的中心。问题是物体识别。你所问的jut表示恰好只标记了一个像素……那么你是说我应该做我列出的第一件事?