140 likes | 518 Views
Alžbeta Svitková Lukáš Dilik Michal Vozný. Rozpoznávanie stromov podľa listov. Cieľ. Cieľom projektu bolo vytvoriť aplikáciu, ktorá na vstupe dostane obrázok listu a automaticky klasifikuje daný druh. Náročnosť: Úspešnosť Počet druhov, ktoré sa dajú klasifikovať
E N D
Alžbeta Svitková Lukáš Dilik Michal Vozný Rozpoznávanie stromov podľa listov
Cieľ • Cieľom projektu bolo vytvoriť aplikáciu, ktorá na vstupe dostane obrázok listu a automaticky klasifikuje daný druh. • Náročnosť: • Úspešnosť • Počet druhov, ktoré sa dajú klasifikovať • Schopnosť klasifikácie z fotky stromu
Použitá databáza • 8 druhov stromov • ginko, javor, osika, platan, vŕba, lipa, ringlóta, topoľ • 15 vzoriek pre každý druh pre trénovanie • 6 vzoriek pre každý druh pre testovanie • Každý list je osobitne na bielom pozadí uniformne natočený
Riešenie - návrh • Segmentácia listu z obrazu • Prahovanie • Canny edge detector • Nájdenie kontúry listu • Klasifikácia na základe vlastností kontúry
Riešenie – návrh klasifikácie • Pairwise Geometrical Histogram Matching • Násť kontúru listu zo vstupu a porovnať PGH s kontúrami vzoriek • Vybrať najlepšiu zhodu • KNN • Navrhnúť súbor príznakov pre diskrimináciu listov • Vypočítať príznaky a vytvoriť z nich normalizovaný vektor a podľa neho natrénovať klasifikátor • Klasifikovať podľa KNN algoritmu
PGH • Zovšeobecnenie Chain Code Histogram (Learning OpenCV – G. Bradsky, A. Kaehler)
KNN – súbor príznakov • Pomer strán MBR listu (width / height) • Pomer plochy ROI a plochy MBR • Pomer plochy konvex. obalu listu a plochy ROI • Pomer obvodu konv. obalu listu a obvodu ROI • Pomer vzdialeností centroidu listu od najbližšieho a navzdialenejšieho bodu obvodu • Pomer priemernej vzdialenosti bodu obvodu od centroidu a strednej kvadratickej odchýlky ____________________________ MBR – minimal bounding rectangle ROI – region of interest
KNN v OpenCV • trainData – matica trénovacích dát • Jeden riadok predstavuje normalizovaný vektor zostavený z vypočítaných príznakov • trainClasses – matica tried • Pre každý riadok trainData obsahuje príslušný kód daného listu • K – empiricky zvolený parameter
Výsledky KNN • ginko - 83.33333 % • javor - 83.33333 % • lipa - 83.33333 % • osika - 33.33334 % • platan - 100 % • ringlóta - 100 % • topol - 50 % • vŕba - 100 % PGH • ginko - 66,66667 % • javor - 83,33333 % • lipa - 66,66667 % • osika - 50 % • platan - 100 % • ringlóta - 100 % • topol - 66,66667 % • vŕba - 100 %
Integrovanie PGH do KNN • Vektor príznakov sme rozšírili o 8 hodnôt vypočítaných na základe porovnania PGH vstupného listu a PGH jedného listu zo šablón listov • Cieľ: zdôrazniť samotný tvar kontúry, nie len jej proporčné vlastnosti
Výsledok PGH + KNN • ginko - 83,33333 % • javor - 83,33333 % • lipa - 83,33333 % • osika - 83,33333 % (pôvodne 33,3) • platan - 100 % • ringlóta - 83,33333 % (pôvodne 100%) • topoľ - 100 % (pôvodne 50%) • vŕba - 100 %
Problémy • Predpoklady fungovania: • Jeden list na svetlom pozadí • Uniformné natočenie • Uniformná veľkosť listu jedného druhu • Klasifikácia teda nie je invariantná voči rotácii ani škálovaniu
Zdroje • Automatic Plant Leaf Classification for a Mobile Field Guide, D.Knight, J.Painter, M.Potter, Stanford University, Department of Electrical Engineering, Stanford, California • Learning OpenCV – G. Bradsky, A. Kaehler