Computer Breakers Specifikace - NEUROINFORMATICS-GROUP-FAV-KIV-ZCU/guess_the_number GitHub Wiki

#DOKUMENT SPECIFIKACE POŽADAVKŮ


Projekt: Srovnání klasifikační algoritmů pro aplikaci Hádání čísel

Tým: Computer Breakers

Členové:

Vedoucí - Vladimír Láznička, E-mail - laznic@students.zcu.cz

Člen - Jaroslav Klaus, E-mail - jklaus@students.zcu.cz

Člen - Michal Medek, E-mail - mmedek@students.zcu.cz

Člen - Karel Šilhavý, E-mail - silhavyk@students.zcu.cz


Verze: 1.0

###Historie dokumentu

Datum Verze Popis Autor
9. 3. 2015 1.0 Vytvoření prvotní specifikace Vladimír Láznička
___

Obsah

1. Úvod

2. Obecný popis

3. Funkce systému

4. Požadavky na vnější rozhraní

5. Další parametrické (mimofunkční) požadavky

6. Ostatní požadavky


1. Úvod

1.1 Předmět specifikace

Tento dokument má za úkol popsat specifikaci rozšíření aplikace Hádání čísel (Guess the Number). Aplikace je nasazena v prostředí vývoje katedry KIV na ZČU a cílem projektu popsaného touto specifikací je její doplnění o nové algoritmy klasifikace předzpracovaného EEG signálu, testy a porovnání těchto algoritmů a rozšíření uživatelského rozhraní.

1.2 Typografické konvence

Dokument má několik typografických konvencí. Jedna z nich je rozdělení stylů nadpisů, hlavní kapitoly jsou označeny nadpisem úrovně 2, jejich podkapitoly nadpisem úrovně 3 a podobně. Tučným písmem jsou pak vyznačeny pro danou sekci důležité výrazy. Kurzívou se pak vyznačují odborná slova nebo různé zkratky.

1.3 Cílové publikum, návod ke čtení

  • Zadavatel projektu - Ing. Lukáš Vařeka
  • Cvičící předmětu KIV/ZSWI - Ing. Jan Štěbeták

Dokument je rozdělen do šesti celků, přičemž každý se zaměřuje na projekt z jiného úhlu pohledu. První sekce, Úvod, popisuje předmět tohoto dokumentu, pro koho je specifikace určena a obsahuje odkazy na další relevantní dokumenty a internetové zdroje.

Druhá sekce, Obecný popis, pak popisuje samotný produkt, který je předmětem specifikace. Věci jako kontext produktu v rámci většího systému, jeho funkce, pro jaké uživatele je určen, případná omezení v implementaci a závislosti na jiných komponentách, které nejsou předmětem specifikace.

Třetí sekce, Funkce systému, se zabývý konkrétními prvky, které se budou implementovat. Popisuje jejich účel a také prioritu jejich vytvoření dle zadaných požadavků. Tato část se může v průběhu projektu rozšiřovat podle toho, jak bude postupovat implementace jednotlivých částí.

Čtvrtá sekce, Požadavky na vnější rozhraní, řeší spojení s hardwarovými (pokud jsou v rámci projektu relevantní), softwarovými a uživatelskými rozhraními s vytvářenou aplikací. I zde může dojít k úpravě informací, pokud bude potřeba.

Pátá sekce, Další parametrické (mimofunkční) požadavky, pak doplňuje specifikaci o případné výkonnostní a bezpečnostní požadavky a údaje související s kvalitou výsledného produktu.

Šestá sekce, Ostatní požadavky, slouží jako soupis dalších požadavků, které buď nezapadají do výše popsaných sekcí nebo vyvstanou v průběhu projektu. Po této sekci následují dodatky, které obsahují vysvětlení některý zkratek nebo cizích a technologických názvů a detailnější diagramy například pro programovou strukturu aplikace.

1.4 Rozsah projektu

