Skip to content

Latest commit

 

History

History
419 lines (348 loc) · 14.8 KB

File metadata and controls

419 lines (348 loc) · 14.8 KB

한국어 | English

CropDoctor

D8771DDC-42B5-42E6-922B-01C0443DB602

🍀 Introduction

저희 Cropdoctor는 사용자의 작물의 질병을 진단해주는 서비스로 질병에 맞는 해결책을 제시해드립니다. 👩🏻‍🌾

📌 System Architecture

MacBook Pro 16_ - 1

📚 TECH STACKS

Frontend Backend Monitoring Database&Storage DevOps AI
























💻 Installation Process

Docker repository clone

git clone --recursive https://github.com/S-V-23-BootCamp-Team-F/docker.git

Set .env in the backend folder

SECRET_KEY = {Django SECRET_KEY}

# AWS S3 연동
AWS_ACCESS_KEY = {AWS_ACCESS_KEY}
AWS_SECRET_KEY = {AWS_SECRET_KEY}
AWS_REGION = {AWS_REGION}

# S3 Storages
S3_BUCKET_NAME = {S3_BUCKET_NAME}

MYSQL_NAME = {MYSQL_NAME}
MYSQL_USER = {MYSQL_USER}
MYSQL_PASSWORD = {MYSQL_PASSWORD}
MYSQL_HOST = {MYSQL_HOST}

Run Docker-compose

docker-compose up —build

🗂 Submodule Directories

FRONTEND
📦frontend
┣ 📂.github
┣ 📂dist
┣ 📂node_modules
┣ 📂public
┣ 📂src
┃ ┣ 📂components
┃ ┃ ┣ 📜Cropchart.tsx
┃ ┃ ┣ 📜DetailModalscreen.tsx
┃ ┃ ┣ 📜Hamnav.tsx
┃ ┃ ┣ 📜Historycard.tsx
┃ ┃ ┣ 📜LoadingPage.tsx
┃ ┃ ┣ 📜LogInPage.tsx
┃ ┃ ┣ 📜Longnav.tsx
┃ ┃ ┣ 📜Navbar.tsx
┃ ┃ ┣ 📜Periodchart.tsx
┃ ┃ ┣ 📜Periodline.tsx
┃ ┃ ┗ 📜SignupPage.tsx
┃ ┣ 📂fonts
┃ ┣ 📂images
┃ ┣ 📂pages
┃ ┃ ┣ 📜AbnomalResultPage.tsx
┃ ┃ ┣ 📜GetStart.tsx
┃ ┃ ┣ 📜HistoryPage.tsx
┃ ┃ ┣ 📜MainPage.tsx
┃ ┃ ┣ 📜NomalResultPage.tsx
┃ ┃ ┗ 📜StasticsPage.tsx
┃ ┣ 📂utils
┃ ┣ 📜App.css
┃ ┣ 📜App.tsx
┃ ┣ 📜Cookie.ts
┃ ┣ 📜index.css
┃ ┣ 📜main.tsx
┃ ┣ 📜media.css
┃ ┗ 📜vite-env.d.ts
┣ 📜.dockerignore
┣ 📜.git
┣ 📜.gitignore
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜index.html
┣ 📜index.tsx
┣ 📜package-lock.json
┣ 📜package.json
┣ 📜postcss.config.cjs
┣ 📜tailwind.config.cjs
┣ 📜tsconfig.json
┣ 📜tsconfig.node.json
┗ 📜vite.config.ts
BACKEND
📦backend
┣ 📂.github
┣ 📂backend
┃ ┣ 📜__init__.py
┃ ┣ 📜asgi.py
┃ ┣ 📜celery.py
┃ ┣ 📜settings.py
┃ ┣ 📜urls.py
┃ ┗ 📜wsgi.py
┣ 📂members
┃ ┣ 📂migrations
┃ ┣ 📜__init__.py
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜models.py
┃ ┣ 📜serializer.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┗ 📜views.py
┣ 📂plants
┃ ┣ 📂inference
┃ ┃ ┣ 📂models
┃ ┃ ┃ ┣ 📂hub
┃ ┃ ┃ ┣ 📂segment
┃ ┃ ┃ ┣ 📜__init__.py
┃ ┃ ┃ ┣ 📜common.py
┃ ┃ ┃ ┣ 📜experimental.py
┃ ┃ ┃ ┣ 📜tf.py
┃ ┃ ┃ ┣ 📜yolo.py
┃ ┃ ┃ ┣ 📜yolov5l.yaml
┃ ┃ ┃ ┣ 📜yolov5m.yaml
┃ ┃ ┃ ┣ 📜yolov5n.yaml
┃ ┃ ┃ ┣ 📜yolov5s.yaml
┃ ┃ ┃ ┗ 📜yolov5x.yaml
┃ ┃ ┣ 📂utils
┃ ┃ ┃ ┣ 📜__init__.py
┃ ┃ ┃ ┣ 📜activations.py
┃ ┃ ┃ ┣ 📜augmentations.py
┃ ┃ ┃ ┣ 📜autoanchor.py
┃ ┃ ┃ ┣ 📜autobatch.py
┃ ┃ ┃ ┣ 📜callbacks.py
┃ ┃ ┃ ┣ 📜dataloaders.py
┃ ┃ ┃ ┣ 📜downloads.py
┃ ┃ ┃ ┣ 📜general.py
┃ ┃ ┃ ┣ 📜loss.py
┃ ┃ ┃ ┣ 📜metrics.py
┃ ┃ ┃ ┣ 📜plots.py
┃ ┃ ┃ ┣ 📜torch_utils.py
┃ ┃ ┃ ┗ 📜triton.py
┃ ┃ ┣ 📜cucumber.pt
┃ ┃ ┣ 📜detect.py
┃ ┃ ┣ 📜export.py
┃ ┃ ┣ 📜grape.pt
┃ ┃ ┣ 📜paprika.pt
┃ ┃ ┣ 📜pepper.pt
┃ ┃ ┣ 📜strawberry.pt
┃ ┃ ┗ 📜tomato.pt
┃ ┣ 📂migrations
┃ ┣ 📜__init__.py
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜models.py
┃ ┣ 📜serializer.py
┃ ┣ 📜storagess.py
┃ ┣ 📜tasks.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┗ 📜views.py
┣ 📂static
┣ 📜.env
┣ 📜.git
┣ 📜.gitignore
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜manage.py
┗ 📜requirements.txt

