Analiza i przetwarzanie obrazów

Podobne dokumenty
Zastosowanie Informatyki w Medycynie

i ruchów użytkownika komputera za i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Promotor: dr Adrian Horzyk

Wahadło. Celem ćwiczenia jest zapoznanie się z zasadą dokonywania wideopomiarów w systemie Coach 6 oraz obserwacja modelu wahadła matematycznego.

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Podstawy Przetwarzania Sygnałów

Instrukcja użytkownika Efento Logger (v lub nowsza)

Instrukcja użytkownika ARSoft-WZ3

Program V-SIM tworzenie plików video z przebiegu symulacji

Uwaga! Upadek! Opis zadania konkursowego

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

POMIARY WIDEO W PROGRAMIE COACH 5

Imię i nazwisko (e mail): Rok: 2018/2019 Grupa: Ćw. 5: Pomiar parametrów sygnałów napięciowych Zaliczenie: Podpis prowadzącego: Uwagi:

Widmo akustyczne radia DAB i FM, porównanie okien czasowych Leszek Gorzelnik

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu?

Instalacja i opis podstawowych funkcji programu Dev-C++

Ćwiczenie 5. Pomiary parametrów sygnałów napięciowych. Program ćwiczenia:

Walec na równi pochyłej

A3 : Wzmacniacze operacyjne w układach liniowych

Analiza i przetwarzanie obrazo w

1. Pobieranie i instalacja FotoSendera

Pomoc do programu ISO Manager

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Instalowanie certyfikatów celem obsługi pracy urządzenia SIMOCODE pro V PN z poziomu przeglądarki internetowej w systemie Android

Program SigmaViewer.exe

Veronica. Wizyjny system monitorowania obiektów budowlanych. Instrukcja oprogramowania

Instrukcja konfigurowania sieci WiFi w Akademii Leona Koźmińskiego dla telefonów komórkowych z systemem Windows Mobile

ANALIZA HARMONICZNA DŹWIĘKU SKŁADANIE DRGAŃ AKUSTYCZNYCH DUDNIENIA.

Ćwiczenie 1 Automatyczna animacja ruchu

1. Wstęp Pierwsze uruchomienie Przygotowanie kompozycji Wybór kompozycji Edycja kompozycji...

Schemat blokowy karty

Konsola operatora TKombajn

THP-100 su Obsługa oprogramowania oraz instrukcja wzorcowania

1 Obsługa aplikacji sonary

ERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

7 Business Ship Control dla Symfonia Handel

Analiza i przetwarzanie obrazów

Interfejs analogowy LDN-...-AN

Instrukcja właściwego wykonania wykresów na zajęcia dydaktyczne.

Instrukcja obsługi Konfigurator MLAN-1000

Instrukcja zgłaszania błędu

Imię i nazwisko (e mail): Rok:. (2010/2011) Grupa: Ćw. 5: Pomiar parametrów sygnałów napięciowych Zaliczenie: Podpis prowadzącego: Uwagi:

Arkusz kalkulacyjny MS EXCEL ĆWICZENIA 4

Transformata Fouriera

DEMERO Automation Systems

Pomiar temperatury procesora komputera klasy PC, standardu ATX wykorzystanie zestawu COACH Lab II+. Piotr Jacoń K-4 I PRACOWNIA FIZYCZNA

Akademia Górniczo - Hutnicza im. Stanisława Staszica w Krakowie. Projekt. z przedmiotu Analiza i Przetwarzanie Obrazów

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

KATEDRA MECHANIKI I PODSTAW KONSTRUKCJI MASZYN. Instrukcja do ćwiczeń laboratoryjnych z elementów analizy obrazów

1. Opis okna podstawowego programu TPrezenter.

Przykładowa konfiguracja konta pocztowego w programie Thunderbird z wykorzystaniem MKS 2k7 (MS Windows Vista Busissnes)

rekomenduje Intuicyjne oprogramowanie do ewidencji czasu pracy kierowców Zdalny czytnik kart kierowców i danych z tachografów

Górnicki Mateusz 17681

Krok 2: Pierwsze uruchomienie

Analiza obrazów - sprawozdanie nr 2

Zadanie projektowe nr 1

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Instrukcja dostępu do usługi Google Scholar

Instalacja modemów iplus Huawei E169, E180, E220, E230 oraz E272 w systemie OS X Leopard (wersja polska).

Po otrzymaniu maila zapraszającego do udziału w korzystaniu z aplikacji ProfiAuto Usługi dla Serwisu, należy użyć przycisku Aktywuj aplikację.

Skrócona instrukcja obsługi czujników Fast Tracer firmy Sequoia.

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Cel i zakres ćwiczenia

Bierne układy różniczkujące i całkujące typu RC

Pochodna i różniczka funkcji oraz jej zastosowanie do rachunku błędów pomiarowych

1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE. Scenariusz lekcji. Scenariusz lekcji. 2.1 Wiadomości: 2.

Instrukcja instalacji oprogramowania Flow!Works na komputerze z systemem Windows 7

2017 Electronics For Imaging, Inc. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym

W celu obliczenia charakterystyki częstotliwościowej zastosujemy wzór 1. charakterystyka amplitudowa 0,

