Super Kawaii Cute Cat Kaoani
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
{Project}/Team Project

[์ธ๊ณต์ง€๋Šฅ์‘์šฉ] ๊ฐ•์•„์ง€ ๊ฐ์ • ๋ถ„์„ puppysense ํ”„๋กœ์ ํŠธ ํšŒ๊ณ ๋ก

by wonee1 2025. 7. 2.
728x90

๐Ÿถ PuppySense ํ”„๋กœ์ ํŠธ ํšŒ๊ณ ๋ก

 

 

์ด๋ฒˆ 1ํ•™๊ธฐ ์ „๊ณต ์ˆ˜์—…์ธ ์ธ๊ณต์ง€๋Šฅ์‘์šฉ์—์„œ AI ๋ชจ๋ธ ํ•™์Šต๊ณผ ๊ธฐ์ˆ  ๊ตฌํ˜„์„ ๋ชฉํ‘œ๋กœ ํ•œ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. EfficientNet ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ํ•™์Šต๊ณผ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ตฌ์ถ•์„ ๋งก์•„ ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์šฐ๋ฆฌํŒ€์€ ๋ชจ๋ธ์„ ํ•™์Šต ์‹œํ‚จ ๋’ค ์„œ๋ฒ„์— ํ•™์Šต ์‹œํ‚จ ๋ชจ๋ธ์„ ์‚ฝ์ž…ํ•˜์—ฌ ์›น ์‚ฌ์ดํŠธ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ๋‹ค. 

1. ํ”„๋กœ์ ํŠธ ๋ฐฐ๊ฒฝ๊ณผ ๋ชฉํ‘œ

 

 

๋ฐ˜๋ ค๊ฒฌ์˜ ๊ฐ์ •์„ ์ดํ•ดํ•˜๊ณ  ๋ณดํ˜ธ์ž์™€์˜ ๊ต๊ฐ์„ ์ฆ์ง„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ•์•„์ง€์˜ ํ‘œ์ •๊ณผ ํ–‰๋™์„ ๋ถ„์„ํ•˜๋Š” AI ์›น ์„œ๋น„์Šค PuppySense๋ฅผ ๊ธฐํšํ–ˆ๋‹ค. ๊ธฐ์กด ์„œ๋น„์Šค๋Š” ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ๋ถ„์„์— ๊ทธ์น˜๊ฑฐ๋‚˜ ResNet, MobileNetV2 ๊ฐ™์€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ์„ฑ๋Šฅ๊ณผ ๊ฒฝ๋Ÿ‰์„ฑ ๋ชจ๋‘ ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด EfficientNetB4 ๊ธฐ๋ฐ˜์˜ ๊ฒฝ๋Ÿ‰ ๊ณ ์„ฑ๋Šฅ ๋ชจ๋ธ์„ ์ ์šฉํ–ˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ์˜์ƒ์„ ๋ถ„์„ํ•ด ํ–‰๋ณต/์Šฌํ””/ํ™”๋‚จ/ํŽธ์•ˆํ•จ 4๊ฐ€์ง€ ๊ฐ์ •์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์›น์—์„œ ์ง๊ด€์ ์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ๋‹ค. 

 

ํ”„๋กœ์ ํŠธ ๊ณ„ํš์„ ๋ฐœํ‘œํ•˜๋Š” ์ค‘๊ฐ„ ๋ฐœํ‘œ์—์„œ ๊ธฐ์กด์˜ ์„œ๋น„์Šค๋“ค๊ณผ์˜ ์ฐจ๋ณ„์„ฑ์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ํ‰๊ฐ€๋ฅผ ๋ฐ›์•˜์•„์„œ ์ด๋ฅผ ๋ณด์•ˆํ•˜์—ฌ์„œ ์˜์ƒ ๋ถ„์„์— ์ข€ ๋” ์ดˆ์ ์„ ๋‘์–ด ๊ฐœ๋ฐœํ–ˆ๋‹ค.

 

2. ๊ธฐ์ˆ ์  ๋„์ „๊ณผ ์„ค๊ณ„

 

(1) ๋ฐ์ดํ„ฐ ์„ค๊ณ„ ๋ฐ ์ „์ฒ˜๋ฆฌ

 

 

 

 

