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

Ultralytics YOLOv8 λͺ¨λ“œ

Ultralytics YOLO μ—μ½”μ‹œμŠ€ν…œ 및 톡합

μ†Œκ°œ

Ultralytics YOLOv8 λŠ” λ‹¨μˆœν•œ 객체 감지 λͺ¨λΈμ΄ μ•„λ‹ˆλΌ 데이터 μˆ˜μ§‘κ³Ό λͺ¨λΈ ν›ˆλ ¨λΆ€ν„° 검증, 배포, μ‹€μ œ 좔적에 이λ₯΄κΈ°κΉŒμ§€ λ¨Έμ‹  λŸ¬λ‹ λͺ¨λΈμ˜ 전체 수λͺ… μ£ΌκΈ°λ₯Ό ν¬κ΄„ν•˜λ„λ‘ μ„€κ³„λœ λ‹€λͺ©μ  ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. 각 λͺ¨λ“œλŠ” νŠΉμ • λͺ©μ μ„ μœ„ν•΄ μ‚¬μš©λ˜λ©° λ‹€μ–‘ν•œ μž‘μ—…κ³Ό μ‚¬μš© 사둀에 ν•„μš”ν•œ μœ μ—°μ„±κ³Ό νš¨μœ¨μ„±μ„ μ œκ³΅ν•˜λ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.



Watch: Ultralytics λͺ¨λ“œ νŠœν† λ¦¬μ–Ό: ν›ˆλ ¨, 검증, 예츑, 내보내기 및 벀치마크.

λͺ¨λ“œ μ‚΄νŽ΄λ³΄κΈ°

λͺ¨λΈμ„ μ΅œλŒ€ν•œ ν™œμš©ν•˜λ €λ©΄ Ultralytics YOLOv8 μ—μ„œ μ§€μ›ν•˜λŠ” λ‹€μ–‘ν•œ λͺ¨λ“œλ₯Ό μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€:

  • ν›ˆλ ¨ λͺ¨λ“œ: μ‚¬μš©μž 지정 λ˜λŠ” 미리 λ‘œλ“œλœ 데이터 μ„ΈνŠΈμ—μ„œ λͺ¨λΈμ„ λ―Έμ„Έ μ‘°μ •ν•©λ‹ˆλ‹€.
  • Val λͺ¨λ“œ: λͺ¨λΈ μ„±λŠ₯을 κ²€μ¦ν•˜κΈ° μœ„ν•œ ν•™μŠ΅ ν›„ μ²΄ν¬ν¬μΈνŠΈμž…λ‹ˆλ‹€.
  • 예츑 λͺ¨λ“œ: μ‹€μ œ λ°μ΄ν„°μ—μ„œ λͺ¨λΈμ˜ 예츑λ ₯을 λ°œνœ˜ν•˜μ„Έμš”.
  • 내보내기 λͺ¨λ“œ: λ‹€μ–‘ν•œ ν˜•μ‹μœΌλ‘œ λͺ¨λΈμ„ 배포할 수 μžˆλ„λ‘ μ€€λΉ„ν•©λ‹ˆλ‹€.
  • 좔적 λͺ¨λ“œ: 객체 감지 λͺ¨λΈμ„ μ‹€μ‹œκ°„ 좔적 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 벀치마크 λͺ¨λ“œ: λ‹€μ–‘ν•œ 배포 ν™˜κ²½μ—μ„œ λͺ¨λΈμ˜ 속도와 정확성을 λΆ„μ„ν•©λ‹ˆλ‹€.

이 μ’…ν•© κ°€μ΄λ“œλŠ” 각 λͺ¨λ“œμ— λŒ€ν•œ κ°œμš”μ™€ μ‹€μš©μ μΈ μΈμ‚¬μ΄νŠΈλ₯Ό μ œκ³΅ν•˜μ—¬ YOLOv8 의 잠재λ ₯을 μ΅œλŒ€ν•œ ν™œμš©ν•  수 μžˆλ„λ‘ λ•λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.

κΈ°μ°¨