Przykłady wybranych fragmentów prac egzaminacyjnych z komentarzami Technik elektronik 311[07]

7. Szybka transformata Fouriera fft

Instrukcja instalacji i obsługi oprogramowania OPTIVA VIEWER

Laboratoria badawcze

Kalibracja czujnika temperatury zestawu COACH Lab II+. Piotr Jacoń. K-5a I PRACOWNIA FIZYCZNA

ZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ

Widok programatora PonyProgUSB wersja 1.0 oraz jego elementy przedstawiono na poniższym rysunku.

Tworzenie menu i authoring w programie DVDStyler

Instrukcja instalacji i obsługi oprogramowania OPTIVA Mobile Viewer 2

Instrukcja wejścia na konsultacje on-line

Proces uprawniania w module klubowym

Obsługa modułu. e-deklaracje. w programach WF-FaKir oraz WF-Gang. (opracował Przemysław Gola)

Instrukcja wejścia na lekcje on-line

7 Business Ship Control dla Systemu Zarządzania Forte

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP

Laboratorum 2 Badanie filtru dolnoprzepustowego P O P R A W A

KOOF Szczecin:

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Instrukcja użytkownika systemu S4

Ćwiczenie 6 Animacja trójwymiarowa

Wykrywacz kłamstw. Grzegorz Puzio, Łukasz Ulanicki 15 czerwca 2008

Część I. Pomiar drgań własnych pomieszczenia

Katedra Technik Wytwarzania i Automatyzacji STATYSTYCZNA KONTROLA PROCESU

Pokaz slajdów na stronie internetowej

