Wizualizacja z systemu rozponawania twarzy

Podobne dokumenty
WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

Politechnika Wrocławska

Zdalny czujnik. Adam Zugaj Wydział Elektroniki, PWr IV rok, AiR (ARR) Wrocław, 12 czerwca 2009

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

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

Wizualizacja pogody dla windsurferów

Instrukcja do oprogramowania ENAP DEC-1

Kod produktu: MP01611

Wizualizacja danych z Rękawiczki Sensorycznej

Zastosowania mikrokontrolerów w przemyśle

1.1 Co to jest USBCOM? Budowa oraz parametry techniczne... 3

Dokumentacja Techniczno ruchowa: Moduł PSI (ver. PSI 1.0)

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Systemy wbudowane. Paweł Pełczyński

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Biomonitoring system kontroli jakości wody

Rozproszony system zbierania danych.

Analiza i przetwarzanie obrazo w

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Aplikacja dla eksperymentu identyfikacyjnego z wykorzystaniem układu PAIO. Wykonał : Marcin Cichorowski Prowadzenie : dr inż.

Wydział Elektroniki. Wykrywacz przewodów ściennych. Wizualizacja danych sensorycznych - projekt. Prowadzący: dr inż.

dokument DOK wersja 1.0

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Kod produktu: MP01611-ZK

CYFROWY ANALIZATOR SIECI PRZEMYSŁOWYCH JAKO NARZĘDZIE DO DIAGNOSTYKI MAGISTRALI CAN

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

DOKUMENTACJA PROJEKTU

Rys. 1. Schemat ideowy karty przekaźników. AVT 5250 Karta przekaźników z interfejsem Ethernet

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Instrukcja Obsługi. Modułu wyjścia analogowego 4-20mA PRODUCENT WAG ELEKTRONICZNYCH

APPLICATION OF ADUC MICROCONTROLLER MANUFACTURED BY ANALOG DEVICES FOR PRECISION TENSOMETER MEASUREMENT

Szczegółowy Opis Przedmiotu Zamówienia: Zestaw do badania cyfrowych układów logicznych

Czujniki podczerwieni do bezkontaktowego pomiaru temperatury. Czujniki stacjonarne.

Kod produktu: MP01611-ZK

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

PRUS. projekt dokumentacja końcowa

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Kod produktu: MP01105T

Koło zainteresowań Teleinformatyk XXI wieku

Instytut Teleinformatyki

Dalmierz optyczny raport

ZAMAWIAJĄCY. CONCEPTO Sp. z o.o.

Interfejs urządzeń peryferyjnych

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1

Raport: Wizualizacja danych sensorycznych - projekt. Komputerowe przedstawienie obiektów rozpoznanych przez sonary ultradźwiękowe

Koło zainteresowań Teleinformatyk XXI wieku. Projekt 3. Temat Aplikacja interfejsu Microsoft Kinect

Cyfrowy rejestrator parametrów lotu dla bezzałogowych statków powietrznych. Autor: Tomasz Gluziński

Komunikacja w mikrokontrolerach Laboratorium

Konwerter Transmisji KT-02

INSTRUKCJA instalacji interfejsu USB-RS422/485

TECHNIKA MIKROPROCESOROWA II

Kod produktu: MP-BTM222-5V

UNIGYR Karty magistrali PROFIBUS. Modele z interfejsami kart PCI i PC (PCMCIA)

Założenia projektowe

Kod produktu: MP01105

SPECYFIKACJA TECHNICZNA OPROGRAMOWANIA

Skaneroptyczny- Fafik

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

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

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

INSTRUKCJA OBSŁUGI Neuron Analogowy Nr katalogowy AIQx-42T-00

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Programator procesorów rodziny AVR AVR-T910

Instrukcja użytkownika ARSoft-WZ1

Rzutowanie z 4D na 3D

Komunikacja w mikrokontrolerach Laboratorium

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Moduł komunikacyjny Modbus RTU w standardzie RS-485 do ciepłomierza SonoMeter 31 i przelicznika energii Infocal 9

Myszka akcelerometryczna. Paweł Jedynak Michał Mielnicki czerwca 2009

