SYSTEM TŁUMACZACY ONLINE DLA DANYCH OBRAZOWYCH



Podobne dokumenty
REFERAT PRACY DYPLOMOWEJ

AKADEMIA GÓRNICZO-HUTNICZA

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

SOA Web Services in Java

Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach)

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Tematy dyplomów inżynierskich 2009 Katedra Inżynierii Oprogramowania

Dodatkowo, w przypadku modułu dotyczącego integracji z systemami partnerów, Wykonawca będzie przeprowadzał testy integracyjne.

Android tworzenie aplikacji mobilnych

Maciej Oleksy Zenon Matuszyk

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

PRZEWODNIK PO PRZEDMIOCIE

Usługa: Testowanie wydajności oprogramowania

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

SERWERY KOMUNIKACYJNE ALCATEL-LUCENT

Programowanie zespołowe

Dokumentacja aplikacji Szachy online

Referat pracy dyplomowej

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Lokalizacja Oprogramowania

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Aurea BPM Dokumenty pod kontrolą

Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią

mtim Dedykowane aplikacje mobilne dla TIM S.A.

Integracja wirtualnego laboratorium z platformą e-learningową

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

System Zarządzania Treścią

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

EOIF GigaCon Summit Warszawa

Pytanie nr 3: Czy połączenie urządzenie mobilne -> serwer będzie szyfrowane? (protokół HTTPS).

Programowanie Komponentowe WebAPI

Wybrane działy Informatyki Stosowanej

RUP. Rational Unified Process

III ZAPYTANIE OFERTOWE

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

Konspekt pracy inżynierskiej

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

ZAPYTANIE OFERTOWE nr 1/2017

PRZEWODNIK PO PRZEDMIOCIE

FORMULARZ OFERTOWY. 8. Społeczeństwo informacyjne zwiększanie innowacyjności gospodarki

Prezentacja firmy i doświadczeń ze wspólnych projektów

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Załącznik 1 instrukcje instalacji

Dokumentacja projektu QUAIKE Architektura oprogramowania

Dobre praktyki w doborze technologii rozwiązań informatycznych realizujących usługi publiczne

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Zapytanie ofertowe

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Strategia testów mająca doprowadzić do osiągnięcia pożądanych celów

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

Wyjaśnienia i odpowiedzi na pytania oferentów

Usługa: Audyt kodu źródłowego

OFERTA. Lp. Nazwa zadania Cena netto (zł) VAT (zł) Cena brutto (zł)

OSGi Agata Hejmej

SiR_13 Systemy SCADA: sterowanie nadrzędne; wizualizacja procesów. MES - Manufacturing Execution System System Realizacji Produkcji

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Oprogramowanie dostosowane do potrzeb użytkownika. Skrócenie czasu wejścia na rynek

Projektowanie systemów informatycznych. wykład 6

Internetowa sieć laboratoriów fotograficznych

Architektura oprogramowania w praktyce. Wydanie II.

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Architektura zorientowana na usługi

Wdrozėnie systemu B2B wprowadzaja cego automatyzacje procesów biznesowych w zakresie Systemu Nadzoru Projektowego

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Wtyczka Crop3D. Wstęp. Implementacja. Sprawozdanie z realizacji projektu Bartłomiej Trzewiczek Kraków,

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia r.

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

INFORMATYKA. PLAN STUDIÓW STACJONARNYCH INŻYNIERSKICH 2-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2018/19.

Case study strona firmowa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

System wspierający pracę inżynierów!

Elektroniczna Księga Wieczysta

KARTA PRZEDMIOTU. Cel 1 Zapoznanie studentów z architekturami i platformami mobilnymi

1 Wprowadzenie do J2EE

Wyjaśnienia z dnia r. do treści Zapytania Ofertowego nr ZO/3/FO/POPC/2017 w odpowiedzi na pytania dotyczące Zapytania ofertowego.

TWÓJ BIZNES. Nasz Obieg Dokumentów

Usługi analityczne budowa kostki analitycznej Część pierwsza.

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

Projektowanie oprogramowania

Dokument Detaliczny Projektu

Dni Użytkowników Aplikacji QAD Interoperacyjność z QXtend