Kaggle Dog Emotion ๋ฐ์ดํ„ฐ์…‹(angry/happy/relaxed/sad ๊ฐ 1,000์žฅ)์„ ์‚ฌ์šฉํ–ˆ๋‹ค. BlazeFace ๋ชจ๋ธ๋กœ ์—…๋กœ๋“œ๋œ ์˜์ƒ์—์„œ ๊ฐ•์•„์ง€ ์–ผ๊ตด์ด ํฌํ•จ๋œ ํ”„๋ ˆ์ž„์„ ํƒ์ง€ํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•ด ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ 224x224๋กœ ํ†ต์ผํ•˜๊ณ  RGB ๋ณ€ํ™˜, ์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฉฐ, ๋ ˆ์ด๋ธ”์€ One-hot Encoding์„ ์ ์šฉํ–ˆ๋‹ค.

 

 

 

 

(2) ๋ชจ๋ธ ์„ค๊ณ„ ๋ฐ ํ•™์Šต 

 

 

 

 

 

EfficientNetB4๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ImageNet ์‚ฌ์ „ํ•™์Šต ๊ฐ€์ค‘์น˜๋ฅผ ํ™œ์šฉํ•ด ์ „์ดํ•™์Šต์„ ์ง„ํ–‰ํ–ˆ๋‹ค. 1๋‹จ๊ณ„๋กœ ๋ชจ๋“  ๋ ˆ์ด์–ด๋ฅผ freezeํ•˜๊ณ  ํ•™์Šตํ•œ ํ›„, ์ƒ์œ„ ๋ ˆ์ด์–ด ์ผ๋ถ€๋ฅผ unfreezeํ•ด ๋‚ฎ์€ ํ•™์Šต๋ฅ ๋กœ fine-tuning์„ ์ ์šฉํ–ˆ๋‹ค.

 

 

 

 

๊ณผ์ ํ•ฉ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด Dropout(0.6), L2 ์ •๊ทœํ™”, ImageDataGenerator ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•, EarlyStopping ๋“ฑ์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

 

 

 

(3) ์›น ์„œ๋น„์Šค ๊ตฌํ˜„ ๊ณผ์ • 

 

 

 

 

์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ•์•„์ง€ ์‚ฌ์ง„์ด๋‚˜ ์˜์ƒ์„ ์—…๋กœ๋“œํ•˜๋ฉด BlazeFace๋กœ ์–ผ๊ตด ํ”„๋ ˆ์ž„์„ ์ถ”์ถœํ•˜๊ณ , ์„ ํƒํ•œ ์ด๋ฏธ์ง€๋ฅผ API๋กœ ์ „์†กํ•ด ๊ฐ์ •์„ ์˜ˆ์ธกํ–ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์ด๋ฏธ์ง€์™€ ํ•จ๊ป˜ ๊ฐ์ •๋ณ„ ํ™•๋ฅ ๋กœ ํ‘œ์‹œํ–ˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ถ„์„ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€ํ•ด ์„œ๋น„์Šค์˜ ์™„์„ฑ๋„๋ฅผ ๋†’์˜€๋‹ค. 

 

๋˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ•์•„์ง€ ์‚ฌ์ง„์„ ์ „์†กํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ง€๋ฃจํ•˜์ง€ ์•Š๋„๋ก ๊ฐ•์•„์ง€๊ฐ€ ๊ณต์„ ๊ฐ€์ง€๊ณ  ๋…ธ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ถ”๊ฐ€ํ•ด ์žฌ๋ฏธ๋ฅผ ์ฃผ์—ˆ๋‹ค. 

 

 

 

 

 

ํ•™์Šตํ•œ ๋ชจ๋ธ์„ Flask๋กœ ๊ตฌ์ถ•ํ•œ ์›น ์„œ๋ฒ„์— ์‚ฝ์ž…ํ•˜๊ณ  /predict ์—”๋“œํฌ์ธํŠธ์—์„œ ๊ฐ์ • ์˜ˆ์ธก์„ ์ฒ˜๋ฆฌํ–ˆ๋‹ค. ์˜ˆ์ธก ๊ฒฐ๊ณผ๋Š” ๊ฐ์ •๋ณ„ ํ™•๋ฅ (%)๊ณผ ์ด๋ฏธ์ง€ URL์„ ํฌํ•จํ•ด ์‘๋‹ต์œผ๋กœ ๋ฐ˜ํ™˜๋˜๋„๋ก ํ–ˆ์œผ๋ฉฐ, AWS S3์— ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  GCP์™€ Nginx๋ฅผ ํ™œ์šฉํ•ด HTTPS ํ™˜๊ฒฝ์œผ๋กœ ๋ฐฐํฌํ–ˆ๋‹ค.

 

 

 

 