ν›ˆλ ¨ λͺ¨λ“œλŠ” μ‚¬μš©μž 지정 데이터 μ„ΈνŠΈμ—μ„œ YOLOv8 λͺ¨λΈμ„ ν›ˆλ ¨ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 λͺ¨λ“œμ—μ„œλŠ” μ§€μ •λœ 데이터 μ„ΈνŠΈμ™€ ν•˜μ΄νΌνŒŒλΌλ―Έν„°λ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λΈμ„ ν•™μŠ΅μ‹œν‚΅λ‹ˆλ‹€. ν›ˆλ ¨ κ³Όμ •μ—λŠ” μ΄λ―Έμ§€μ—μ„œ 객체의 ν΄λž˜μŠ€μ™€ μœ„μΉ˜λ₯Ό μ •ν™•ν•˜κ²Œ μ˜ˆμΈ‘ν•  수 μžˆλ„λ‘ λͺ¨λΈμ˜ λ§€κ°œλ³€μˆ˜λ₯Ό μ΅œμ ν™”ν•˜λŠ” μž‘μ—…μ΄ ν¬ν•¨λ©λ‹ˆλ‹€.

μ—΄μ°¨ μ˜ˆμ‹œ

Val

Val λͺ¨λ“œλŠ” YOLOv8 λͺ¨λΈμ„ ν•™μŠ΅ν•œ ν›„ κ²€μ¦ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 λͺ¨λ“œμ—μ„œλŠ” μœ νš¨μ„± 검사 μ„ΈνŠΈμ—μ„œ λͺ¨λΈμ„ ν‰κ°€ν•˜μ—¬ 정확도와 μΌλ°˜ν™” μ„±λŠ₯을 μΈ‘μ •ν•©λ‹ˆλ‹€. 이 λͺ¨λ“œλŠ” λͺ¨λΈμ˜ ν•˜μ΄νΌνŒŒλΌλ―Έν„°λ₯Ό μ‘°μ •ν•˜μ—¬ μ„±λŠ₯을 κ°œμ„ ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Val 예제

예츑

예츑 λͺ¨λ“œλŠ” μƒˆλ‘œμš΄ 이미지 λ˜λŠ” λ™μ˜μƒμ— λŒ€ν•΄ ν•™μŠ΅λœ YOLOv8 λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ μ˜ˆμΈ‘ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 λͺ¨λ“œμ—μ„œλŠ” 체크포인트 νŒŒμΌμ—μ„œ λͺ¨λΈμ΄ λ‘œλ“œλ˜λ©°, μ‚¬μš©μžλŠ” 좔둠을 μˆ˜ν–‰ν•  이미지 λ˜λŠ” λ™μ˜μƒμ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λΈμ€ μž…λ ₯된 이미지 λ˜λŠ” λ™μ˜μƒμ—μ„œ 객체의 클래슀 및 μœ„μΉ˜λ₯Ό μ˜ˆμΈ‘ν•©λ‹ˆλ‹€.

예츑 예제

내보내기

내보내기 λͺ¨λ“œλŠ” YOLOv8 λͺ¨λΈμ„ 배포에 μ‚¬μš©ν•  수 μžˆλŠ” ν˜•μ‹μœΌλ‘œ λ‚΄λ³΄λ‚΄λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 λͺ¨λ“œμ—μ„œλŠ” λͺ¨λΈμ΄ λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ‚˜ ν•˜λ“œμ›¨μ–΄ μž₯μΉ˜μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” ν˜•μ‹μœΌλ‘œ λ³€ν™˜λ©λ‹ˆλ‹€. 이 λͺ¨λ“œλŠ” λͺ¨λΈμ„ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— 배포할 λ•Œ μœ μš©ν•©λ‹ˆλ‹€.

내보내기 예제

νŠΈλž™

좔적 λͺ¨λ“œλŠ” YOLOv8 λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ μ‹€μ‹œκ°„μœΌλ‘œ 개체λ₯Ό μΆ”μ ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 λͺ¨λ“œμ—μ„œλŠ” 체크포인트 νŒŒμΌμ—μ„œ λͺ¨λΈμ„ λ‘œλ“œν•˜κ³  μ‚¬μš©μžκ°€ μ‹€μ‹œκ°„ λΉ„λ””μ˜€ μŠ€νŠΈλ¦Όμ„ μ œκ³΅ν•˜μ—¬ μ‹€μ‹œκ°„ 객체 좔적을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λͺ¨λ“œλŠ” κ°μ‹œ μ‹œμŠ€ν…œμ΄λ‚˜ 자율 μ£Όν–‰ μ°¨λŸ‰κ³Ό 같은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μœ μš©ν•©λ‹ˆλ‹€.