Konspekt pracy inżynierskiej

Rok akademicki: 2030/2031 Kod: SEN EJ-s Punkty ECTS: 4. Poziom studiów: Studia II stopnia Forma i tryb studiów: Stacjonarne

4 Adres procesora Zworkami A0, A1 i A2 umieszczonymi pod złączem Z7 ustalamy adres (numer) procesora. Na rysunku powyżej przedstawiono układ zworek dl

Interfejsy. w systemach pomiarowych. Ryszard J. Barczyński, 2016 Materiały dydaktyczne do użytku wewnętrznego

SM210 RS485 - JBUS/MODBUS dla SM102E. Æ Instrukcja obsługi

LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2

Wizualizacja płomienia

Systemy wbudowane Obsługa interfejsu 1-Wire na przykładzie termometru DS18B20

Przekaźnika sygnalizacyjnego PS-1

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

SM211 RS485 - JBUS/MODBUS dla SM103E. Æ Instrukcja obsługi

ZL8AVR. Płyta bazowa dla modułów dipavr

Sprawdzian test egzaminacyjny 2 GRUPA I

System optycznego przekazywania informacji dla osób niewidomych z wykorzystaniem telefonu z systemem operacyjnym Android inż.

Opis czytnika TRD-80 CLASSIC ver Moduł czytnika transponderów UNIQUE z wbudowaną anteną

TM PROGRAM TERMINALA RS232 DLA MULTIPLEKSERA 8XRS232 / ETHERNET 10BASE-T

projekt przetwornika inteligentnego do pomiaru wysokości i prędkości pionowej BSP podczas fazy lądowania;

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

ZL19PRG. Programator USB dla układów PLD firmy Altera

Zgrana para - NerO i CleO

Interfejs RS485-TTL KOD: INTR. v.1.0. Zastępuje wydanie: 2 z dnia

Transkrypt:

Wizualizacja Danych Sensorycznych Projekt dr Bogdan Kreczmer Wizualizacja z systemu rozponawania twarzy Tomasz Mazurkiewicz 163188 15 czerwca 2010

Spis treści 1 Założenia Projektowe 2 2 Realizacja 2 2.1 Wybór urządzeń i elementów.................... 2 2.2 Warstwa Hardware.......................... 3 2.3 Komunikacja............................. 5 2.4 Warstwa Software.......................... 6 2.4.1 Funkcjonalności........................ 6 2.4.2 Interfejs Aplikacji....................... 6 3 Przykłady zastosowania 7 4 Podsumowanie i Wnioski 8 1

1 Założenia Projektowe Celem projektu było stworzenie systemu wizyjnego złożonego z kamery i czujnika odległości, dostarczającego dodatkowych informacji o odległości obiektu. systemie wizyjnym złożonym z kamery i czujnika odległości,. Wizualizowane miały być dane napływające z systemu i odpowiednio wcześniej przetwarzane, w celu odnalezienie interesujących nas elementów (w tym wypadku twarzy i jej elementów). Na początku pracy nad projektem zostały wyszczególnione 4 zagadnienia, które miała określać priorytety i kierunki pracy. Dodatkowo stanowiły one swego rodzaju kamienie milowe. Są to : ˆ Wybór kamery i czujnika ˆ Zaprojektowanie i wykonanie układu elektronicznego czujnika i komunikacji z PC ˆ Wykonanie programu mikrokontrolera w/w układu ˆ Wykonanie aplikacja przetwarzającej obraz i wizualizującej dane 2 Realizacja 2.1 Wybór urządzeń i elementów Sercem kazdego systemu wizyjnego jest kamera i od jej doboru moge w duzej mierze zalezec rezultaty pracy. W doborze kamery pod uwage wzieto ponizsze parametry: ˆ typ matrycy ˆ rozdzielczosc ˆ optyka ˆ dodatkowo funkcje (np. mozliwosc ustawiania ostrosci, zmiany rozdzielczosc) ˆ cena i dostepnosc Najwazniejszym kryterium był typ matrycy oraz optyki. Po ich uwzglednieniu wybrano kamery firmy Logitech z matryca CCD i optyka firmy Carl Zeiss. W skutek analizy pozostałych czynnikół (głównie ceny i dostepnosci) wybrano i zakupiono model Logitech Portable Webcam C905. Innym waznym elementem jest czujnik odległosci. Tutaj kryteriami doboru były : ˆ łatwosc implementacji ˆ zakres ˆ cena i dostepnosc 2

