Rozpoznávání přírodnin z obrazu a videa (diplomová práce)

Cíl práce

Komix Lidé se odedávna zabývají určováním druhů rostlin. Přestože v dnešní době již není jejich identifikace otázkou přežití, stále je pro nás velmi důležitá: umožňuje zmapovat rozmanitost přírody a uchovat ji pro další generace. První známý pokus o sytematickou taxonomii pochází od řeckého filozofa Theophrastuse. Základem moderní systematiky je práce švédského přírodovědce Carl von Linné [1].
Cílem této práce je vytvořit aplikaci pro mobilní telefon, která umožní i nezkušeným uživatelům určení druhu rostliny na základě její fotografie, případně zodpovězením několika jednoduchých otázek. Aplikace musí fungovat v reálném (nebo téměř reálném) čase a nesmí po uživateli vyžadovat žádné znalosti botaniky (na rozdíl od tradičních papírových klíčů) či počítačového vidění.
PDF s textem práce je ke stažení na adrese http://cyber.felk.cvut.cz/research/theses/detail.phtml?id=153

Metody rozpoznávání

Identifikace podle listu

Workflow - listy Prvním krokem při identifikaci rostliny podle fotografie jejího listu je segmentace. Protože nelze zaručit definované pozadí, provádí se segmentace poloautomaticky: uživatel označí několik pixelů na listu (popředí), několik z pozadí, čímž poskytne markery pro marker based watershed segmentation algorithm [4]. Markery lze průběžně doplňovat, dokud není segmentace správná. Zvolený segmentační algoritmus může vrátit několik nepropojených 2D oblastí, avšak pouze největší z nich se bere jako popředí (list). Všechny díry v listu jsou navíc vyplněny. Přestože tyto volby ztěžují identifikaci rostlin se složenými listy, velmi zjednodušují výpočet deskriptoru.
List je popsán pomocí deskriptoru inner distance shape context [5]. Z vnějšího okraje listu se vybere se 64 bodů a pro každý se spočítá histogram (vnitřních) vzdáleností ke všem ostatním bodům. List je tedy charakterizován sekvencí 64 histogramů. Porovnávání neznámého listu a listu z databáze probíhá takto: pomocí centroid contour distance se určí orientace neznámého listu. Kvůli symetriím a různým deformacím ji sice není možné určit jednoznačně, avšak lze ji omezit na typicky ne více než 4 úhly. Naivní způsob výpočtu vzdálenosti mezi dvěma deskriptory spočívá v postupném přikládání obou sekvencí (celkem 64 možných zarovnání) a sečtením vzdáleností odpovídajících histogramů. Vzdálenost mezi dvěma deskriptory odpovídá nejlevnějšímu zarovnání. Protože však známe možné orientace listu, není nutné zkoušet všech 64 zarovnání, ale jen několik málo. Navíc, aby se omezil vliv poškození či zkroucení listů, sekvence se mohou lokálně natahovat či zkracovat a vzdálenost mezi dvěma deskriptory se určí pomocí dynamického programování.
Jako klasifikátor se používá klasifikátor podle nejbližšího souseda.

Identifikace podle kůry

Workflow - kůra Na rozdíl od listů neprobíhá při předzpracování obrázku kůry žádná segmentace. Uživatel má pouze možnost vybrat obdélník, ve kterém je kůra dostatečně kvalitní. Pokud tak neučiní, použije se celý obrázek.
Jako deskriptor kůry se používá histogram multi-scale local binary patterns (1 obrázek je charakterizován vektorem délky 3x59=177). Jako klasifikátor se používá klasifikátor podle nejbližšího souseda.






GUI

Logické schéma aplikace


Logické schéma aplikace

Databáze rostlin a doplňující otázky

Hlavní okno
První obrazovka, na kterou uživatel narazí, obsahuje databázi rostlin. Jeden záznam se skládá z názvu rostliny a ikonky charakterizující její habitus (strom, keř nebo bylina). Po klepnutí na název rostliny se uživateli zobrazí její podrobný popis (v současné době příslušná stránka z Wikipedie). Karta Textual characteristics obsahuje doplňující otázky, na které uživatel může ale nemusí odpovědět. Odpovězením se omezí počet rostlin v databázi, uživatel tak může urychlit a zpřesnit proces automatické identifikace.
Tlačítko Identify from photos přesměruje uživatele na rozcestník, kde si může vybrat, zda chce rozpoznávat rostliny podle listu nebo kůry.

Rozpoznávání podle listu

