Komunikacja człowiek-komputer

W pierwszej części zajęć laboratoryjnych przedmiotu KCK zapoznamy się ze środowiskiem python. Następnie zajmiemy się podstawami przetwarzania obrazu. Zajęcia #3 są poświęcone zapoznaniu się z możliwościami biblioteki openCV, a zajęcia #4-#6 – zaproponowaniu i implementacji własnej aplikacji dokonującej przetwarzania obrazu. Dalsze części laboratoriów będą poświęcone przetwarzaniu dźwięku, sensorom (Leap Motion, ew. EEG) oraz użyteczności oprogramowania.

Rezultaty poszczególnych części powinny zostać opisane w sprawozdaniach; pierwsze z nich należy przygotować samodzielnie, a kolejne – samodzielnie lub w parach. Środowiskiem zalecanym do pisania sprawozdań jest LaTeX, a do tworzenia ewentualnych wykresów – matplotlib lub inny automatyczny generator taki jak R (ich znajomość przyda się na przyszłość).

Karta ECTS przedmiotu znajduje się tutaj (Sem_5).

Sprawozdania   [szablon]

Tematyka Elementy Termin: 23:59
Podstawy pythona
(2 pkt)

Uzupełnienie na laboratorium (~40min): historia i specyfika pythona, składnia i podstawowe polecenia.

Unikanie powtórzeń, "wierszyków" w źródle – tworzenie uniwersalnych funkcji, czyli podstawowy refactoring podczas pisania kodu.

  1. (max 1-2 akapity) Co było szczególnie trudne, a co łatwe? Czy przy instalacji lub pisaniu skryptu pojawiły się nieoczekiwane trudności? Wyjaśnienie działania skryptu i głównych funkcji (może być jako komentarz w źródle).
Dzień przed zajęciami #3
Przetwarzanie obrazu – wstęp
(1+2+2 pkt)

Przydatne materiały: OpenCV oraz bindings: java, C# i inne.

