Strojové učenie, úloha 2

Riešenie odovzdať do: 8.5.2009

Bodový zisk: 0-5% (0% = odovzdané a odsúhlasené riešenie)

Vašou úlohou v tomto cvičení bude natrénovať klasifikátor na vami zvolený druh ovocia. Server images.google.com ponúka stovky obrázkov pre každý druh ovocia, príklad:
  http://images.google.com/images?q=pineapple.
Vaša množina obrázkov teda bude obsahovať rôzne druhy ovocia i iné obrázky a cieľom je napísať program, ktorý dostane na vstupe konkrétny obrázok a na výstupe určí, či ide o ten jeden vybratý druh ovocia (samozrejme, že neočakávame 100% úspešnosť).
V tejto úlohe klasifikáciu riešte pomocou metódy support vector machines a použite nejakú hotovú knižnicu, napr. SVMlight. Vaše obrázky popíšte pomocou niekoľkých predvypočítaných čŕt/atribútov, ktoré si vhodne zvolíte - napr. zastúpenie odtieňov niektorej farby (využitím histogramu), parametre mnohouhoľníkov nájdených v obrázku po detekcii hrán, hustota hrán alebo čiar v obrázku a pod. Tieto parametre môžete nájsť pomocou funkcií knižnice OpenCV (alebo podobnej), ktorá umožní obrázok načítať zo súboru a údaje vhodne predspracovať (CvLoadImage, cvThreshold, cvFloodFill, cvFindContours, cvApproxPoly, atď). V prípade ťažkostí sa zamerajte na zjednodušenú množinu obrázkov (napr. clipart obrázky).



  1. Vyberte si jeden druh ovocia, ktorý budete trénovať (váš klasifikátor bude rozpoznávať, či dané ovocie na obrázku je alebo nie je).

  2. Napíšte program v ľubovoľnom jazyku napr. v C++, príp. skript, ktorý natrénuje klasifikátor na základe množiny obrázkov v trénovacej množine, ktorú vytvoríte z obrázkov ovocia podľa serveru images.google.com.

  3. Navrhnite a popíšte vhodnú sadu atribútov pre tento problém.

  4. Napíšte program alebo skript, ktorý načíta jeden obrázok, klasifikátor vytvorený vaším programom a vypíše, či daný obrázok patrí do natrénovaného druhu ovocia. Pomocou tohto programu otestujte svoju metódu na celej testovacej množine a výsledok vyhodnotťe.

  5. Úlohu budete riešiť pomocou metódy support vector machines, navrhnite a popíšte použitý kernel.

  6. Otestujte svoju implementáciu na testovacej množine obrázkov a popíšte svoje výsledky.
Vaše riešenie bude obsahovať:
  1. Všetky zdrojové kódy programov, ktoré ste použili
  2. Popis vášho riešenia s dokumentáciou s odkazmi na knižnice/nástroje, ktoré ste použili
  3. Trénovaciu a testovaciu množinu obrázkov
Riešenie sa odovzdáva elektronickou poštou s prílohou (ZIP) poslaním na adresu: petrovic@fmph.uniba.sk.