DESIGNER APPLICATION. powered by

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Zakład Ubezpieczeń Społecznych Departament Zamówień Publicznych ul. Szamocka 3, 5, Warszawa

Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus. DODATEK NR 4 Instrukcja laboratoryjna

SYSTEM VILM ZARZĄDZANIE CYKLEM ŻYCIA ŚRODOWISK WIRTUALNYCH. tel: +48 (032)

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Transkrypt:

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki PROJEKT INŻYNIERSKI SYSTEM TŁUMACZACY ONLINE DLA DANYCH OBRAZOWYCH WOJCIECH MAZUR, MAURYCY MICHALSKI OPIEKUN: dr inż. Dominik Radziszowski Kraków 2011

OŚWIADCZENIE AUTORA PRACY OŚWIADCZAM, ŚWIADOMY(-A) ODPOWIEDZIALNOŚCI KARNEJ ZA PO- ŚWIADCZENIE NIEPRAWDY, ŻE NINIEJSZY PROJEKT WYKONAŁEM(-AM) OSOBIŚCIE I SAMODZIELNIE W ZAKRESIE OPISANYM W DALSZEJ CZEŚCI DOKUMENTU I ŻE NIE KORZYSTAŁEM(-AM) ZE ŹRÓDEŁ INNYCH NIŻ WYMIENIONE W DALSZEJ CZEŚCI DOKUMENTU................................. PODPIS

3 1. Cel prac i wizja produktu Celem projektu było stworzenie systemu online tłumaczącego dane obrazowe. System umożliwia rozpoznanie tekstu z przesłanego obrazu, przetłumaczenia go na wybrany inny język oraz przesłania użytkownikowi wynikowego tekstu w innym języku. Dla końcowego użytkownika została stworzona aplikacja mobilna na platformę Android. Dostęp online do usług tłumaczących typu machine translation jest coraz bardziej powszechny, ich jakość rośnie. Istnieją też biblioteki oraz dostępne jako usługi systemy typu OCR rozpoznające tekst na przekazywanych danych obrazowych. Połączenie obu technologii zaowocowało stworzeniem systemu tłumaczącego tekst z danych obrazowych. Do czego jest to przydatne? Przykładowo: W lokalnej chińskiej restauracji dostajemy menu (niestety nie mają wersji polskiej ani angielskiej), możemy wyjść lub wyciągnąć telefon, zrobić zdjęcie i po chwili otrzymujemy zrozumiałą dla siebie wersji językowej. Potwierdzeniem trafności wyboru tematu jest fakt, że ostatnio pojawiło się na rynku kilka podobnych aplikacji, z których najbardziej znane są: Google Goggles oraz Word Lens. Największymi zagrożeniami dla realizacji projektu były integracja i zapewnienie komunikacji różnych serwisów takich jak rozpoznawanie tekstu z obrazu czy wykonywanie tłumaczenia z naszą aplikacją. Oprócz tego ograniczenia techniczne urządzeń mobilnych spowodowały konieczność poszukiwania metod optymalizacji algorytmów użytych w aplikacji. 2. Zakres funkcjonalności Głównym celem realizacji projektu było stworzenie aplikacji komponentowej o architekturze SOA umożliwiającej tłumaczenie tekstu znajdującego się na zdjęciu. Dodatkowo sposób realizacji projektu umożliwił udostępnienie strony internetowej, na której można przesłać obrazek do tłumaczenia oraz możliwość przesłania danych do tłumaczenia poprzez web service (protokół SOAP oraz REST). Przypadki użycia - część serwerowa: wyślij obraz do tłumaczenia przez web service wyślij obraz do tłumaczenia przez stronę www Przypadki użycia - aplikacja mobilna: ustaw parametry obrazu oraz tłumaczenia zrób zdjęcie i wyślij do tłumaczenia wyślij obraz do tłumaczenia wyświetl historię tłumaczeń Ze względu na wykorzystanie zewnętrznych usług do rozpoznawania tekstu na obrazie oraz tłumaczenia tekstu aplikacja jest zależna od systemów zewnętrznych realizujących te usługi. Ze względu na komponentową strukturę aplikacji możliwe jest łatwe dodawanie i zamianę systemów udostępniających wspomniane usługi.

