์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ

ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” ๋ชจ๋‘ ๊ฐœ ํ’ˆ์ข…์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์–ด๋ ค์šด 10๊ฐ€์ง€ ํด๋ž˜์Šค๋กœ ๊ตฌ์„ฑ๋œ ImageNet์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ’€๊ธฐ ์–ด๋ ค์šด ๊ณผ์ œ๋กœ์„œ, ๊ณ ๊ธ‰ ๋ชจ๋ธ ๊ฐœ๋ฐœ์„ ์žฅ๋ คํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • ImageWoof์—๋Š” 10๊ฐ€์ง€ ๊ฒฌ์ข…์˜ ์ด๋ฏธ์ง€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค: ํ˜ธ์ฃผ ํ…Œ๋ฆฌ์–ด, ๋ณด๋” ํ…Œ๋ฆฌ์–ด, ์‚ฌ๋ชจ์˜ˆ๋“œ, ๋น„๊ธ€, ์‹œ์ถ”, English ํญ์Šคํ•˜์šด๋“œ, ๋กœ๋””์ง€์•ˆ ๋ฆฌ์ง€๋ฐฑ, ๋”ฉ๊ณ , ๊ณจ๋“  ๋ฆฌํŠธ๋ฆฌ๋ฒ„, ์˜ฌ๋“œ English ์‹œํ”„๋„๊ทธ์ž…๋‹ˆ๋‹ค.
  • ์ด ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” ๋‹ค์–‘ํ•œ ๊ณ„์‚ฐ ๋Šฅ๋ ฅ๊ณผ ์—ฐ๊ตฌ ์š”๊ตฌ์— ๋งž์ถฐ ๋‹ค์–‘ํ•œ ํ•ด์ƒ๋„(์ „์ฒด ํฌ๊ธฐ, 320ํ”ฝ์…€, 160ํ”ฝ์…€)์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ๋…ธ์ด์ฆˆ ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ๋ฒ„์ „๋„ ํฌํ•จ๋˜์–ด ์žˆ์–ด ๋ ˆ์ด๋ธ”์„ ํ•ญ์ƒ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ณด๋‹ค ํ˜„์‹ค์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ตฌ์กฐ

ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ตฌ์กฐ๋Š” ๊ฒฌ์ข… ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ๊ฐ ๊ฒฌ์ข…์—๋Š” ๊ณ ์œ ํ•œ ์ด๋ฏธ์ง€ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

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

์‚ฌ์šฉ๋ฒ•

์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ 224x224์ธ 100๊ฐœ์˜ ์—ํฌํฌ์— ๋Œ€ํ•ด ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ CNN ๋ชจ๋ธ์„ ํ›ˆ๋ จํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ธ์ˆ˜์˜ ์ „์ฒด ๋ชฉ๋ก์€ ๋ชจ๋ธ ํ›ˆ๋ จ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์—ด์ฐจ ์˜ˆ์‹œ

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-cls.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='imagewoof', epochs=100, imgsz=224)
# Start training from a pretrained *.pt model
yolo detect train data=imagewoof model=yolov8n-cls.pt epochs=100 imgsz=224

๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ ๋ณ€ํ˜•

ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” ๋‹ค์–‘ํ•œ ์—ฐ๊ตฌ ์š”๊ตฌ์™€ ๊ณ„์‚ฐ ๋Šฅ๋ ฅ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ธ ๊ฐ€์ง€ ํฌ๊ธฐ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค:

  1. ์ „์ฒด ํฌ๊ธฐ(์ด๋ฏธ์ง€์šฐํ”„): ์ด๋ฏธ์ง€์šฐํ”„ ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ์›๋ณธ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ „์ฒด ํฌ๊ธฐ ์ด๋ฏธ์ง€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ตœ์ข… ๊ต์œก ๋ฐ ์„ฑ๋Šฅ ๋ฒค์น˜๋งˆํ‚น์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.

  2. ์ค‘๊ฐ„ ํฌ๊ธฐ(imagewoof320): ์ด ๋ฒ„์ „์—๋Š” ์ตœ๋Œ€ ๊ฐ€์žฅ์ž๋ฆฌ ๊ธธ์ด๊ฐ€ 320ํ”ฝ์…€์ด ๋˜๋„๋ก ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋œ ์ด๋ฏธ์ง€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ์ €ํ•˜์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ ๋” ๋น ๋ฅธ ํ›ˆ๋ จ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  3. ์ž‘์€ ํฌ๊ธฐ(์ด๋ฏธ์ง€ ํฌ๊ธฐ 160): ์ด ๋ฒ„์ „์—๋Š” ์ตœ๋Œ€ ๊ฐ€์žฅ์ž๋ฆฌ ๊ธธ์ด๊ฐ€ 160ํ”ฝ์…€์ด ๋˜๋„๋ก ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋œ ์ด๋ฏธ์ง€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ ˆ์ด๋‹ ์†๋„๊ฐ€ ์šฐ์„ ์‹œ๋˜๋Š” ์‹ ์†ํ•œ ํ”„๋กœํ† ํƒ€์ดํ•‘ ๋ฐ ์‹คํ—˜์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ณ€ํ˜•์„ ํ›ˆ๋ จ์— ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ ์„ธํŠธ ์ธ์ˆ˜์˜ 'imagewoof'๋ฅผ 'imagewoof320' ๋˜๋Š” 'imagewoof160'์œผ๋กœ ๋ฐ”๊พธ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-cls.pt')  # load a pretrained model (recommended for training)

# For medium-sized dataset
model.train(data='imagewoof320', epochs=100, imgsz=224)

# For small-sized dataset
model.train(data='imagewoof160', epochs=100, imgsz=224)

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

์ƒ˜ํ”Œ ์ด๋ฏธ์ง€ ๋ฐ ์ฃผ์„

ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ์—๋Š” ๋‹ค์–‘ํ•œ ๊ฒฌ์ข…์˜ ๋‹ค์ฑ„๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ์ž‘์—…์„ ์œ„ํ•œ ๊นŒ๋‹ค๋กœ์šด ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ด ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ์ด๋ฏธ์ง€ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

๋ฐ์ดํ„ฐ ์„ธํŠธ ์ƒ˜ํ”Œ ์ด๋ฏธ์ง€

์ด ์˜ˆ๋Š” ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๋‹ค์–‘ํ•œ ๊ฒฌ์ข… ๊ฐ„์˜ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด์ ๊ณผ ์œ ์‚ฌ์ ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ ๋ถ„๋ฅ˜ ์ž‘์—…์˜ ๋ณต์žก์„ฑ๊ณผ ๋‚œ์ด๋„๋ฅผ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

์ธ์šฉ ๋ฐ ๊ฐ์‚ฌ

์—ฐ๊ตฌ ๋˜๋Š” ๊ฐœ๋ฐœ ์ž‘์—…์— ImageWoof ๋ฐ์ดํ„ฐ์…‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๊ณต์‹ ๋ฐ์ดํ„ฐ์…‹ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋งํฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ์…‹์˜ ์ œ์ž‘์ž๋ฅผ ๋ฐ˜๋“œ์‹œ ์ธ์ •ํ•ด ์ฃผ์„ธ์š”.

๋จธ์‹  ๋Ÿฌ๋‹ ๋ฐ ์ปดํ“จํ„ฐ ๋น„์ „ ์—ฐ๊ตฌ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ„ํ•œ ๊ท€์ค‘ํ•œ ๋ฆฌ์†Œ์Šค์ธ ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•ด ์ฃผ์‹  FastAI ํŒ€์— ๊ฐ์‚ฌ์˜ ๋ง์”€์„ ์ „ํ•ฉ๋‹ˆ๋‹ค. ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ImageWoof ๋ฐ์ดํ„ฐ ์„ธํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.



์ƒ์„ฑ 2023-11-12, ์—…๋ฐ์ดํŠธ 2023-12-03
์ž‘์„ฑ์ž: glenn-jocher (3)

๋Œ“๊ธ€