Перетворення Гафа — це методики виявляння об'єктів, критичний крок у багатьох втіленнях комп'ютерного бачення та добування даних із зображень. Зокрема, рандомізо́ване перетво́рення Га́фа (англ. Randomized Hough transform) — це ймовірнісний варіант класичного перетворення Гафа, який широко використовують для виявляння кривих (прямих, кіл, еліпсів тощо). Основна ідея перетворення Гафа (ПГ, англ. HT) полягає у втіленні процедури голосування для всіх потенційних кривих на зображенні, й після завершення цього алгоритму криві, які існують на зображенні, матимуть відносно високі оцінки голосування. Рандомізоване перетворення Гафа (РПГ, англ. RHT) відрізняється від ПГ тим, що воно намагається уникнути проведення обчислювально витратного процесу голосування для кожного ненульового пікселя на зображенні, використовуючи геометричні властивостей аналітичних кривих, і відтак підвищити часову ефективність та знизити вимоги первинного алгоритму до обсягу зберігання.
Мотив
Хоч перетворення Гафа (ПГ) й використовують широко у виявлянні кривих, воно має два важливі недоліки: По-перше, для кожного ненульового пікселя зображення під час процедури голосування накопичуються як параметри для наявної кривої, так і надлишкові. По-друге, накопичувальний масив (або простір Гафа) визначають заздалегідь евристично. Що більша точність потрібна, то більшу роздільну здатність параметрів слід задати. Ці дві потреби зазвичай призводять до великих вимог до пам'яті та низької швидкості для реальних застосунків. Тому для подолання цієї проблеми було створено РПГ.
Втілення
У порівнянні з ПГ, РПГ використовує той факт, що деякі аналітичні криві можливо однозначно визначити певною кількістю точок на них. Наприклад, пряму можливо визначити двома точками, а еліпс (або коло) — трьома. Для ілюстрування основної ідеї РПГ можливо використати випадок виявляння еліпса. Весь процес загалом складається з трьох етапів:
- Допасувати еліпси випадково вибраними точками.
- Уточнити накопичувальний масив та відповідні оцінки.
- Вивести еліпси з оцінками, вищими за певний попередньо визначений поріг.
Допасовування еліпса
Одне з поширених рівнянь для визначення еліпса:
з обмеженням
Проте еліпс можливо однозначно визначити, якщо знати три точки на ньому, та дотичні до них.
РПГ починається з випадкового обрання трьох точок на еліпсі. Нехай це будуть , та . Перший крок — знайти дотичні до цих трьох точок. Їх можливо знайти, допасувавши пряму методом найменших квадратів для маленького вікна сусідніх пікселів.
Наступний крок — знайти точки перетину дотичних. Це можливо легко зробити, розв'язавши систему рівнянь прямих, знайдених на попередньому кроці. Тоді нехай точки перетину — та , а середини відрізків та — та . Тоді центр еліпса лежатиме на перетині та . Знов-таки, координати точки перетину можливо визначати, розв'язуючи систему рівнянь прямих: докладний процес тут пропущено для стислості.
Нехай знайдені на попередньому кроці координати центру еліпса — . Тоді цей центр можливо перенести до початку координат через та , щоб уможливити спрощення рівняння еліпса до
Тепер ми можемо знайти решту параметрів еліпса, , та , підставивши координати , та до рівняння вище.
Накопичування
Параметрами еліпса, визначеними на попередньому етапі, можливо відповідно уточнювати накопичувальний масив. На відміну від класичного перетворення Гафа, РПГ не зберігає як накопичувальний масив «ґратку засіків». Натомість, воно спершу обчислює подібності між нововиявленим еліпсом та тими, що вже зберігаються в накопичувальному масиві. Для обчислювання подібності можливо використовувати різні метрики. Якщо подібність перевищує певний попередньо визначений поріг, воно замінює еліпс у накопичувачі усередненням обох, і додає 1 до його оцінки. Інакше поміщує цей еліпс до порожнього положення в накопичувачі, й призначає оцінку 1.
Завершення
Щойно оцінка одного потенційного еліпса долає порогове значення, його визначають як присутній на зображенні (іншими словами, цей еліпс виявляється), і його слід усунути з зображення та накопичувального масиву, щоб алгоритм міг швидше виявити інші потенційні еліпси. Алгоритм завершується, коли число ітерацій досягає максимальної межі, або коли виявлено всі еліпси.
Псевдокод РПГ:
поки (ми знаходимо еліпси ТА не досягли максимальної епохи) { для (фіксованого числа ітерацій) { Знайти потенційний еліпс. якщо (еліпс схожий на еліпс у накопичувачі) то Замінити той що в накопичувачі усередненням обох, і додати 1 до оцінки; інакше Вставити еліпс до вільного місця в накопичувачі з оцінкою 1; } Обрати еліпс із найкращою оцінкою й зберегти його в таблиці найкращих еліпсів; Усунути з зображення пікселі найкращого еліпса; Спорожнити накопичувач; }
Примітки
- D.H. Ballard, "Generalizing the Hough Transform to Detect Arbitrary Shapes", Pattern Recognition, Vol.13, No.2, p.111-122, 1981 (англ.)
- L. Xu, E. Oja, and P. Kultanan, "A new curve detection method: Randomized Hough transform (RHT)", Pattern Recog. Lett. 11, 1990, 331-338. (англ.)
- S. Inverso, “Ellipse Detection Using Randomized Hough Transform”, www.saminverso.com/res/vision/EllipseDetectionOld.pdf, May 20, 2002 (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Peretvorennya Gafa ce metodiki viyavlyannya ob yektiv kritichnij krok u bagatoh vtilennyah komp yuternogo bachennya ta dobuvannya danih iz zobrazhen Zokrema randomizo vane peretvo rennya Ga fa angl Randomized Hough transform ce jmovirnisnij variant klasichnogo peretvorennya Gafa yakij shiroko vikoristovuyut dlya viyavlyannya krivih pryamih kil elipsiv tosho Osnovna ideya peretvorennya Gafa PG angl HT polyagaye u vtilenni proceduri golosuvannya dlya vsih potencijnih krivih na zobrazhenni j pislya zavershennya cogo algoritmu krivi yaki isnuyut na zobrazhenni matimut vidnosno visoki ocinki golosuvannya Randomizovane peretvorennya Gafa RPG angl RHT vidriznyayetsya vid PG tim sho vono namagayetsya uniknuti provedennya obchislyuvalno vitratnogo procesu golosuvannya dlya kozhnogo nenulovogo pikselya na zobrazhenni vikoristovuyuchi geometrichni vlastivostej analitichnih krivih i vidtak pidvishiti chasovu efektivnist ta zniziti vimogi pervinnogo algoritmu do obsyagu zberigannya MotivHoch peretvorennya Gafa PG j vikoristovuyut shiroko u viyavlyanni krivih vono maye dva vazhlivi nedoliki Po pershe dlya kozhnogo nenulovogo pikselya zobrazhennya pid chas proceduri golosuvannya nakopichuyutsya yak parametri dlya nayavnoyi krivoyi tak i nadlishkovi Po druge nakopichuvalnij masiv abo prostir Gafa viznachayut zazdalegid evristichno Sho bilsha tochnist potribna to bilshu rozdilnu zdatnist parametriv slid zadati Ci dvi potrebi zazvichaj prizvodyat do velikih vimog do pam yati ta nizkoyi shvidkosti dlya realnih zastosunkiv Tomu dlya podolannya ciyeyi problemi bulo stvoreno RPG VtilennyaU porivnyanni z PG RPG vikoristovuye toj fakt sho deyaki analitichni krivi mozhlivo odnoznachno viznachiti pevnoyu kilkistyu tochok na nih Napriklad pryamu mozhlivo viznachiti dvoma tochkami a elips abo kolo troma Dlya ilyustruvannya osnovnoyi ideyi RPG mozhlivo vikoristati vipadok viyavlyannya elipsa Ves proces zagalom skladayetsya z troh etapiv Dopasuvati elipsi vipadkovo vibranimi tochkami Utochniti nakopichuvalnij masiv ta vidpovidni ocinki Vivesti elipsi z ocinkami vishimi za pevnij poperedno viznachenij porig Dopasovuvannya elipsa Odne z poshirenih rivnyan dlya viznachennya elipsa a x p 2 2 b x p y q c y q 2 1 displaystyle a x p 2 2b x p y q c y q 2 1 z obmezhennyam a c b 2 gt 0 displaystyle ac b 2 gt 0 Prote elips mozhlivo odnoznachno viznachiti yaksho znati tri tochki na nomu ta dotichni do nih RPG pochinayetsya z vipadkovogo obrannya troh tochok na elipsi Nehaj ce budut X 1 displaystyle X 1 X 2 displaystyle X 2 ta X 1 displaystyle X 1 Pershij krok znajti dotichni do cih troh tochok Yih mozhlivo znajti dopasuvavshi pryamu metodom najmenshih kvadrativ dlya malenkogo vikna susidnih pikseliv Nastupnij krok znajti tochki peretinu dotichnih Ce mozhlivo legko zrobiti rozv yazavshi sistemu rivnyan pryamih znajdenih na poperednomu kroci Todi nehaj tochki peretinu T 12 displaystyle T 12 ta T 23 displaystyle T 23 a seredini vidrizkiv X 1 X 2 displaystyle X 1 X 2 ta X 2 X 3 displaystyle X 2 X 3 M 12 displaystyle M 12 ta M 23 displaystyle M 23 Todi centr elipsa lezhatime na peretini T 12 M 12 displaystyle T 12 M 12 ta T 23 M 23 displaystyle T 23 M 23 Znov taki koordinati tochki peretinu mozhlivo viznachati rozv yazuyuchi sistemu rivnyan pryamih dokladnij proces tut propusheno dlya stislosti Nehaj znajdeni na poperednomu kroci koordinati centru elipsa x 0 y 0 displaystyle x 0 y 0 Todi cej centr mozhlivo perenesti do pochatku koordinat cherez x x x 0 displaystyle x x x 0 ta y y y 0 displaystyle y y y 0 shob umozhliviti sproshennya rivnyannya elipsa do a x 2 2 b x y c y 2 1 displaystyle ax 2 2bx y cy 2 1 Teper mi mozhemo znajti reshtu parametriv elipsa a displaystyle a b displaystyle b ta c displaystyle c pidstavivshi koordinati X 1 displaystyle X 1 X 2 displaystyle X 2 ta X 3 displaystyle X 3 do rivnyannya vishe Nakopichuvannya Parametrami elipsa viznachenimi na poperednomu etapi mozhlivo vidpovidno utochnyuvati nakopichuvalnij masiv Na vidminu vid klasichnogo peretvorennya Gafa RPG ne zberigaye yak nakopichuvalnij masiv gratku zasikiv Natomist vono spershu obchislyuye podibnosti mizh novoviyavlenim elipsom ta timi sho vzhe zberigayutsya v nakopichuvalnomu masivi Dlya obchislyuvannya podibnosti mozhlivo vikoristovuvati rizni metriki Yaksho podibnist perevishuye pevnij poperedno viznachenij porig vono zaminyuye elips u nakopichuvachi userednennyam oboh i dodaye 1 do jogo ocinki Inakshe pomishuye cej elips do porozhnogo polozhennya v nakopichuvachi j priznachaye ocinku 1 Zavershennya Shojno ocinka odnogo potencijnogo elipsa dolaye porogove znachennya jogo viznachayut yak prisutnij na zobrazhenni inshimi slovami cej elips viyavlyayetsya i jogo slid usunuti z zobrazhennya ta nakopichuvalnogo masivu shob algoritm mig shvidshe viyaviti inshi potencijni elipsi Algoritm zavershuyetsya koli chislo iteracij dosyagaye maksimalnoyi mezhi abo koli viyavleno vsi elipsi Psevdokod RPG poki mi znahodimo elipsi TA ne dosyagli maksimalnoyi epohi dlya fiksovanogo chisla iteracij Znajti potencijnij elips yaksho elips shozhij na elips u nakopichuvachi to Zaminiti toj sho v nakopichuvachi userednennyam oboh i dodati 1 do ocinki inakshe Vstaviti elips do vilnogo miscya v nakopichuvachi z ocinkoyu 1 Obrati elips iz najkrashoyu ocinkoyu j zberegti jogo v tablici najkrashih elipsiv Usunuti z zobrazhennya pikseli najkrashogo elipsa Sporozhniti nakopichuvach PrimitkiD H Ballard Generalizing the Hough Transform to Detect Arbitrary Shapes Pattern Recognition Vol 13 No 2 p 111 122 1981 angl L Xu E Oja and P Kultanan A new curve detection method Randomized Hough transform RHT Pattern Recog Lett 11 1990 331 338 angl S Inverso Ellipse Detection Using Randomized Hough Transform www saminverso com res vision EllipseDetectionOld pdf May 20 2002 angl