Skip to content

Jae-Hyuk-Jang/RushWash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

40 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงบ RushWash: AI-Based Laundry Assistant

YOLOv8 + LLM ๊ธฐ๋ฐ˜ ์–ผ๋ฃฉ & ์„ธํƒ ๊ธฐํ˜ธ ๋ถ„์„ ์ž๋™ํ™” ์‹œ์Šคํ…œ
Graduation Comprehensive Project (2025)


๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

RushWash๋Š” ์˜๋ฅ˜ ์ด๋ฏธ์ง€์—์„œ ์–ผ๋ฃฉ๊ณผ ์„ธํƒ ๊ธฐํ˜ธ๋ฅผ ์ž๋™์œผ๋กœ ์ธ์‹ํ•˜๊ณ ,
์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ€์žฅ ์ ์ ˆํ•œ ์„ธํƒ ๋ฐฉ๋ฒ•์„ ์ž์—ฐ์–ด๋กœ ์ถ”์ฒœํ•˜๋Š” AI ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

  • ์–ผ๋ฃฉ ๊ฒ€์ถœ : YOLOv8 (Object Detection)
  • ์–ผ๋ฃฉ ๋ถ„๋ฅ˜ : ConvNeXt (Image Classification)
  • ์„ธํƒ ๊ธฐํ˜ธ ์ธ์‹ : YOLO (Object Detection)
  • ์„ธํƒ๋ฒ• ์ œ์•ˆ : LLM (kanana-nano-2.1b-base Prompt)
  • ์—”๋“œ-ํˆฌ-์—”๋“œ ํŒŒ์ดํ”„๋ผ์ธ : Python + Spring Boot + React + MariaDB

๐Ÿง  ์ฃผ์š” ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ๋ช… ์„ค๋ช…
๐ŸŸฅ ์–ผ๋ฃฉ ํƒ์ง€ YOLOv8๋กœ ์˜๋ฅ˜ ๋‚ด ์–ผ๋ฃฉ Bounding Box ๊ฒ€์ถœ
๐ŸŸฆ ์–ผ๋ฃฉ ์ข…๋ฅ˜ ๋ถ„๋ฅ˜ ๊ฒ€์ถœ๋œ ์˜์—ญ crop โ†’ Yolov8s๋กœ ๋ถ„๋ฅ˜
๐ŸŸจ ์„ธํƒ ๊ธฐํ˜ธ ์ธ์‹ ์„ธํƒ ๋ผ๋ฒจ์„ YOLO๋กœ ๊ฒ€์ถœ
๐ŸŸฉ ์„ธํƒ ๊ฐ€์ด๋“œ ์ƒ์„ฑ ์–ผ๋ฃฉ + ์„ฌ์œ  ์ •๋ณด ๊ธฐ๋ฐ˜ LLM ๋ฌธ์žฅ ์ƒ์„ฑ
๐Ÿ› ๏ธ MLOps ํŒŒ์ดํ”„๋ผ์ธ MariaDB ์—ฐ๋™ โ†’ ํ•™์Šต/ํ‰๊ฐ€ โ†’ JSON ๊ฒฐ๊ณผ ์ž๋™ ์ €์žฅ

๐ŸŽฌ ์‹œ์—ฐ ์˜์ƒ

RushWash_demo.mp4

๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

4


๐Ÿ—‚๏ธ ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ ๊ฐœ์š”

1) ์‹œ์Šคํ…œ ํ๋ฆ„

arcithecture1

2) ์„œ๋น„์Šค ์ข…๋ฅ˜

arcithecture2


๐Ÿ“ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„

1) ์–ผ๋ฃฉ ๋ถ„์„ ์„œ๋น„์Šค

stain_test

2) ๋ผ๋ฒจ ๋ถ„์„ ์„œ๋น„์Šค

label_test

3) ์–ผ๋ฃฉ + ๋ผ๋ฒจ ํ†ตํ•ฉ ๋ถ„์„ ์„œ๋น„์Šค

label_stain_test

4) ์„ฌ์œ  ์œ ์—ฐ์ œ ์ถ”์ฒœ, ์ธ๊ทผ ์„ธํƒ์†Œ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค

extra_test