4 3. Wybrane aspekty realizacji Z uwagi na charakterystykę aplikacji, która wymagała integracji wielu zewnętrznych usług, przyjęte rozwiązanie musiało być na tyle elastyczne, aby podłączanie i zamiana pomiędzy różnymi usługami była jak najprostsza. Jako główny szkielet dla aplikacji serwerowej został wybrany Apache Servicemix w wersji 4.3. Opiera się on o technologię OSGI umożliwiającą łatwą integrację wielu usług. Jako platforma mobilna został wybrany Android z uwagi na dobre środowisko do tworzenia oprogramowania. Kolejnymi argumentami była jego szybko rosnącą popularność oraz możliwość bezpośredniego dostępu do fizycznych urządzeń pracujących na tym systemie operacyjnym. Komunikacja pomiędzy urządzeniem mobilnym a aplikacją serwerową jest oparta o mechanizm REST. Ponadto serwer udostępnia również web service, umożliwiający wywołąnia przy pomocy protokołu SOAP. Zasada działania aplikacji jest oparta w głównej mierze na wykorzystaniu gotowych rozwiązań oferujących podstawowe usługi, takich jak: rozpoznawanie tekstu z obrazu tłumaczenie tekstu Część mobilna projektu ma za zadanie obsługę aparatu w celu zrobienia zdjęcia fragmentowi tekstu oraz obróbkę tego zdjęcia, aby zminimalizować jego rozmiar przy równoczesnym zachowaniu odpowiedniej jakości wymaganej przez aplikację rozpoznawania tekstu. Po wykonaniu zdjęcia użytkownik specyfikuje język źródłowy (może być niezdefiniowany - w takim przypadku aplikacja sama spróbuje rozpoznać dany język) oraz język docelowy, na jaki ma być przetłumaczony tekst z obrazka. Następnym krokiem jest przesłanie zdjęcia z parametrami tłumaczenia do aplikacji serwerowej wykorzystując mechanizm REST. Po otrzymaniu żądania przez komponent odpowiedzialny za wystawienie komunikacji przy pomocy mechanizmu REST zgłoszenie jest przekazywane do centralnej cześci aplikacji routera. Jest on odpowiedzialny za wybór usług do rozpoznawania tekstu z obrazu oraz wykonania tłumaczenia. Po wybraniu odpowiednich usług router przekazuje kolejno zdjęcie do zczytania tekstu, a następnie do przeprowadzenia tłumaczenia. Po tych dwóch krokach rezultat jest zwracany użytkownikowi. 4. Organizacja pracy W trakcie prowadzenia projektu został wyodrębniony podział odpowedzialności za rozwój cześci serwerowej i mobilnej. Za część serwerową odpowiedzialny był Wojciech Mazur, natomiast za część mobilną Maurycy Michalski. Koordynowanie prac projektowych nie ograniczało się jedynie do funkcji nadzorczej. Każdy członek zespołu zajmował się rozwojem oprogramowania, jego testowaniem (zarówno pisaniem testów jednostkowych czy ręcznym wykonywaniu testów funkcjonalnych na prototypach, a na testach wydajnościowych kończąc) oraz tworzeniem dokumentacji w obu częściach systemu. Jako metodykę prowadzenia projektu wybraliśmy model iteracyjny. Podzieliliśmy listę zadań do zrealizowania na części do wykonania w poszczególnych iteracjach, zaczynając od tych najbardziej krytycznych z punktu widzenia aplikacji. 1. Zapoznanie się z technologiami aplikacji głównej Celem iteracji 1 było zaznajomienie się z technologiami potrzebnymi do zbudowania

