Project 2 for Microsoft Azure on WUT

Overview

azure-proj2

Project 2 for Microsoft Azure on WUT

Table of contents

The Team

Tematyka projektu

W czasach niedoboru żywności na świecie niezwykle istotnym zagadnieniem okazuje się poszukiwanie sposobów, dzieki którym produkcja jedzenia stanie się bardziej wydajna. Obecnie, w niektórych regionach świata straty spowodowane chorobami roślin sięgają nawet 100%.

Aplikacja ma na celu wsparcie rolników - umożliwia zeskanowanie zdjęcia liścia w celu postawienia diagnozy. W wyniku użytkownik otrzymuje gatunek rośliny, z jakiej pochodzi liść, a także diagnozę, czy roślina jest zdrowa lub jaką z chorób posiada. Obecnie w aplikacja umożliwia diagnostykę dla:

  • jabłek - liść zdrowy/ apple scab( parch jabłoni)/ apple black rot (czarna zgnilizna)/ cedar apple rust
  • kukurydzy - liść zdrowy/ corn common rust (rdza zwykła) / gray leaf spot (szara plamistość liści)/ northern leaf blight
  • pomidor - liść zdrowy/ late blight/ leaf mold/ septoria leaf spot/ two-spotted spider mite/ mosaic virus/ target spot/ yellow curl virus

W przyszłości możliwe jest rozszerzenie zakresu funckjonowania aplikacji o kolejne gatunki oraz choroby.

Architektura

Aplikacja korzysta z serwisów oferowanych w całości przez platformę Azure. Schemat działania przedstawia się następująco: Optional Text

Funkcjonalności

  • Rozpoznawanie chorób roślin na podstawie wprowadzonych zdjęć
  • Zapisywanie zwracanych predykcji w bazie danych
  • Analizowanie chorób roślin w zwracanych przez aplikację predykcjach
  • Prezentowanie panujących tendencji dotyczących chorób roślin

Technologie

W projekcie wykorzystane zostały nastepujące technologie:

  • Azure Custom Vision
  • Azure Postgresql
  • Azure Web App
  • Azure Key Vault

Opis rozwiązania

1. Stworzenie modelu

Do wytrenowania modelu wykorzystano serwis Custom Vision. W obrębie serwisu zostały umieszczone zdjęcia liści zdrowych oraz z różnymi chorobami. W ramach zbioru trenującego zostało wykorzystanych 200 zdjęć każdego rodzaju liścia oraz choroby. Dane te pochodziły z https://www.kaggle.com/vipoooool/new-plant-diseases-dataset. Następnie model został wytrenowany. Wyniki można uznać za zadowalające, co potwierdziły wykonywane na zbiorze testowym doświadczenia. Wyniki modelu przedstawiają się następująco:

Optional Text

2. Stworzenie aplikacji webowej

Do stworzenia aplikacji webowej wykorzystano Pythonowego frameworka Flask. Aplikacja umożliwia wgranie własnego zdjęcia i zwrócenie dla niego wyników predykcji. Dostępna jest również karta ze statystykami, gdzie widnieją najpopularniejsze wyniki z ostatniego tygodnia. Z aplikacją powiązana jest baza danych. Aplikacja dostepna jest w Azure App Service pod adresem: https://plant-disease-detector.azurewebsites.net/stats

3. Stworzenie bazy danych

Baza danych stworzona została w Azure Postgresql. W bazie przechowywane są wgrane zdjęcie, wynik predyckji oraz data. Dane te wykorzystywane są do pokazywania statystyk w aplikacji w zakładce Statistics.

4. Wizualizacja wyników

Projekt zakładał podpięcie Power BI do bazy danych, jednak napotkano problem - konta studenckie nie mogły zostać zarejestrowane:

Twój dział IT wyłączył rejestrację dla produktu Microsoft Power BI. Skontaktuj się z nim, aby ukończyć rejestrację.

W związku z tym zdecydowano się zamiast tego zrobić podsumowanie w dodatkowej zakładce w aplikacji webowej.

5. Przechowywanie sekretów

Bezpieczne przechowywanie sekretów, kluczów dostępowych do bazy danych, zostało zapewnione dzięki wykorzystaniu Azure Key Vault. Jest to usługa chmurowa, zapewnia bezpieczne przechowywanie i łatwy dostęp do sekretów, do ktorych dostęp chcemy kontrolować.

Demo działania

Demo działania aplikacji - https://www.youtube.com/watch?v=jhdA8_jOyJY&feature=youtu.be

a package that provides a marketstrategy for whitelisting on golem