โš™๏ธ ๊ธฐ์ˆ  ์Šคํƒ

๋ถ„๋ฅ˜ ์‚ฌ์šฉ ๊ธฐ์ˆ 
Object Detection YOLOv8 (Ultralytics)
Image Classification YOLOv8 (Ultralytics)
ํ…์ŠคํŠธ ์ƒ์„ฑ kanana-nano-2.1b-base Prompt (LLM)
๋ฐฑ์—”๋“œ Spring Boot, MariaDB
ํ”„๋ก ํŠธ์—”๋“œ React, Tailwind CSS
ML Infra Python, PyTorch, Ray Tune, WandB

๐Ÿ“Š ๋ชจ๋ธ ๋ฒค์น˜๋งˆํฌ

1) Symbol Detection - YOLOv8 (Object Detection)

5

Model ID Input Res Best Conf Best IoU mAP@50 mAP@50-95 Precision Recall F1-score Latency (ms) Param Opt
laundry_data_2_yolov8m_2048_train 2048 0.010 0.30 71.13 53.45 71.86 62.38 66.74 44.5 ๊ธฐ๋ณธ
pre_final_yolov8m_2048 2048 0.072 0.30 72.46 53.64 68.08 65.68 66.86 38.8 Conf/IoU
yolov8m_1600_optimized_pre_final 1600 0.031 0.30 71.91 53.42 65.62 70.76 68.09 30.9 โœ“
yolov8m_1600_optimized_pre_final2 1600 0.010 0.30 70.71 50.56 76.25 59.23 66.58 28.7 โœ“

2) Stain Detection - YOLOv8 (Object Detection)

3

Model ID Precision Recall F1-score Latency (ms)
stain_yolov8s_1280_b2 81.02 77.17 76.45 22.1
stain_yolov8s_1600_a1 (Best F1) 89.36 88.35 88.09 34.1
stain_yolov8s_1920_light_aug_final 75.21 71.30 72.09 49.6
yolov8m_2048 73.71 69.61 70.31 58.1
yolov8s_2048 76.65 73.00 73.32 57.6

3) LLM-based Laundry Guide

  • ์ž์ฒด LLM(2.1 B) + Rule Prompt ์กฐํ•ฉ์œผ๋กœ ์ž์—ฐ์Šค๋Ÿฌ์šด ์„ธํƒ ๋ฐฉ๋ฒ• ์„ค๋ช…์„ ์ƒ์„ฑ.
  • ์ •๋Ÿ‰ ํ‰๊ฐ€๋Š” ์–ด๋ ค์šฐ๋‚˜, UX ํ…Œ์ŠคํŠธ(5๋ช…)์—์„œ โ€œ์„ค๋ช…์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹คโ€ ์‘๋‹ต 95 %.*

๐Ÿ—๏ธ ํ•™์Šต ์„ค์ • ์š”์•ฝ

๋ชจ๋ธ๊ตฐ epochs imgsz mosaic mixup auto_augment optimizer
stain 150 1600 1.0 0.0 randaugment auto
symbol 150 2048 โœ“ 0.3 โ€” auto

๋ชจ์ž์ดํฌ ๋น„ํ™œ์„ฑ ์‹คํ—˜์—์„œ ๊ฒ€์ถœ ์ •ํ™•๋„๊ฐ€ 2 ~ 4 %p ํ•˜๋ฝ.


๐Ÿ—‚๏ธ ์–ด๋…ธํ…Œ์ด์…˜ ๋ฐ์ดํ„ฐ์…‹

ํ•ญ๋ชฉ ๋‚ด์šฉ
๋ชฉ์  ๊ฐ์ฒด ํƒ์ง€ ๊ธฐ๋ฐ˜ ๋ถ„๋ฅ˜ ํ•™์Šต์„ ์œ„ํ•ด ์ •๋ฐ€ํ•œ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค ํ•„์š”
์ˆ˜๋Ÿ‰ 3,132์žฅ ์ˆ˜์ž‘์—… ์™„๋ฃŒ
ํด๋ž˜์Šค Stain 9์ข… / Symbol 43์ข…
๋ผ๋ฒจ ํฌ๋งท YOLOv8 txt (class x_center y_center w h)
ํˆด LabelImg (์˜คํ”ˆ์†Œ์Šค GUI)
์ž‘์—… ํ™˜๊ฒฝ ๋กœ์ปฌ โ€“ 2์ธ ๊ฒ€์ˆ˜ & ๋ฒ„์ „ ๊ด€๋ฆฌ