Rozpoznávání podle listu
V rozcestníku automatických metod zvolí uživatel Photo leaf a je přesměrován do Camera application. V současné době se používá, avšak vzhledem k bugu 1480 bude vhodné jí nahradit nějakou alternativou. Po vyfocení listu je uživatel vyzván k označení popředí a pozadí. Jakmile tak učiní, spustí se segmentační algoritmus. Protože segmentace probíhá v reálném čase (0,4 s), může ji uživatel interaktivně vylepšovat. Jakmile je segmentace hotová, stiskne uživatel tlačítko Confirm, poté Recognize a zobrazí se mu setříděná databáze rostlin (na první pozici je nejpravděpodobnější rostlina).

Rozpoznávání podle kůry

Rozpoznávání podle kůry
V rozcestníku automatických metod zvolí uživatel Photo bark a je přesměrován do Camera application. Po vyfocení kůry může vybrat obdélníkovou oblast, ve které je kůra dostatečně kvalitní. Pokud tak neučiní, použije se celý obrázek. Poté uživatel stiskne tlačítko Confirm, poté Recognize a zobrazí se mu setříděná databáze rostlin (na první pozici je nejpravděpodobnější rostlina).

Implementace

Aplikace je určena pro smartphony s operačním systémem Android (verze 2.2. API level 8). Uživatelské rozhraní je napsáno v jazyku Java v kombinaci s XML. Algoritmy počítačového vidění jsou implementovány v C++, případně využity jejich verze v knihovně OpenCV (rovnež C++). Databáze rostlin, a doplňující otázky jsou konfigurovány pomocí textových souborů a lze je měnit bez rekompilace hlavní aplikace.

Dostupné datasety

Dataset Flavia

Dataset Flavia [6] se skládá z obrázků listů z 32 druhů v Číně se vyskytujích rostlin. Pro každý druh je k dispozici od 55 do 77 obrázků. Všechny listy jsou jednoduché (žádný není složený). Obrázky jsou vyfoceny ve vysokém rozlišení a na bílém pozadí.
Dataset Flavia

Dataset Österreichische Bundesforste AG

Dataset Österreichische Bundesforste AG [7] obsahuje obrázky kůry, listů a jehličí z 11 druhů stromů rostoucích v Rakousku. V této práci se využívá pouze kůra: Pro každý druh je k dispozici od 7 do 204 obrázků, některé druhy jsou dále rozděleny podle stáří stromu.
Dataset Flavia

Dataset Belhumeur

Tento dataset [3] se skládá z obrázků listů z 241 druhů rostlin. Pro každý druh je k dispozici od jednoho do 64 obrázků a ke všem listům je navíc k dispozici rozdělení na popředí (list) a pozadí. Dataset obsahuje složené i jednoduché listy. Některé listy jsou bez stopky, jiné s ní. Většina listů má světlé pozadí.
Dataset Belhumeur

Vlastní dataset

V současné době obsahuje aplikační databáze listy z 15 druhů stromů a keřů a obrázky kůry z 11 druhů stromů (pro 7 druhů stromů jsou k dispozici listy i kůra). Dataset byl vytvořen zejména v arboretu České zemědělské univerzity a některé obrázky byly pořízeny v pražských botanických zahradách a na českém venkově. Pro každý druh je k dispozici od 8 do 36 obrázků.
Vlastní dataset

Instalace

Stáhněte si instalační archiv a postupujte podle instrukcí.

Další vývoj

Odkazy a literatura

  1. Carl Linnaeus. Systema Naturae. Impensis Direct. Laurentii Salvii, 1759.
  2. Maria-Elena Nilsback. An automatic visual Flora – segmentation and classification of flower images. Ph.D. Thesis. University of Oxford: U.K.
  3. Peter Belhumeur et al. Searching the World’s Herbaria: A System for Visual Identification of Plant Species. ECCV 2008
  4. Ling H., Jacobs D.. Shape Classification Using the Inner-Distance. IEEE Trans. on Patt. Anal. and Mach. Intell., 29(2): 286-299., 2009.
  5. Fernand Meyer. Color image segmentation. In Proceedings of the International Conference on Image Processing and its Applications, pages 303--306, 1992
  6. Stephen Gang Wu et al. A Leaf Recognition Algorithm for Plant classification Using Probabilistic Neural Network. IEEE 7th International Symposium on Signal Processing and Information Technology, 2007
  7. Fiel S., Sablatnig R.. Automated identification of tree species from images of the bark, leaves or needles. Technical Report, CVL-TR003, Computer Vision Lab, Institute of Computer Aided Automation, Vienna University of Technology, 2010.
  8. Android official documentation
  9. OpenCV library
  10. The new Android build of OpenCV
  11. Dataset Flavia
  12. Dataset Belhumeur (vyžaduje registraci)