filterms a package that provides a marketstrategy for whitelisting on golem watching requestor logs distribute 10 tasks asynchronously is fun. but you

KJM 3 Aug 03, 2022
Is a util for xferring skinning from one mesh to another

maya_pythonplugins skinTo: Is a util for xferring skinning from one mesh to another args: :param maxInfluences: is the number of max influences on the

James Dunlop 2 Jan 24, 2022
Fixes your Microphone Level to one specific value.

MicLeveler Fixes your Microphone Level to one specific value. Intention A friend of mine has the problem that some programs are setting his microphone

Moritz Timpe 2 Oct 14, 2021
Blender 3.1 Alpha (and later) PLY importer that correctly loads point clouds (and all PLY models as point clouds)

import-ply-as-verts Blender 3.1 Alpha (and later) PLY importer that correctly loads point clouds (and all PLY models as point clouds) Latest News Mand

Michael Prostka 82 Dec 20, 2022
Blender addon - Breakdown in object mode

Breakdowner Breakdown in object mode Download latest Demo Youtube Description Same breakdown shortcut as in armature mode in object mode Currently onl

Samuel Bernou 4 Mar 30, 2022
A TODO-list tool written in Python

PyTD A TODO-list tool written in Python. Its goal is to provide a stable posibility to get a good view over all your TODOs motivate you to actually fi

1 Feb 12, 2022
A simple program which gets a file(CSV/Excel) with tasks and creates different variants

TestMakerProject A simple program which gets a file(CSV/Excel) with tasks and creates different variants The main program is QTengine.py You only have

George 3 Nov 18, 2021
BlueBorne Dockerized

BlueBorne Dockerized This is the repo to reproduce the BlueBorne kill-chain on Dockerized Android as described here, to fully understand the code you

SecSI 5 Sep 14, 2022
A supercharged version of paperless: scan, index and archive all your physical documents

Paperless-ng Paperless (click me) is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily sear

Jonas Winkler 5.3k Jan 09, 2023
Python project setup, updater, and launcher

Launcher Python project setup, updater, and launcher Purpose: Increase project productivity and provide features easily. Once installed as a git submo

DAAV, LLC 1 Jan 07, 2022
Audio2Face - a project that transforms audio to blendshape weights,and drives the digital human,xiaomei,in UE project

Audio2Face - a project that transforms audio to blendshape weights,and drives the digital human,xiaomei,in UE project

FACEGOOD 732 Jan 08, 2023
PIP Manager written in python Tkinter

PIP Manager About PIP Manager is designed to make Python Package handling easier by just a click of a button!! Available Features Installing packages

Will Payne 9 Dec 09, 2022
Installer, package manager, build wrapper and version manager for Piccolo

Piccl Installer, package manager, build wrapper and version manager for Piccolo

1 Dec 19, 2021
Craxk is a SINGLE AND NON-REPLICABLE Hash that uses data from the hardware where it is executed to form a hash that can only be reproduced by a single machine.

What is Craxk ? Craxk is a UNIQUE AND NON-REPLICABLE Hash that uses data from the hardware where it is executed to form a hash that can only be reprod

5 Jun 19, 2021
A Lego Mindstorm robot for dealing out cards based on a birds-eye view of a poker table and given ArUco fiducial tags.

A Lego Mindstorm robot for dealing out cards based on a birds-eye view of a poker table and given ArUco fiducial tags.

4 Dec 06, 2021
Library for RadiaCode-101

RadiaCode Библиотека для работы с дозиметром RadiaCode-101, находится в разработке - API не стабилен и возможны изменения. Пример использования (backe

Maxim Andreev 56 Nov 29, 2022
Tracking development of the Class Schedule Siri Shortcut, an iOS program that checks the type of school day and tells you class scheduling.

Class Schedule Shortcut Tracking development of the Class Schedule Siri Shortcut, an iOS program that checks the type of school day and tells you clas

3 Jun 28, 2022
Toppr Os Auto Class Joiner

Toppr Os Auto Class Joiner Toppr os is a irritating platform to work with especially for students it takes a while and is problematic most of the time

1 Dec 18, 2021
A script to add issues to a project in Github based on label or status.

Add Github Issues to Project (Beta) A python script to move Github issues to a next-gen (beta) Github Project Getting Started These instructions will

Kate Donaldson 3 Jan 16, 2022
Repo to demo translating colab/jupyter notebook to streamlit webapp

Repo to demo translating colab/jupyter notebook to streamlit webapp

Marisa Smith 2 Feb 02, 2022