{"id":402,"date":"2025-09-24T12:37:45","date_gmt":"2025-09-24T10:37:45","guid":{"rendered":"https:\/\/ics.science.upjs.sk\/ano\/?page_id=402"},"modified":"2025-09-24T12:37:45","modified_gmt":"2025-09-24T10:37:45","slug":"domace-zadania-2024","status":"publish","type":"page","link":"https:\/\/ics.science.upjs.sk\/ano\/domace-zadania-2024\/","title":{"rendered":"Dom\u00e1ce zadania 2024"},"content":{"rendered":"<p>Podmienky odovzd\u00e1vania dom\u00e1cich zadan\u00ed:<\/p>\n<ul>\n<li>Pre ka\u017ed\u00fa \u00falohu o\u010dak\u00e1vam zdrojov\u00fd k\u00f3d, vstupn\u00fd obr\u00e1zok\/video a v\u00fdstupn\u00fd obr\u00e1zok\/video (pr\u00edpadne v\u0161etky medzi-obr\u00e1zky) \u2013 d\u00f4le\u017eit\u00e9 je, aby som mohol vidie\u0165 v\u00fdsledok bez nutnosti sp\u00fa\u0161\u0165a\u0165 k\u00f3d.<\/li>\n<li>Rie\u0161enia odovzd\u00e1vate cez Github classroom. <del><\/del> \u00dalohy 2-5 s\u00fa zverejnen\u00e9 hromadne 28.10. Deadline je 16.12. Priebe\u017ene odovzdan\u00fdm \u00faloham budem d\u00e1va\u0165 feedback.<\/li>\n<\/ul>\n<ul>\n<li>1. \u00faloha, zverejnen\u00e1 11.10. &#8211; deadline 21.10., 8:00 (<a href=\"https:\/\/classroom.github.com\/a\/xBHi6bo4\">Github classroom<\/a>)<\/li>\n<li>2. \u00faloha, P\u00f4dorys (<a href=\"https:\/\/classroom.github.com\/a\/g6c9e8lW\">Github classroom<\/a>)<\/li>\n<li>3. \u00faloha, Dopravn\u00e9 zna\u010dky (<a href=\"https:\/\/classroom.github.com\/a\/L4jrel5A\">Github classroom<\/a>)<\/li>\n<li>4. \u00faloha, Vanishing point (<a href=\"https:\/\/classroom.github.com\/a\/JJ8H-5mB\">Github classroom<\/a>)<\/li>\n<li>5. \u00faloha, Puzzle (<a href=\"https:\/\/classroom.github.com\/a\/R2RGjl-E\">Github classroom<\/a>)<\/li>\n<\/ul>\n<hr \/>\n<h2><strong>2. \u00faloha: P\u00f4dorys (<a href=\"https:\/\/classroom.github.com\/a\/g6c9e8lW\">LINK na github classroom<\/a>)<\/strong><\/h2>\n<p>Cie\u013e: Na obr\u00e1zku, kde je p\u00f4dorys budovy, identifikova\u0165 steny.<br \/>\nVstup: Pl\u00e1n budovy (v githube s\u00fa obr\u00e1zky)<br \/>\nV\u00fdstup: V p\u00f4vodnom obr\u00e1zku zakreslen\u00e9 steny (technicky je v\u00fdsledkom bin\u00e1rny obr\u00e1zok s ozna\u010den\u00fdmi stenami).<\/p>\n<p>\u00daloha vych\u00e1dza z diplomovej pr\u00e1ce Martiny Hrehovej a n\u00e1slednej publik\u00e1cie <em>Opiela, M., Hrehov\u00e1, M. and Gal\u010d\u00edk, F., 2023. Map Model Extraction from Image Floor Plans. In IPIN-WiP. <\/em>V\u0161etky odkazy s\u00fa dostupn\u00e9 <a href=\"https:\/\/ics.science.upjs.sk\/indora\/floor-plans\/\">na str\u00e1nke<\/a>.<\/p>\n<p>Postup z diplomovky na detekciu stien (klastrovanie bude na predn\u00e1\u0161k a cvi\u010den\u00ed 8.11.):<\/p>\n<ol>\n<li>Odstr\u00e1ni\u0165 text z obr\u00e1zka pomocou OCR (k\u00f3d je v githube)<\/li>\n<li>N\u00e1js\u0165 \u010diary pomocou LSD<\/li>\n<li>Eliminova\u0165 duplicitn\u00e9 \u010diary pomocou mean shift klastrovania. Jednotliv\u00e9 konce \u010diar s\u00fa nahraden\u00e9 centrami klastrov.<\/li>\n<li>Zarovna\u0165 body pou\u017eit\u00edm mean shift po zlo\u017ek\u00e1ch (osobitne po osiach x a y)<\/li>\n<\/ol>\n<p>\u00daloha pre v\u00e1s:<\/p>\n<p>Implementujte postup z diplomovky a vysk\u00fa\u0161ajte. M\u00f4\u017eete prida\u0165 vlastn\u00e9 obr\u00e1zky budov (odkazy na datasety s\u00fa v diplomovke, resp. si n\u00e1jdite nie\u010do nov\u00e9). Ak je potrebn\u00e9, tak urobte nejak\u00fd preprocessing alebo krok navy\u0161e. Alternat\u00edvou je vysk\u00fa\u0161a\u0165 \u00faplne in\u00fd postup (aj hor\u0161\u00ed v\u00fdsledok je ok).<\/p>\n<p>Zap\u00ed\u0161te svoje pozorovania z tohto procesu do nejak\u00e9ho textov\u00e9ho s\u00faboru (alebo priamo do jupyter notebooku resp. ako koment\u00e1r do k\u00f3du).<\/p>\n<h2><strong>3. \u00faloha: Dopravn\u00e9 zna\u010dky (<a href=\"https:\/\/classroom.github.com\/a\/L4jrel5A\">LINK na github classroom<\/a>)<\/strong><\/h2>\n<p>Cie\u013e: klasifikova\u0165 krajinu pod\u013ea dopravnej zna\u010dky zobrazuj\u00facej maxim\u00e1lu povolen\u00fa r\u00fdchlos\u0165<br \/>\nVstup: obr\u00e1zok z google street view<br \/>\nV\u00fdstup: ozna\u010den\u00e1 kruhov\u00e1 zna\u010dka a klasifikovanie<\/p>\n<p>Chceme sa sna\u017ei\u0165 o klasifik\u00e1ciu do dvoch tried. V repozit\u00e1ri n\u00e1jdete dva obr\u00e1zky &#8211; uk\u00e1\u017eku zna\u010diek, ktor\u00e9 sa \u013eahko rozozn\u00e1vaj\u00fa &#8211; \u0160panielsko (\u010derven\u00fd okraj, biele vn\u00fatro) a \u0160v\u00e9dsko (\u010derven\u00fd okraj, \u017elt\u00e9 vn\u00fatro). M\u00f4\u017eete si vybra\u0165 aj in\u00e9 dve krajiny. Tieto vybran\u00e9 maj\u00fa v\u00fdhodu, \u017ee okolo \u010derven\u00e9ho okraju nie je tenk\u00fd okraj inej farby a z\u00e1rove\u0148 s\u00fa dobr\u00e9 rozpoznate\u013en\u00e9. Alternat\u00edvou je pou\u017ei\u0165 in\u00fd typ zna\u010diek (napr. modr\u00e1 ozna\u010duj\u00faca prik\u00e1zan\u00fd smer a pod.)<\/p>\n<p>Aplikujte Hough transform\u00e1ciu na n\u00e1jdenie kruhov a vymyslite klasifik\u00e1tor &#8211; podmienku, na z\u00e1klade ktorej sa ur\u010d\u00ed o ak\u00fd typ zna\u010dky ide. Je to jedno, \u010do pou\u017eijete &#8211; \u010di nejak\u00fa reprezent\u00e1ciu farieb vo vn\u00fatri kruhu a pod. Aj ne\u00faspe\u0161n\u00fd pokus o klasifik\u00e1ciu je v poriadku.<\/p>\n<p>Vysk\u00fa\u0161ajte na vlastn\u00fdch obr\u00e1zkoch. M\u00f4\u017eete vysk\u00fa\u0161a\u0165 aj nie priamy poh\u013ead na zna\u010dku ale trochu zboku. V\u00fdsledky a pozorovania zap\u00ed\u0161te do textov\u00e9ho s\u00faboru alebo do k\u00f3du.<\/p>\n<h2><strong>4. \u00faloha: Vanishing point (<a href=\"https:\/\/classroom.github.com\/a\/JJ8H-5mB\">LINK na github classroom<\/a>)<\/strong><\/h2>\n<p>Implementujte algoritmus pop\u00edsan\u00fd v \u010dl\u00e1nku (<em>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.<\/em>).<\/p>\n<p>\u010cl\u00e1nok na stiahnutie:\u00a0<a href=\"https:\/\/media.proquest.com\/media\/hms\/ORIG\/1\/2ddwB?cit%3Aauth=Ebrahimpour%2C+R%3BRasoolinezhad%2C+R%3BHajiabolhasani%2C+Z%3BEbrahimi%2C+M&amp;cit%3Atitle=Vanishing+point+detection+in+corridors%3A+using+Hough+transform+and+K-means+clustering&amp;cit%3Apub=IET+Computer+Vision&amp;cit%3Avol=6&amp;cit%3Aiss=1&amp;cit%3Apg=40&amp;cit%3Adate=Jan+2012&amp;ic=true&amp;cit%3Aprod=ProQuest+Central&amp;_a=ChgyMDIzMTIwODEwMjQyNzg2OToxMzgxOTgSBTkxODYyGgpPTkVfU0VBUkNIIg04NS4yMzcuMjI3LjU0KgcxOTM2MzU0MgoxNjI2NjcxMjI1Og1Eb2N1bWVudEltYWdlQgEwUgZPbmxpbmVaAkZUYgNQRlRqCjIwMTIvMDEvMDFyCjIwMTIvMDEvMzF6AIIBKVAtMTAwNzg1Mi0zMjI1My1DVVNUT01FUi0xMDAwMDI1NS01NzY0NDczkgEGT25saW5lygFlTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTE5LjAuMC4wIFNhZmFyaS81MzcuMzbSARJTY2hvbGFybHkgSm91cm5hbHOaAgdQcmVQYWlkqgIrT1M6RU1TLU1lZGlhTGlua3NTZXJ2aWNlLWdldE1lZGlhVXJsRm9ySXRlbcoCB0ZlYXR1cmXSAgFZ8gIA%2BgIBToIDA1dlYooDHENJRDoyMDIzMTIwODEwMjQyNzg2OToyMzQyOTE%3D&amp;_s=hrwXT2kS5PpFcVD%2Bm9K7nYEM0Bk%3D\">tu<\/a>\u00a0alebo\u00a0<a href=\"https:\/\/www.researchgate.net\/profile\/Zeinab-Hajiabolhasani\/publication\/260584378_Vanishing_point_detection_in_corridors_Using_Hough_transform_and_K-means_clustering\/links\/53e423e70cf2fb748710b0b9\/Vanishing-point-detection-in-corridors-Using-Hough-transform-and-K-means-clustering.pdf\">tu<\/a>\u00a0(ak by bol probl\u00e9m so stiahnut\u00edm, nap\u00ed\u0161te mi, prepo\u0161lem pdf).<\/p>\n<p>Konkr\u00e9tne kroky:<\/p>\n<ol>\n<li>N\u00e1jdite si obr\u00e1zok chodby. M\u00f4\u017eete prisp\u00f4sobi\u0165 rozl\u00ed\u0161enie. M\u00f4\u017eete pou\u017ei\u0165 aj vlastn\u00fa fotku nejakej chodby. Posta\u010duje jeden obr\u00e1zok, ide\u00e1lne vysk\u00fa\u0161a\u0165 aspo\u0148 na 2-3 obr\u00e1zkoch.<\/li>\n<li>Obr\u00e1zok konvertujte na \u0161edot\u00f3nov\u00fd<\/li>\n<li>Ekvalizujte histogram<\/li>\n<li>Aplikujte 45\u00b0 masku (je v \u010dl\u00e1nku \u2013 ide o maticu 3\u00d73 kde na diagon\u00e1le s\u00fa 2 a na ostatn\u00fdch miestach -1), [[-1,-1,2],[-1,2,-1],[2,-1,-1]]<\/li>\n<li>Aplikujte Cannyho detektor na detekciu hr\u00e1n<\/li>\n<li>Pou\u017eite Hough transform\u00e1ciu na z\u00edskanie \u010diar. Odpor\u00fa\u010dam\u00a0<a href=\"https:\/\/vovkos.github.io\/doxyrest-showcase\/opencv\/sphinxdoc\/page_tutorial_py_houghlines.html\">HoughLinesP<\/a>, kde je v\u00fdstupom zoznam \u010diar, ktor\u00e9 s\u00fa tvoren\u00e9 \u0161tvoricou \u010d\u00edsel (x a y s\u00faradnice za\u010diato\u010dn\u00e9ho a koncov\u00e9ho bodu)<\/li>\n<li>Aplikujte K-means (k=4) na mno\u017eine bodov \u2013 koncov\u00fdch bodov detegovan\u00fdch \u010diar. V\u00fdsledn\u00e9 centroidy pre klastre vykreslite do p\u00f4vodn\u00e9ho obr\u00e1zka.<\/li>\n<li>Aplikujte K-means (k=1) na mno\u017eine 4 centroidov. Zakreslite v\u00fdsledn\u00fd centroid \u2013 v ide\u00e1lnom pr\u00edpade by to mal by\u0165 vanishing point. Vo v\u00fdslednom obr\u00e1zku nech s\u00fa iba poz\u00edcie centroidov. Av\u0161ak vykreslite osobitne aj \u010diastkov\u00e9 rie\u0161enia vr\u00e1tane v\u00fdstupu po detekcii \u010diar.<\/li>\n<\/ol>\n<h2><strong>5. \u00faloha: Puzzle (<a href=\"https:\/\/classroom.github.com\/a\/R2RGjl-E\">LINK na github classroom<\/a>)<\/strong><\/h2>\n<p>Cie\u013eom tejto \u00falohy je vysk\u00fa\u0161a\u0165 si r\u00f4zne sp\u00f4soby ako sa dopracova\u0165 k segment\u00e1cii obr\u00e1zku. Hlavn\u00e1 \u00faloha je n\u00e1js\u0165 jednotliv\u00e9 k\u00fasky puzzle na obr\u00e1zku.<\/p>\n<p>Prioritne si vyberte jeden z obr\u00e1zkov v repozit\u00e1ri a na \u0148om vysk\u00fa\u0161ajte r\u00f4zne met\u00f3dy. Nakoniec spustite svoje rie\u0161enie na v\u0161etk\u00fdch obr\u00e1zkoch.<\/p>\n<p>V\u00fdstupom pre ka\u017ed\u00fa fotku nech je \u010diernobiely obr\u00e1zok, ktor\u00fd bude ma\u0165 v ide\u00e1lnom pr\u00edpade bielou farbou ozna\u010den\u00e9 hranice jednotliv\u00fdch dielikov a \u010diernou v\u0161etko ostatn\u00e9. Alternat\u00edvne ak to bude vhodnej\u0161ie, tak m\u00f4\u017eete zakresli\u0165 v\u00fdsledok do p\u00f4vodn\u00e9ho obr\u00e1zka. \u00daloha nie je jednoduch\u00e1 a nepredpoklad\u00e1m, \u017ee sa podar\u00ed z\u00edska\u0165 ide\u00e1lny v\u00fdstup. Pok\u00faste sa o \u010do najlep\u0161ie rie\u0161enie.<\/p>\n<p>Zop\u00e1r tipov, \u010do m\u00f4\u017eete vysk\u00fa\u0161a\u0165 (samozrejme aj \u010doko\u013evek mimo tohto zoznamu):<\/p>\n<ul>\n<li>preprocessing obr\u00e1zka \u2013 zmena rozl\u00ed\u0161enia (cv.resize), filtrovanie, konvol\u00facia, rozostrenie<\/li>\n<li>canny edge detector<\/li>\n<li>matematick\u00e1 morfol\u00f3gia \u2013 er\u00f3zia, dilat\u00e1cia, otvorenie, zatvorenie<\/li>\n<li>pou\u017eitie vhodnej konvolu\u010dnej masky \u2013 laplacian, sharpen<\/li>\n<li>kont\u00fary<\/li>\n<li>grabcut resp. in\u00e1 forma klastrovania<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2><strong>1. \u00faloha: Marat\u00f3n (<a href=\"https:\/\/classroom.github.com\/a\/xBHi6bo4\">LINK na github classroom<\/a>)<\/strong><\/h2>\n<p><em>Term\u00edn odovzdania: 21.10.2024 8:00<\/em><\/p>\n<p>V repozit\u00e1ri n\u00e1jdete obr\u00e1zok z TV vysielania Medzin\u00e1rodn\u00e9ho marat\u00f3nu mieru (png) a tie\u017e kr\u00e1tke video (mp4). Obraz nie je dobre vidite\u013en\u00fd &#8211; \u013eav\u00e1 \u010das\u0165 a \u010diasto\u010dne obloha s\u00fa svetl\u00e9, pri\u010dom zvy\u0161ok videa je tmav\u00fd.<\/p>\n<p>Povinn\u00e1 \u010das\u0165 \u00falohy (vstupom je obr\u00e1zok):<\/p>\n<ul>\n<li>obr\u00e1zok prekonvertujte na \u0161edot\u00f3nov\u00fd<\/li>\n<li>vykreslite histogram a vlo\u017ete ho priamo do obr\u00e1zka (napr. vpravo dole, strat\u00edme t\u00fdm \u010das\u0165 p\u00f4vodn\u00e9ho obr\u00e1zka, ale to nevad\u00ed)<\/li>\n<li>pou\u017eite nejak\u00fa met\u00f3du na vyhladenie histogramu (<a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_histograms\/py_histogram_equalization\/py_histogram_equalization.html#histogram-equalization\">in\u0161pirujte sa tu<\/a>)<\/li>\n<\/ul>\n<p>Dopl\u0148uj\u00faca \u010das\u0165 \u00falohy (vyberte si jednu z mo\u017enost\u00ed, urobte aspo\u0148 jednu):<\/p>\n<ul>\n<li>aplikujte vykreslenie histogramu a vyhladenie na celom videu. Vytvor\u00edte t\u00fdm nov\u00e9 video. Pre\u010d\u00edtajte si <a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_gui\/py_video_display\/py_video_display.html\">n\u00e1vod na pr\u00e1cu s videom<\/a> (toto v jupyter notebookoch asi nep\u00f4jde).<\/li>\n<li>vysk\u00fa\u0161ajte pracova\u0165 s farebn\u00fdm obr\u00e1zkom, vykreslite histogram pre ka\u017ed\u00fa RGB zlo\u017eku osobitne. Sk\u00faste vyhladi\u0165 histogram.<\/li>\n<li>n\u00e1jdite a vysk\u00fa\u0161ajte nejak\u00fa in\u00fa met\u00f3du na vyhladzovanie histogramov (CLAHE je prv\u00e1 mo\u017enos\u0165, ktor\u00fa sa oplat\u00ed vysk\u00fa\u0161a\u0165).<\/li>\n<\/ul>\n<p><em>Ak nebudete pou\u017e\u00edva\u0165 jupyter notebook, pripojte k rie\u0161eniu aj v\u00fdstupn\u00fd obr\u00e1zok\/video, aby som nemusel sp\u00fa\u0161\u0165a\u0165 k\u00f3d. Ku svojmu rie\u0161eniu pripojte kr\u00e1tky koment\u00e1r &#8211; zhodnotenie svojho rie\u0161enia.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Podmienky odovzd\u00e1vania dom\u00e1cich zadan\u00ed: Pre ka\u017ed\u00fa \u00falohu o\u010dak\u00e1vam zdrojov\u00fd k\u00f3d, vstupn\u00fd obr\u00e1zok\/video a v\u00fdstupn\u00fd obr\u00e1zok\/video (pr\u00edpadne v\u0161etky medzi-obr\u00e1zky) \u2013 d\u00f4le\u017eit\u00e9 je, aby som mohol vidie\u0165 v\u00fdsledok bez nutnosti sp\u00fa\u0161\u0165a\u0165 k\u00f3d.&hellip;<\/p>\n","protected":false},"author":22,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-402","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/pages\/402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/comments?post=402"}],"version-history":[{"count":1,"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/pages\/402\/revisions"}],"predecessor-version":[{"id":403,"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/pages\/402\/revisions\/403"}],"wp:attachment":[{"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/media?parent=402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}