Top Banner
Akadémia Trojstenu Ako sledovať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky FMFI UK Bratislava [email protected] www.microstep-mis.com/~andy
38

Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Jan 03, 2016

Download

Documents

armando-patrick

Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky FMFI UK Bratislava andy @microstep-mis.com www.microstep-mis.com/~andy. Úloha. Mobilný robot sledujúci pingpongovú loptičku. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Akadémia Trojstenu

Ako sledovať pingpongovú loptičku

Andrej Lúčny

Katedra aplikovanej informatiky

FMFI UK Bratislava

[email protected]

www.microstep-mis.com/~andy

Page 2: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Úloha

Mobilný robot sledujúci pingpongovú loptičku

Page 3: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

t.j. ako pohybovať dvojkolesovým podvozkom mobilného robota vybaveného kamerou tak, aby sledoval pohyb pingpongovej loptičky ?

Page 4: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Vstup: obraz z kamery

Tri polia r[h,w], g[h,w], b[h,w], každý ich prvok je číslo 0..255 a predstavujú červenú, zelenú a modrú zložku farby

Page 5: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Červená zložka

Page 6: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Zelená zložka

Page 7: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Modrá zložka

Page 8: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Tradičný postup

Na tomto obraze potrebujeme vyznačiť stred pingpongovej loptičky a určiť jej veľkosť:

• Nájdeme hrany predmetov

• V týchto hranách hľadáme určitý tvar

Potom je už ľahké točiť kolieskami tak, aby sme udržali stred loptičky v strede obrazu a veľkosť loptičky v určitých medziach

Page 9: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Ako nájsť hrany ?

• Prvým krokom je premeniť tri farebné zložky na čiernobiely obraz, kde nezáleží na farbe ale len na jeho intenzite

• Možno to urobiť jednoducho:

bw[i,j] = (r[i,j] + g[i,j] + b[i,j]) / 3

alebo rafinovane

bw[i,j] = 0.3*r[i,j] + 0.59*g[i,j] + 0.11*b[i,j]

Page 10: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Čiernobiely obraz

Pole bw[h,w], každý jeho prvok je číslo 0..255 a predstavuje intenzitu svetla

Page 11: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

• Jeden riadok poľa bw si teraz môžeme znázorniť ako funkciu intenzity od čísla stĺpca

Page 12: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

stĺpec

inte

nzit

a

• Hranám zodpovedajú strmé úseky. Ako ich odfiltrovať od zvyšku?

Page 13: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

stĺpec

inte

nzit

a

• Hrany vyskočia, keď urobíme púhy rozdiel dvoch po sebe idúcich hodnôt

Page 14: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Sobelov operátor

• používa rovnaký trik, len v trochu rafinovanejšej verzii, keď zohľadňuje aj vedľajšie riadky

ai-1,j-1 ai-1,j ai-1,j+1

ai,j-1 ai,j ai,j+1

ai+1,j-1 ai+1,j ai+1,j+1

bi,j

-1 0 1

-2 0 2

-1 0 1

º =

bi,j = | ai-1,j+1 + 2ai,j+1 + ai+1,j+1 - ai-1,j-1 - 2ai,j-1 - ai+1,j-1 |

(orežeme na maximálne 255)

Page 15: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Vidíme, že výsledok je lepší než púhe odčítanie.Ako bude vyzerať celý obraz ?

Page 16: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Sobelov operátor

Máme pekne zvýraznené vertikálne hrany, ale horizontálne sú slabé

Page 17: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Sobelov operátor

• ľahká pomoc, urobíme to isté otočené o 90º

ai-1,j-1 ai-1,j ai-1,j+1

ai,j-1 ai,j ai,j+1

ai+1,j-1 ai+1,j ai+1,j+1

bi,j

-1 -2 -1

0 0 0

1 2 1

º =

bi,j = | ai+1,j-1 + 2ai+1,j + ai+1,j+1 - ai-1,j-1 - 2ai-1,j – ai-1,j+1 |

(orežeme na maximálne 255)

Page 18: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Sobelov operátor

Z toho máme zase zvýraznené horizontálne hrany

Page 19: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Sobelov operátor

a nakoniec to sčítame. Teraz sú hrany krásne, ale stále tam máme veľa bodiek čo do hrán nepatria

Page 20: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Prahovanie

• Radi by sme doterajších 0-255 zmenili na 0/1 a mali len hrany. Dobré výsledky tu dáva keď zvolíme určitý prah, napríklad 200

Page 21: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Prahovanie

• Aký prah treba zvoliť ? Na túto otázku žiaľ neexistuje univerzálna odpoveď. Prah sa musí sa zvoliť podľa aplikácie, osvetlenia, matnosti objektov a scény a pod. Je dobre ich skúšať viac naraz, prispôsobovať výsledku rozpoznávania a pod.