(4) ์›น ์„œ๋น„์Šค ๊ตฌํ˜„ ๊ฒฐ๊ณผ 

 

์›น ํŽ˜์ด์ง€ ๊ตฌํ˜„ ๊ฒฐ๊ณผ

 

๋ฉ”์ธ ํ™”๋ฉด์—์„œ ์˜์ƒ์„ ์—…๋กœ๋“œํ•˜๋ฉด ๊ฐ•์•„์ง€ ์–ผ๊ตด์ด ๊ฐ์ง€๋œ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ ํƒํ•œ ์ด๋ฏธ์ง€์˜ ๊ฐ์ •์„ ์˜ˆ์ธกํ•ด ํ™•๋ฅ ๊ณผ ํ•จ๊ป˜ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€ ์ค‘ ์ตœ์ ์˜ ํ”„๋ ˆ์ž„์„ ์„ ํƒํ•ด ์ •ํ™•๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ถ„์„ ๊ฒฐ๊ณผ๋Š” ์„œ๋ฒ„์— ์ €์žฅ๋˜๋ฉฐ ์ง๊ด€์ ์ธ UI๋กœ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

3. ๋‚ด๊ฐ€ ๋งก์€ ์—ญํ• 

๋‚˜๋Š” ์ „๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„์™€ ์ฝ”๋žฉ ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ๋ชจ๋ธ ํŒŒ์ธํŠœ๋‹์„ ๋งก์•„์„œ ์ง„ํ–‰ํ–ˆ๋‹ค. 

 

  • Colab ํ™˜๊ฒฝ ์„ค์ •
  • ๋ฐฑ์—”๋“œ GitHub ํ™˜๊ฒฝ ์„ค์ •์„ ์ง„ํ–‰ํ–ˆ๋‹ค. 
  • L2 ์ •๊ทœํ™” ์ ์šฉ ๋ฐ fine-tuning์„ ํ†ตํ•œ ๋ชจ๋ธ ์ตœ์ ํ™”
  • Flask ์„œ๋ฒ„ ์„ค์ •๊ณผ ๋ชจ๋ธ ์‚ฝ์ž… (EfficientNet ๋ชจ๋ธ ๊ตฌ๋™)
  • ์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด ์˜ˆ์ธก์„ ์ˆ˜ํ–‰ํ•˜๋Š” API ์ž‘์„ฑ

 

4. ํ˜‘์—…๊ณผ ์„ฑ๊ณผ

 

 

 

 ํ”„๋ก ํŠธ์—”๋“œ(์˜์ƒ ์—…๋กœ๋“œ, ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”), ๋ฐฑ์—”๋“œ(๋ชจ๋ธ ์‚ฝ์ž…, API ์„ค๊ณ„), AI ๋ชจ๋ธ ํ•™์Šต์œผ๋กœ ๋‚˜๋ˆ  ์—ญํ• ์„ ๋ถ„๋‹ดํ–ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ํšŒ์˜, GitHub, ๋…ธ์…˜ ๋“ฑ์„ ํ™œ์šฉํ•ด ์ง„ํ–‰ ์ƒํ™ฉ์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋ธ ์ •ํ™•๋„๋ฅผ ํ…Œ์ŠคํŠธ ๊ธฐ์ค€ ์•ฝ 85%๋กœ ์•ˆ์ •์ ์ธ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ–ˆ๋‹ค. ์˜์ƒ ์—…๋กœ๋“œ → ํ”„๋ ˆ์ž„ ์ถ”์ถœ → ๊ฐ์ • ์˜ˆ์ธก → ์‹œ๊ฐ์  ๊ฒฐ๊ณผ ์ œ๊ณต๊นŒ์ง€ ์—”๋“œ ํˆฌ ์—”๋“œ ์‹œ์Šคํ…œ์„ ์™„์„ฑํ–ˆ๋‹ค. UX ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋ถ„์„ ๋Œ€๊ธฐ ์ค‘ ๊ฐ•์•„์ง€๊ฐ€ ๊ณต๋†€์ดํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ถ”๊ฐ€ํ•ด ์„œ๋น„์Šค ์™„์„ฑ๋„๋ฅผ ๋†’์˜€๋‹ค. 

 

 

 

 

