Я знаю, что вы можете рассчитать гомографии от изображения к плоскости камеры, используя точки соответствия между «идеальной моделью» и точками изображения.
Я делаю это для футбольного поля / поля и использую обнаружение краев, чтобы найти белые линии на поле.
Но камера (не всегда) покрывает все поле, поэтому я не могу видеть все углы ... и я только на углах на 100% известных точек в модели (других отличительных точек нет).
Так что проблема в том, что если линия не пересекается с другой линией и не образует угол, я знаю только точки изображения линии, а не соответствующие ей координаты "идеальный / реальный" в модели.
Можно ли каким-то образом использовать обнаруженные линии для вычисления гомографии или даже просто набор кандидатских гомографий , даже если обнаруженные линии не пересекаются друг с другом и создают угол?
Пример изображения, показывающий высоту, наше поле зрения и точки поля, где я могу узнать соответствующие координаты реального мира / модели (зеленые кружки), а также пример двух линий, которые могут быть совершенно бесполезными, поскольку в нашем поле зрения Я понятия не имею, в какой момент они начинаются или останавливаются в соответствующем реальном мире / модели поля:
Красные линии - примеры линий, которые я хотел бы использовать, но я не знаю их координат в реальном мире, и их довольно сложно оценить, потому что в зависимости от положения камеры соответствующие точки могут быть «где угодно».
источник
Ответы:
Я объясню два подхода к этому:
1) Один из подходов требует алгоритма сопоставления строк. После сопоставления линий вы можете просто использовать конечные точки линий для вычисления гомографии. Для достижения этого в OpenCV недавно были предложены дескрипторы на основе EDLine или LSD. Также реализовано хеширование и быстрое их сопоставление. Проверьте видео здесь:
http://www.youtube.com/watch?v=MqMjvSkM39k
http://www.youtube.com/watch?v=naSWTlbg3To
Последний репозиторий opencv_contrib содержит исходный код для этих методов.
В случае, если конечные точки линии являются шумными, вы можете напрямую использовать линии для вычисления гомографий. Такие документы будут читать:
2) Здесь есть один метод, специфичный для полей:
и
В этой форме уравнение может быть непосредственно включено в метод DLT:
Единственная разница - нормализация, которую вы найдете в ссылках выше.
Приведенные выше ссылки также объясняют, как вставить это ограничение в алгоритм DLT.
Используя эллипсы и линии, можно получить устойчивые проективные отношения.
источник
Если линии не параллельны, вы можете рассчитать точку их пересечения и использовать ее в качестве ориентира. В вашей картине вы также можете использовать фиолетовые точки:
Кстати, пересечение линий не обязательно должно быть на изображении. Пока линии параллельны
Если линии параллельны, вы можете использовать их для получения дополнительных ограничений. Например, если у вас N <4 точек и K линий, вы можете оценить преобразование
Напомним, что уравнение проективного преобразования имеет вид:
Это может быть переписано как:
Дополнительные ссылки « Оценка гомографии по Элану Дубровскому » - см. Часть 2.3.1, оценка гомографии по линиям.
источник