如何在动态背景中找到足球运动员的轮廓

How to find contours of soccer player in dynamic background

我的项目是一个分析足球视频的系统的名称。在这个项目的一部分中,我需要检测玩家和游戏场地中每个人的轮廓。对于所有没有被广告牌遮挡的球员,我使用了比赛场地的颜色(绿色)来检测轮廓并提取球员。但是我对球员或裁判与广告牌有遮挡的情况有疑问。假设广告牌上的广告是动态的(LED 广告牌)。如您所知,在这种情况下找到轮廓更加困难,因为没有静态背景颜色或纹理。您可以在下图中看到这种情况的两个示例。

注意:为了找到遮挡的位置,我使用了场地线和广告牌之间的区域,因为这个区域有场地的颜色(绿色)。该区域在下图中以红色矩形显示。

我希望结果类似于下图。

谁能推荐一种检测这些轮廓的算法?

您可以尝试几种方法。

  • 使用vision.PeopleDetector对象检测场上的人。您还可以使用 vision.KalmanFilter 跟踪检测到的人,如 Tracking Pedestrians from a Moving Car 示例中所示。
  • 使用计算机视觉系统工具箱中的 vision.OpticalFlow 对象来计算光流。然后,您可以分析生成的流场以将摄像机运动与玩家运动分开。
  • 使用帧差来检测移动物体。好消息是,这将为您提供人物轮廓。坏消息是它也会给你很多虚假的轮廓。

光流可以解决捕捉运动信息等问题。使用 HMM 或 GMM 或非参数的前景提取技术可能会解决这个问题,因为我已将其用于监控视频中的运动分析以检测异常(背景是静态的)。光流的大小和方向似乎是一种有效的方法。我已经阅读了有关使用光流进行分割的论文。我希望这可以帮助你。