Skip to content

iOS Raport semestralny

qaziok edited this page Jun 20, 2023 · 23 revisions

Dokumentacja Projektu grupowego

Raport semestralny

Wydział Elektroniki, Telekomunikacji i Informatyki
Politechnika Gdańska

Nazwa i akronim projektu: Aplikacja iOS wykorzystująca głębokie sieci neuronowe do rozpoznawania polskich banknotów dla osób niewidomych Zleceniodawca: mgr inż. Jan Cychnerski
Numer zlecenia: 27@KASK'2023 Kierownik projektu: Jakub Dajczak Opiekun projektu: mgr inż. Jan Cychnerski
Nazwa / kod dokumentu: Raport semestralny – RS Nr wersji: 1.02
Odpowiedzialny za dokument: Dajczak Jakub Data pierwszego sporządzenia: 28.01.2023
Data ostatniej aktualizacji: 30.01.2023
Semestr realizacji Projektu grupowego: 1

Historia dokumentu

Wersja Opis modyfikacji Rozdział / strona Autor modyfikacji Data
1.00 Raport Całość Dajczak Jakub 28.01.2023
1.01 Dodanie opisów Całość Dajczak Jakub 30.01.2023
1.02 Dodanie dokumentów do tabeli załączniki Stanisław Smykowski 30.01.2023

Spis treści

1. Wprowadzenie - o dokumencie

1.1. Cel dokumentu

Celem dokumentu jest okresowe wskazanie wykonanych prac z podaniem ich krótkiej charakterystyki, wskazanie rozbieżności wykonywanych prac w stosunku do planowanych, podsumowanie prac z wykazaniem pracy zespołowej, krótkie wskazanie planów na II semestr oraz wyspecyfikowanie listy dokumentów, wytworzonych w projekcie (wersji końcowych), które zostały umieszczone i zatwierdzone przez opiekuna w serwisie SPG.

1.2. Zakres dokumentu

Dokument opisuje cele, zadania oraz osiągnięcia i pozwala zobrazować jak przebiegała praca w tym semestrze. Na końcu dokumentu znajduje się tabela załączników, gdzie można zapoznać się z innymi aspektami naszej pracy.

1.3. Odbiorcy

Odbiorcami dokumentu są odpowiednio:

  • Opiekun projektu: mgr inż. Jan Cychnerski
  • Koordynator katedralny: dr inż. Jarosław Kuchta, prof. uczelni
  • Członkowie zespołu projektowego:
    • Jakub Dajczak
    • Anton Delinac
    • Stanisław Smykowski
    • Mateusz Sowiński
    • Miłosz Chojnacki

1.4. Terminologia

iOS – system operacyjny Apple Inc. dla urządzeń mobilnych iPhone, iPod touch oraz iPad.

Android – system operacyjny z jądrem Linux dla urządzeń mobilnych takich jak telefony komórkowe, smartfony, tablety i netbooki.

sieć neuronowa - statystyczny model obliczeniowy stosowany w uczeniu maszynowym.

open-source - rodzaj oprogramowania komputerowego, w którym kod źródłowy jest wydawany na podstawie licencji, na mocy której właściciel praw autorskich przyznaje użytkownikom prawa do badania, zmiany i rozpowszechniania oprogramowania w ramach licencji wolnego oprogramowania.

GitHub - hostingowy serwis internetowy przeznaczony do projektów programistycznych wykorzystujących system kontroli wersji Git.

OneDrive - wirtualny dysk autorstwa Microsoft.

App Store – platforma dystrybucji cyfrowej z aplikacjami dla iPada, iPhone'a oraz iPoda touch, stworzona przez Apple Inc.

Tensorflow - biblioteka programistyczna napisana przez Google Brain Team. Wykorzystywana jest w uczeniu maszynowym i głębokich sieciach neuronowych.

2. Rezultaty projektu

2.1. Założenia początkowe

  • rozbudowa zbioru danych (filmów polskich banknotów)

  • budowa, trening i testy sieci neuronowych do detekcji i/lub klasyfikacji obrazów banknotów

  • implementacja aplikacji mobilnej na system iOS przystosowanej do wykorzystania przez osoby niewidome oraz niedowidzące, umożliwiającej uruchomienie wytworzonych sieci neuronowych w czasie rzeczywistym

  • publikacja zbioru danych oraz kodu jako projekt open-source

2.2. Zakres wykonanych prac i ich charakterystyka

2.2.1. Publikacja zbioru danych oraz kodu

Wraz z zespołem odpowiedzialnym za aplikację mobilną na system Android założyliśmy z pomocą opiekuna repozytorium GitHub oraz stworzyliśmy projekt, na którym tworzymy zadania i przypisujemy do odpowiednich osób. Kod aplikacji udostępniamy na licencji GPL-3.0.

Aktualnie posiadany zbiór danych udostępniliśmy w usłudze OneDrive, która pozwala nam na bieżąco aktualizować zbiór danych. W przyszłości planujemy udostępnić gotowy zbiór w odpowiednim miejscu, gdzie będzie ogólnodostępny.

2.2.2. Rozbudowa zbioru danych

Głównym zadaniem było posprzątanie danych, które otrzymaliśmy od poprzednich zespołów. Wraz z zespołem, który realizował aplikację na system Android, podzieliliśmy się po jednej osobie na banknot. Dodatkowo za radą opiekuna projektu, postanowiliśmy zebrać metadane na temat zdjęć, które posiadaliśmy. Posłużyły nam one, do jakich określenia danych potrzebujemy więcej. Podstawowymi parametrami zdjęć były: lokalizacja, oświetlanie, wyraźność zdjęcia, w jakiej ręce trzymany jest banknot (lub czy gdzieś leży), awers czy rewers banknot oraz możliwe zgięcia.

