2 Home
Daniel Grabowski edited this page 2019-11-04 17:19:20 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

</head>

ZPRP LI0 Pracownia programowania

Rok akademicki 2019/2020

Karta projektu

Podstawowe dane

Imię i nazwisko

Daniel Grabowski

Numer indeksu

421801

Grupa

1LA

Numer wersji

1

Informacje o projekcie

Nazwa handlowa projektu

Squirrowse

Adres repozytorium git

http://git.wmi.amu.edu.pl/s421801/Squirrowse

Executive summary

(150-200 słów)

Projekt zakłada wykonanie aplikacji Squirrowse inteligentny monitoring. Jej zadaniem jest monitoring stanowiska pracy za pomocą kamery podłączonej do urządzenia na którym zostanie zainstalowany client.Użytkownik ma możliwość zdalnego podglądu obrazu z kamery lub archiwum poprzez webapi/Hub api lub stronę web z dowolnego urządzenia posiadającego przeglądarkę zgodną z bieżącymi standardami html5.

Aplikacja złożona z 3 modułów:

Client serwis uruchomiony na urządzeniu klienta, działający w tle i streamujący obraz z kamery na serwer.

 Backend odbiera przesłane wideo od clienta, dokonuje analizy przesłanego wideo, archiwizuje go, umożliwia dostęp do zasobów za pomocą webapi/signalR.

Frontend Webowy interfejs użytkownika pozwalający na podgląd na żywo z kamery clienta, przeglądanie archiwalnych wideo z kamery użytkownika i konfigurację klienta.

Opis pierwszego modułu (obowiązkowy)

Nazwa modułu

Squirrowse.Client

Techniczny opis modułu

(150-200 słów)

Założenia:

  • Aplikacja działa na systemie windows 10.
  • Użytkownik ma możliwość zdalnego włączenia/wyłączenia kamery.
  • Użytkownik może zdalnie zmienić konfigurację kamery.
  • Aplikacja działa w tle.

Aplikacja konsolowa napisana w C#8 z wykorzystaniem frameworka .netcore 3.0. Przechwytywanie obrazu z kamery odbywa się za pomocą biblioteki OpenCvSharp w wersji 4.* która jest wrapperem na OpenCV 4.1 (Open Source Computer Vision Library). Zgodnie z konfiguracją obraz zostanie następnie przesłany na serwer który dokonuje jego analizy(moduł 3).

Przesył odbywa się w czasie rzeczywistym protokołem binarnym MessagePack. W architekturze aplikacji wykorzystane są praktyki SOLID.

Wykorzystywane technologie

.netcore3.0,opencv,websockets,MessagePack,signalR, Microsoft Background Services,newtonsoft json,TCP,win32api,.netHostbuilder

Harmonogram prac

  1. Utworzenie aplikacji przechwytujacej obraz z kamery.
  2. Dodanie protokolu WS i polaczenie z server.
  3. Strumieniowe przesyłanie obrazu z kamery.
  4. Codecleanup

 

Opis drugiego modułu (nieobowiązkowy)

Nazwa modułu

Squirrowse.Web

Techniczny opis modułu

(150-200 słów)

Założenia:

  • Użytkownik ma dostęp do zasobów archiwum za pomocą przeglądarki z dowolnego urządzenia obsługującego bieżące standardy webowe.
  • Użytkownik ma możliwość zmiany konfiguracji klienta na wybranym urządzeniu
  • Użytkownik ma możliwość podglądu widoku z kamery w czasie *rzeczywistym.

Warstwa prezentacji SPA(single-page application) w frameworku aspnet. Pozwala na podgląd obrazu z kamery i przegląd archiwum.

Aplikacja wykorzystuje ASP.NET Core 3.*. Dane do prezentacji pobierane sa z serwisu backendowego (moduł 3) za pomocą protokołu SignalR oraz klasycznego rest-webapi. Strona korzysta z opensource toolkitu Bootstrap w wersji 4.*. Napisana w html5 oraz Harmony ES.

Wykorzystywane technologie

AspNetCore(MVC), signalR(websockets),TS,SPA net,HTML5,Harmony ES

Harmonogram prac

  1. Utworzenie strony startowej
  2. Połączenie do backendu za pomocą websockets
  3. Implementacja HTML5 player
  4. Implementacja Explorera archiwum
  5. Codecleanup

Opis trzeciego modułu (nieobowiązkowy)

Nazwa modułu

Squirrowse.Service

Techniczny opis modułu

(150-200 słów)

Aplikacja konsolowa z webhostem napisana w C#8 z wykorzystaniem frameworka .netcore 3.0. Hostowana za pomocą serwera web Kestrel.

Założenia:

  • Odbiera wideo od klientów
  • Dokonuje analizy w tym:
  • Wykrywanie ruchu
  • Wykrywanie postaci humanoidalnych
  • Archiwizuje przesłany obraz
  • Zapisuje w bazie wyniki analizy obrazu
  • Umożliwia dostęp do zasobów archiwum
  • Pozwala na podgląd wideo z kamery klienta w czasie rzeczywistym.

Aplikacja udostępnia SignalR Hubs API dla klienta pozwalającego na odbieranie i wysyłanie obrazu(moduł 1) oraz webapi dla frontend(moduł 2). Odebrany obraz jest analizowany za pomocą biblioteki OpenCVSharp 4.*będącej wrapperem na OpenCv 4.*. Wynikami analizy są zapisy wideo z kamer klientów zapisane serwerze oraz metadane wskazujące na moment i plik z wideo w którym nastąpiło wykrycie ruchu lub postaci humanoidalnej zapisane w bazie.

Wykorzystywane technologie

.netcore3,OpenCv,signalR,MediatR(CQS), xUnit(unit tests),Entity framework, MongoDB, Docker

Harmonogram prac

1.Utworzenie kontenera aplikacji (docker)

2.Przygotowanie serwera pod aplikacje

3.Implentacja SignalR Hubs

4.Implementacja SignalR Client-to-server streaming

5.Implementacja SignalR Server-to-client streaming

6.Implementacja wykrywania ruchu w OpenCV

7.Wykrywanie postaci za pomocą biblioteki OpenCV

8.Archiwizacja przesyłanych obrazów

9. Codecleanup

Stopka

Data

30 października 2019 r.

Podpis

 

 

</html>