Projekt je zaměřen na rozšíření aplikace Hádání čísel, což je vyhodnocovací software pro data přijatá z měření EEG signálu. Jednoduše popsáno – měření probíhá na osobě, které se zobrazují na obrazovce číslice a signály generované mozkem se pak jako data o signálu zpracují a vyhodnotí aplikací. Data jsou přijímána on-line během měření z příslušných přístrojů nebo jsou již uložena v souborech, se kterými aplikace pracuje. Nejedná se o kompletní vytvoření aplikace, ale pouze přidání nové funkcionality.

Cílem projektu je implementace algoritmů pro klasifikaci signálu – tedy výsledné určení, na jaké číslo osoba myslí. Tyto algoritmy se následně budou testovat na základě přesnosti klasifikace v kombinaci s různými metodami předzpracování signálu (některé jsou již v aplikaci naimplementovány). Nakonec bude vytvořeno uživatelské rozhraní pro snadný přístup k funkčnosti těchto algoritmů.

1.5 Odkazy

2. Obecný popis

2.1 Kontext systému

Cílem aplikace Hádání čísel je vyhodnocování naměřených EEG signálů a určení, jaké číslo si myslí vidí účastník měření. Signál je v podobě vstupních dat segmentován na jednotlivé epochy - část signálu v pevně daném okolí simulu. Tyto epochy jsou pak předzpracovány příslušnými algoritmy a z nich jsou extrahovány příznaky. Následně proběhne klasifikace částí signálu, přičemž pro každou se vyhodnocuje, zda obsahuje komponentu P300.

Cílem projektu je pak příprava a implementace algoritmů pro klasifikaci signálu z příznaků v jednotlivých epochách upravených pomocí algoritmů na předzpracování signálu (jsou již implementovány). Tyto algoritmy se pak následně budou testovat na jejich úspěšnost - jak často použitá metoda klasifikace dokáže správně klasifikovat osobou myšlené číslo. Na závěr bude doplněno uživatelské rozhraní, kterým bude moci uživatel pohodlně konfigurovat různé metody klasifikace.

2.2 Funkce produktu

Funkce výsledného produktu spočívá v rozhraní, které umožní využití několika daných klasifikačních algoritmů a jejich snadné porovnání na základě jejich úspěšnosti. Uživatel by měl být schopen v uživatelském rozhraní zvolit kombinaci metod pro předzpracování signálu (Waveletová transformace, Matching Pursuit nebo Hilbert-Huangova transformace) a metod pro klasifikaci signálu (K Nearest Neighbours, Linear Discriminant Analysis, Support Vector Machines nebo Korelace) a provést jejich porovnání. Rozhraní by mělo zároveň umožnit nastavit potřebné parametry jako vstup souboru s daty nebo další informace potřebné pro chod algoritmů.

2.3 Třídy uživatelů

Aplikace bude využívána technickými pracovníky katedry KIV, výsledek práce předpokládá poučeného a problematiky znalého uživatele.

2.4 Provozní prostředí

Upravovaný software bude přijímat data ze specializovaného vybavení BrainVision. Část aplikace, která je předmětem této specifikace, však nebude provozní prostředí přímo využívat. Vstupní data ve specifickém formátu popisující signál, který se bude zpracovávat, jsou uložena v adresářích projektu aplikace.

2.5 Omezení návrhu a implementace

  • Vzhledem ke stávající implementaci aplikace v jazyce Java bude zapotřebí vyvíjet v tomto jazyce. Konkrétní verze SDK používaná v aplikaci je verze 1.6.
  • Pro vývoj projektu je také již využíván verzovací systém Git.

2.6 Uživatelská dokumentace

Dokumentace přikládaná k projektu by měla obsahovat především výsledky z testování implementovaných algoritmů, které budou ukazovat, jaké úspěšnosti bylo kde dosaženo. Součástí budou také nezbytné vysvětlivky a legenda k obsaženým datům.

