/recipe_site

레시피 검색 api 서버 with Flask

Primary LanguageTypeScript

채愛레시피

  • 채식 입문자들을 위해, 재료 사진 한장을 인공지능 모델로 분석하여 맛있는 채식 레시피를 제공합니다.

팀 노션 페이지

프로젝트 구성 안내

1. 프로젝트 소개

현재 채식을 하고 있거나 채식에 관심은 있지만 시도해본 적 없는 채식 입문자들을 위해 채식 레시피를 제공하는 서비스입니다. 먹고 싶은 재료들의 사진을 찍어 올리면 인공지능이 그 재료들이 뭔지 판별하고 영양성분과 레시피를 추천해줍니다. 보다 쉬운 검색을 통해 레시피를 검색할 수도 있습니다. 저희 서비스는 채식 입문자들을 타겟층으로 선정해 채식 가이드도 제공하고 있습니다.

2. 프로젝트 기획 의도

채식 인구는 증가하고 있는데 아직도 한국에서 채식을 하기란 힘듭니다. 외식을 하거나 배달을 시킬 때 채식 메뉴는 거의 없습니다. 설문조사에서 채식주의자들은 약 70%가 집에서 음식을 만들어 먹는다고 합니다. 찾아본 결과 채식 레시피만을 다루는 사이트는 없었습니다. 건강을 생각하는 사람들이 많아지면서 비건은 아니지만 간헐적으로 채식을 하는 플렉시테리언이 증가하고 있습니다. 현재 채식을 하고 있는 사람, 간헐적 채식을 하고 있어 일주일에 하루나 이틀, 한 끼에서 두 끼 정도 채식을 하는 사람, 채식에 관심은 있지만 시도해보지 못한 사람들을 위해 쉽게 레시피를 추천해주는 서비스를 만들고 싶었습니다.

3. 서비스 주요 기능 설명

  • 재료들의 사진을 찍어 올리면 인공지능 모델이 그 재료들이 무엇인지 판별하고 영양 성분과 레시피를 추천해줍니다.
  • 재료의 검색을 통해 레시피를 추천해준다. 여러 재료를 입력했을 경우 최대한 많은 재료가 들어간 레시피 순으로 추천해줍니다.
  • 레시피 작성을 통해 나만의 레시피를 공유할 수 있습니다.
  • 채식 입문자들을 위한 가이드를 제공합니다.

4. 프로젝트 구성도

5. 기술 스택

  • AI : Darknet, OpenCV
  • 백엔드 : Flask, Flask-SQLAlchemy, Docker, Mysql, Nginx
  • 프론트엔드 : React

6. 프로젝트 팀원 역할 분담

이름 담당 업무
유환익 팀장/프론트엔드 개발
정진묵 백엔드 개발
임은비 백엔드 개발
이보연 백엔드 개발/데이터
이영민 인공지능 개발

멤버별 responsibility

  1. 유환익: 팀장/프론트엔드 담당
  • 개발 일정 관리
  • 메인 화면 구현, 검색 화면 구현
  • 로그인/로그아웃 화면 구현
  1. 정진묵: 백엔드 담당
  • 레시피 작성 페이지 구현
  • 로그인/로그아웃 페이지 구현
  • 개발환경 설정 및 배포
  1. 임은비: 백엔드 담당
  • DB 설계 및 api 명세 작성
  • 재료 검색 페이지 구현
  • 레시피 검색 페이지 구현
  1. 이보연: 백엔드 담당
  • DB 설계 및 api 명세 작성
  • 레시피 데이터 추출 및 전처리
  • 레시피 상세페이지 구현
  1. 이영민: 인공지능 담당
  • 서비스에 적합한 모델 선정
  • 학습 데이터 만들기 - 데이터 선정 + 크롤링/Annotation
  • 여러 종류의 AI 모델 학습 및 구현

7. 버전

  • 1.0.0

8. FAQ

AI

  • AIHub의 커스텀 annotation 형식을 어떻게 yolo darknet 형식으로 변환 했나요?
    • 직접 코드를 제작하여 변환 했습니다
    • Team8 > ai backup > master branch > dataset_practice_swish > swish_F03_annotation_form_transformer.py 참고
    • 최종 모델 학습에 사용한 코드들은 dataset_practice_swish 폴더에 있습니다. 코드 동작 순서대로 정리해 두었으니 조금이라도 도움이 되었으면 합니다.
    • swish_F03_annotation_form_transformer.py 작동 후 roboflow 사이트에서 annotation 및 augmentation적용 한 후 다음 코드로 넘어갑니다.
    • 학습 완료한 모델을 시험해 볼 때 swish_70_classes_practice.py 파일을 사용하였습니다.
    • roboflow 사용 및 새로운 데이터 추가 없이 기존의 AIHub 데이터셋만 사용하시려면 dataset_practice 폴더 참고하시면 됩니다.
    • https://kdt-gitlab.elice.io/ai_track/class_03/ai_project/team8/ai-backup
  • AI 학습 데이터 annotation 및 augmentation 시킨 방법 : roboflow 사이트 이용
  • 모델은 어디에서 학습시켰나요?
    • google colab pro를 결재하여 학습을 진행하였습니다. 제공되는 하드웨어도 뛰어나고, 편의성도 좋아서 후회한 적 없습니다. 특히 google drive와 연동이 가능할 수 있다는 점이 장점 중 하나입니다.