/APP_IOT_MealScan_FOODFIGHTERS

Scan. Challenge. Explore. 식판스캔을 통한 잔반 줄이기 (APP, RasPi, 3D Printing)

Primary LanguagePythonMIT LicenseMIT

Logo

잔반 줄이기, 이제 즐기세요



GitHub language count GitHub contributors GitHub stars GitHub license

프로젝트 설명 자료

프로젝트 소개 및 시연영상 프로젝트 소개 및 발표자료

목차(Table of Contents)

  1. 프로젝트 소개
  2. 앱 기능 세부 설명
  3. 기대효과
  4. 발전방향
  5. 기술스택
    1. Backend
    2. Frontend
    3. IOT + Image Processing
    4. 3D Modeling & Printing
    5. Communications/Project Management
  6. 안드로이드 필수 조건 안내
  7. 설치 안내
  8. 프로젝트 사용법
  9. 팀 정보
  10. 저작권 및 사용권 정보

프로젝트 소개

밀스캔 (MealScan)은 식판 이미지를 이용한 장병들의 잔반 데이터 분석 및 이를 기반으로 한 잔반 챌린지 이벤트를 통해 군 내 잔반 문제를 해결하기 위하여 만들어진 모바일 애플리케이션입니다. 처리비용만 연 142억원, 군 음식물 쓰레기가 역대 최대치를 경신한 지금, 기존 방식보다 더 편리하고 재치있는 방식으로 잔반 문제 해결에 한 발짝 더 다가가고자 합니다.

밀스캔은 세가지 Task로 이루어져 있습니다.

  1. 📷 Scan
    식사를 마친 후 밀스캔 IoT 시스템에 식판 및 본인식별 QR을 스캔해주세요. 밀스캔이 전우님의 식판 이미지를 분석하여 해당 식판의 전체 잔반 클리어률과 반찬별 클리어률을 계산합니다.

  2. 🥊 Challenge
    서비스에 가입하실 때 기입하신 부대고유코드에 따라 전우님이 참가할 수 있는 잔반 챌린지를 제시합니다. 챌린지에 참가하게 되면 챌린지 기간동안 누적된 전우님의 잔반 클리어률이 순위에 반영되고, 최종 우승 시 지휘관이 설정한 포상을 획득하게 됩니다. 챌린지 경쟁자는 개인별, 중대별, 대대별 등 부대 상황과 지휘관 설정에 따라 달라집니다.

  3. 📊 Explore
    Scan 단계에서의 데이터가 밀스캔을 통해 간편하고 보기 쉽게 시각화되어 확인하실 수 있습니다. 또한 반찬별 클리어률을 바탕으로 매 끼니별 배식 추천을 제공하여 배식받을 때 (또는 자율배식 할 때) 필요 이상을 받지 않고, 적게 배식받을 메뉴를 추천합니다. 밀스캔 데이터는 국방부와도 공유되어 영양사분들이 더 효율적인 식단을 짤 수 있게 합니다.

전체적인 서비스 플로우


앱 기능 세부 설명


설문조사는 그만! 이제 스캔하세요.

1. (간부) 식사시간 전 initData 생성용 정량 배식된 식판 스캔
2. (병사) 식사 후 본인식별용 QR코드 스캔
3. (병사) 잔반 버리기 전 화면 속 규격에 식판 맞추고 스캔

잔반도 줄이고 포상도 얻고, 일석이조의 챌린지

챌린지 등록 및 삭제
챌린지 정보 확인 (포상, 진행기간 등)
리더보드에서 챌린지 최신 순위 확인

너 자신을 알라: 잔반 현황 및 식습관 파악하세요.

끼니별 배식량 추천
다양한 차트 + 애니메이션을 이용한 데이터 시각화

➕ 내 식판 (흑)역사 불러오기, 잔반앨범

스캔한 식판 사진 모두 조회 가능
각 식판 사진별 잔반 클리어률 확인하여 밀스캔 알고리즘의 합리성 확인

기대효과

장병들의 자발적, 적극적 참여

  • 식단별 배식량을 추천해줌으로서 자연스럽게 병사들의 올바른 배식문화 유도 (넛지효과)
  • 챌린지 포상을 통해 동기부여 제공
  • 잔반 줄이기를 게임화하여 장병들이 잔반 감축을 즐기고 하나의 문화로 인식
  • 이런 명확한 동기부여로 앱의 지속가능성 확립 (잔반 데이터만 제공하면 사용자 유지율(리텐션)이 낮아질 수 밖에 없음)

