代码之家  ›  专栏  ›  技术社区  ›  George Profenza

如何跟踪足球的位置?

  •  0
  • George Profenza  · 技术社区  · 10 年前

    我开始研究跟踪足球(美国的足球),我可以就什么样的方法更可靠、更高效提出一些建议。

    球需要被钉住,以确定它是否在门柱之间,如果是进球,大概是哪边(中/左/右/右上角等)

    最初,我考虑的是一个嵌入式惯性测量单元(IMU,一种融合传感器,如加速度计/陀螺仪/磁力计,有时还有GPS),能够实现蓝牙低能(BLE,4.0版,比蓝牙经典版的射程更大),以获得球的绝对位置,因此这可能是一个选项。由于我对IMU还不是很有经验,所以关于DO和DONT的一些提示会很有用。

    另一种选择是在门柱后面使用摄像头。用一台2D相机,我想象着这样的设置: camera setup proto 希望相机速度足够快,因为我认为运动模糊将是挑战之一,因为当球快速运动时,形状和颜色会出现扭曲。

    在检测方面,我考虑了一种基于一些假设的天真方法:

    • 分割背景,因为它是静态的(而且大部分是绿色的)
    • 尝试使用霍夫变换绘制圆和椭圆
    • 分段移动对象并基于边界框大小进行过滤(查找较小的球形对象)

    我也在考虑为足球检测进行级联训练,但我想事先检查一下这是否过分。

    1 回复  |  直到 10 年前
        1
  •  1
  •   aledalgrande Reto Koradi    10 年前

    你可以使用一个便宜的Kinect相机,它有一个像这样的简单算法:

    1. 检测RGB数据中的斑点(抗模糊)
    2. 在点云中进行欧几里德聚类,在点云中检测斑点,使用一个阈值/边界框(深度数据具有绝对测量值),该框与你玩的球的大小有关
    3. 计算球的质心
    4. 计算质心与视图光线上相机中心的距离
    5. 查看距离是否小于同一光线上摄影机和目标之间的距离

    我认为,这些操作足够简单,算法应该在商品硬件上实时运行。

    你唯一需要注意的是,Kinect在一定距离后的精度会变得很差,所以你必须稍微调整一下才能使其正常工作。或者,如果不能覆盖所有目标,您可能需要使用多个。