-
Notifications
You must be signed in to change notification settings - Fork 2
iOS Raport semestralny
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 |
- 1. Wprowadzenie - o dokumencie
- 2. Rezultaty projektu
- 3. Załączniki
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.
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.
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
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.
-
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
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.
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.
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.
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.
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 |
Wyniki sieci nie robią wrażenia, jednak pozostaje cały semestr na szkolenie tej sieci.
Działa, implementuje część wytycznych skierowwanych do osób niewidomych.
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.
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.
- Wypuszczenie aplikacji do sklepu
- Wybranie najlepszej sieci neuronowej
- Testy z użytkownikami
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 |
- Informacje o projekcie
- Dokumentacja techniczna projektu
- Harmonogram szczegółowy i specyfikacja wymagań
- Plakat informacyjny Projektu grupowego
- Raport semestralny
- Raport końcowy