Skip to content

iOS Informacje o projekcie

qaziok edited this page Jun 20, 2023 · 20 revisions

Dokumentacja Projektu grupowego

Informacje o projekcie

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 dokumentu/akronim: Informacje o projekcie – IoP Nr wersji: 1.01
Odpowiedzialny za dokument: Mateusz Sowiński, Jakub Dajczak Data pierwszego sporządzenia: 30.01.2023
Data ostatniej aktualizacji: 30.01.2023
Studia I stopnia, inżynierskie
Semestr realizacji Projektu grupowego: 1

Historia zmian

Wersja Opis modyfikacji Rozdział / strona Autor modyfikacji Data
1.00 pierwsza wersja całość Mateusz Sowiński 30.01.2023
1.01 Uzupełnienie informacji całość Jakub Dajczak 30.01.2023

Spis treści

1. Wprowadzenie - o dokumencie

1.1. Cel dokumentu

Celem dokumentu jest uporządkowanie podstawowych informacji o projekcie, wykonawcach, temacie, zakresie projektu, wstępnie planowanym zakresie prac, zarządzaniu jakością i wykonanie uproszczonej analizy ryzyka.

1.2. 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.3. Terminologia

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

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.

Discord – bezpłatna usługa internetowa oparta na chmurze, służąca do rozmów głosowych i komunikacji za pomocą wiadomości tekstowych z możliwością umieszczania zdjęć oraz filmów, zaprojektowana początkowo jako platforma skierowana dla graczy komputerowych.

Messenger (inaczej: Facebook Messenger) – komunikator internetowy stworzony przez Metę. Służy do wysyłania wiadomości, zdjęć, filmów, naklejek i innych plików, a także pozwala reagować na wiadomości znajomych i wchodzić w interakcje z botami.

2. Cel i założenia projektu

2.1. Cel projektu

Celem projektu jest rozwój aplikacji mobilnej dla osób niewidomych, która umożliwi rozpoznawanie w czasie rzeczywistym polskich banknotów, na podstawie obrazu z kamery

2.2. Założenia projektu

  • 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

3. Organizacja projektu

3.1. Zespół projektowy

Tabela 3.1. Członkowie zespołu projektowego

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

3.2. Nadzór nad projektem

Tabela 3.2. Osoby pełniące nadzór nad projektem

Nazwa katedry Katedra Architektury Systemów Komputerowych
Opiekun mgr inż. Jan Cychnerski e-mail: jan.cychnerski@pg.edu.pl
Klient (osoba reprezentująca klienta) mgr inż. Jan Cychnerski e-mail: jan.cychnerski@pg.edu.pl
Koordynator katedralny dr inż. Jarosław Kuchta e-mail: jarkucht@pg.edu.pl
Koordynator wydziałowy dr inż. Sławomir Gajewski e-mail: slawomir.gajewski@eti.pg.edu.pl

3.3. Infrastruktura komunikacyjna

  1. Komunikacja z klientem/opiekunem projektu:
    • komunikacja odbywała się w sposób hybrydowy,
    • kierownik projektu spotykał się z opiekunem raz na dwa tygodnie w celu ustalenia dalszych zadań oraz podsumowania wykonanych zadań, następnie przekazywał informację otrzymane od opiekuna na serwisie GitHub w zakładce dyskusje.
    • opiekun był dostępny na własnym serwerze discord gdzie został założony kanał specialnie dla zespołu do komunikacji online.
  2. Kanały komunikacji:
    • Serwer Discord - chat, kanał głosowy
    • GitHub - repozytorium kodu, dokumentacja (wiki), zadania (issues)
    • Messanger - chat, kanał głosowy
  3. Proces wytwarzania oprogramowania:
    • Stworzenie zadania (issue) na GitHub
    • Stworzenie odgałęzienia (branch) od głównej gałęzi (master branch)
    • Stworzenie kodu/dokumentacji/zbioru danych
    • Wystawienie prośby o przyłączenie zmian (pull request) do głównej gałęzi (master branch)
    • Weryfikacja poprawności wprowadzonych zmian przez Lidera projektu (Jakub Dajczak)
    • Ewentualne poprawki i ponowna weryfikacja poprawności
    • Przyłączenie zmian (merge) do głównej gałęzi (master branch)
  4. Zadania Lidera projektu:
    • Kontakt z opiekunem projektu
    • Kontakt z klientem
    • Koordynacja przebiegu prac
    • Weryfikacja poprawności wprowadzonych zmian
    • Rozwiązywanie zaistniałych konfliktów
    • Wsparcie swoją wiedzą innych członków zespołu