Następnym etapem było wykonywanie zdjęć/filmów, na które przeznaczyliśmy czas świąteczny oraz styczeń. Jednak głównym problemem w zespole okazał się brak czasu spowodowany dużą liczbą projektów na uczelni.

2.2.3. Budowa i trening sieci neuronowych

Do treningu sieci korzystaliśmy z serwera DGX station udostępnionego nam przez Katedrę Inżynierii Biomedycznej. Do implementacji sieci neuronowej wykorzystano bibliotekę Tensorflow w wersji 2.4.1 opartą na języku Python 3.8.10. Komponenty fizyczne tj. model karty graficznej - użytej do treningu modelu predykcyjnego to NVIDIA A40.

2.2.4. Przygotowanie aplikacji mobilnej

Jako architekturę aplikacji wybrano architekturę MV (Model-View). Wzorzec MV(Model-View) jest popularnym wzorcem projektowym w tworzeniu oprogramowania, który oddziela dane i stan aplikacji (Model) od jej prezentacji (Widok). Model przechowuje dane aplikacji, a Widok je wyświetla. Widok aktualizuje model, gdy pojawiają się interakcje użytkownika, a model aktualizuje widok, gdy zmieniają się dane. Takie rozdzielenie problemów poprawia czytelność kodu, łatwość utrzymania i testowania.

2.3. Charakterystyka pracy zespołowej

Każda osoba w naszym zespole miała swoją rolę oraz zadania, za które była odpowiedzialna.

Lp. Imię i nazwisko członka zespołu Rola w projekcie E-mail kontaktowy
1. Jakub Dajczak Project leader s184347@student.pg.edu.pl
2. Anton Delinac Machine Learning Developer s184673@student.pg.edu.pl
3. Stanisław Smykowski Data Engineer s184787@student.pg.edu.pl
4. Mateusz Sowiński Data Engineer s165434@student.pg.edu.pl
5. Miłosz Chojnacki IOS Developer s184934@student.pg.edu.pl

Za treningi sieci odpowiedzialny był Anton Delinac, pliki z serwisu OneDrive przesłał na serwer Jakub Dajczak. Przygotowywaniem danych zajmowali się Stanisław Smykowski oraz Mateusz Sowiński, za aplikację mobilną odpowiedzialny był Miłosz Chojnacki.

Zadania przypisywaliśmy z wykorzystaniem systemu GitHub i wbudowanej w platformę funkcji projektu. Każdy z członków miał możliwość ich podglądu oraz edycji. Plan zadań ustalał kierownik z klientem/opiekunem projektu. Spotkania odbywały się co 2 tygodnie(kiedy była taka możliwość). Trwały w okolicach 40-60 min. Omawiany był na nich dotychczasowy progres, wykonane zadania i przyszłe cele. Kierownik przygotowywał podsumowanie dotyczące tego spotkania i udostępniał je na serwisie GitHub korzystając z funkcji dyskusji.

Kierownik utworzył na serwisie GitHub specjalną Wiki na której, możliwe jest wspólne edytowanie plików potrzebnych do przygotowania na koniec semestru. Dokumentacja powstała z pomocą wszystkich członków zespołu.

Podczas sprzątania i analizy danych z poprzednich lat, wraz z zespołem, który realizował aplikację na system Android, podzieliliśmy się po jednej osobie na banknot. W naszym zespole to był następujący podział

Członek zespołu Banknot
Jakub Dajczak None
Anton Delinac 100
Stanisław Smykowski 50
Mateusz Sowiński 500

2.4. Osiągnięte wyniki

2.4.1. Sieć neuronowa

Wyniki sieci nie robią wrażenia, jednak pozostaje cały semestr na szkolenie tej sieci.

2.4.2. Aplikacja mobilna

Działa, implementuje część wytycznych skierowwanych do osób niewidomych.

2.5. Rozbieżności i zmiany w realizacji projektu

Problematycznym okazał się czas i pogodzenie zadań wraz z rosnącą liczbą zadań i projektów pod koniec semestru. W planach było wykonanie szczegółowej instrukcji na temat "Jak poprawnie robić zdjęcia banknotom", jednak taka nie powstała. Zbieranie danych również okazało się problematyczne - również związane z brakiem czasu, ale i wyjazdami poszczególnych członków zespołu. Planujemy przeznaczyć na to początek II semestru, korzystając z miarę spokojnego początku.

2.6. Postanowienia

Na drugi semestr planujemy przygotować finalną aplikację mobilną, z pomocą finansową udostępnić ją w sklepie App Store. Sieć neuronową, którą przygotowujemy, chcemy doszkolić i wybrać najlepszą pomiędzy dwoma zespołami (Android i iOS). Chcemy również przeprowadzić testy z potencjalnymi użytkownikami.

2.7. Plany na kolejny semestr prac

  • Wypuszczenie aplikacji do sklepu
  • Wybranie najlepszej sieci neuronowej
  • Testy z użytkownikami

3. Załączniki

Tabela. 3.1. Specyfikacja opracowanych dokumentów w 1 semestrze

L.p. Nazwa dokumentu Nazwa pliku umieszczonego w SPG
1 Informacje o projekcie IoP.pdf
2 Dokumentacja techniczna projektu DTP.pdf
3 Harmonogram szczegółowy i specyfikacja wymagań HSiSW.pdf
4 Plakat informacyjny projektu grupowego PG_WETI_Plakat.pdf
5 Raport semestralny RS.pdf
Clone this wiki locally