5 trzonu aplikacji głównej. Technologie te zostały opisane w dokumentacji technicznej w punkcie Rdzeń aplikacji głównej. W trakcie iteracji powstało kilka niezależnych prototypów dla każdej z technologi, realizujących pewne funkcjonalności. Na tym etapie udało się pewne rzeczy zrealizować oraz udowodnić ich wykonalność a także sprawdzić, że pewne rozwiązania nie mogą zostać wdrożone. 2. Integracja głównej aplikacji Iteracja miała za zadanie, na podstawie prototypów lub przy ich wykorzystaniu, stworzenie elementów głównej aplikacji, a następnie zintegrowanie ich ze sobą. Podstawowymi częściami były: odpowiednio skonfigurowany trzon aplikacji, moduły odpowiedzialne za poszczególne funkcjonalności jak rozpoznawanie tekstu na obrazie czy tłumaczenie tekstu, moduł odpowiedzialny za komunikację między modułami. 3. Udostępnienie aplikacji jako usługi w środowisku rozproszonym W trakcie tej iteracji prace skupiały się na stworzeniu kanałów dostępu do aplikacji głównej, które umożliwiałby korzystanie z jej funkcjonalności. Były to: Web Service oraz dostęp w technologi REST. Dodatkowo stworzona została prosta strona www korzystająca z Web Service u, zapewniająca obsługę podstawowej funkcjonalności produktu. Protokół REST został przygotowany z myślą o aplikacji mobilnej. 4. Prosta aplikacja mobilna na platformę Android Prace nad aplikacją mobilną obejmowały stworzenie prostego prototypu o ograniczonej funkcjonalności. Na tym etapie zostały również sprawdzone możliwości aplikacji pod kilkoma względami metodą prototypowania. Efektem prac była prosty program, który komunikował się z główna aplikacją. 5. Rozwój i dopracowanie aplikacji mobilnej W trakcie tej fazy prace dotyczyły rozwoju funkcjonalności aplikacji i dopracowaniem jej działania. Prace te przebiegały w modelu przyrostowym. Efektem pracy była finalna wersja aplikacji mobilnej w pełni skomunikowanej z główna aplikacją. 6. Testy i poprawki aplikacji głównej i mobilnej Zakres prac w tej iteracji obejmował zarówno podstawowe testy funkcjonalne i pokryciowe, mające sprawdzić realizacje założeń funkcjonalnych czy wykryć niepoprawne zachowanie aplikacji w różnych sytuacjach, jak i zaawansowane testy wydajnościowe. Testom poddana została również komunikacja między platformą mobilną a główną aplikacją. 7. Stworzenie kompletnej dokumentacji Iteracja ta miała na celu stworzenie kompletnej dokumentacji - zarówno technicznej, procesowej jak i dokumentacji użytkownika. Wykorzystane do tego zostały materiały i dokumenty tworzone na bieżąco w trakcie powstawania produktu. W trakcie prowadzenia projektu korzystaliśmy z systemu do kordynowania prac projektowych - Trac, w którym między innymi rozdzielaliśmy prace do wykonania. Jako system kontroli wersji został użyty SVN.

6 5. Wyniki projektu Jako wynik prac projektowych powstała aplikacja realizująca zakładane funkcjonalności. Oprócz tego została stworzona dokumentacja techniczna zawierająca techniczne aspekty aplikacji, wykorzystanych technologii i testów pokazujących jej wydajność. Dla klienta została również opracowana dokumentacja użytkownika zawierająca zrzuty ekranu aplikacji dla łatwiejszego przedstawienia możliwości aplikacji. Weryfikacja użyteczności aplikacji została wykonana przez klienta w trakcie testów na fizycznym urządzeniu. Ocena użyteczności jest wysoka. Do interesujących aspektów możliwego rozwoju systemu należy zaliczyć między innymi: zwiększenie dokładności rozpoznawania tekstu na obrazie, wyodrębnianie spójnych fragmentów tekstu czy dynamiczne zastępowanie oryginalnego tekstu tym przetłumaczonym. Materiały źródłowe [1] Richard S. Hall, Karl Pauls, Stuart McCulloch, David Savage OSGI in Action - Creating Modular Applications in Java. Manning, 2010. [2] Binildas C. A. Service Oriented Java Business Integration - Enterprise Service Bus integration solutions for Java developers. Packt Publishing Ltd., March 2008. [3] Kent Ka Iok Tong. Developing Web Services with Apache CXF and Axis2. TipTec Development, Third edition January 2010. [4] Reto Meier. Professional Android 2 Application Development. Wiley Publishing, Inc., 2010. [5] Fuse ESB - based on Apache ServiceMix http://fusesource.com/products/enterpriseservicemix/. [6] Adrian Trenaman technical blog http://trenaman.blogspot.com/.