Я пытаюсь определить ключевые точки пересечения линий на спортивной площадке, чтобы позволить мне использовать гомографию для сопоставления позиции игрока в кадре камеры с соответствующей позицией на 2D-модели площадки. Положение камеры и детали окружения, такие как освещение, могут различаться.
В настоящее время мой подход заключается в том, чтобы использовать обнаружение краев Canny и Hough Transform для обнаружения линий, а затем использовать kmeans для группировки их в горизонтальные / вертикальные группы. Как только я получу ключевые точки (углы пола суда и точки пересечения линий обслуживания), я знаю, что могу использовать findHomography
, чтобы получить перспективное преобразование для суда. Мои проблемы:
- Даже если я получу точки пересечения для всех линий, учитывая, что положение камеры (и, следовательно, поворот кадра) не зафиксировано, как я могу узнать, какие линии / точки пересечения какие? Есть ли техника, чтобы взять перекрестки и попытаться приспособить их к модельному двору? У меня есть точные размеры зала суда, который является областью, которая меня волнует.
- При использовании
HoughLines
и HoughLinesP
возникает много "шума" - см. Изображение ниже. Как лучше всего объединить эти строки? Или если подгонка к модели - это не проблема? - Является ли это лучшим современным подходом, или лучше было бы попробовать что-то вроде обучения модели CV для сегментации?
Пример вывода из Input / HoughLines / HoughLinesP (от L до R):