Po przeanalizowaniu wszystkich wybrany został analogowy czujnik typu SHARP[?] o zakresie 10-80cm. Ustalono, ze w odległosc do 80cm najczesciej trzymana jest głowa od monitora, a to na nim docelowo ma byc montowany układ kamery i czujnika. Aby móc korzystać z wybranego czujnika, należy posiadać układ mogący przetwarzać i przesyłać dane z czujnika. W tym celu potrzebny jest układ z mikrokontrolerem. Parametry brane pod uwagę przy wyborze mikrokontrolera to : ˆ posiadanie przetwornika analogowo- cyfrowego ˆ posiadanie modułu do komunikacji UART ˆ łatwość implementacji ˆ cena i dostepnosc Biorąc pod uwagę te aspekty zdecydowano się wykorzystać mikrokontroler AtMega8[?], który spełnia wszystkie powyższe wymagania, a dodatowo jest bardzo popularny w Polsce, dzięki informacje o pracy z nim są bardzo łatwo dostępne. Do komunikacji ze współczesnym komputerem klasy PC standard RS-232 staje sie niewygodny. Jest to spowodowane spadającą liczbą komputerów z odpowiednim portem. Dlatego zdecydowano się na komunikację poprzez port USB, powszechny i wspierany we wszystkich współczesnych komputerach. Najprostsza metoda przejścia ze standardu UART to USB to zastosowanie odpowiedniego układu. Parametry brane pod uwagę przy wybrze układu to: ˆ transparentność ˆ prędkość transmisji ˆ łatwość implementacji ˆ cena i dostepnosc Po przeanalizowaniu parametrów spektrum układów dostępnych na rynku wybrano układ FT232RL[?] 2.2 Warstwa Hardware Składa się ona z dwóch układów. Pierwsze z nich to płytka odbierająca dane z czujnika, przetwarzająca na sygnał cyfrowy, a następnie wysyłajaca dane dalej przez moduł UART (rys.??). Drugi układ odpowiada za komuniakcję bezpośrednio z PC, czyli w tym wypadku za konwersję sygnału UART na USB(rys.2). 3

Rysunek 1: Schemat elektryczny układu obsługującego czujnik i wysyłającego dane Rysunek 2: Schemat elektryczny układu odpowiedzialnego za komunikacją z PC Układy te zostały wykonane samodzielnie metodą termotransferu. Kompletny układ wraz z kamerą widać na zdjęciu 3. Układ był wykorzystywany również w innym projekcie, jednak główna plytka była projektowan z myślą o tym projekcie. 4

