Podmienky odovzdávania domácich zadaní:
- Pre každú úlohu očakávam zdrojový kód, vstupný obrázok/video a výstupný obrázok/video (prípadne všetky medzi-obrázky) – dôležité je, aby som mohol vidieť výsledok bez nutnosti spúšťať kód.
- Riešenia odovzdávate cez Github classroom.
Úlohy 2-5 sú zverejnené hromadne 28.10. Deadline je 16.12. Priebežne odovzdaným úloham budem dávať feedback.
- 1. úloha, zverejnená 11.10. – deadline 21.10., 8:00 (Github classroom)
- 2. úloha, Pôdorys (Github classroom)
- 3. úloha, Dopravné značky (Github classroom)
- 4. úloha, Vanishing point (Github classroom)
- 5. úloha, Puzzle (Github classroom)
2. úloha: Pôdorys (LINK na github classroom)
Cieľ: Na obrázku, kde je pôdorys budovy, identifikovať steny.
Vstup: Plán budovy (v githube sú obrázky)
Výstup: V pôvodnom obrázku zakreslené steny (technicky je výsledkom binárny obrázok s označenými stenami).
Úloha vychádza z diplomovej práce Martiny Hrehovej a následnej publikácie Opiela, M., Hrehová, M. and Galčík, F., 2023. Map Model Extraction from Image Floor Plans. In IPIN-WiP. Všetky odkazy sú dostupné na stránke.
Postup z diplomovky na detekciu stien (klastrovanie bude na prednášk a cvičení 8.11.):
- Odstrániť text z obrázka pomocou OCR (kód je v githube)
- Nájsť čiary pomocou LSD
- Eliminovať duplicitné čiary pomocou mean shift klastrovania. Jednotlivé konce čiar sú nahradené centrami klastrov.
- Zarovnať body použitím mean shift po zložkách (osobitne po osiach x a y)
Úloha pre vás:
Implementujte postup z diplomovky a vyskúšajte. Môžete pridať vlastné obrázky budov (odkazy na datasety sú v diplomovke, resp. si nájdite niečo nové). Ak je potrebné, tak urobte nejaký preprocessing alebo krok navyše. Alternatívou je vyskúšať úplne iný postup (aj horší výsledok je ok).
Zapíšte svoje pozorovania z tohto procesu do nejakého textového súboru (alebo priamo do jupyter notebooku resp. ako komentár do kódu).
3. úloha: Dopravné značky (LINK na github classroom)
Cieľ: klasifikovať krajinu podľa dopravnej značky zobrazujúcej maximálu povolenú rýchlosť
Vstup: obrázok z google street view
Výstup: označená kruhová značka a klasifikovanie
Chceme sa snažiť o klasifikáciu do dvoch tried. V repozitári nájdete dva obrázky – ukážku značiek, ktoré sa ľahko rozoznávajú – Španielsko (červený okraj, biele vnútro) a Švédsko (červený okraj, žlté vnútro). Môžete si vybrať aj iné dve krajiny. Tieto vybrané majú výhodu, že okolo červeného okraju nie je tenký okraj inej farby a zároveň sú dobré rozpoznateľné. Alternatívou je použiť iný typ značiek (napr. modrá označujúca prikázaný smer a pod.)
Aplikujte Hough transformáciu na nájdenie kruhov a vymyslite klasifikátor – podmienku, na základe ktorej sa určí o aký typ značky ide. Je to jedno, čo použijete – či nejakú reprezentáciu farieb vo vnútri kruhu a pod. Aj neúspešný pokus o klasifikáciu je v poriadku.
Vyskúšajte na vlastných obrázkoch. Môžete vyskúšať aj nie priamy pohľad na značku ale trochu zboku. Výsledky a pozorovania zapíšte do textového súboru alebo do kódu.
4. úloha: Vanishing point (LINK na github classroom)
Implementujte algoritmus popísaný v článku (Ebrahimpour, R., Rasoolinezhad, R., Hajiabolhasani, Z. and Ebrahimi, M., 2012. Vanishing point detection in corridors: using Hough transform and K-means clustering. IET computer vision, 6(1), pp.40-51.).
Článok na stiahnutie: tu alebo tu (ak by bol problém so stiahnutím, napíšte mi, prepošlem pdf).
Konkrétne kroky:
- Nájdite si obrázok chodby. Môžete prispôsobiť rozlíšenie. Môžete použiť aj vlastnú fotku nejakej chodby. Postačuje jeden obrázok, ideálne vyskúšať aspoň na 2-3 obrázkoch.
- Obrázok konvertujte na šedotónový
- Ekvalizujte histogram
- Aplikujte 45° masku (je v článku – ide o maticu 3×3 kde na diagonále sú 2 a na ostatných miestach -1), [[-1,-1,2],[-1,2,-1],[2,-1,-1]]
- Aplikujte Cannyho detektor na detekciu hrán
- Použite Hough transformáciu na získanie čiar. Odporúčam HoughLinesP, kde je výstupom zoznam čiar, ktoré sú tvorené štvoricou čísel (x a y súradnice začiatočného a koncového bodu)
- Aplikujte K-means (k=4) na množine bodov – koncových bodov detegovaných čiar. Výsledné centroidy pre klastre vykreslite do pôvodného obrázka.
- Aplikujte K-means (k=1) na množine 4 centroidov. Zakreslite výsledný centroid – v ideálnom prípade by to mal byť vanishing point. Vo výslednom obrázku nech sú iba pozície centroidov. Avšak vykreslite osobitne aj čiastkové riešenia vrátane výstupu po detekcii čiar.
5. úloha: Puzzle (LINK na github classroom)
Cieľom tejto úlohy je vyskúšať si rôzne spôsoby ako sa dopracovať k segmentácii obrázku. Hlavná úloha je nájsť jednotlivé kúsky puzzle na obrázku.
Prioritne si vyberte jeden z obrázkov v repozitári a na ňom vyskúšajte rôzne metódy. Nakoniec spustite svoje riešenie na všetkých obrázkoch.
Výstupom pre každú fotku nech je čiernobiely obrázok, ktorý bude mať v ideálnom prípade bielou farbou označené hranice jednotlivých dielikov a čiernou všetko ostatné. Alternatívne ak to bude vhodnejšie, tak môžete zakresliť výsledok do pôvodného obrázka. Úloha nie je jednoduchá a nepredpokladám, že sa podarí získať ideálny výstup. Pokúste sa o čo najlepšie riešenie.
Zopár tipov, čo môžete vyskúšať (samozrejme aj čokoľvek mimo tohto zoznamu):
- preprocessing obrázka – zmena rozlíšenia (cv.resize), filtrovanie, konvolúcia, rozostrenie
- canny edge detector
- matematická morfológia – erózia, dilatácia, otvorenie, zatvorenie
- použitie vhodnej konvolučnej masky – laplacian, sharpen
- kontúry
- grabcut resp. iná forma klastrovania
1. úloha: Maratón (LINK na github classroom)
Termín odovzdania: 21.10.2024 8:00
V repozitári nájdete obrázok z TV vysielania Medzinárodného maratónu mieru (png) a tiež krátke video (mp4). Obraz nie je dobre viditeľný – ľavá časť a čiastočne obloha sú svetlé, pričom zvyšok videa je tmavý.
Povinná časť úlohy (vstupom je obrázok):
- obrázok prekonvertujte na šedotónový
- vykreslite histogram a vložte ho priamo do obrázka (napr. vpravo dole, stratíme tým časť pôvodného obrázka, ale to nevadí)
- použite nejakú metódu na vyhladenie histogramu (inšpirujte sa tu)
Doplňujúca časť úlohy (vyberte si jednu z možností, urobte aspoň jednu):
- aplikujte vykreslenie histogramu a vyhladenie na celom videu. Vytvoríte tým nové video. Prečítajte si návod na prácu s videom (toto v jupyter notebookoch asi nepôjde).
- vyskúšajte pracovať s farebným obrázkom, vykreslite histogram pre každú RGB zložku osobitne. Skúste vyhladiť histogram.
- nájdite a vyskúšajte nejakú inú metódu na vyhladzovanie histogramov (CLAHE je prvá možnosť, ktorú sa oplatí vyskúšať).
Ak nebudete používať jupyter notebook, pripojte k riešeniu aj výstupný obrázok/video, aby som nemusel spúšťať kód. Ku svojmu riešeniu pripojte krátky komentár – zhodnotenie svojho riešenia.