Skip to content

t2easure/deeplant-project

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

고려대학교 산학협력프로젝트 딥플랜트

image

개발기간: 2025.06 ~

Built with Python

프로젝트 개요

육류에 대한 고객/구매자의 맛에 대한 선호도(Tasty preference) 데이터를 육류 이미지와 분석된 미각 데이터로 나누어 체계적으로 수집하고 이를 기반으로 이미지 기반의 육류에 관한 상세한 맛 데이터를 자동으로 분류하고 예측하는 인공지능 예측 모델을 구축하여 향후 고객/구매자들에게 최적화된 육류 개인화 추천을 위한 시스템 개발을 목표로 하며 프로젝트를 추진했습니다.

서비스 화면

Web Admin

육류 및 유저 데이터의 조회/입력/수정/통계/예측 등 관리 및 조회가 가능한 어드민 웹 페이지입니다.

관리자 및 연구자가 사용하기 위한 페이지로 개발되었습니다.

접속 주소 : http://deeplant-web.s3-website.ap-northeast-2.amazonaws.com

home

Mobile App

육류 맛 예측 인공지능 위한 데이터 수집에 사용되는 어플리케이션입니다.
육류 이력 번호 조회, 사진 촬영, 관능평가 및 실험 데이터 등록, 조회, 수정이 가능합니다.

APK 설치 경로 : http://deeplant-web.s3-website.ap-northeast-2.amazonaws.com

프로젝트 구현

아키텍쳐 구조도

image

프로젝트 실행

Production 환경

  1. git repository clone

  2. [환경 변수 및 Secret 변수 설정]

  3. git push origin main

Develop 환경

Web

  1. git clone https://github.com/deun115/20242R0136COSE48002.git
  2. cd test-web
  3. npm install
  4. npm run start

App

  1. flutter 설치
  2. Android Studio를 활용하여 에뮬레이터 실행 혹은 실제 모바일 기기 연결
  3. git clone https://github.com/deun115/20242R0136COSE48002.git
  4. cd app/structure
  5. flutter pub get
  6. flutter run

Backend & MLflow 서버 실행

스크립트 기반 실행 (권장)

프로젝트의 백엔드와 MLflow 서버는 test-ML-backend/training_HSI/scripts/ 디렉토리에 있는 스크립트를 사용하여 실행할 수 있습니다.

1) MLflow 서버 실행

cd test-ML-backend/training_HSI/scripts/
./run_mlflow.sh
  • MLflow 서버가 포트 5000에서 실행됩니다
  • configs/mlflow_config.json의 설정을 기반으로 실행됩니다
  • 백엔드 스토어와 아티팩트 저장소를 자동으로 설정합니다

2) 백엔드 서버 실행

cd test-ML-backend/training_HSI/scripts/
./run_backend.sh
  • FastAPI 백엔드 서버가 포트 8000에서 실행됩니다
  • Celery 워커가 백그라운드에서 실행됩니다
  • tmux 세션을 사용하여 여러 프로세스를 관리합니다

3) 포트 5000 프로세스 종료

cd test-ML-backend/training_HSI/scripts/
./kill_5000_script.sh
  • MLflow 서버 등 포트 5000을 사용하는 프로세스를 안전하게 종료합니다

4) 가상환경을 통한 로컬 실행

# 가상환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 의존성 설치
cd test-ML-backend
pip install -r requirements_mlops.txt

# MLflow 서버 실행
cd training_HSI/scripts/
./run_mlflow.sh

# 새 터미널에서 백엔드 실행
cd test-ML-backend
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

백엔드 아키텍처

FastAPI 기반 백엔드

  • 메인 서버: app/main.py에서 FastAPI 애플리케이션 초기화
  • 라우터 구조: 각 기능별로 모듈화된 API 엔드포인트
    • /train: 모델 학습 API
    • /predict: 예측 API
    • /meat: 육류 데이터 관리
    • /user: 사용자 관리
    • /statistic: 통계 데이터
    • /data-upload: 데이터 업로드
    • /xai: 설명 가능한 AI
    • /hsi-predict: HSI 예측
    • /hsi-train: HSI 학습
    • /spectral: 스펙트럼 정보
    • /dashboard: 대시보드