2.7 Předpoklady a závislosti

  • Projekt je závislý na knihovnách obsahujících algoritmy pro předzpracování signálu. Tyto knihovny jsou v projektu uloženy ve složce /lib.

  • Část aplikace předcházející předmět této specifikace bude upravována a doplňována jiným týmem. Pokud by došlo k nějaké úpravě s negativním dopadem na funkci některých částí aplikace, mohlo by dojít ke komplikaci při práci našeho týmu.

3. Funkce systému

3.1 Předzpracování signálu

3.1.1 Popis a priorita

V aplikaci jsou jako knihovny již zahrnuty tři algoritmy pro předzpracování signálu a extrakci příznaků ze získaných epoch. Cílem je vhodně využít knihovní třídy a metody obsahující tyto algoritmy a poskytnout je metodám provádějící klasifikaci signálu (další funkčnost).

Jedná se o následující algoritmy:

  • Matching Pursuit
  • Diskrétní waveletová transformace
  • Hilbertova-Huangova transformace

Tato část má nejvyšší prioritu (společně s následující funkčností).

3.1.2 Události a odpovědi

Předzpracování dat a extrakce příznaků probíhá po získání jednotlivých epoch z přijatého signálu. Třídy a metody, které tuto funkčnost obsahují, ji pak poskytují třídám určeným pro klasifikaci signálu.

3.1.3 Funkční požadavky

Požadavek 1: Zjistit možnosti využití knihovních tříd zmíněných metod předzpracování signálu z poskytnutých materiálů (viz část této specifikace 1.5). Požadavek 2: Použít tyto třídy v metodách obstarávajících klasifikaci signálu.

3.2 Klasifikace signálu

3.2.1 Popis a priorita

Jedná se o čtyři algoritmy, které mají za úkol provést klasifikaci epoch a podle příznaků určit skóre jednotlivých číslic (typicky desetinná hodnota od 0 do 1, ale nemusí to tak vždy být), které si myslí testovaná osoba.

Vybrané klasifikační algoritmy jsou následující:

  • K Nearest Neighbours
  • Linear Discriminant Analysis
  • Support Vector Machines
  • Korelace mezi epochou a vzorovou komponentou P300

Tato část programu má nejvyšší prioritu, neboť bez ní nemají ostatní části smysl.

3.2.2 Události a odpovědi

Klasifikace signálu bude probíhat po všech předchozích akcích jako načtení dat, jejich úprava a předzpracovaní signálu (není předmětem tohoto projektu), přičemž uživatelským vstupem bude výběr konkrétního algoritmu (metoda klasifikace signálu) a předání vstupních dat. Výsledkem by měla být odpověď, která číslice má nejvyšší skóre.

3.2.3 Funkční požadavky

  • Požadavek 1: Prostudovat možnosti implementace zmíněných algoritmů.
  • Požadavek 2: Vytvoření Java třídy pro každý z algoritmů, které budou řešit jejich obsluhu a využití již implementovaných metod pro předzpracování signálu.
  • Požadavek 3: Propojení zmíněných tříd s již stávajícími částmi systému tak, aby šli využívat stejným způsobem, jako již některé implementované metody klasifikace.

3.3 Testování implementovaných klasifikačních algoritmů

3.3.1 Popis a priorita

Další částí programu je otestování implementovaných algoritmů. Důležité je zjistit, který z algoritmů na množině testovacích dat dosáhl nejvyšší úspěšnosti klasifikace. Zároveň se nejedná pouze o výběr klasifikačního algoritmu, ale také o jeho kombinaci s metodou předzpracování signálu a hledání příznaku.

Tato část programu má vysokou prioritu po implementaci zmíněných algoritmů klasifikace a je v podstatě cílem projektu.

3.3.2 Události a odpovědi

Uživatel by měl určit kombinaci algoritmu pro klasifikaci signálu a algoritmu pro jeho předzpracování a výstup by mu měl oznámit, která kombinace dosáhla nejlepších výsledků.

