Skip to content

Latest commit

ย 

History

History
165 lines (126 loc) ยท 3.71 KB

File metadata and controls

165 lines (126 loc) ยท 3.71 KB

YOLO ๋ชจ๋ธ ์‚ฌ์šฉ ๊ฐ€์ด๋“œ

๐Ÿ“ฆ ๋ชจ๋ธ ๋ณ€ํ™˜ ์™„๋ฃŒ!

best.pt โ†’ louvre.mlpackage ๋ณ€ํ™˜ ์™„๋ฃŒ

์œ„์น˜: /Users/parkjh/Documents/ios/hackseoul-2025/louvre.mlpackage


๐Ÿ”ง ๋ชจ๋ธ ๋ชจ๋“œ ์ „ํ™˜ ๋ฐฉ๋ฒ•

ModelConfig.swift ํŒŒ์ผ์—์„œ ๋‹ค์Œ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜์„ธ์š”:

1. ๋กœ์ปฌ ๋ชจ๋ธ ์‚ฌ์šฉ (louvre.mlpackage)

// ModelConfig.swift
class ModelConfig {
    static var useLocalModel: Bool = true  // โœ… ๋กœ์ปฌ ๋ชจ๋ธ ์‚ฌ์šฉ
    static var currentModel: YOLOModel = .louvre
}

๋™์ž‘:

  • Xcode ํ”„๋กœ์ ํŠธ์— ๋ฒˆ๋“ค๋œ louvre.mlpackage ์‚ฌ์šฉ
  • API ๋‹ค์šด๋กœ๋“œ ๋ถˆํ•„์š”
  • ์•ฑ ์„ค์น˜ ์‹œ ๋ชจ๋ธ ํฌํ•จ๋จ

2. API ๋‹ค์šด๋กœ๋“œ ๋ชจ๋ธ ์‚ฌ์šฉ

// ModelConfig.swift
class ModelConfig {
    static var useLocalModel: Bool = false  // โŒ API ๋ชจ๋ธ ์‚ฌ์šฉ
    static var currentModel: YOLOModel = .museum
}

๋™์ž‘:

  • ContentView์˜ "์Šค์บ” ์‹œ์ž‘" ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ API์—์„œ ๋‹ค์šด๋กœ๋“œ
  • Documents ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ
  • ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ํ•„์š”

๐Ÿ“ฑ Xcode ํ”„๋กœ์ ํŠธ ์„ค์ •

  1. louvre.mlpackage ์ถ”๊ฐ€

    1) Xcode์—์„œ hackseoul-2025 ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ
    2) louvre.mlpackage๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ
       ์œ„์น˜: /Users/parkjh/Documents/ios/hackseoul-2025/louvre.mlpackage
    3) "Copy items if needed" ์ฒดํฌ
    4) Target: hackseoul-2025 ์„ ํƒ
    5) Finish ํด๋ฆญ
    
  2. ๋นŒ๋“œ ํ™•์ธ

    ํ”„๋กœ์ ํŠธ ๋‚ด๋น„๊ฒŒ์ดํ„ฐ์—์„œ louvre.mlpackage ํ™•์ธ
    Target Membership์ด ์ฒดํฌ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
    Xcode๊ฐ€ ์ž๋™์œผ๋กœ louvre.swift ํด๋ž˜์Šค ์ƒ์„ฑํ•จ (์ž๋™)
    
  3. Clean Build (์ค‘์š”!)

    Cmd+Shift+K (Clean Build Folder)
    Cmd+B (Build)
    

โš™๏ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋ธ

.louvre (์ถ”์ฒœ)

  • ํŒŒ์ผ: louvre.mlpackage
  • ํ•™์Šต: best.pt์—์„œ ๋ณ€ํ™˜
  • ์šฉ๋„: ๋ฃจ๋ธŒ๋ฅด ๋ฐ•๋ฌผ๊ด€ ๊ฐ์ฒด ์ธ์‹
  • ์‚ฌ์šฉ: ๋กœ์ปฌ ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉ

.museum

  • ํŒŒ์ผ: museum_detector.mlpackage
  • ์šฉ๋„: ์ผ๋ฐ˜ ๋ฐ•๋ฌผ๊ด€ ๊ฐ์ฒด
  • ์‚ฌ์šฉ: API ๋ชจ๋“œ ๋˜๋Š” ๋ฒˆ๋“ค ํด๋ฐฑ

.coco

  • ํŒŒ์ผ: yolov8n.mlpackage
  • ์šฉ๋„: 80๊ฐ€์ง€ ์ผ๋ฐ˜ ๊ฐ์ฒด (ํ…Œ์ŠคํŠธ์šฉ)
  • ์‚ฌ์šฉ: ๊ฐœ๋ฐœ/๋””๋ฒ„๊น…

๐Ÿงช ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•

๋กœ์ปฌ ๋ชจ๋ธ ํ…Œ์ŠคํŠธ

  1. ModelConfig.useLocalModel = true ์„ค์ •
  2. ModelConfig.currentModel = .louvre ์„ค์ •
  3. ์•ฑ ์‹คํ–‰
  4. ์ฝ˜์†” ๋กœ๊ทธ ํ™•์ธ:
    ๐Ÿ“ฆ ๋กœ์ปฌ ๋ฒˆ๋“ค ๋ชจ๋ธ ์‚ฌ์šฉ: louvre
    โœ… louvre.mlpackage ๋กœ๋“œ ์„ฑ๊ณต
    โœ… ๋ฒˆ๋“ค ๋ชจ๋ธ ๋กœ๋“œ ์™„๋ฃŒ: louvre
    

API ๋ชจ๋ธ ํ…Œ์ŠคํŠธ

  1. ModelConfig.useLocalModel = false ์„ค์ •
  2. ModelConfig.currentModel = .museum ์„ค์ •
  3. ์•ฑ ์‹คํ–‰ โ†’ "์Šค์บ” ์‹œ์ž‘" ํด๋ฆญ
  4. ์ฝ˜์†” ๋กœ๊ทธ ํ™•์ธ:
    ๐Ÿ“ฆ API ๋‹ค์šด๋กœ๋“œ ๋ชจ๋ธ ์‚ฌ์šฉ: museum
    โœ… ๋‹ค์šด๋กœ๋“œ ๋ชจ๋ธ ๋กœ๋“œ ์™„๋ฃŒ: museum
    

๐Ÿ” ๋ชจ๋ธ ์„ฑ๋Šฅ

louvre.mlpackage (best.pt)

  • mAP@0.5: 99.5%
  • Precision: 99.6%
  • Recall: 100%
  • ํ•™์Šต: 30 epochs
  • ํด๋ž˜์Šค: ๋ชจ๋‚˜๋ฆฌ์ž ๋“ฑ ๋ฃจ๋ธŒ๋ฅด ์ „์šฉ

๐Ÿšจ ๋ฌธ์ œ ํ•ด๊ฒฐ

Cannot find 'louvre' in scope

โŒ Cannot find 'louvre' in scope

ํ•ด๊ฒฐ:

  1. Xcode์—์„œ louvre.mlpackage๋ฅผ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€
  2. File Inspector์—์„œ Target Membership ์ฒดํฌ
  3. Clean Build Folder (Cmd+Shift+K)
  4. ํ”„๋กœ์ ํŠธ ๋ฆฌ๋นŒ๋“œ (Cmd+B)

๋ชจ๋ธ ๋กœ๋“œ ์‹คํŒจ

โŒ ๋ฒˆ๋“ค ๋ชจ๋ธ ๋กœ๋“œ ์‹คํŒจ

ํ•ด๊ฒฐ:

  1. louvre.mlpackage๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
  2. Target Membership์ด ์ฒดํฌ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
  3. Clean Build Folder (Cmd+Shift+K)
  4. ํ”„๋กœ์ ํŠธ ์žฌ์‹œ์ž‘

๐Ÿ“ ์ถ”๊ฐ€ ๋ชจ๋ธ ๋ณ€ํ™˜

์ƒˆ๋กœ์šด best.pt๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด:

cd /Users/parkjh/Documents/ios/hackseoul-2025/hackseoul-2025
python3 ../convert_to_coreml.py

์ž๋™์œผ๋กœ louvre.mlpackage๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.