νŠΈλž™ μ˜ˆμ‹œ

벀치마크

벀치마크 λͺ¨λ“œλŠ” YOLOv8 에 λŒ€ν•œ λ‹€μ–‘ν•œ 내보내기 ν˜•μ‹μ˜ 속도와 정확도λ₯Ό ν”„λ‘œνŒŒμΌλ§ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. λ²€μΉ˜λ§ˆν¬λŠ” 내보낸 ν˜•μ‹μ˜ 크기, 내보낸 ν˜•μ‹μ— λŒ€ν•œ 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. mAP50-95 λ©”νŠΈλ¦­(객체 감지, μ„ΈλΆ„ν™” 및 포즈용) λ˜λŠ” accuracy_top5 λ©”νŠΈλ¦­(λΆ„λ₯˜μš©)κ³Ό ONNX, OpenVINO, TensorRT λ“±κ³Ό 같은 λ‹€μ–‘ν•œ 내보내기 ν˜•μ‹μ—μ„œ 이미지당 λ°€λ¦¬μ΄ˆ λ‹¨μœ„μ˜ μΆ”λ‘  μ‹œκ°„μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 μ •λ³΄λŠ” μ‚¬μš©μžκ°€ 속도와 정확성에 λŒ€ν•œ μš”κ΅¬ 사항에 따라 νŠΉμ • μ‚¬μš© 사둀에 λ§žλŠ” 졜적의 내보내기 ν˜•μ‹μ„ μ„ νƒν•˜λŠ” 데 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

벀치마크 μ˜ˆμ‹œ

자주 λ¬»λŠ” 질문

Ultralytics YOLOv8 으둜 μ‚¬μš©μž 지정 객체 감지 λͺ¨λΈμ„ ν›ˆλ ¨ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•˜λ‚˜μš”?

Ultralytics YOLOv8 으둜 μ‚¬μš©μž 지정 객체 감지 λͺ¨λΈμ„ ν›ˆλ ¨ν•˜λ €λ©΄ ν›ˆλ ¨ λͺ¨λ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이미지와 ν•΄λ‹Ή 주석 파일이 ν¬ν•¨λœ YOLO ν˜•μ‹μ˜ 데이터 μ„ΈνŠΈκ°€ ν•„μš”ν•©λ‹ˆλ‹€. λ‹€μŒ λͺ…령을 μ‚¬μš©ν•˜μ—¬ ν›ˆλ ¨ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹œμž‘ν•©λ‹ˆλ‹€:

예

from ultralytics import YOLO

# Train a custom model
model = YOLO("yolov8n.pt")
model.train(data="path/to/dataset.yaml", epochs=100, imgsz=640)
yolo train data=path/to/dataset.yaml epochs=100 imgsz=640

μžμ„Έν•œ μ•ˆλ‚΄λŠ” Ultralytics μ—΄μ°¨ κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

Ultralytics YOLOv8 μ—μ„œλŠ” λͺ¨λΈμ˜ μ„±λŠ₯을 κ²€μ¦ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ λ©”νŠΈλ¦­μ„ μ‚¬μš©ν•˜λ‚˜μš”?

Ultralytics YOLOv8 λŠ” μœ νš¨μ„± 검사 ν”„λ‘œμ„ΈμŠ€ 쀑에 λ‹€μ–‘ν•œ λ©”νŠΈλ¦­μ„ μ‚¬μš©ν•˜μ—¬ λͺ¨λΈ μ„±λŠ₯을 ν‰κ°€ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” λ‹€μŒμ΄ ν¬ν•¨λ©λ‹ˆλ‹€:

  • mAP(평균 평균 정밀도): 물체 κ°μ§€μ˜ 정확도λ₯Ό ν‰κ°€ν•©λ‹ˆλ‹€.
  • IOU(ꡐ차점 μ˜€λ²„ μœ λ‹ˆμ˜¨): 예츑된 λ°”μš΄λ”© λ°•μŠ€μ™€ κΈ°μ€€ μ‹€μΈ‘ λ°”μš΄λ”© λ°•μŠ€ κ°„μ˜ 쀑첩을 μΈ‘μ •ν•©λ‹ˆλ‹€.
  • 정밀도 및 회수율: μ •λ°€λ„λŠ” 총 νƒμ§€λœ μ–‘μ„± 쀑 μ‹€μ œ μ–‘μ„± 탐지 λΉ„μœ¨μ„ μΈ‘μ •ν•˜κ³ , νšŒμˆ˜μœ¨μ€ 총 μ‹€μ œ μ–‘μ„± 쀑 μ‹€μ œ μ–‘μ„± 탐지 λΉ„μœ¨μ„ μΈ‘μ •ν•©λ‹ˆλ‹€.

