-
Notifications
You must be signed in to change notification settings - Fork 2
iOS Raport końcowy
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 końcowy – RK | Nr wersji: 1 |
Odpowiedzialny za dokument: Dajczak Jakub | Data pierwszego sporządzenia: 04.06.2023 |
Data ostatniej aktualizacji: 20.06.2023 | |
Semestr realizacji Projektu grupowego: 2 |
Historia dokumentu
Wersja | Opis modyfikacji | Rozdział / strona | Autor modyfikacji | Data |
1.00 | Pierwsza wersja raportu | Całość | Wielu autorów - współpraca przeez LiveShare | 20.06.2023 |
- 1. Wprowadzenie - o dokumencie
- 2. Rezultaty projektu
- 3. Załączniki
Celem dokumentu jest końcowe wskazanie wykonanych prac z podaniem ich krótkiej charakterystyki (tylko w 2 semestrze), wskazanie rozbieżności wykonywanych prac w stosunku do planowanych, podsumowanie prac z wykazaniem pracy zespołowej oraz wyspecyfikowanie listy dokumentów wytworzonych w projekcie (wersji końcowych – lista obejmuje dokumenty z obu semestrów w wersjach ostatecznych), 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.
- dalsze treningi i testy sieci neuronowych do detekcji i klasyfikacji obrazów banknotów
- dopracowanie finalnej wersji 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, kodu jako projekt open-source oraz dokumentacji technicznej aplikacji
- testy z użytkownikami
Do treningu sieci korzystaliśmy z serwera DGX station udostępnionego nam przez Katedrę Inżynierii Biomedycznej oraz własnych zasobów. 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.
Udało się znacząco poprawić wydajność aplikacji oraz dodać automatycznie oświetlanie zbyt ciemnych klatek w stopniu zadowalającym. Nie udało się natomiast dodać menu i opublikować aplikacji na AppStore. Czas, który przypadł na stworzenie menu poświęcono na poprawienie wydajności, ponieważ problem ten okazał się bardziej złożony niż zakładano. Nie udało się opublikować aplikacji w AppStore ze względu na bardzo skomplikowany proces oraz potrzebny dość duży wkład finansowy.
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 pod linkiem https://github.com/cvlab-ai/polish_banknotes.
Testy z potencjalnymi użytkownikami nie odbyły się w trakcie trwania tego semestru
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 odpowiedzialni byli Anton Delinac oraz Jakub Dajczak. Za koordynację pracy zespołu, rozdzielanie zadań oraz kontrolowanie repozytorium kodu odpowiedzialny był Jakub Dajczak. Przygotowywaniem danych oraz dokumentów 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.
Sieć neuronowa trenowana przez nasz zespół nie osiągneła satysfakcynujących wyników, aby mogła zostać użyta w środowisku produkcyjnym. Z tego też powodu ostateczna wersja aplikacji korzysta z sieci wytrenowanej przez zespół tworzący aplikację na platformę Android.
Aplikacja przechwytuje klatki z tylnej domyślnej kamery, które są następnie wyświetlane na ekranie urządzenia mobilnego. Dla każdej klatki przeprowadzana jest klasyfikacja, która aktualizuje widok aplikacji. Aplikacja wspiera VoiceOver, czyli czytnik ekranu od firmy Apple dostępny na każdym urządzeniu od firmy Apple. Dodatkowo aplikacja automatycznie wykrywa, gdy kolejne klatki są zbyt słabo oświetlone (oświetlenie klatki mierzone jest w luksach), włącza automatycznie latarkę wbudowaną w telefon, na krótki okres czasu, powiadamiając jednocześnie o tym użytkownika komunikatem głosowym. Nasza aplikacja została przetestowana na urządzeniach nowszych, jak i starszych, zależało nam, aby użytkownik mógł korzystać z wszystkich funkcjonalności aplikacji w sposób płynny i przyjazny bez potrzeby posiadania najnowszego modelu telefonu, dlatego klasyfikacja została ograniczona tylko do niektórych klatek przechwytywanych przez kamerę telefonu.
Jak wspomniano wyżej, nie udało się uzyskać akceptowalnego wyniku dla sieci neuronowej. Wynikało to głównie z braku doświadczenia członków zespołu w dziedzin klasyfikacji obrazów. Problematycznym okazał się także czas i pogodzenie zadań wraz z rosnącą liczbą zadań i projektów pod koniec semestru. Zespół był zmuszony przeznaczyć większe środki na realizację projektów inżynierskich oraz zaliczenie przedmiotów.
Przez problemy z organizacją czasu oraz budżetu, zespół nie był w stanie zrealizować wszystkich założeń projektu. Nie udało się przeprowadzić testów z użytkownikami zewnętrznymi.
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 |
Tabela. 3.2. Specyfikacja opracowanych dokumentów w 2 semestrze
L.p. | Nazwa dokumentu | Nazwa pliku umieszczonego w SPG |
1 | Dokumentacja techniczna projektu | DTP2.pdf |
2 | Harmonogram szczegółowy i specyfikacja wymagań | HSiSW2.pdf |
3 | Plakat informacyjny projektu grupowego | PG_WETI_Plakat_sem2.pdf |
4 | Raport końcowy | RK.pdf |
- Informacje o projekcie
- Dokumentacja techniczna projektu
- Harmonogram szczegółowy i specyfikacja wymagań
- Plakat informacyjny Projektu grupowego
- Raport semestralny
- Raport końcowy