8

๐ŸŒŸ ํ•˜์ด๋ผ์ดํŠธ

  • stain_yolov8s_1600_a1 ๋ชจ๋ธ์ด F1-score 88.09 %๋กœ ์ตœ๊ณ  ์„ฑ๋Šฅ.
  • ํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™”(Conf/IoU Sweep) + 1600 ์ž…๋ ฅ์œผ๋กœ mAP +1.3 %p, Latency -8 ms.
  • pre_final_yolov8m_2048 ๋ชจ๋ธ์ด mAP@50-95 72.46 %๋กœ ์ตœ๊ณ  ์„ฑ๋Šฅ.

๐Ÿงช ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

# 1) ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰
python pipe_final.py \
  --db-host localhost \
  --db-port <PORT> \
  --db-user <USER> \
  --db-password <PASSWORD> \
  --db-name rushwash

# 2) ๊ฐœ๋ณ„ ์ถ”๋ก  (์–ผ๋ฃฉ ์ด๋ฏธ์ง€ ์˜ˆ์‹œ)
python ai/infer_stain.py --image /path/to/image.jpg
# 3) ํ”„๋ก ํŠธ์—”๋“œ ์‹คํ–‰
cd frontend
npm install
npm run dev

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

RushWash/
โ”œโ”€โ”€ ai/                # YOLO, CNN, OCR, LLM ๋ชจ๋“ˆ
โ”œโ”€โ”€ data/              # ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹ ยท ์„ค์ •
โ”œโ”€โ”€ frontend/          # React UI
โ”œโ”€โ”€ backend/           # Spring Boot ์„œ๋ฒ„
โ”œโ”€โ”€ database/          # MariaDB ์Šคํ‚ค๋งˆ
โ”œโ”€โ”€ pipe_final.py      # ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ ์Šคํฌ๋ฆฝํŠธ
โ””โ”€โ”€ README.md

๐Ÿ† ์ˆ˜์ƒ ๋ฐ ๋ฐœํ‘œ

  • ๐Ÿฅ‡ ํ•œ๊ตญ์ธ๊ณต์ง€๋Šฅ์œตํ•ฉ๊ธฐ์ˆ ํ•™ํšŒ ์šฐ์ˆ˜ ๋ฐœํ‘œ ๋…ผ๋ฌธ์ƒ (2025)

๐Ÿ‘ค Team Members

Avatar ์ด๋ฆ„ย /ย ์˜๋ฌธ ๋‹ด๋‹น ์˜์—ญ ํ•ต์‹ฌ ๊ธฐ์ˆ ์Šคํƒ GitHub
์žฅ์žฌํ˜
Jae-Hyuk Jang
์‹œ์Šคํ…œ ์„ค๊ณ„ยท๊ตฌํ˜„
(AIย ยทย MLOps)
YOLOv8ย | PyTorchย | Rayย | MLflow Jae-Hyuk-Jang
๊น€ํƒœ์œค
Tae-Yoon Kim
์‹œ์Šคํ…œ ์„ค๊ณ„ยท๊ตฌํ˜„
(AIย ยทย MLOps)
LLMย | PyTorchย | MLflow tyoon11
๊น€์ฑ„์—ฐ
Chae-Yeon Kim
๋ฐฑ์—”๋“œย ๊ฐœ๋ฐœย (BE) Springย Bootย | JPAย | MariaDBย  chaechae128
์ „์ˆ˜ํ˜„
Su-Hyun Jeon
๋ฐฑ์—”๋“œย ๊ฐœ๋ฐœย (BE) Springย Bootย | JPAย | MariaDBย  soo0711
๊น€์ง€ํ˜„
Ji-Hyun Kim
ํ”„๋ก ํŠธ์—”๋“œย ๊ฐœ๋ฐœย (FE) Reactย | TailwindCSS ghbtkk

About

graduation comprehensive project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published