λ‹€μŒ λͺ…령을 μ‹€ν–‰ν•˜μ—¬ μœ νš¨μ„± 검사λ₯Ό μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

예

from ultralytics import YOLO

# Validate the model
model = YOLO("yolov8n.pt")
model.val(data="path/to/validation.yaml")
yolo val data=path/to/validation.yaml

μžμ„Έν•œ λ‚΄μš©μ€ μœ νš¨μ„± 검사 κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

배포λ₯Ό μœ„ν•΄ YOLOv8 λͺ¨λΈμ„ 내보내렀면 μ–΄λ–»κ²Œ ν•΄μ•Ό ν•˜λ‚˜μš”?

Ultralytics YOLOv8 λŠ” ν•™μŠ΅λœ λͺ¨λΈμ„ ONNX, TensorRT, CoreML λ“±κ³Ό 같은 λ‹€μ–‘ν•œ 배포 ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•  수 μžˆλŠ” 내보내기 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. λ‹€μŒ 예제λ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λΈμ„ λ‚΄λ³΄λ‚΄μ„Έμš”:

예

from ultralytics import YOLO

# Export the model
model = YOLO("yolov8n.pt")
model.export(format="onnx")
yolo export model=yolov8n.pt format=onnx

각 내보내기 ν˜•μ‹μ— λŒ€ν•œ μžμ„Έν•œ λ‹¨κ³„λŠ” 내보내기 κ°€μ΄λ“œμ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

Ultralytics YOLOv8 μ—μ„œ 벀치마크 λͺ¨λ“œμ˜ λͺ©μ μ€ λ¬΄μ—‡μΈκ°€μš”?

Ultralytics YOLOv8 의 벀치마크 λͺ¨λ“œλŠ” ONNX, TensorRT, OpenVINO 와 같은 λ‹€μ–‘ν•œ 내보내기 ν˜•μ‹μ˜ 속도와 정확성을 λΆ„μ„ν•˜λŠ” 데 μ‚¬μš©λ˜λ©° λͺ¨λΈ 크기와 같은 λ©”νŠΈλ¦­μ„ μ œκ³΅ν•©λ‹ˆλ‹€, mAP50-95 λ₯Ό 톡해 λ‹€μ–‘ν•œ ν•˜λ“œμ›¨μ–΄ μ„€μ •μ—μ„œ 객체 감지 및 μΆ”λ‘  μ‹œκ°„μ„ λΉ„κ΅ν•˜μ—¬ 배포 μš”κ΅¬ 사항에 κ°€μž₯ μ ν•©ν•œ ν˜•μ‹μ„ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

예

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

μžμ„Έν•œ λ‚΄μš©μ€ 벀치마크 κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

Ultralytics YOLOv8 을 μ‚¬μš©ν•˜μ—¬ μ‹€μ‹œκ°„ 객체 좔적을 μˆ˜ν–‰ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν•˜λ‚˜μš”?

μ‹€μ‹œκ°„ 객체 좔적은 Ultralytics YOLOv8 의 좔적 λͺ¨λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λͺ¨λ“œλŠ” 객체 감지 κΈ°λŠ₯을 ν™•μž₯ν•˜μ—¬ λΉ„λ””μ˜€ ν”„λ ˆμž„ λ˜λŠ” μ‹€μ‹œκ°„ ν”Όλ“œ μ „λ°˜μ—μ„œ 객체λ₯Ό μΆ”μ ν•©λ‹ˆλ‹€. λ‹€μŒ μ˜ˆμ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ 좔적을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€:

예

from ultralytics import YOLO

# Track objects in a video
model = YOLO("yolov8n.pt")
model.track(source="path/to/video.mp4")
yolo track source=path/to/video.mp4

μžμ„Έν•œ 지침은 νŠΈλž™ κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.



생성 2023-11-12, μ—…λ°μ΄νŠΈ 2024-07-04
μž‘μ„±μž: glenn-jocher (6)

λŒ“κΈ€