์์ฌ๋ฃ ๊ด๋ฆฌ๋ฅผ ํตํ 1์ธ ๊ฐ๊ตฌ์ ์๋น ์ ๊ฐ ์ง์ ์น์ฑ ์๋น์ค
https://www.cooksave.co.kr/
BE | FE | AI |
---|---|---|
- Spring Boot - MySQL - EC2 - RDS - ELB |
- TypeScript + React - Recoil - Axios - react-router-dom - styled-components |
- flask - yolov8 - opencv - tencent-cloud |
src/assets - ์ด๋ฏธ์ง ํ์ผ ๋ชจ์
src/components - UI ์ปดํฌ๋ํธ ๋ชจ์
src/pages - ํ๋ฉด๋ณ ๋ ์ด์์ ๋ชจ์
src/router - ๋น๋ก๊ทธ์ธ ์ ์ ์ ๊ทผ ์ ํ ๋ฑ์ ๋ผ์ฐํ
๊ด๋ จ ์ฝ๋
src/services/api - API ์์ฒญ ํจ์ ๋ชจ์
src/services/store - Recoil ์ ์ญ ์ํ ๊ด๋ฆฌ ํจ์ ๋ชจ์
src/style - ๊ธ๋ก๋ฒ ์คํ์ผ ๋ฐ CSS ๊ธฐ๋ณธ ์ค์
src/type - ์ค๋ธ์ ํธ ๋ณ ํ์
์ง์
scripts - ๋ฐฐํฌ ์คํฌ๋ฆฝํธ
src/main/java/CookSave/CookSaveback/Heart - ๋ ์ํผ ์ ์ฅ ๊ธฐ๋ฅ ์ฝ๋
src/main/java/CookSave/CookSaveback/History - ์๋ฆฌ ๋ด์ญ ๊ด๋ จ ๊ธฐ๋ฅ ์ฝ๋
src/main/java/CookSave/CookSaveback/HistoryIngredient - ์๋ฆฌ ๋ด์ญ์ ์ฌ๋ฃ ๊ด๋ จ ๊ธฐ๋ฅ ์ฝ๋
src/main/java/CookSave/CookSaveback/Ingredient - ์ฌ๋ฃ ๊ด๋ จ ๊ธฐ๋ฅ ์ฝ๋
src/main/java/CookSave/CookSaveback/Member - ํ์ ๊ด๋ จ ๊ธฐ๋ฅ ์ฝ๋
src/main/java/CookSave/CookSaveback/Recipe - ๋ ์ํผ ๊ด๋ จ ๊ธฐ๋ฅ ์ฝ๋
src/main/java/CookSave/CookSaveback/RecipeTag - ๋ ์ํผ ์ฌ๋ฃ ํ๊ทธ ๊ด๋ จ ์ฝ๋
src/main/java/CookSave/CookSaveback/Tag - ์ฌ๋ฃ ํ๊ทธ ๊ด๋ จ ์ฝ๋
src/main/java/CookSave/CookSaveback/global - ๊ธฐ๋ฅ์์ ์ฐธ๊ณ ํ๋ ์ฝ๋
src/main/java/CookSave/CookSaveback/utils - jwt ๊ด๋ จ ์ฝ๋
weights/ - best weight checkpoints์ด ์ ์ฅ๋๋ ํด๋
app.py - flask sever์ ๋ํ ์ฝ๋
requirement.txt - pip install๋ก ์ค์นํด์ผํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ์
train.py - ๋ชจ๋ธ ํ์ต ์ฝ๋
uwsgi - flask server connection์ ์ํ ์ฝ๋
yolov8n.pt - pre-trained model
์๋๋ก์ด๋ ์น๋ทฐ๋ฅผ ํตํด ๊ตฌํํ ์น์ ์๋๋ก์ด๋ ์ฑ ๋ด์์ ์คํํ ์ ์๋๋ก ํฉ๋๋ค.
app/src/main/java/com/example/cooksave_webview/MainActivity.kt - ๋๋ฐ์ด์ค๋ก๋ถํฐ ์ด๋ฏธ์ง ์
๋ก๋, ๋ฉํํ๊ทธ, ๋ก์ปฌ ์ ์ฅ์ ํ์ฉ ๋ฑ ๊ด๋ จ ์ฝ๋
- git clone https://github.com/EWHA-CAPSTONE-COOKSAVE/cooksave-front ์ผ๋ก ํ๋ก์ ํธ ํด๋๋ฅผ ๋ก์ปฌ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- ๋ค์ด๋ฐ์ ํด๋๋ฅผ ์๋ํฐ์์ ์ด๊ณ , npm i ๋ฅผ ์ ๋ ฅํ์ฌ ํ์ํ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
- npm start๋ก ๋ก์ปฌ์์ ํ๋ก์ ํธ๋ฅผ ์คํํฉ๋๋ค.
- git clone https://github.com/EWHA-CAPSTONE-COOKSAVE/cooksave-back ์ผ๋ก ํ๋ก์ ํธ ํด๋๋ฅผ ๋ก์ปฌ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- ๋ค์ด๋ก๋ ๋ฐ์ ํด๋์ build.gradle ํ์ผ์ ์๋ํฐ์์ ์ด๊ณ build ํ์ฌ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- ํ์ํ ์ ๋ณด๋ฅผ application.yml ํ์ผ์ ์์ฑํฉ๋๋ค.
- run์ผ๋ก ๋ก์ปฌ์์ ํ๋ก์ ํธ๋ฅผ ์คํํฉ๋๋ค.
[GPU ์ฌ์ฉ ์]
(1) ๊ฐ์ํ๊ฒฝ ์ธํ
cd {๊ฐ์ํ๊ฒฝ์ ์ค์นํ ๊ฒฝ๋ก}
python -m venv {๊ฐ์ํ๊ฒฝ์ด๋ฆ}
source ./venv/bin/activate
(2) ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
pip install requirement.txt
(3) ๋ฐ์ดํฐ ์
๋ค์ด๋ก๋
(recommended) roboflow์์ costom data ์ ์ ํ yolo format์ผ๋ก ๋ถ๋ฌ์ค๊ธฐ
(4) ๋ชจ๋ธ ํ์ต ์งํ
python train.py
(5) AI flask server ์คํ
python app.py
- git clone https://github.com/EWHA-CAPSTONE-COOKSAVE/cooksave-webview ์ผ๋ก ํ๋ก์ ํธ ํด๋๋ฅผ ๋ก์ปฌ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- ์๋๋ก์ด๋ ์คํ๋์ค์์ ๋ค์ด ๋ฐ์ ํ๋ก์ ํธ ํ์ผ์ ์ฝ๋๋ค.
- Run 'app' ๋ฒํผ์ ํตํด ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด https://www.cooksave.co.kr/ ์ ์ ์ํฉ๋๋ค.
- iOS - ๋ธ๋ผ์ฐ์ ์์ https://www.cooksave.co.kr/ ์ ์ ์ํ ๋ค 'ํํ๋ฉด์ ์ถ๊ฐ'๋ฅผ ๋๋ฅด๋ฉด ์ฑ์ผ๋ก ์ค์น๋ฉ๋๋ค.
- And - ๋ธ๋ผ์ฐ์ ์์ https://www.cooksave.co.kr/ ์ ์ ์ํ ๋ค '์ค์น'๋ฅผ ๋๋ฅด๋ฉด ์ฑ์ผ๋ก ์ค์น๋ฉ๋๋ค.
- APK ํ์ผ์ ๋ค์ด๋ก๋ํ์ฌ ์๋๋ก์ด๋ ๋๋ฐ์ด์ค์ ์ค์นํฉ๋๋ค.
์์ ํ๊ฒฝ ์ค์น๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์๋น์ค๋ฅผ ์์ํ๋ค, ํ
์คํธ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํฉ๋๋ค.
ID: cookingmama PW: 1234
์๋ ์ฒจ๋ถํ ์๋น์ค ์ฌ์ฉ ์ค๋ช
์๋ฅผ ์ฐธ์กฐํ์ฌ ๊ฐ ๊ธฐ๋ฅ์ ํ
์คํธํด๋ด
๋๋ค.
์ ํฌ๋ ์ง์ ์์ฌ๋ฃ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๊ธ ์ด๋ฏธ์ง ๊ฒ์ ๋ฐ ๋ํ ์จ๋ผ์ธ ๋ชฐ์์ ํฌ๋กค๋งํ์ฌ ์ ์ํ์์ต๋๋ค.
20๊ฐ์ง์ ์์ฌ๋ฃ๋ฅผ 100์ฅ์ฉ ํฌ๋กค๋ง ํ ํ flip, 90 rotate, shear ๋ฑ์ data augmentation์ ํตํด ์ ์ฒด 20,000์ฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐ์์ผฐ์ต๋๋ค.
sample data๋ก ์ํ์ ๋น๊ทผ์ด ํจ๊ป ์๋ ์ฌ์ง์ input์ผ๋ก ์ฃผ์์ ๋, ๋ค์๊ณผ ๊ฐ์ด ์ ์ธ์๋จ์ ํ์ธํ ์ ์์ต๋๋ค.
YOLO(You Only Look Once) ๋ชจ๋ธ์ ๊ฐ์ฒด ํ์ง๋ฅผ ์ํด ์ฌ์ฉ๋๋ ์ ๋ช ํ ๋ฅ๋ฌ๋ ๋ชจ๋ธ๋ก, ๋งค์ฐ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ์ด๋ฏธ์ง๋ฅผ ๋ถ์ํ์ฌ ๊ฐ์ฒด๋ฅผ ํ์งํ ์ ์์ต๋๋ค. YOLO ๋ชจ๋ธ์ ํฌ๊ฒ ์ธ ๊ฐ์ง ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค:
- End-to-End ํ์ต: YOLO๋ ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅ๋ฐ์ ๋จ ํ ๋ฒ์ ์ ๋ฐฉ ํจ์ค๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค. ์ด๋ ๋ค๋ฅธ ๊ฐ์ฒด ํ์ง ๋ชจ๋ธ๋ค๊ณผ ๋น๊ตํ์ ๋ ๋งค์ฐ ๋น ๋ฅด๋ฉฐ, ์ค์๊ฐ ๊ฐ์ฒด ํ์ง์ ์ ํฉํฉ๋๋ค.
- ์ ์ฒด ์ด๋ฏธ์ง ๊ณ ๋ ค: YOLO๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฒด์ ์ผ๋ก ๋ณด๊ณ ์์ธก์ ํ๊ธฐ ๋๋ฌธ์ ๋ฌธ๋งฅ์ ์ ํ์ ํ ์ ์์ต๋๋ค. ์ด๋ ์์ ๊ฐ์ฒด๋ฅผ ํ์งํ๋ ๋ฐ ์ ๋ฆฌํ๋ฉฐ, ๊ฐ์ฒด ๊ฐ์ ์ํธ์์ฉ์ ๋ ์ ์ดํดํ ์ ์์ต๋๋ค.
- ๋จ์ผ ์ ๊ฒฝ๋ง: YOLO๋ ๋จ์ผ ์ ๊ฒฝ๋ง์ ์ฌ์ฉํ์ฌ ๊ฒฝ๊ณ ์์์ ํด๋์ค ํ๋ฅ ์ ๋์์ ์์ธกํฉ๋๋ค. ์ด๋ก ์ธํด ๋ชจ๋ธ์ด ๊ฐ๋จํ๊ณ ํจ์จ์ ์ ๋๋ค.
์ ํฌ๋ ๊ทธ ์ค yolov5์ yolov8 ๋ชจ๋ธ์ custom dataset ๋น๊ต ํ์ต์ ์งํํ์๊ณ , ํ์ต ์๋์ ์ ํ๋๊ฐ ๋ ๋์ ๋ฒ์ 8๋ก ์์ฌ๋ฃ ์ธ์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ์์ต๋๋ค.
๋ค์ด๋ฒ ํด๋ก๋ฐ ์์์ฆ ๋ชจ๋ธ์ ์์์ฆ์ ์ ํ๊ณผ ํจํด์ ์๋ ๋ถ์ํ์ฌ ๋งค์ฅ ์ ๋ณด, ๊ฒฐ์ ๋ด์ญ, ์ง๋ถ ๋ฐฉ์ ๋ฑ ์์์ฆ์ ๊ธฐ์ฌ๋ ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค.
ํด๋ก๋ฐ ocr ๋ชจ๋ธ ์ด์ธ์๋ easyocr, tesseractocr ๋ฑ ๋ค์ํ ocr ๋ชจ๋ธ์ ๋น๊ตํ์๊ณ ํ๊ตญ์ด์ ๋์ ์ ํ๋๋ฅผ ๋ณด์ด๋ ๋ค์ด๋ฒ ํด๋ก๋ฐ OCR์ ์ ํํ์ฌ ์์์ฆ ๋ฐ ๊ตฌ๋งค๋ด์ญ ์ธ์ ์์ฌ๋ฃ ๋ฑ๋ก ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ์์ต๋๋ค.
BE | FE & DESIGN | AI |
---|---|---|
์ฐจ์์ฐ | ์ก์ง๋ฏผ | ์ต์์ |
Soyeon-Cha | songing01 | yenncye |