μ½˜ν…μΈ λ‘œ κ±΄λ„ˆλ›°κΈ°

CoreML YOLOv8 λͺ¨λΈμš© 내보내기

iPhone 및 Macκ³Ό 같은 Apple λ””λ°”μ΄μŠ€μ— 컴퓨터 λΉ„μ „ λͺ¨λΈμ„ λ°°ν¬ν•˜λ €λ©΄ μ›ν™œν•œ μ„±λŠ₯을 보μž₯ν•˜λŠ” ν˜•μ‹μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

CoreML 내보내기 ν˜•μ‹μ„ μ‚¬μš©ν•˜λ©΄ λͺ¨λΈμ„ μ΅œμ ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Ultralytics YOLOv8 λͺ¨λΈμ„ μ΅œμ ν™”ν•˜μ—¬ iOS 및 macOS μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 효율적으둜 였브젝트λ₯Ό 감지할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 κ°€μ΄λ“œμ—μ„œλŠ” λͺ¨λΈμ„ CoreML ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 단계λ₯Ό μ•ˆλ‚΄ν•˜μ—¬ λͺ¨λΈμ΄ Apple λ””λ°”μ΄μŠ€μ—μ„œ 더 μ‰½κ²Œ μž‘λ™ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

CoreML

CoreML κ°œμš”

CoreML λŠ” Accelerate, BNNS 및 Metal μ„±λŠ₯ 셰이더λ₯Ό 기반으둜 ν•˜λŠ” Apple의 κΈ°λ³Έ λ¨Έμ‹  λŸ¬λ‹ ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. iOS μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ›ν™œν•˜κ²Œ ν†΅ν•©λ˜λŠ” λ¨Έμ‹  λŸ¬λ‹ λͺ¨λΈ ν˜•μ‹μ„ μ œκ³΅ν•˜λ©° 이미지 뢄석, μžμ—°μ–΄ 처리, μ˜€λ””μ˜€-ν…μŠ€νŠΈ λ³€ν™˜, μ‚¬μš΄λ“œ 뢄석과 같은 μž‘μ—…μ„ μ§€μ›ν•©λ‹ˆλ‹€.

Core ML ν”„λ ˆμž„μ›Œν¬λŠ” μ˜¨λ””λ°”μ΄μŠ€ μ»΄ν“¨νŒ…μ„ μ‚¬μš©ν•˜μ—¬ μž‘λ™ν•˜λ―€λ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ λ„€νŠΈμ›Œν¬ μ—°κ²°μ΄λ‚˜ API 호좜 없이도 Core ML을 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 즉, μ‚¬μš©μžμ˜ λ””λ°”μ΄μŠ€μ—μ„œ 둜컬둜 λͺ¨λΈ 좔둠을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

CoreML λͺ¨λΈμ˜ μ£Όμš” κΈ°λŠ₯

Apple의 CoreML ν”„λ ˆμž„μ›Œν¬λŠ” μ˜¨λ””λ°”μ΄μŠ€ λ¨Έμ‹ λŸ¬λ‹μ„ μœ„ν•œ κ°•λ ₯ν•œ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. λ‹€μŒμ€ CoreML 을 개발자λ₯Ό μœ„ν•œ κ°•λ ₯ν•œ λ„κ΅¬λ‘œ λ§Œλ“œλŠ” μ£Όμš” κΈ°λŠ₯μž…λ‹ˆλ‹€:

  • 포괄적인 λͺ¨λΈ 지원: TensorFlow , PyTorch, scikit-learn, XGBoost, LibSVMκ³Ό 같은 인기 μžˆλŠ” ν”„λ ˆμž„μ›Œν¬μ—μ„œ λͺ¨λΈμ„ λ³€ν™˜ν•˜κ³  μ‹€ν–‰ν•©λ‹ˆλ‹€.

