【问题标题】:Keypoint recognition as classification?关键点识别作为分类?
【发布时间】:2013-10-31 18:57:35
【问题描述】:

在对this instructive kaggle competition 的介绍的最后,他们指出“Viola and Jones' seminal paper 中使用的方法效果很好”。然而,那篇论文描述了一种用于二进制面部识别的系统,并且正在解决的问题是关键点的分类,而不是整个图像。我很难弄清楚我将如何调整 Viola/Jones 系统以进行关键点识别。

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

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

  • 不是训练二元分类器,而是训练具有 l*w 个可能类别的分类器(每个像素一个)。这样做的最大问题是我怀疑它会非常慢,因为每个弱分类器突然必须执行 l*w*original 操作

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

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

【问题讨论】:

    标签: machine-learning image-recognition keypoint


    【解决方案1】:

    我最终广泛地解决了这个问题。我使用了“深度学习”,也就是多层神经网络。我使用了卷积网络。您可以通过查看这些演示了解更多信息:

    http://cs.stanford.edu/people/karpathy/convnetjs/demo/mnist.html

    http://deeplearning.net/tutorial/lenet.html#lenet

    我对一个典型的卷积网络做了如下改动:

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

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

    这是一个 github 存储库,其中包含我所做的一些工作: https://github.com/cowpig/deep_keypoints

    无论如何,鉴于深度学习已经大受欢迎,肯定有人在这方面做得比我好得多,并发表了有关它的论文。这是一篇看起来不错的文章:

    http://danielnouri.org/notes/2014/12/17/using-convolutional-neural-nets-to-detect-facial-keypoints-tutorial/

    【讨论】:

      【解决方案2】:

      然而,那篇论文描述了一种用于二进制面部识别的系统

      不,请仔细阅读论文。他们描述的不是特定的面部,面部检测是激励问题。 Viola Jones 的论文介绍了一种新的二元对象识别策略。

      你可以训练一个 Viola Jones 风格的 Cascade 用于眼睛,另一个用于鼻子,一个用于你感兴趣的每个关键点。

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

      只要你得到你期望的项目数量,你就可以说“这里是关键点!”需要更多的工作是获得足够的数据来为您想要检测的每件事构建一个好的检测器,并优雅地处理误报/误报。

      【讨论】:

      • 我对他们描述的系统用于一般对象识别这一事实并不感到困惑。我对如何识别对象(即一组像素)与单个像素位置感到困惑。
      • 你怎么能从一个像素中识别出任何物体?你不能。您可以识别占用多个像素的鼻子。如果你需要一个最中心的位置,你可以取确定为鼻子的中心像素。
      • 同样,问题在于像素位置的识别,而不是对象识别。这正是问题所在。
      • 不,像素位置不是问题。不可能说“这是鼻子像素”。你要求的东西是不可能的。链接中显示的像素是 noes / eye 的中心。问题是物体识别。您所询问的表示恰好只标记了一个像素。
      • ...所以你是说我应该做我列出的第一件事?
      猜你喜欢
      • 2018-11-20
      • 2020-01-15
      • 2010-09-18
      • 2020-12-29
      • 2020-10-09
      • 2015-11-25
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多