Обчислення гомографії на основі виявлених ліній


12

Я знаю, що ви можете обчислити гомографії від зображення до площини камери, використовуючи точки відповідності між "ідеальною моделлю" та точками зображення.

Я роблю це для футбольного поля / поля, і використовував виявлення країв, щоб знайти білі лінії на полі.

Але камера не (завжди) охоплює весь крок, тому я не бачу всіх кутів ... і я лише кути на 100% відомих точок у моделі (жодних інших відмінних точок).

Отже, проблема полягає в тому, що якщо лінія не перетинається з іншою лінією і не утворює кут, я знаю лише точки зображення лінії, а не відповідні координати "ідеального / реального світу" в моделі.

Чи я можу використовувати виявлені рядки для обчислення гомографії чи навіть просто набору кандидатських гомографій , навіть якщо виявлені лінії не перетинаються між собою та створюють кут?

Приклад зображення, що показує висоту, наше поле зору та точки кроку, де я можу знати відповідні координати реального світу / моделі (зелені кола) та приклад з двох ліній, які можуть бути абсолютно марними, оскільки в нашому полі зору , У мене немає поняття, в який момент вони починаються або зупиняються у відповідному реальному світі / моделі кроку:

введіть тут опис зображення Червоні лінії - це приклади ліній, які я хотів би використати, але я не знаю їхніх координат реального світу, і їх важко оцінити, оскільки залежно від пози камери, відповідні точки можуть бути "де завгодно".


2
У вас є приклади зображень? Або хоча б ескіз можливих випадків для виявлення ліній? Я думаю, що коротка відповідь на ваше запитання - «так, ви можете», але більше деталей від вас допоможе дати більш детальну відповідь :)
penelope

2
Чи можете ви надати приклад зображення? Ви хочете сказати, що виявлені сегменти лінії не перетинаються або ви намагалися розширити виявлені сегменти до ліній, а потім спробували знайти перехрестя?
ppalasek

3
До питання я додав приклад зображення
Генрік Кюс Альстад

1
Ви коли-небудь це розуміли? Мене цікавлять і результати.

Відповіді:


3

Я поясню два підходи до цього:

1) Один із підходів потребує алгоритму відповідності рядків. Після зіставлення ліній ви можете просто використовувати кінцеві точки рядків для обчислення гомографії. Щоб досягти того, що дескриптори на основі EDLine або LSD нещодавно запропоновані в OpenCV. Також реалізовано хешування та швидке узгодження їх. Перегляньте відео тут:

http://www.youtube.com/watch?v=MqMjvSkM39k

http://www.youtube.com/watch?v=naSWTlbg3To

Недавнє сховище opencv_contrib містить вихідний код цих методів.

У випадку, якщо кінцеві точки рядка шумні, ви можете безпосередньо використовувати лінії для обчислення гомографій. Потім такі документи читатимуть:

Внутрішній звіт: Обчислювальні гомографії з трьох ліній чи точок у зображенні пари Г. Лопес-Ніколя, Дж. Дж. Герреро, О. А. Пелледжеро, К. Саґес

Внутрішній звіт: 2003-V01 Надійна відповідність рядків та оцінка гомографій одночасно Г. Лопес-Ніколас

Імовірнісне узгодження ліній для їх гомографії Taemin Kim, Jihwan Woo і In So Kweon

2) Тут наведено один метод, специфічний для полів:

" Використання лінійних та еліпсисних функцій для виправлення трансляції хокейного відео .", Гупта, Анкур, Джеймс Дж. Літтл та Роберт Дж. Вудхем Комп'ютер та Робот Віжон (CRV), 2011 р. Канадська конференція на. IEEE, 2011 рік.

і

" Поєднання лінійних і точкових відповідностей для оцінки гомографії .", Дуброфський, Елан та Роберт Дж. Вудхем . Міжнародний симпозіум з візуальних обчислень. Спрингер Берлін Гейдельберг, 2008 р.

Ідея така: будь-який рядок, параметризований його коефіцієнтами відображається на на іншому зображенні, використовуючи:li=(u,v,1)Tli=(x,y,1)T

li=HTli

У такому вигляді рівняння можна безпосередньо підключити до методу DLT:

Ai=[u0uxv0vx10x0uuy0vvy01y]

Єдина відмінність - це нормалізація, яку ви знайдете у посиланнях вище.

Додавання еліпсів: Будь-яка точка лежить на перерізі якщо . Це породжує відношення перетворення:xCxTCx=0

C=HTCH1

Посилання, наведені вище, також пояснюють, як вставити це обмеження в алгоритм DLT.

За допомогою еліпсів і ліній можна вивести міцні проективні відносини.


2

Якщо лінії не паралельні, ви можете обчислити точку їх перетину і використовувати її як точку відліку. У своїй картині ви також можете використовувати фіолетові точки:

введіть тут опис зображення

До речі, перетин ліній не повинен бути на зображенні. Поки лінії паралельні

Якщо лінії паралельні, ви можете використовувати їх для отримання додаткових обмежень. Наприклад, якщо у вас N <4 бали та K рядки, ви можете оцінити перетворення

Нагадаємо, що рівнянням проективного перетворення є:

x=(a11x+a12y+a13)(a31x+a32y+1)y=(a21x+a22y+a23)(a31x+a32y+1)

Ваша мета - знайти коефіцієнтиa11,a12,a13,a21,a22,a23,a31,a32

Таким чином, якщо є лінія яка відображається на , то:ax+by+c=0Ax+By+C

Ax+By+C=0A(a21x+a22y+a23)+B(a21x+a22y+a23)+C(a31x+a32y+1)=0

Його можна переписати так:

(AxAyABxByBCxCy)(a11a12a13a21a22a23a31a32)=C

( x , y ) a x + b y + c = 0A,B,C - відомі значення, тому що ви обчислили рівняння ліній. Ви можете ввести будь-яку точку для якої , і отримати додаткове обмеження. Поєднайте їх разом із обмеженнями, які ви отримуєте від балів, і ви можете отримати додаткову інформацію. Зауважте, що ви не отримаєте більше інформації з більш ніж двох точок, оскільки будь-яка третя точка додасть лінійно залежні лінії до матриці обмежень.(x,y)ax+by+c=0

Додаткові посилання " Оцінка гомографії Елана Дубровського " - Див. Частину 2.3.1, оцінка гомографії за лініями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.