3.4. Zarządzanie jakością w projekcie

Zapewnienie jakości w projekcie odbywa się przez:

  • Sprawdzenia poprawności/jakości kodu/dokumentacji/zbioru danych (pull request)
  • Wewnętrzne testy manualne sprawdzające jakość wprowadzonych zmian
  • Spotkania z opiekunem/klientem, gdzie ustalany jest zakres prac na najbliższy okres, oraz datę następnego spotkania

4. Analiza ryzyka i zarządzanie ryzykiem w projekcie

Tabela 4.1. Ryzyka w projekcie

Lp. Nazwa ryzyka Ocena prawdop. wystąpienia Opis potencjalnych skutków Sposoby rozwiązywania problemów
1. Niedotrenowanie sieci neuronowej odpowiedzialnej za rozpoznawanie banknotów na zdjęciach 10% Wysoki współczynnik niepewności przy rozpoznawaniu banknotu; Wysoki wskaźnik błędu w procesie rozpoznawania banknotów Ponowne uczenie sieci na nowy/zmodyfikowanym zbiorze danych. Jeśli pomimo zmian w zbiorze uczącym problem nadal występuje, należy zastanowić się nad sposobem gromadzenia danych uczących. Alternatywnie można zastanowić się nad zmianą parametrów wejściowych o które opieramy naszą sieć neuronową
2. Przetrenowanie sieci neuronowej odpowiedzialnej za rozpoznawanie banknotów na zdjęciach 10% Wysoki współczynnik poprawnego rozpoznania banknotu na zdjęciach z grupy uczącej oraz niski/średni współczynnik poprawnego rozpoznania banknotu na zdjęciach z innych źródeł Ponowne uczenie sieci na nowy/zmodyfikowanym zbiorze danych. Przygotowanie bardziej zróżnicowanego zbioru danych uczących. Alternatywnie można zastanowić się nad zmianą parametrów wejściowych o które opieramy naszą sieć neuronową
3. Niedotrzymanie terminu oddania etapu projektu 20% Nakładanie się prac dwóch etapów projektu Ustalenie z opiekunem projektu nowych terminów oddania poszczególnych etapów
4. Nieznany błąd krytyczny aplikacji 5% Aplikacja nie działa poprawnie z nieznanego nam powodu. Nie posiadamy wiedzy potrzebnej, aby ją naprawić Eskalacja problemu do opiekuna projektu; Konsultacje z doświadczonym deweloperem IOS
5. Niska intuicyjność użytkowania aplikacji 15% Użytkownicy nie znają funkcji dostępnych w aplikacji, mają problemy z użytkowaniem aplikacji Eskalacja problemu do opiekuna projektu; Konsultacje z doświadczonym Analitykiem Biznesowym lub Managerem Projektu w celu lepszego poznania potrzeb klienta. Alternatywnie: zebranie feedbacku od użytkowników aplikacji. Na podstawie zebranej wiedzy należy dostosować funkcje w systemie do potrzeb klienta
6. Problemy w kontakcie z klientem 20% Brak zaangażowania klienta w proces tworzenia aplikacji. Odpowiedzi klienta na zadane pytania pojawiają się z dużym opóźnieniem Eskalacja problemu do opiekuna projektu; Ustalenie wspólnego terminarza spotkań, w trakcie których będziemy mogli zadać klientowi pytania; Ustalenie kanałów komunikacji z klientem
Clone this wiki locally