CoreML 지원 λͺ¨λΈ

  • μ˜¨λ””λ°”μ΄μŠ€ λ¨Έμ‹  λŸ¬λ‹: λ„€νŠΈμ›Œν¬ 연결이 ν•„μš” 없이 μ‚¬μš©μž λ””λ°”μ΄μŠ€μ—μ„œ 직접 λͺ¨λΈμ„ μ‹€ν–‰ν•˜μ—¬ 데이터 ν”„λΌμ΄λ²„μ‹œλ₯Ό 보μž₯ν•˜κ³  μ‹ μ†ν•˜κ²Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

  • μ„±λŠ₯ 및 μ΅œμ ν™”: μ΅œμ†Œν•œμ˜ μ „λ ₯κ³Ό λ©”λͺ¨λ¦¬ μ‚¬μš©μœΌλ‘œ 졜적의 μ„±λŠ₯을 λ‚΄κΈ° μœ„ν•΄ λ””λ°”μ΄μŠ€μ˜ CPU, GPU, λ‰΄λŸ΄ 엔진을 μ‚¬μš©ν•©λ‹ˆλ‹€. 정확도λ₯Ό μœ μ§€ν•˜λ©΄μ„œ λͺ¨λΈ μ••μΆ• 및 μ΅œμ ν™”λ₯Ό μœ„ν•œ 도ꡬλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

  • ν†΅ν•©μ˜ μš©μ΄μ„±: λ‹€μ–‘ν•œ λͺ¨λΈ μœ ν˜•μ— λŒ€ν•œ 톡합 ν˜•μ‹κ³Ό 앱에 μ›ν™œν•˜κ²Œ 톡합할 수 μžˆλŠ” μ‚¬μš©μž μΉœν™”μ μΈ APIλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. λΉ„μ „ 및 μžμ—°μ–΄μ™€ 같은 ν”„λ ˆμž„μ›Œν¬λ₯Ό 톡해 도메인별 μž‘μ—…μ„ μ§€μ›ν•©λ‹ˆλ‹€.

  • κ³ κΈ‰ κΈ°λŠ₯: κ°œμΈν™”λœ κ²½ν—˜μ„ μœ„ν•œ μ˜¨λ””λ°”μ΄μŠ€ ꡐ윑 κΈ°λŠ₯, λŒ€ν™”ν˜• ML κ²½ν—˜μ„ μœ„ν•œ 비동기 예츑, λͺ¨λΈ 검사 및 검증 도ꡬ가 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

CoreML 배포 μ˜΅μ…˜

YOLOv8 λͺ¨λΈμ„ CoreML ν˜•μ‹μœΌλ‘œ λ‚΄λ³΄λ‚΄λŠ” μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄κΈ° 전에 CoreML λͺ¨λΈμ΄ 일반적으둜 μ‚¬μš©λ˜λŠ” μœ„μΉ˜λ₯Ό 이해해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