Uzupełnienie na laboratorium (~40min): obraz rastrowy, reprezentacje koloru (RGB, CMY, CMYK, HSV). Tajemnica fioletu [1], [2], [3]. Operacje na histogramie, na charakterystyce (we/wy) oraz filtrowanie obrazu.

  1. (pomiń w sprawozdaniu) Zapoznaj się z zasadą i sposobem działania przekształceń: erozji, dylatacji, otwarcia i zamknięcia.
  2. (max 2 strony) Opis użytych w zadaniu operatorów i filtrów: co każdy z nich dostaje na wejściu, co daje na wyjściu, jaka jest zasada działania. Ciąg przekształceń (można użyć graphviz'a do jego pokazania) i ich parametry. Ilustracja działania – przykłady demonstrujące wady i zalety zaproponowanego podejścia; skuteczność (w ilu obrazach na ile metoda dała w pełni poprawne rezultaty).
Dzień przed zajęciami #x
Przetwarzanie obrazu – aplikacja
(4 pkt)

Uzupełnienie na laboratorium (~40min): grafika wektorowa a rastrowa; zalety i zastosowania. Jak działa i kiedy używać png, a kiedy jpg. Momenty Hu [1], [2], [3a], [3b]. Macierz pomyłek i trafność klasyfikowania; automatyzacja; optymalizacja.

  1. (max 1 strona) Opis użytych w zadaniu operatorów i filtrów: co każdy z nich dostaje na wejściu, co daje na wyjściu, jaka jest zasada działania. Ciąg przekształceń (można użyć graphviz'a do jego pokazania) i ich parametry.
  2. (max 5 stron) Cel eksperymentu, pochodzenie danych i przykładowe obrazy, dyskusja skuteczności (trafność klasyfikowania, zdolność dyskryminacji, problemy) i efektywności (on-line/off-line, fps, itp.).

Popularne przykłady zadań to

  • wykrywanie określonych obiektów (dłoń, twarz, oko, nos, usta, sylwetka człowieka, krzesło, monitor, samochód, tablica rejestracyjna, samolot, drzewo, okulary, ...),
  • wykrywanie ruchu obiektów (obroty rękami, gesty, taniec),
  • wykrywanie własności obiektów (wygięcie ust, emocje na twarzy, rodzaj samochodu/samolotu),
  • wykrywanie relacji obiektów (pod, nad, za, jest dalej niż),
  • AR (augmented reality).
Dzień przed zajęciami #x
Dźwięk i mowa
(3 pkt)

Uzupełnienie na laboratoriach (~90min): parametry analogowego i cyfrowego sygnału dźwiękowego, zasada działania FT (ciekawostka: IFT, FT), widmo, spektrogram, aliasing i metody zabezpieczenia się przed nim, autokorelacja, wykrywanie częstotliwości podstawowej w mowie. Dla chętnych: analiza widma oraz zaawansowane informacje o cepstrum.

(pomocne programy: Audacity, SoX)

Program rozpoznający płeć piszemy w całości samemu (bez korzystania z gotowych fragmentów źródeł).

Wczytywanie plików/strumieni dźwiękowych (java): tutorial, pakiet sampled

Biblioteka do wczytywania wav'ów

Biblioteka do FFT


  1. (pomiń w sprawozdaniu) Czym jest dźwięk? Jak dobrać częstotliwość próbkowania i kto podał twierdzenie o próbkowaniu? Co to jest aliasing (dla chętnych [1], [2]) i anty-aliasing? Co to jest ton podstawowy, formant, dithering?
  2. (pomiń w sprawozdaniu) Jak brzmi sygnał sinusoidalny, prostokątny, piłokształtny, a jak narysowane ręcznie? Obejrzyj i wyjaśnij ich widmo.
  3. (pomiń w sprawozdaniu) Implementacja programu rysującego wykres mocy/amplitudy i spektrogram (sygnał off-line, dla chętnych on-line). Jak liczona jest FFT, co podajemy na wejściu i co dostajemy? Zrzuty z ekranu (pokazujące spektrogram i wykres mocy oraz wartości na skali pionowej i poziomej) i użyte parametry (liczba wartości w oknie, ew. zastosowane okno czasowe) dla samodzielnie nagranych próbek: mowy, śpiewu o zmiennej wysokości, dźwięku okresowego, szumu, ew. innych interesujących.
  4. (max 2 strony) Rozpoznawanie płci (sygnał off-line, dla chętnych on-line) – eksperyment z wykorzystaniem metody autokorelacji lub HPS. Na ocenę bdb: optymalizacja skuteczności wykrywania metodą autokorelacji albo porównanie autokorelacji z HPS. Jaką uzyskano trafność klasyfikowania? Podaj macierze pomyłek. Test na próbkach (tych albo tych) oraz, dla chętnych, na nagranych samemu; czy można ten test oszukać mówiąc w specyficzny sposób?
Dzień przed zajęciami #x
Użyteczność
(waga 3)
Prezentacja ~10 min. zawierająca:
  1. Nazwa aplikacji, autorzy, motywacje, wartość dodana w stosunku do istniejących już rozwiązań, innowacyjność
  2. Identyfikowanie potrzeb: badani (>2), sytuacje, lista potrzeb, obserwacje i wnioski
  3. Prototyp papierowy (zdjęcia), obserwacje i wnioski.
  4. Ewaluacja heurystyczna (film/zdjęcia). Zidentyfikowane problemy i ich naprawienie. Ewolucja interfejsu – kolejne ulepszenia prototypu.
  5. Opinia użytkowników (2.) używających ostatecznych prototypów (4.); potencjał do wdrożenia
Pokaz na ostatnich zajęciach

Przed wysłaniem sprawozdania upewnij się, że:

  • Podałeś pochodzenie źródłowe wszystkich cytowanych w sprawozdaniu fragmentów i wykorzystanych materiałów (literatura)
  • Sprawdziłeś pisownię tekstu (spell-check)
  • Wykresy (i w miarę możliwości rysunki) są wektorowe (pdf, ps, svg itp.)
  • Zatytułowałeś mail tak:   [KCK] sprawozdanie 1, Janek Kowalski & Marcin Nowak
  • Wysyłasz do prowadzącego laboratorium (wojciech.jaskowski@cs.put.poznan.pl / maciej.komosinski@cs.put.poznan.pl / pawel.liskowski@cs.put.poznan.pl / agnieszka.mensfelt@cs.put.poznan.pl / michal.tomczyk@cs.put.poznan.pl) dwa pliki:
    • sprawozdanie (pdf), nazwa zawiera numer sprawozdania i nazwiska autorów:   1_KowalskiNowak.pdf
    • źródła programu (zip – same źródła):   1_KowalskiNowak.zip. Jeśli źródło to jeden plik, wyślij go bezpośrednio bez kompresowania.
  • Zwykle pdf powinien mieć < 1 MB, a zip < 50 KB.

Wszelkie sugestie do przedmiotu i poszczególnych zajęć możesz zgłaszać tutaj.