Drogi Użytkowniku! tematycznego (lista haseł jest tożsama z

GATHERING DATA SYSTEM FOR CONCRETE S SAMPLE DESTRUCTING RESEARCHES WITH USE OF LABVIEW PACKET

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy

Transkrypt:

Analiza i przetwarzanie obrazów Pomiar pulsu za pomocą kamery Autor: Krzysztof Skowronek

Zawartość I. Założenia... 3 II. Realizacja... 3 III. Szczegóły implementacji... 4 IV. Interfejs... 5 V. Wyniki... 6 VI. Wnioski... 6

I. Założenia Celem projektu było stworzenie aplikacji umożliwiającej pomiar pulsu za pomocą kamery, na przykład wbudowanej w laptopa, wykorzystując delikatne zmiany koloru skóry twarzy ze względu na zmianę ukrwienia w trakcie cyklu bicia serca. Aby było to możliwe, na obrazie należy odnaleźć twarz. Dalszej obróbce podlega tylko ten obszar, nieco pomniejszony, tak by przedstawiał tylko skórę twarzy i jak najmniej otoczenia. Następnie z tego obszaru należy wyciągnąć średnią wartość pikseli kanału czerwonego. Przebieg tej średniej w czasie to nasz sygnał, z którego będziemy próbować wyliczyć tętno. Następnie taki sygnał poddawany jest transformacie Fouriera w celu rozłożeniu go na składowe o różnych częstotliwościach. Zakładamy, że mierzymy puls z zakresu 50 bpm 150 bpm, co przekłada się na częstotliwości 0.8 Hz i 2.5 Hz. Do transformaty stosujemy filtr pasmowo-przepustowy, oczyszczając sygnał głównie z wysokich częstotliwości, a pasmo odpowiadające pulsowi wyraźnie wzmacniamy. Kolejnym krokiem jest transformata odwrotna, z powrotem do dziedziny częstotliwości. Jej wynikiem jest sygnał dużo mniej poszarpany, przypominający sinusoidę o częstotliwości dominującej w pobranym sygnale. Ostatnim krokiem jest zastosowanie algorytmu opisanego w tej pracy do tak uzyskanego sygnału. Wyniki wyświetlany jest na ekranie. II. Realizacja Aplikacja została napisana w języku C#. Do stworzenia graficznego interfejsu użytkownika użyto WPF (Windows Presentation Foundation). Do analizy kolejnych klatek wykorzystano potęgę biblioteki OpenCV, z której przede wszystkim przydał się gotowy moduł do wykrywania twarzy. Dodatkowo pozwala ona na wygodne manipulowanie pikselami obrazu oraz obsługę zarówno strumienia klatek z kamery, jak i wczytanie klipu wideo z dysku. Funkcję realizującą transformatę Fouriera zawiera z kolei bardzo potężna biblioteka matematyczna dla platformy.net o nazwie AForge. Wyniki przedstawiono na ekranie na wykresach stworzonych za pomocą bardzo wygodnej i poręcznej biblioteki OxyPlot.

III. Szczegóły implementacji Cała praca aplikacji została podzielona na dwa wątki: jeden przetwarzający każdą kolejną klatkę i zapisujący sygnał do odpowiedniej zmiennej. Zastosowano tu technikę ruchomego okna czasowego, przez co zawsze analizowane jest tylko ostatnie 10 sekund sygnału. Rysunek 1. Przykład kodu wykorzystującego bibliotekę OpenCV. Jak widać, wykrycie twarzy na obrazie to jedna linijka. Na każdej klatce lokalizowana jest twarz, następnie wyliczana jest średnia wartość czerwonego obszaru ze znalezionego obszaru. Aby aplikacja mogła działać płynnie, klatka skalowana jest do bardzo małego rozmiaru w celu wykrycia twarzy, a następnie znaleziony obszar przenoszony jest na klatkę w większej rozdzielczości. Rysunek 2. Wyliczenie średniej wartości kanału czerwonego. Jak widać, aby zapewnić odpowiednią wydajność aplikacji, wywołanie jest asynchroniczne. Drugi wątek wykonuje swoje zadanie raz na sekundę i to on odpowiada za całość obliczeń. Wylicza on transformatę Fouriera z sygnału w przechowywanym oknie czasowym, filtruje ją, wzmacnia stukrotnie częstotliwości z zakresu ludzkiego pulsu i wylicza transformatę odwrotną. Na koniec, znów asynchronicznie, wywołuje funkcję wyliczającą puls.

IV. Interfejs Rysunek 3. Zrzut ekranu przedstawiający interfejs programu Jak widać na Rys. 3., główne okno programu podzielone jest na dwie części. Po lewej wyświetlane są kolejne klatki wraz z zaznaczoną wykrytą twarzą. Obecnie program obsługuje tylko jedną osobę naraz, ale w przyszłości jest szansa na równoczesny pomiar kilku osób. Po kliknięciu w obraz pojawia się opcja wyboru źródła: listowane wszystkie dostępne kamery oraz możliwy jest wybór klipu wideo do analizy. W lewym górnym rogu klatki znajdują się dwa liczniki: aktualna ilość przetwarzanych klatek na sekundę oraz średnia za ostatnie 5 sekund. W prawym górnym rogu klatki są również dwa liczniki (od lewej): średni puls z ostatnich kilku obliczeń oraz puls obliczony w ostatniej sekundzie. Oba te liczniki odświeżane są raz na sekundę. Z prawej strony umieszczono 4 wykresy (od góry): rejestrowany sygnał, pochodna odfiltrowanego sygnału (bo tak naprawdę z niej wyliczany jest puls, patrz wstęp), transformaty Fouriera przed i po filtracji i wzmocnieniu oraz na ostatnim, porównanie odfiltrowanej pochodnej z wygładzoną pochodną za pomocą średniej biegnącej. Pierwsze trzy wykresy przedstawiają całe okno czasowe, ostatni zaś tylko ostatnie dwie sekundy sygnału. Wszystkie wykresy odświeżane są raz na sekundę.

V. Wyniki Niestety, jest to metoda wielce niedokładna, ale dająca wynik zgodny z prawdą z błędem pomiarowym na poziomie 10-15 %. Wyniki odnoszono do pomiarów dokonanych aplikacją opisaną we wspomnianej we wstępie pracy. Niedokładność wynika z tego, że bardzo duży wpływ na pomiar mają nie tylko warunki zewnętrzne, ale także mimika twarzy w czasie jego wykonywania. Za przykład niech posłuży choćby Rysunek 3. Widoczne na nim skoki na pierwszym wykresie to mrugnięcia oczami widoczne tak wyraźnie tylko w tych warunkach oświetleniowych. Aby zwiększyć dokładność, a przede wszystkim stabilność pomiaru, należy tkwić nieruchomo w stałych warunkach oświetleniowych i ograniczyć mimikę do minimum. Kamera powinna być umieszczona na stabilnym podłożu. Jeśli stoi na biurku, nie należy się o nie opierać, gdyż to wystarczy do zaburzenia odczytu. Oświetlenie nie powinno być zbyt intensywne, ale jasne na tyle, by kamera oferowała 30 klatek na sekundę. Przykładowo, kamera zainstalowana w moim laptopie poniżej pewnego poziomu jasności przełączała się w tryb 15 klatek na sekundę, co przez chwilę prowadziło do błędnego wniosku, że kod nie jest dobrze zoptymalizowany. Dodatkowo, nietrudno zauważyć że wyniki nie są stabilne. Kolejne pomiary potrafią różnić się nawet o 200%, zwłaszcza jeśli twarz jest zbyt mocno oświetlona. Nie zmienia to faktu, że oscylują one wokół średniej wartości, która mniej więcej zgadza się z prawdziwym pulsem kręconej osoby. Program został przetestowany na kilku osobach i wyniki dla każdej pozostawały dobre. Kolejnym argumentem za poprawnością wyników jest zwiększona wyliczona wartość pulsu dla osoby po wypiciu kawy czy po intensywnym wysiłku fizycznym. Średnia zgodna jest w podanej granicy błędu pomiarowego 15% z realnym pulsem. VI. Wnioski Taki sposób pomiaru pulsu jest jak najbardziej możliwy, a osiągnięcie dokładności ciśnieniomierzy naramiennych nie powinno stanowić większego problemu, głównie dlatego, że nie jest to wysoko zawieszona poprzeczka. Z pewnością kolejnym krokiem poprawy dokładności jest wycinanie z analizowanego obszaru oczu i ust, aby ograniczyć wpływ mrugania i mimiki na wynik.