미들웨어 및 보안

  • CORS 설정
  • 로깅 미들웨어
  • 성능 모니터링
  • 전역 예외 처리
  • Firebase 인증

데이터베이스

  • PostgreSQL 연결
  • SQLAlchemy ORM
  • Alembic 마이그레이션

Training 파이프라인

HSI (Hyperspectral Imaging) 학습 파이프라인

test-ML-backend/training_HSI/ 디렉토리는 HSI 데이터를 사용한 딥러닝 모델 학습을 위한 완전한 파이프라인을 제공합니다.

지원 모델 아키텍처

  • HSI Image Models:
    • ResNet, 2D CNN, ViT, CNN-Transformer
    • Dual Branch Regression, HybridSN
    • SSANet, SSSERN, SpectrumNet
  • RGB Image Models: ResNet 기반 모델
  • Vector Models: PLSR, Random Forest, Hybrid 모델

주요 기능

  • 멀티태스크 학습: 분류와 회귀 태스크를 동시에 학습
  • 데이터 증강: 랜덤 크롭, 뒤집기, 회전, 노이즈 추가
  • MLflow 통합: 실험 추적, 메트릭 로깅, 모델 저장
  • Early Stopping: 검증 손실 기반 자동 중단
  • AMP (Automatic Mixed Precision): GPU 메모리 최적화
  • Gradient Clipping: 학습 안정성 향상

데이터 처리

  • StandardScaler 모드: normalized, raw, off 옵션
  • 데이터 누출 방지: 훈련 데이터로만 스케일러 학습
  • 메모리 최적화: 무작위 픽셀 샘플링

설정 파일

  • column_config.json: 데이터 컬럼, 라벨 타입, 파장 정보 정의
  • 모델별 config: 각 모델의 하이퍼파라미터 및 학습 설정
  • MLflow 설정: 실험 이름, 추적 URI, 아티팩트 저장소

실행 방법

# HSI 2D CNN 학습
python train_HSI_2d.py --config configs/HSI_image/hsi_resnet.json

# RGB 이미지 학습
python train_RGB.py --config configs/RGB_image/rgb_resnet.json

# 벡터 데이터 학습
python train_vector.py --config configs/HSI_vector/vector_plsr.json

참여자

정진성 (Jinseong Jung) 송재헌 (Jaeheon Song) 김강민 (Kangmin Kim) 김우진 (Woojin Kim) 서연지 (Yeonji Seo) 이정민 (Jeongmin Lee) 김명하 (Myeongha Kim) 황기현 (Kihyun Hwang) 김보민 (Bomin Kim)
Jinseong Jung Jaeheon Song Kangmin Kim Woojin Kim Yeonji Seo Jeongmin Lee Myeongha Kim Kihyun Hwang Bomin Kim
GitHub: @JANGHANPYEONG GitHub: @Songjaeheon0923 GitHub: @The-Numb3 GitHub: @3sirn3203 GitHub: @t2easure GitHub: @KUCSEPotato GitHub: @myeonghah GitHub: @hkihyun GitHub: @kminbo
고려대학교 컴퓨터학과 고려대학교 컴퓨터학과 고려대학교 컴퓨터학과 고려대학교 컴퓨터학과 고려대학교 컴퓨터학과 고려대학교 컴퓨터학과 고려대학교 컴퓨터학과 고려대학교 컴퓨터학과 고려대학교 컴퓨터학과

Project Tech Stack

Environment

Android Studio Visual Studio Code Git Github

Release

Amazone EC2 Amazone S3 Amazone RDS Docker Github Action Grafana

Development

React Flutter Python FastAPI Postgresql MLflow

Communication

Slack Notion

About

산학협력 프로젝트 - 딥플랜트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 43.0%
  • JavaScript 33.9%
  • Dart 22.6%
  • Java 0.2%
  • Shell 0.1%
  • HTML 0.1%
  • Other 0.1%