Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Semestrální práce

Tato jsou zveřejněna témata nabízené jako semestrální práce. V zásadě je možné si jako semestrální práci vybrat libovolné téma z nabídky (tj. bez ohledu na to, zda téma řeší i někdo jiný), nebo si vymyslet téma vlastní.

Odevzdání semestrální práce nejpozději 7.2. 2021

Obecné požadavky

  • vlastní práce
  • vhodně strukturovaný kód
  • délka cca 200 řádků kódu
  • správná funkcionalita s ohledem na zadání :-)

Odevzdání semestrální práce

Ideální stav:

  • kód odevzdán ve fakultním repozitáři https://gitlab.fel.cvut.cz
  • do BRUTE (úloha SEM) je odevzdána krátká zpráva o funkcionalitě (rozsah max 1/2 A4) a umístění kódu
  • program je demonstrován cvičícímu/přednášejícímu v MS Teams

Alternativně lze kód (včetně zprávy zabalený do zip balíčku) odevzdávat přímo do BRUTE.

Témata

1. Vlastní téma

Řešení problému dle vlastního uvážení, např. zpracování dat z vlastního projektu, vlastní SW projekt, atd. Téma je vhodné konzultovat se cvičícím nebo přednášejícím.

2. Textová hra

Počítačová hra, která popisuje děj pouze pomocí textů vypisovaných na obrazovku a je ovládaná pomocí příkazů zadávaných z klávesnice. V této úloze si promyslete zejména způsob uložení dat (vhodně strukurované textové soubory, SQLite databáze, …)

3. Grafická hra

Hra podle vašeho výběru. Nemusí mít GUI, může být i v ASCII. Náměty: miny, piškvorky, tic-tac toe, …

4. Databázové aplikace

Aplikace, která pro svoji činnost využívá databázi (např. SQLite, případně některou z nabídky NoSQL); TODO list, kniha jízd, odečty elektřiny/plynu

5. Zpracování obrazu - základní operace

Aplikace pro základní operace s obrazem: změna jasu, kontrastu, threshold. Buď jako řádková utilita, nebo s GUI. Data buď z datových souborů na disku, nebo např. z webkamery.

6. Zpracování obrazu - pokročilé operace

7. Generátor fraktálů

8. Jednoduché OCR

OCR (Optical character recognition) je sotvér, schopný identifikovať znaky v rukou písanom texte. Vo všeobecnosti ide o značne komplikovaný problém, nakoľko variabilita písma je obrovská, či už sa jedná o jednotlivé glyfy, alebo spôsob ich spojenia.

V tejto úlohe je cieľom vytvoriť veľmi jednoduchý OCR softvér, ktorý by bol schopný rozoznať „úhľadne napísané“ veľké písmená anglickej abecedy a znaky bodka (.), čiarka (,) a medzera (veľký prázdny znak, oddeľujúci slová).

Vstupom takéhoto softvéru by mal byť obrázok (fotografia alebo sken) textu, výstupom potom textový súbor, reprezentujúci onen text. Úlohu je možné riešiť buď priamou parametrizáciou písmeniek, alebo pomocou machine learning. Pomôcť by mohol tutoriál Recognizing hand-written digits ako súčasť dokumentácie balíčka scikit-learn.

9. Plánovač bežeckej/turistickej trasy

Terminálová aplikácia, ktorá by pre zadanú dĺžku trasy a súradnice (zemepisná šírka a dĺžka) počiatočného a štartového bodu vytvorila gpx súbor s trasou, ktorá by najviac odpovedala týmto parametrom.

Išlo by prakticky o úlohu hľadania cesty o konkrétnej cene na grafe. Mapové dáta je možné získať napríklad z portálu openstreetmap.

10. Jupyter notebook via docstrings

Program, ktorý by textový súbor tvaru

import math
"""
## Nadpis
### Podnadpis

* Jedna vec
* Druha vec
"""
a = 5
b = 6
a, b = b, a
"""
* Komentar

|  A  | B   |
| --- | --- |
|  1  |  2  |
|  .5 | 7   |
"""
print('Hello World!')

do formátu Jupyter notebook-u. Cieľom je oddeliť markdown bloky (docstringy) a bloky kódu a uložiť všetko potrebné do štruktúry, ktorá je vlastná programu Jupyter notebook.

11. Snímání dat z grafů na obrázcích

Aplikace, která umožní otevřít graf (obecně bitmapový obrázek) a uživateli umožní sejmout hodnoty grafu (alespoň v některých bodech) a uloží je do souboru. V nejjednoduší verzi uživatel vše zadá manuálně a snímání v určitých bodech provede kurzorem myši. Je možné se zamyslet i nad více sofistikovaným přístupem.

12. Generátor signálů pro psychoakustické experimenty

Aplikace, která umožní vygenerovat různé typy akustických signálů: čisté tóny, šumy (širokopásmové, pásmově omezené, notched), komplexní signály, AM a FM tóny, pulse train… Uživatel může zadat parametry signálů a výsledný signál bude možné přehrát a například uložit do souboru typu wav. Program by měl umožnit zobrazit signál v časové i frekvenční doméně (spektrum).

13. Obsluha externí zvukové karty

Vytvořte komunikaci mezi programem a (externí) zvukovou kartou tak, aby bylo možné současně přehrávat a nahrávat signál. Latence nahrávaného signálu by měla být co nejmenší a hlavně stabilní. Můžete využít modul audiomath https://pypi.org/project/audiomath/ a psychtoolbox který používá portaudio. Možné testovat na vlastní zvukové kartě nebo popřípadě po domluvě na kartě zapůjčené katedrou radioelektroniky.

14. Auditory chimeras

Generátor tzv. Auditory chimeras https://research.meei.harvard.edu/chimera/index.html sloužících pro studium zpracování komplexních zvukových signálů (např. řeči) ve sluchovém systému. Auditory chimeras vznikají tak, že se zvukový signál zpracuje bankou filtrů typu pásmová propusť a poté se získá obálka a nosná v každém pásmu. Auditory chimeras pak umožňují různou manipulaci obálkou a nosnou dekomponovaného signálu.

15. Detekce frekvence určující vjem výšky komplexních signálů

Navrhněte a vytvořte aplikaci, která umožní zjistit základní frekvenci (může být v čase proměnná) komplexních zvukových signálů. Jedna varianta je použít model sluchové dráhy (banku filtrů pro kochleu + usměrnění a filtraci signálu) a na výstup modelu aplikovat tzv. summary autocorrelation function která najde společnou periodu opakování signálu ve všech pásmech (výstupech) banky filtrů.

courses/bab37zpr/semwork.txt · Last modified: 2020/12/07 13:49 by viteks