Project

rebike - 생활 쓰레기 종류 AI 분석 및 분리수거 생활화를 위한 플랫폼

lim.dev 2022. 9. 19. 12:26

System Architecture

My Work

devOps

* AWS rds

* Docker

 

DB

* ERD (DB Design)

* MySQL (AWS rds)

 

backend

* AWS s3 connect (image upload)

* AWS rds connect (ORM)

* AI connect (Pytorch)

* Celery ( AI, 이미지 업로드 비동기 처리 )

* Trash api 

main page

  • search-words/<search_word>/kind
    GET 검색어에 대한 결과 (쓰레기 종류반환)
  • users/<user_id>/results/tasks
    POST 비동기 처리중인 task_id 반환
  • users/<user_id>/results/tasks/<task_id>
    GET task_id 작업 처리 여부 확인
    작업이 완료되지 않았을 경우 {"ai_result": "notyet"}
    작업 완료 후 재활용할 쓰레기가 없는 경우 {"ai_result":"false"}
    작업 완료 후 사진이 분류되었으면 image_id, challenge_id, challenge_content 데이터 반환
    작업 결과 반환 후 다시 요청이 올 경우 {"ai_result": "exist"}
  • statistics/ranking
    GET 일주일 동안의 쓰레기 통계, 인기순으로 정렬된 데이터

user page

  • users/<user_id>/pages/<page_number>
    GET 유저가 업로드한 (활성화 상태인)이미지 데이터들
    • 페이지네이션 완료! → 10개씩 보여줌 요청한 페이지가 없거나, 숫자가 아닌 문자열이 들어오면 HTTP_204_NO_CONTENT 반환
  • users/<user_id>/statistics
    GET 유저가 업로드한 모든 쓰레기의 통계 정보 default 기간 정하기
  • users/<user_id>/statistics/period/<from_date>/<to_date>
    GET 기간별 유저가 업로드한 쓰레기들의 통계 정보
    • 달력에 없는 date 입력시 HTTP_204_NO_CONTENT 반환
  • challenges
    GET 모든 챌린지 정보(챌린지 번호, 챌린지 내용)
  • users/<user_id>/challenges
    GET 유저가 달성한 챌린지 정보

image detail page & result page

  • users/<user_id>/images/<trash_image_id>
    GET 이미지 번호에 해당하는 이미지 링크 반환 DELETE 이미지 active를 0으로, HTTP_204_NO_CONTENT 반환
  • users/<user_id>/images/<trash_image_id>/kinds
    GET 이미지의 AI 분류 결과 반환

 

AI

* Yolov5 커스텀 학습 (colab에서 진행, pytorch)

 

Others

* web design(with Figma) 

 

 

 

 

 

 

github: https://github.com/HowTrash/rebike_final

 

GitHub - reBike/rebike_final

Contribute to reBike/rebike_final development by creating an account on GitHub.

github.com

medium: https://medium.com/@ryokuman/recycle-helper-rebike-6f36adeb8c72

 

Recycle Helper “ReBike”

1. 제작 동기

medium.com