问题描述: 我正在一个项目中工作,其目标是识别人体图像(躯干,头部,左臂和右臂等)的身体部位。该方法基于找到人体的一部分(假设),然后寻找最佳姿势配置(=真正形成人体的所有部分)。在此链接http://www.di.ens.fr/willow/events/cvml2010/materials/INRIA_summer_school_2010_Andrew_human_pose.pdf更好地描述了ideea。
在运行检测算法(这里我使用机器学习领域的分类器)后,分别为每个身体部位获得假设。因此,每种假设的类型都是已知的。此外,每个假设都有一个位置(图像中的x和y坐标)和一个方向。
为了确定将两个部分连接在一起的成本,可以考虑每个类型头的假设可以与每个躯干类型的假设相关联(例如)。但是,位于图像右上方位置的头部假设不能(从人的角度来看)与位于图像左下方位置的躯干假设相关联。我试图避免基于最后一个语句的这些类型的链接,也由于执行时间。
问题:我计划通过考虑到最远的假设的距离来减少搜索空间,该假设可以是链接候选者。哪个是解决此搜索问题的最快方法?
答案 0 :(得分:2)
对于类似的问题,我已经将源图像分成16个(或更多,取决于你试图链接的部分的相对大小)较小的图像,在这些中的每一个中进行检测和链接步骤,还有一个额外的步骤,你只需要为每个子图像做一个链接步骤,它就是(可能是8个)邻居。
在这种情况下,你甚至不会尝试将左上角的一个部分与右下角的一个部分联系起来,作为额外的奖励,问题的第一部分现在非常平行。
更新: 您可以先对图像进行边缘检测,而不要在2处剪切图像,这意味着将边缘切成两半。递归地执行此操作将允许您获得许多带有身体部位的小图像,然后您可以单独处理。
答案 1 :(得分:1)
使用Hungarian algorithm可以解决这种离散分配问题。
在计算成本(=距离)矩阵时,您可以在距离大于预定义阈值时将条目设置为某个无限或非常高的值, 这将阻止算法将头部分配给距离太远的躯干。
最后一种技术在跟踪讲座中也被称为 gating 。