Гомография по линиям футбольного поля - PullRequest
0 голосов
/ 22 февраля 2020

Я работаю над использованием видео с футбольного матча и пытаюсь сопоставить кадры с видом сверху поля, используя гомографию. Я начал находить все белые линии из кадров, используя обе линии Хафа, а также используя детектор сегмента линии, где детектор сегмента линии, кажется, работает немного лучше. См. Мой код и примеры ниже:

import cv2
import numpy as np

cv2.imread("frame-27.jpg")
hsv = cv2.cvtColor(frame, cv2.COLOR_RGB2HSV)
mask_green = cv2.inRange(hsv, (36, 25, 25), (86, 255, 255)) # green mask to select only the field
frame_masked = cv2.bitwise_and(frame, frame, mask=mask_green)

gray = cv2.cvtColor(frame_masked, cv2.COLOR_RGB2GRAY)
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

canny = cv2.Canny(gray, 50, 150, apertureSize=3)
# Hough line detection
lines = cv2.HoughLinesP(canny, 1, np.pi / 180, 50, None, 50, 20)
# Line segment detection
lines_lsd = lsd.detect(canny)[0]

При этом используется этот кадр ввода

enter image description here

и возвращается это изображение для линий Хафа

enter image description here

и это изображение для обнаружения сегмента линии.

enter image description here

У меня двоякий вопрос: (1) любые идеи о том, как я могу уточнить обнаружение линий (т.е. уменьшение ложных срабатываний, таких как линии вокруг игроков и за пределами поля) и (2) хороший способ использовать линии обнаружения для создания гомографии, чтобы я мог сопоставить кадр с более высоким обзором поля ( вот так ). Любая помощь с благодарностью!

...