CoreML λŠ” λ‹€μŒκ³Ό 같은 λ¨Έμ‹  λŸ¬λ‹ λͺ¨λΈμ„ μœ„ν•œ λ‹€μ–‘ν•œ 배포 μ˜΅μ…˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€:

  • μ˜¨λ””λ°”μ΄μŠ€ 배포: 이 방법은 CoreML λͺ¨λΈμ„ iOS 앱에 직접 ν†΅ν•©ν•©λ‹ˆλ‹€. 지연 μ‹œκ°„μ΄ 짧고, κ°œμΈμ •λ³΄ λ³΄ν˜Έκ°€ κ°•ν™”λ˜λ©°(데이터가 λ””λ°”μ΄μŠ€μ— 남아 있기 λ•Œλ¬Έμ—), μ˜€ν”„λΌμΈ κΈ°λŠ₯을 보μž₯ν•˜λŠ” 데 특히 μœ λ¦¬ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 μ ‘κ·Ό 방식은 특히 더 크고 λ³΅μž‘ν•œ λͺ¨λΈμ˜ 경우 λ””λ°”μ΄μŠ€μ˜ ν•˜λ“œμ›¨μ–΄ κΈ°λŠ₯에 따라 μ œν•œλ  수 μžˆμŠ΅λ‹ˆλ‹€. μ˜¨λ””λ°”μ΄μŠ€ λ°°ν¬λŠ” λ‹€μŒ 두 가지 λ°©λ²•μœΌλ‘œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    • μž„λ² λ””λ“œ λͺ¨λΈ: 이 λͺ¨λΈμ€ μ•± λ²ˆλ“€μ— ν¬ν•¨λ˜μ–΄ 있으며 μ¦‰μ‹œ μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 자주 μ—…λ°μ΄νŠΈν•  ν•„μš”κ°€ μ—†λŠ” μ†Œκ·œλͺ¨ λͺ¨λΈμ— μ΄μƒμ μž…λ‹ˆλ‹€.

    • λ‹€μš΄λ‘œλ“œν•œ λͺ¨λΈ: 이 λͺ¨λΈμ€ ν•„μš”μ— 따라 μ„œλ²„μ—μ„œ κ°€μ Έμ˜΅λ‹ˆλ‹€. 이 μ ‘κ·Ό 방식은 λŒ€κ·œλͺ¨ λͺ¨λΈμ΄λ‚˜ 정기적인 μ—…λ°μ΄νŠΈκ°€ ν•„μš”ν•œ λͺ¨λΈμ— μ ν•©ν•©λ‹ˆλ‹€. μ•± λ²ˆλ“€ 크기λ₯Ό μž‘κ²Œ μœ μ§€ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.

  • ν΄λΌμš°λ“œ 기반 배포: CoreML λͺ¨λΈμ€ μ„œλ²„μ—μ„œ ν˜ΈμŠ€νŒ…λ˜λ©° API μš”μ²­μ„ 톡해 iOS μ•±μ—μ„œ μ•‘μ„ΈμŠ€ν•©λ‹ˆλ‹€. 이 ν™•μž₯ κ°€λŠ₯ν•˜κ³  μœ μ—°ν•œ μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λ©΄ 앱을 μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ λͺ¨λΈμ„ μ‰½κ²Œ μ—…λ°μ΄νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ³΅μž‘ν•œ λͺ¨λΈμ΄λ‚˜ 정기적인 μ—…λ°μ΄νŠΈκ°€ ν•„μš”ν•œ λŒ€κ·œλͺ¨ 앱에 μ΄μƒμ μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 인터넷 연결이 ν•„μš”ν•˜λ©° 지연 μ‹œκ°„ 및 λ³΄μ•ˆ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

YOLOv8 λͺ¨λΈλ‘œ 내보내기 CoreML

YOLOv8 을 CoreML 으둜 내보내면 Apple μ—μ½”μ‹œμŠ€ν…œ λ‚΄μ—μ„œ μ΅œμ ν™”λœ μ˜¨λ””λ°”μ΄μŠ€ λ¨Έμ‹  λŸ¬λ‹ μ„±λŠ₯을 κ΅¬ν˜„ν•˜μ—¬ νš¨μœ¨μ„±, λ³΄μ•ˆ, iOS, macOS, watchOS, tvOS ν”Œλž«νΌκ³Όμ˜ μ›ν™œν•œ 톡합 μΈ‘λ©΄μ—μ„œ 이점을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ„€μΉ˜

ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λ €λ©΄ μ‹€ν–‰ν•©λ‹ˆλ‹€:

μ„€μΉ˜

# Install the required package for YOLOv8
pip install ultralytics

μ„€μΉ˜ κ³Όμ •κ³Ό κ΄€λ ¨λœ μžμ„Έν•œ 지침과 λͺ¨λ²” μ‚¬λ‘€λŠ” YOLOv8 μ„€μΉ˜ κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”. YOLOv8 에 ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λŠ” λ™μ•ˆ λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ 일반적인 문제 κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ—¬ ν•΄κ²° 방법과 νŒμ„ ν™•μΈν•˜μ„Έμš”.

μ‚¬μš©λ²•

μ‚¬μš© 지침을 μ‚΄νŽ΄λ³΄κΈ° 전에 Ultralytics μ—μ„œ μ œκ³΅ν•˜λŠ” λ‹€μ–‘ν•œ YOLOv8 λͺ¨λΈμ„ ν™•μΈν•˜μ„Έμš”. ν”„λ‘œμ νŠΈ μš”κ΅¬ 사항에 κ°€μž₯ μ ν•©ν•œ λͺ¨λΈμ„ μ„ νƒν•˜λŠ” 데 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

