如何利用OpenCV检测运动场上的关键交点

2024-10-09 02:30:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在运动场上检测线的关键交点,以便使用单应性将球员在摄像机帧中的位置映射到球场二维模型上的相应位置。摄像机位置和环境细节(如照明)会有所不同

我目前的方法是使用Canny边缘检测和Hough变换来检测线条,然后使用kmeans将它们分组为水平/垂直组。一旦我获得了关键点(球场角落和发球线的交点),我知道我可以使用findHomography获得球场的透视变换。我的问题是:

  1. 即使我得到了所有直线的交点,但由于相机位置(因此帧旋转)不固定,我如何知道哪些直线/交点是哪些?有没有一种技术可以将交叉路口设置成一个模型球场?我有球场的确切尺寸,这是我关心的区域
  2. 使用HoughLinesHoughLinesP时会产生大量的“噪音”——请参见下图。合并这些行的最佳方式是什么?或者,如果适合一个模型,这不是一个问题吗
  3. 这是最好的现代方法,还是尝试训练CV模型来进行细分是更好的方法

输入/HoughLines/HoughLinesP(L到R)的样本输出: sample output


Tags: 方法模型环境细节直线关键摄像机球员

热门问题