Rysunek 3: Zdjęcie kompletnego układu wraz z kamerą 2.3 Komunikacja Komunikacja odbywa się poprzez opisany układ kowertujący sygnały UART USB. Ustalone parametry transmisji po stronie mikrokontrolera to: ˆ Prędkość transmisji : 19,2kbps ˆ Ilość bitów stopu : 1 ˆ Bity parzystości : brak ˆ Ilość bitów danych : 8 W układzie stosowana jest kontrola poprawości przesyłu danych - CRC, która realizowana jest przez odpowiednią funkcję. Listing funkcji(po stronie mikrokontrolera) został umieszczony poniżj: char CRC8(char input) { char i, feedback, seed=0; for (i=0; i<8; i++) { feedback = ((seed ^ input) & 0x01); if (!feedback) seed >>= 1; else { seed ^= 0x18; seed >>= 1; seed = 0x80; 5

} input >>= 1; } return seed; } W związku z zastosowaniem CRC, zmuszony byłem do stworzenia 3bajtowych ramek danych. Jeden bajt to wskazanie czujnik, drugi to CRC. Ze względu na to, że obie te liczby są 8-bajtowe, wysyłajac tylko je nie byłoby możliwości rozróżnienia, który bajt jest bajtem danych, a który bajtem CRC. W przypadku utraty synchronizacji mogłoby by to mieć konsekwencję w postaci nie utrzymywania żadnych danych(wszystkie byłyby uznawane za niepoprawne). Dlatego na początku ramki dodano bajt sygnalizujący początek transmisji. W tej realizacji przyjęto, że będzie to znak x. 2.4 Warstwa Software Najbogatszym źródłem wiedzy na temat warstwy softwarowej są kod źródłowy oraz dokumentacja wygenerowana z programie Doxygen, które zostały dostarczone w załączaniku. Wiele mówią równiez diagram przepływu danych 2.4.1 Funkcjonalności ˆ Konfiguracja i kontrola portu - zrealizowano ˆ Rozpoznawanie twarzy i jej elementów - zrealizowane poza główną aplikacją(w OpenCV) ˆ Wizualizowanie rozpoznawania - niezrealizowano ˆ Rozpoznawanie twarzy ze wzorca - zaprojektowano(porównywanie rozpiętości oczu, stosunku boków prostokąta okalającego twarz do siebie, oraz odlegości między ustami, a nosem), częściowo zrealizowano poza główną aplikacją (w OpenCV) 2.4.2 Interfejs Aplikacji Interfejs składał się z dwóch zakładek. Jedna z nich widoczna na rysunku4, służyła jedynie do konfiguracji i ustanawiania połączenia. Mamy w niej możliwość wyboru portu, szybkośći transmisji, bitów parzystości, bitów stopu i ilości bitów danych. Tutaj dokonujemy połączeni i rozłączenia. Wszelkie komunikaty są zwracane w tej zakładce. Również czyste dane z portu wejściowego pojawiają się tutaj. Druga z nich miała odpowiadać, za główną część programu i jest ona widoczna na rysunku 5. Tutaj wyświetlany miał być obraz z kamery wraz z oznaczonymi, wybranymi elementami. Tutaj wybiarane są elementy jakie nalezy oznaczać. Tutaj również wyświetlane miał być wyliczane parametry twarzy pomocne w indentyfikacji twarzy z wybranego obrazu. 6

Rysunek 4: Zakładka komunikacyjna Rysunek 5: Główna zakładka 3 Przykłady zastosowania Na rysunkach przedstawiono działanie programu w wybranych sytuacjach. Na rys.6 widać aplikację podczas komunikacji. A na rysunku 7 widać program lokalizujący twarz w akcji. 7

Rysunek 6: Aplikacja podczas komunikacji Rysunek 7: Widok na program rozpoznający twarz 4 Podsumowanie i Wnioski Niestety projektu nie udało się zrealizować w zadowalajacym stopniu. Problemem, który stanął na przeszkodzie kompletnego zrealizowania zadania to trudności w funkcjonowaniu pomiędzy trzema bibliotekami takimi jak : QextSerialPort, Qt i OpenCV. Problem ten pogłębiał się w sytuacji równoległej pracy na dwóch systemach operacyjnych. Wszystkie stosowane biblioteki są wieloplatformowe, jednak migracja z jednej platformy na drugą stwarzała problemy. W przypadku QextSerialPort były to problemy bezpośrednio związane z pracą biblioteki, a w przypadku OpenCV z przygotowaniem środowiska pracy w systemie Windows. Biblioteka Qt 8

okazała się tutaj najbardziej uniwersalnym narzędziam, gdyż klasy do niej należące działały tak samo na obu systemach, bez konieczności żadnych zmian. Ze wzgledu na pojawiające się trudności, które pochłaniały sporo czasu, w końcowej fazie projektu zaczęły kumulować się opóźnienia, co skutkuje oddaniem wersji niekompletnej projektu. W toku realizacja została stworzona klasa łącząca funkcjonalność Qt i OpenCV, jednak ze względu na omawiane trudności nie znalazła ona miejsca w aplikacji, a tym samym w raporcie. Została ona jednak pokazana podczas prezentacji na żywo. Zrealizowano w pełni trzy z czterech stawianych na początku zadań. Ostatnie zadanie zostało zrealizowane, jedynie częściowo. 9