μ‚¬μš©λ²•

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to CoreML format
model.export(format='coreml')  # creates 'yolov8n.mlpackage'

# Load the exported CoreML model
coreml_model = YOLO('yolov8n.mlpackage')

# Run inference
results = coreml_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to CoreML format
yolo export model=yolov8n.pt format=coreml  # creates 'yolov8n.mlpackage''

# Run inference with the exported model
yolo predict model=yolov8n.mlpackage source='https://ultralytics.com/images/bus.jpg'

내보내기 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 내보내기 κ΄€λ ¨ λ¬Έμ„œ νŽ˜μ΄μ§€(Ultralytics )λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

내보낸 YOLOv8 CoreML λͺ¨λΈ 배포

Ultralytics YOLOv8 λͺ¨λΈμ„ CoreML 으둜 μ„±κ³΅μ μœΌλ‘œ 내보낸 λ‹€μŒ μ€‘μš”ν•œ λ‹¨κ³„λŠ” μ΄λŸ¬ν•œ λͺ¨λΈμ„ 효과적으둜 λ°°ν¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ CoreML λͺ¨λΈμ„ λ°°ν¬ν•˜λŠ” 방법에 λŒ€ν•œ μžμ„Έν•œ 지침은 λ‹€μŒ λ¦¬μ†ŒμŠ€λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”:

  • CoreML 도ꡬ: 이 κ°€μ΄λ“œμ—λŠ” TensorFlow, PyTorch, 기타 λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ Core ML둜 λͺ¨λΈμ„ λ³€ν™˜ν•˜λŠ” 지침과 μ˜ˆμ œκ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

  • ML 및 λΉ„μ „: CoreML λͺ¨λΈ μ‚¬μš© 및 κ΅¬ν˜„μ˜ λ‹€μ–‘ν•œ 츑면을 λ‹€λ£¨λŠ” 포괄적인 λ™μ˜μƒ λͺ¨μŒμž…λ‹ˆλ‹€.

  • 앱에 핡심 ML λͺ¨λΈ ν†΅ν•©ν•˜κΈ°: CoreML λͺ¨λΈμ„ iOS μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— ν†΅ν•©ν•˜λŠ” 방법에 λŒ€ν•œ 포괄적인 κ°€μ΄λ“œλ‘œ, λͺ¨λΈ μ€€λΉ„λΆ€ν„° λ‹€μ–‘ν•œ κΈ°λŠ₯을 μœ„ν•΄ μ•±μ—μ„œ κ΅¬ν˜„ν•˜λŠ” λ‹¨κ³„κΉŒμ§€ μžμ„Ένžˆ μ„€λͺ…ν•©λ‹ˆλ‹€.

μš”μ•½

이 κ°€μ΄λ“œμ—μ„œλŠ” Ultralytics YOLOv8 λͺ¨λΈμ„ CoreML ν˜•μ‹μœΌλ‘œ λ‚΄λ³΄λ‚΄λŠ” 방법을 μ‚΄νŽ΄λ΄€μŠ΅λ‹ˆλ‹€. 이 κ°€μ΄λ“œμ— μ„€λͺ…λœ 단계λ₯Ό λ”°λ₯΄λ©΄ YOLOv8 λͺ¨λΈμ„ CoreML 으둜 내보낼 λ•Œ μ΅œλŒ€ν•œμ˜ ν˜Έν™˜μ„±κ³Ό μ„±λŠ₯을 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš©λ²•μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ CoreML 곡식 λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

λ˜ν•œ λ‹€λ₯Έ 톡합에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œκ³  μ‹Άλ‹€λ©΄ Ultralytics YOLOv8 톡합 κ°€μ΄λ“œ νŽ˜μ΄μ§€λ₯Ό λ°©λ¬Έν•˜μ„Έμš”. μœ μš©ν•œ λ¦¬μ†ŒμŠ€μ™€ μΈμ‚¬μ΄νŠΈλ₯Ό 많이 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.



생성 2024-02-07, μ—…λ°μ΄νŠΈ 2024-03-03
μ €μž: glenn-jocher (1), RizwanMunawar (1), abirami-vina (1)

λŒ“κΈ€