• Stále sú však hrany dosť tučné a sem-tam sa nájde izolovaný bod

Page 22: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Stenčovanie

• Ako hrany stenčiť ? Základný algoritmus je: likviduj body ktoré sa likvidovať dajú a zastav sa, keď sa už nič ďalšie likvidovať nedá

• Ktoré body sa dajú odbúrať ?

napríklad izolovaný bod:

Page 23: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Odbúravanie

? ?

• ďalej vodorovné a zvislé hrany sa dajú takto:

• A potom ešte rožky:

?

?? ?

?

?

?

? ? ?

? ?

?

??

?

? ?

Page 24: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Odbúravanie

• Stačí týchto 9 operátorov ? Čuduj sa svete, áno (dôkaz je na domácu úlohu)

Page 25: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Rozpoznávanie

• Ako teraz zistíme ktoré hrany tvoria kružnicu ? Existuje tu viacero efektívnych ad-hoc metód, ale použijeme jednu všeobecnejšiu známu ako Houghova transformácia.

• Je založená na transformácii obrazu do priestoru hodnôt parametrov objektu, ktorý hľadáme

Page 26: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

Vieme, že kružnicu môžeme reprezentovať tromi parametrami:

• x-súradnica stredu• y-súradnica stredu• polomer

x

y

r

Page 27: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

Každý z týchto parametrov má určitý rozsah

Napríklad keď máme obraz 320 x 240 bodov• x-súradnica stredu má rozsah 0..319• y-súradnica stredu má rozsah 0..239• polomer má rozsah povedzme 10..200

a stačí ich brať ako celočíselné (lebo nemožeme dosiahnuť presnosť väčšiu než má kamera)

Page 28: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

• Celú situáciu nám teda bude reprezentovať celočíselné pole P[0..319,0..239,10..200] kde P[x,y,r] znamená:

„P[x,y,r] svedkov tvrdí, že na obraze je kružnica so stredom [x,y] a polomerom r“

Kto budú títo svedkovia ?

Page 29: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

Nebude to nik iný ako body obrazu. Každý biely bod [x,y] na vyhranenom obraze si totiž namýšla že leží na hľadanej kružnici a svedčí:

• Na obraze je kružnica so stredom [x,y] a polomerom 0• Na obraze je kružnica so stredom [x-1,y] a polomerom 1• Na obraze je kružnica so stredom [x+1,y] a polomerom 1• Na obraze je kružnica so stredom [x,y-1] a polomerom 1• Na obraze je kružnica so stredom [x,y+1] a polomerom 1• Na obraze je kružnica so stredom [x-2,y] a polomerom 2• …. atď

Page 30: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

• vo všeobecnosti svedčí bod [x,y] pre všetky kružnice so stredom x+a, y+b a polomerom r, kde a2 + b2 r2

• Ako nájsť pravdu z toľkých tvrdení tak nepoľahlivých svedkov? Zistíme, ktorý názor sa najviac zhoduje!

• Pre každý biely bod na vyhranenom obraze teda prebehneme pole P a o jednotku zvýšime hodnotu všetkým za koho tento bod svedčí. Na záver sa pozrieme pre koho svedčí najviac bodov.

Page 31: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

polomer

stred

Page 32: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

Takto transformujeme pôvodný obraz na niečo trojrozmerné.

Page 33: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

Keď sa na to pozrieme v smere polomeruvidíme stred nájdenej guličky ako hviezdu na oblohe

x

y

x

y

Page 34: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

Polomer guličky vidíme z iného pohľadu ...

r

y

r

Page 35: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

... a máme ju !

Page 36: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Houghova transformácia

• Problém je, že keby sme to robili doslova takto, bolo by to strašne výpočtovo náročné (obraz z kamery má pritom aj 25Hz)

• V skutočnosti sa robí ešte jeden krok: vyhranený obraz sa premení na množinu úsečiek a miesto počítania celej matice P sa hľadajú len lokálne extrémy gradientným zostupom. Parametre sú tiež trochu iné – polárne. (Ak budete raz študovať na FMFI, na Katedre aplikovanej informatiky Vás to naučia.)

Page 37: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Riadenie podvozku

Ak poznáme stred a polomer loptičky, riadiť podvozok stačí jednoduchou stratégiou:

– ak je loptička moc vpravo, vydávame príkaz na otáčanie sa doprava

– ak moc vľavo, doľava– ak je loptička moc veľká, cúvame– ak moc malá, ideme dopredu

Page 38: Akadémia Trojstenu Ako sledov ať pingpongovú loptičku Andrej Lúčny Katedra aplikovanej informatiky

Ďakujem za pozornosť !

Andrej LúčnyKatedra aplikovanej informatiky

FMFI UK Bratislava

[email protected]

www.microstep-mis.com/~andy