【问题标题】:Human pose estimation - efficient linking of body parts人体姿态估计 - 身体部位的有效链接
【发布时间】:2017-03-06 22:14:20
【问题描述】:

问题描述: 我正在从事一个项目,其目标是在图像中识别人们的身体部位(躯干、头部、左臂和右臂等)。该方法基于找到人体的各个部分(假设),然后搜索最佳姿势配置(= 真正构成人体的所有部分)。此链接http://www.di.ens.fr/willow/events/cvml2010/materials/INRIA_summer_school_2010_Andrew_human_pose.pdf 更好地描述了这个想法。

分别对每个身体部位运行检测算法(这里我使用机器学习领域的分类器)后获得假设。因此,每个假设的类型都是已知的。此外,每个假设都有一个位置(图像中的 x 和 y 坐标)和方向。

要确定将两个部分连接在一起的成本,可以考虑将头部类型的每个假设与躯干类型的每个假设联系起来(例如)。但是,位于图像右上角的头部假设不能(从人类的角度)与位于图像左下角的躯干假设联系起来。我试图根据最后一条语句以及由于执行时间来避免此类链接。

问题:我计划通过考虑到可能是链接候选的最远假设的距离来减少搜索空间。解决这个搜索问题的最快方法是什么?

【问题讨论】:

  • 您在寻找可以进一步研究的算法名称吗?
  • 不是为了回答你的具体问题,而是给你一个相关项目的链接,它可能对你有用(或没用):-) github.com/joaquimrocha/Skeltrack
  • 是的,我需要一种算法或任何其他方法,其性能优于考虑不同类型的 2 个假设之间的所有可能联系的方法。
  • @Nelson:谢谢你的建议,但我的输入图像是简单的 RGB 图像。

标签: image-processing


【解决方案1】:

对于类似的问题,我已将源图像拆分为 16 个(或更多,取决于您尝试链接的部分的相对大小)较小的图像,分别在每个图像中执行检测和链接步骤,还有一个额外的步骤,您将只为每个子图像执行一个链接步骤,并且它是(可能是 8 个)邻居。

在这种情况下,您甚至都不会尝试将左上角的部分与右下角的部分联系起来,而且作为额外的奖励,您的问题的第一部分现在非常平行。

更新: 您可以先对图像进行边缘检测,并且永远不要将图像切成两半,因为这意味着将边缘切成两半。递归地这样做可以让您获得许多带有身体部位的小图像,然后您可以单独处理。

【讨论】:

  • 感谢您的建议。对于并行运行检测算法的想法,我给你 +1。但是,我不确定您提出的链接方法。正如我在@sansuiso 回答的最后一条评论中提到的那样,我正在尝试使用八叉树来实现这一点。
【解决方案2】:

这种离散分配问题可以使用Hungarian algorithm 解决。

在计算成本(=距离)矩阵时,当距离大于预定义的阈值时,您可以将条目设置为某个无限或非常高的值, 这将防止算法将头部分配给距离太远的躯干。

最后一种技术在跟踪讲座中也称为门控

【讨论】:

  • 感谢您的回复,但据我了解,这样我应该将每个躯干假设与每个头部假设(例如)进行比较以获得成本矩阵。但是,我的意图是避免不必要的计算(= 尝试链接两个相距太远的部分)。
  • 匈牙利算法是解决这个问题的有效算法。真的值得一试。您可以在我提供的链接上查看其算法复杂性。
  • 我正在查看您指定的链接。复杂度为 O(n^3)。但是,我认为这个链接过程可以更复杂地完成。现在,我正在尝试使用八叉树来实现它。如果 n 是躯干假设的数量,m 是头部假设的数量,那么构建树的复杂度是 O(nlog(n)) 并且为所有头部找到近邻是 >= O(mlog(n) ) (最好的情况 = O(mlog(n))。
猜你喜欢
  • 2023-03-29
  • 1970-01-01
  • 2015-09-09
  • 2021-11-20
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
相关资源
最近更新 更多