WhyCon: Rozdiel medzi revíziami
Zo stránky SensorWiki
dBez shrnutí editace |
|||
| Riadok 14: | Riadok 14: | ||
# transformácia do daného súradnicového systému. | # transformácia do daného súradnicového systému. | ||
* inicializácia hľadania na poslednej pozíci v obraze, | |||
* spracovanie iba relevantných pixelov, | |||
* uložené medzivýsledky vo fronte pozícií. | |||
Podrobný opis algoritmu je zachytený na prednáške T. Krajníka | Podrobný opis algoritmu je zachytený na prednáške T. Krajníka | ||
| Riadok 23: | Riadok 23: | ||
ku ktorej sú k dispozícii aj | ku ktorej sú k dispozícii aj | ||
* [https://robotika.sk/seminar/2018/whycon.pdf slajdy] | |||
* [https://github.com/gestom/whycon-orig github repo] | |||
* KRAJNÍK, Tomáš, et al. ''[https://link.springer.com/article/10.1007/s10846-014-0041-x A practical multirobot localization system]''. Journal of Intelligent & Robotic Systems, 2014, 76.3: 539-562. | |||
WhyCon detekcia je v podstate séria filtrov, kde každý krok zúži počet možných kandidátov. Celý postup je vidno na nasledovnom obrázku: | |||
* Krok 1 — Šedotónový + blur. Farba nás nezaujíma (marker je čiernobiely), Gaussian blur odstráni šum. | |||
* Krok 2 — Adaptívny prah. Každý pixel porovná so svojím okolím (51×51 px okno) a rozhodne: tmavší než priemer → biela, svetlejší → čierna. Preto to funguje aj pri nerovnomernom osvetlení — na rozdiel od globálneho prahu, ktorý by v tmavom rohu videl "všetko čierne". | |||
* Krok 3 — Kontúry s hierarchiou. OpenCV nájde hranice všetkých bielych oblastí (v tomto snímku 1021). Kľúčové je RETR_TREE — zachová informáciu, ktorá kontúra je vnútri ktorej (rodič → dieťa). | |||
* Krok 4 — Filter na cirkularitu. Z 1021 kontúr zostanú len 3 kruhové. Cirkularita = 4π × plocha / obvod². Dokonalý kruh = 1.0, stena bludiska ≈ 0.1. Filtrujeme na ≥ 0.55. | |||
* Krok 5 — Rodič-dieťa test. Toto je jadro WhyConu. Hľadáme kruhovú kontúru, ktorá má vnútri seba ďalšiu kruhovú kontúru — čiže prstenec s kruhovým stredom. Navyše kontrolujeme pomer plôch: pri pomere priemerov 2:1 je pomer plôch * 0.25. V tvojom snímku vyšiel 0.24 — presne sedí. | |||
* Krok 6 — Najlepší kandidát. Ak prešlo viacero, vyberie sa ten s najvyšším skóre (kombinácia cirkularity oboch kruhov a veľkosti). | |||
<div style='text-align: center;'> | |||
[[Súbor:WhyConDemo.png|500px]]<BR> | |||
''Jednotlivé kroky algoritmu WhyCon.'' | |||
</div> | |||
Verzia z 18:30, 16. máj 2026
A precise, efficient and low-cost localization system
Presná a spoľahlivá lokalizácia je jedným z kľúčových problémov mobilnej robotiky. Obvykle sa tento problém rieši metódami simultánnej lokalizácie a mapovania (SLAM). Napriek tomu sa však často používajú aj externé lokalizačné systémy, či už pre riadenie v uzavretej slučke, alebo pre meranie polohy. WhyCon je rýchly a presný vizuálny softvér pre lokalizáciu viacerých robotov. Jadrom je nový a efektívny algoritmus pre rozpoznávanie čierno-bielych vzorov. Metóda je robustná a odolná voči zmenám osvetlenia, má presnosť na úrovni pixelov a jej výpočtová zložitosť nezávisí od veľkosti spracovaného obrazu. Je dostatočne rýchla a zvláda spracovať stovky snímkov za sekundu pomocou bežného počítača a lacnej kamery, pričom dosahuje až milimetrovú presnosť.
Vstup: farebný alebo čiernobiely obrázok z jednej kamery
Výstup: pozície kruhových značiek v priestore
Algoritmus:
- segmentácia prehľadávaním do šírky,
- filtrácia výsledkov (kruhovosť, sústrednosť, pomer farieb atď),
- presné parametre 2d vzoru,
- reprojekcia do 3d,
- transformácia do daného súradnicového systému.
- inicializácia hľadania na poslednej pozíci v obraze,
- spracovanie iba relevantných pixelov,
- uložené medzivýsledky vo fronte pozícií.
Podrobný opis algoritmu je zachytený na prednáške T. Krajníka
ku ktorej sú k dispozícii aj
- slajdy
- github repo
- KRAJNÍK, Tomáš, et al. A practical multirobot localization system. Journal of Intelligent & Robotic Systems, 2014, 76.3: 539-562.
WhyCon detekcia je v podstate séria filtrov, kde každý krok zúži počet možných kandidátov. Celý postup je vidno na nasledovnom obrázku:
- Krok 1 — Šedotónový + blur. Farba nás nezaujíma (marker je čiernobiely), Gaussian blur odstráni šum.
- Krok 2 — Adaptívny prah. Každý pixel porovná so svojím okolím (51×51 px okno) a rozhodne: tmavší než priemer → biela, svetlejší → čierna. Preto to funguje aj pri nerovnomernom osvetlení — na rozdiel od globálneho prahu, ktorý by v tmavom rohu videl "všetko čierne".
- Krok 3 — Kontúry s hierarchiou. OpenCV nájde hranice všetkých bielych oblastí (v tomto snímku 1021). Kľúčové je RETR_TREE — zachová informáciu, ktorá kontúra je vnútri ktorej (rodič → dieťa).
- Krok 4 — Filter na cirkularitu. Z 1021 kontúr zostanú len 3 kruhové. Cirkularita = 4π × plocha / obvod². Dokonalý kruh = 1.0, stena bludiska ≈ 0.1. Filtrujeme na ≥ 0.55.
- Krok 5 — Rodič-dieťa test. Toto je jadro WhyConu. Hľadáme kruhovú kontúru, ktorá má vnútri seba ďalšiu kruhovú kontúru — čiže prstenec s kruhovým stredom. Navyše kontrolujeme pomer plôch: pri pomere priemerov 2:1 je pomer plôch * 0.25. V tvojom snímku vyšiel 0.24 — presne sedí.
- Krok 6 — Najlepší kandidát. Ak prešlo viacero, vyberie sa ten s najvyšším skóre (kombinácia cirkularity oboch kruhov a veľkosti).