부모님이 오늘 어떤 음식을 얼마나 드셨지? 필요한 영양소는 골고루 섭취하신 걸까?
위와 같은 고민을 한번이라도 해본 적이 있으신가요? 바쁜 일상 속에 부모님이 드신 식단까지 관리하기란 쉽지 않습니다. 그래서 저희는 CareSpoon
을 생각해냈습니다.
CareSpoon
은 사용자가 식사 전 본인의 식단을 찍기만 하면 어떤 음식을 먹었는지, 얼마나 먹었는지, 그 안에 영양소는 어느정도 섭취했는지를 기록합니다. 보호자는 사용자의 식사 현황과 영양 정보를 확인할 수 있습니다. 손쉽게 영양성분 섭취 정보를 기록하고, 그래프를 통해 한눈에 파악할 수 있습니다.
우리는 다음 방법으로 시니어의 스마트한 건강 관리를 제공하고자 합니다.
- 식단 사진 촬영 후 영양성분(탄수화물, 단백질, 지방, 칼로리) 정보 기록
- 영양소 섭취 현황 그래프 제공
- 식사를 제 때 섭취하지 않았을 때
Viewer
에게 알림
Frontend | Server | AI |
---|---|---|
스플래시 | 구글 로그인 | 구글 로그인 2 | 회원 가입 | 회원 가입 2 |
구글 계정을 연동하여 간편하게 로그인이 가능하다. 이후 기초대사량 계산을 위한 간단한 신체 정보를 기입하면 회원가입을 마칠 수 있다.
홈 | 홈2 | 식단 세부 정보 | 일별 통계 | 월별 통계 |
홈 화면은 시니어 사용자를 고려하여 크고 복잡하지 않은 요소들로 구성되어 있다.
빈 카드를 눌러 식단을 촬영하면 AI가 자동으로 사진 속 음식 정보를 분석하여 영양 정보를 기룩해준다.
식단 카드를 클릭하면 해당 식단에 대한 상세 영양 분석 정보를 확인할 수 있다.
영양 통계 메뉴로 진입하면 AI가 분석한 데이터를 바탕으로 일별, 월별 통계 그래프를 제공한다.
식단 기록 | 친구 관리 | 친구 추가 | 설정 | 정보 변경 |
식단 기록 메뉴로 진입하면 주간의 아침, 점심, 저녁 식단 기록을 확인할 수 있다. 마찬가지로 식단 카드를 클릭하면 해당 식단에 대한 상세 화면으로 진입한다.
친구와 공유하기 메뉴로 진입하면 현재 내 정보를 공유하고 있는 친구 목록을 볼 수 있고, 사용자가 원한다면 언제든 친구 관계를 끊을 수 있다.
공유하기 화면 오른쪽 상단의 + 버튼을 눌러 친구 추가 화면으로 진입하면 고유 코드를 검색하여 새 유저를 친구로 등록할 수 있다.
설정 화면 상단의 알림 토글 버튼을 통해 식단 촬영 시간에 대한 알림을 온/오프 할 수 있다.
회원가입 시 입력한 신체정보는 권장 섭취량의 계산에 쓰이므로, 신체 정보가 바뀔 시 언제든 자유롭게 변경할 수 있다.
- Android studio Flamingo 2022.2.1
- compileSdk 33 or higher
- minSdk 26 or higher
- CameraX supported Android Device within this link
(CameraX is supported on most Android devices running Android 5.0 (API level 21) and higher.)
Architecture | MVVM |
Jetpack Components | AppCompat, LifeCycles, ViewModel, LiveData, viewPager2, CameraX |
library | Standard Library, Material Design, Glide, MPAndroidChart |
Network | OkHttp, Retrofit2, GSON, Coroutine |
- Java: jdk 17
sudo apt-get install openjdk-11-jdk
- MySQL: 8.0.31
- Deployment VM: Ubuntu 20.04
- Base URL: 34.64.211.6:8080
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'javax.persistence:javax.persistence-api:2.2'
implementation 'org.springframework:spring-core:5.3.15'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
implementation 'com.google.firebase:firebase-admin:7.1.0'
implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.2.2'
implementation 'mysql:mysql-connector-java:8.0.31'
implementation platform('com.google.cloud:libraries-bom:26.14.0')
implementation 'com.google.cloud:google-cloud-storage'
- OS: Ubuntu 20.04
- Python: 3.7
- FastAPI: 0.95.0
- PyTorch: 1.10.0
- Tensorflow: 1.13.1
pip install -r requirements.txt
Model | YOLOv5 custom dataset 사용하여 학습 |
Serving | FastAPI 사용하여 AI 모델 서빙 |
Dataset | AI HUB 음식 이미지 및 영양정보 텍스트 전처리 후 사용 |
Train | final_best.pt 100 epoch |
Accuracy | Class: 한식 10종 mAP@50: 0.98 mAP@50-95:0.86 |
Result |
Model | 1. Mask RCNN 기반 Segmentation 2. CNN 기반 Depth Estimation |
Serving | FastAPI 사용하여 AI 모델 서빙 |
Dataset | food videos dataset |
Example | |
Result |