💖 식판 데이터 기반 장병 선호도 파악

  • 매 끼니 데이터를 기반으로하여 기존 월 1회 설문조사 방식보다 정확함
  • 해당 데이터를 국방부와 공유하여 호응도에 부응하는 효과적인 식단 편성
  • 스캔만 하면 완료되는 선호도 조사로 기존 종이 설문조사 필요없이 과정을 무인화, 자동화하여 간부 및 병사의 수고로움를 덜고, 설문조사에 사용되는 종이 낭비를 막아 환경보호까지 일석이조의 효과
  • 급식 만족도를 높이고 급식 관련 논란 및 갈등을 해결하려는 국방부의 의지를 보여줄 수 있음

발전방향

온실가스 주범 음식물 쓰레기...연간 885만톤 배출
음식물 쓰레기 처리로 연간 8000억 낭비
'음쓰' 물기 빼기가 경제에 미치는 영향

위와 같이 음식물 쓰레기 배출량 문제는 비단 군대에서만이 아니라 사회 전반에서 주목하는 이슈입니다. 사회 다양한 곳에서 이루어지고 있는 잔반 줄이기 캠페인에도 불구하고, 매일 1만4400톤 가량의 음식물쓰레기가 배출되고 있고, 매년 상승하는 처리비용으로 연간 8000억의 혈세낭비가 있고 더 증가할 것으로 예상됩니다. 이런 현실 속에 밀스캔은 군대, 학교 등 국내 다양한 공공기관에서 잔반 챌린지와 데이터 분석을 개시하는 초석이 될 수 있습니다. 특히 학교는 군대와 급식 환경이 가장 비슷하면서 (배식 및 식사 동선, 취사장 구조) 챌린지 적용이 수월한 단체생활 (반, 학년, 동아리)로 이루어져 밀스캔의 다음 목적지로 적합합니다. 기존 포스터 배포나 교육 위주의 방식에서 탈피하면서 2021년에 알맞고 MZ세대의 눈높이에 맞춘, 데이터 기반의 챌린지 기능과 모바일 앱으로서의 접근성을 가진 밀스캔이 대한민국 음식물 쓰레기 감축의 미래라고 믿어 의심치 않습니다.


기술 스택 (Tech Stack)

Backend

Firebase
Firebase Structure

Backend Dependencies 및 Collection 분류는 App readme에서 확인하세요.


Frontend

Dart Flutter UI Framework Figma
Figma Viewport Figma Prototype User Flow

Frontend Dependencies 및 Dir 분류는 APP readme에서 확인하세요.


IOT + Image Processing

☑️☑️☑️더 자세한 내용과 알고리즘 관련 내용은 IoT -Raspberry Pi readme를 참고하세요❕❕❕

Raspberry Pi Python OpenCV

How to Run

$ git clone https://github.com/osamhack2021/APP_IOT_MealScan_FOODFIGHTERS.git
$ cd APP_IOT_MealScan_FOODFIGHTERS.git/IoT(Raspberry Pi)
$ python main.py
IOT Flow Chart Image Processing
사용한 오픈소스 기술 용도
BackProjection 잔반 측정 및 Classification 알고리즘에 들어가는 역투영 기술
opencv Webcam 라즈베리파이 실시간 잔반 측정을 위한 기술
opencv Class index Transfer Colorspace Class (HSV,GRAY,GRB ...)

오픈소스 및 테스트
Jupyter Notebook 또는 Colab에서 실행해보세요!


3D Modeling & Printing

☑️☑️☑️3D Modeling & Printing 관련 자세한 내용은 IoT - 3D Print readme를 참고하세요❕❕❕

Tinkercad Cura Ultimaker
3D Model Structure

Communications/Project Management

Github Projects Slack
Github Projects Kanban Board Slack Workspace

안드로이드 필수 조건 안내 (Prerequisites)

  • Android 5.0 (Lollipop: API level 21)
  • 권장: Android 10.0 (Q: API level 29)

설치 안내 (Installation Process)

$ git clone https://github.com/osamhack2021/APP_IOT_MealScan_FOODFIGHTERS.git

$ cd "APP(Android)"

$ flutter run --web-renderer html -v -d web-server --web-hostname=0.0.0.0

$...lib/main.dart is being served at http://0.0.0.0:*****...
http://0.0.0.0:XXXXX

해당 링크 Ctrl/Command + Click

프로젝트 사용법 (Getting Started)

  • App은 Web에서 Run하여 사용해보세요!
  • Image Processing은 Jupyter Notebook 또는 Colab에서 실행해보세요!

팀 정보 (Team Information)

사진 성명 역할 깃허브 이메일
김석현
(팀장)
Image Process
IoT
이승준 Frontend
이형민 Backend
박세연 Backend
IoT


















저작권 및 사용권 정보 (Copyleft / End User License)