Flowchart

flowchart drawio (5)

🔍 Features


회원가입/ 로그인 페이지

  • JWT토큰을 이용한 회원가입/로그인 페이지이다.

진단/진단결과 페이지

  • 병해작물 이미지를 선택하여 AI로 진단하는 페이지이며, 병해 작물일 경우 원인과 해결책등을 함께 제공한다.

히스토리/히스토리삭제

  • 로그인 시에만 이용가능한 기능으로 자신이 진단한 작물을 카테고리별로 모아 볼 수 있다.
  • 히스토리 작물의 상세정보를 확인할 수 있고 이를 삭제할 수 있다.

통계 페이지

2A005C2A-E092-4315-8DE9-7F42D3C72641

  • 여태 Cropdoctor 진단 데이터를 토대로 통계를 나타낸다.
  • 작물 별 질병 수 통계
    • 작물 별로 어떤 질병에 많이 걸렸는지 바 차트형태로 정보를 제공한다.
  • 월 별 질병 수 통계
    • 카테고리에서 선택한 작물을 월 별로 질병이 흐름이 어떤지 선 그래프형태로 정보를 제공한다.

반응형 웹페이지

반응형

🖥️ Moniterings


Kibana Dashboard


Grafana Dashboard & Slack Alert


만약 Storage 용량이 85%가 넘으면 Grafana에서 Slack으로 알람을 보낸다.


Swagger

Frontend와 Backend 통신을 위한 API 문서화는 Swagger를 이용했다. 스크린샷 2023-02-01 오후 6 03 44 (1)

AI

AI는 YoloV5를 사용했으며, Precision-Confidence Curve과 학습 과정 및 성능은 다음과 같다. 그림1

results (1)

다음 사진은 AI가 실제로 분석한 사진들이다. Group 101111

👥 Our Team

Pictures
Name 강용민 이지윤 백동열 김유라 권찬영 황현성 이규현
Position Backend
DevOps
Frontend
Backend
DevOps
Frontend
Backend
Frontend
Backend
DevOps
AI
Backend
DevOps
Frontend
GitHub