3.3.3 Funkční požadavky

  • Požadavek 1: Implementovat způsob ručního výběru klasifikačního algoritmu z předchozí části a algoritmu předzpracování signálu, metodu pro jejich postupné spuštění na testovacích datech a porovnání výsledků.
  • Požadavek 2: Ověřit, který z algoritmů poskytuje nejlepší výsledky.

3.4 Uživatelské rozhraní

3.4.1 Popis a priorita

Návrh a implementace uživatelského rozhraní, které umožní pohodlněji konfigurovat algoritmy z předchozí části. Rozhraní by mělo být jednoduché, přehledné a mělo by umožňovat nastavit všechny důležité parametry pro testování.

Tato část programu má střední prioritu, jedná se o nadstavbu toho, co je již implementováno v předchozí části, ale jde také o důležitou součást, byť funkcionálně ne až tak kritickou.

3.4.2 Události a odpovědi

Uživatel by měl být schopen pomocí rozhraní nastavit všechny potřebné parametry pro otestování algoritmů a po dokončení testů by se z něj měl dozvědět všechny důležité výsledky. Mezi nastavované parametry patří výběr konkrétního algoritmu pro předzpracování (3 možnosti) a algoritmu pro klasifikaci (4 možnosti). Podle tohoto výběru pak uživatel nastaví vyžadované vstupní hodnoty pro vybranou kombinaci algoritmů. Jako výsledek je vrácena úspěšnost klasifikace vybraného řešení.

3.4.3 Funkční požadavky

  • Požadavek 1: Navrhnout přijatelné uživatelské rozhraní pro testování klasifikačních algoritmů.
  • Požadavek 2: Implementovat toto rozhraní a zajistit výše popsanou funkčnost.

4. Požadavky na vnější rozhraní

4.1 Uživatelská rozhraní

GUI systému bude využívat rozhraní Java Swing a prvky, které jsou zastoupeny jeho třídami. Využívány budou prvky jako radio-button pro výběr způsobů klasifikace, rozbalovací menu s položkami pro nastavení vstupních parametrů a případné další. Podoba uživatelského rozhraní bude dále upřesněna v průběhu projektu.

4.2 Hardwarová rozhraní

Pro tento projekt není specifikováno.

4.3 Softwarová rozhraní

Softwarové rozhraní, které budeme používat je pouze rozhraní již existujícího programu.

4.4 Komunikační rozhraní

K načítání online se využívá síťová architektura klient – server a protokol TCP.

5. Další parametrické (mimofunkční) požadavky

5.1 Výkonnostní požadavky

  • Základní požadavky na efektivní kód - nepsat struktury, které by zbytečně zpomalovaly chod algoritmu. Žádné další požadavky nebyly dosud specifikovány.

5.2 Bezpečnostní požadavky

Žádné nebyly specifikovány.

5.3 Kvalitativní parametry

  • Přehledné a funkční uživatelské rozhraní bez zbytečných prvků.
  • Dodržení struktury a konvencí stávající programové struktury.
  • Dokumentace Javadoc použitelná pro případné další rozšíření jiným týmem.

6. Ostatní požadavky

  • Názvy tříd, metod, atributů apod. stejně jako dokumentace Javadoc budou uvedeny v anglickém jazyce.

Dodatek A: Slovníček

Zkratka / Výraz Popis
EEG "Electroencephalography" - proces měření elektrické aktivity na povrchu hlavy.
Epocha Pevně dané okolí stimulu v měřeném signálu.
Komponenta P300 Typ ERP komponenty vznikající při rozhodovacím procesu mozku.
ERP "Event related potencial" - zaznamenaná odpověď mozku na nějakou vnímatelnou událost.

Dodatek B: Analytické modely

bude doplněno po vytvoření návrhu

⚠️ **GitHub.com Fallback** ⚠️