5. ๋ฐฐ์šด ์ ๊ณผ ์•„์‰ฌ์›€

 

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ๋ถ€ํ„ฐ ๋ชจ๋ธ ํ•™์Šต, ์„œ๋น„์Šค ๋ฐฐํฌ๊นŒ์ง€ AI ์„œ๋น„์Šค์˜ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง์ ‘ ๊ฒฝํ—˜ํ•˜๋ฉฐ ์‹ค๋ฌด ๊ฐ๊ฐ์„ ํ‚ค์› ๋‹ค. ์ด๋ฏธ์ง€ ์ฆ๊ฐ•์„ ์ ์šฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋ชจ๋ธ ์ •ํ™•๋„๊ฐ€ ๊ธ‰๋ฝํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ, ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ  ๋กค๋ฐฑ·์žฌ์ ์šฉํ•˜๋ฉฐ ํ•ด๊ฒฐํ–ˆ๋‹ค.

 

์‹ค์ œ ์„œ๋น„์Šคํ™” ๊ณผ์ •์—์„œ CORS, HTTPS ์ธ์ฆ, ํ”„๋ก ํŠธ-๋ฐฑ์—”๋“œ ํ†ต์‹  ์˜ค๋ฅ˜ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ , ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉฐ ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ ํ˜‘์—… ์—ญ๋Ÿ‰์„ ์„ฑ์žฅ์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋‹ค๋งŒ ๋‹ค์–‘ํ•œ ๊ฒฌ์ข…๊ณผ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๋Œ€์‘์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํ™•๋ณด์˜ ํ•„์š”์„ฑ์ด ์•„์‰ฌ์›€์œผ๋กœ ๋‚จ์•˜๋‹ค. ์ถ”ํ›„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์•„์‰ฌ์› ๋˜ ์ ์„ ๋ณด์™„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ•  ์—์ •์ด๋‹ค, 

 

 

 

 


 

 

 

๐Ÿ”— ๊นƒํ—ˆ๋ธŒ ๋งํฌ 

 

ํŒ€ repository : https://github.com/oculo0204/AppliedAI3

 

GitHub - oculo0204/AppliedAI3: ์ธ๊ณต์ง€๋Šฅ ์‘์šฉ 3ํŒ€์ž…๋‹ˆ๋‹ค.

์ธ๊ณต์ง€๋Šฅ ์‘์šฉ 3ํŒ€์ž…๋‹ˆ๋‹ค. Contribute to oculo0204/AppliedAI3 development by creating an account on GitHub.

github.com

 

 

๋ฐฑ์—”๋“œ repository: https://github.com/wonee1/Puppysense_BE

 

GitHub - wonee1/Puppysense_BE: ์ธ๊ณต์ง€๋Šฅ์‘์šฉ ๋‚˜๋งŒ์—†์–ด๊ฐ•์•„์ง€ํŒ€ ๋ฐฑ์—”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ

์ธ๊ณต์ง€๋Šฅ์‘์šฉ ๋‚˜๋งŒ์—†์–ด๊ฐ•์•„์ง€ํŒ€ ๋ฐฑ์—”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ. Contribute to wonee1/Puppysense_BE development by creating an account on GitHub.

github.com

 


ํ”„๋ก ํŠธ์—”๋“œ repository:
  20221171/AI

์ „์ฒด ๋ฌธ์„œ ์ •๋ฆฌ repository: https://github.com/oculo0204/AppliedAI3?tab=readme-ov-file

 

 

๐Ÿ”— ๋ฐฐํฌ ์›น ํŽ˜์ด์ง€ ๋งํฌ 

 

๋ฐฐํฌ url: https://ai-beige-seven.vercel.app/

 

PuppySense

 

ai-beige-seven.vercel.app

 

 

 

๐Ÿ”— ์‹œ์—ฐ ์˜์ƒ 

 

 

https://youtu.be/1287B1peSEE

 

728x90