YOLOv3 및 YOLOv3u
개요
이 문서는 밀접하게 관련된 세 가지 객체 탐지 모델인 YOLOv3, YOLOv3-Ultralytics 및 YOLOv3u에 대한 개요를 제공합니다.
-
YOLOv3: 이는 You Only Look Once(YOLO) 객체 탐지 알고리즘의 세 번째 버전입니다. Joseph Redmon이 처음 개발한 YOLOv3는 멀티스케일 예측 및 세 가지 크기의 탐지 커널과 같은 기능을 도입하여 이전 버전을 개선했습니다.
-
YOLOv3u: 이는 YOLOv8 모델에 사용된 앵커 프리(anchor-free) 및 객체성 프리(objectness-free) 분할 헤드를 통합한 YOLOv3-Ultralytics의 업데이트 버전입니다. YOLOv3u는 YOLOv3와 동일한 백본(backbone) 및 넥 아키텍처를 유지하지만, YOLOv8의 업데이트된 탐지 헤드(detection head)를 사용합니다.

주요 특징
-
YOLOv3: 13x13, 26x26, 52x52 등 세 가지 크기의 탐지 커널을 활용하여 탐지에 세 가지 스케일을 도입했습니다. 이를 통해 다양한 크기의 객체에 대한 탐지 정확도가 크게 향상되었습니다. 또한 YOLOv3는 각 바운딩 박스(bounding box)에 대한 다중 라벨 예측 및 향상된 특징 추출기 네트워크와 같은 기능을 추가했습니다.
-
YOLOv3u: 이 업데이트된 모델은 YOLOv8의 앵커 프리, 객체성 프리 분할 헤드를 통합합니다. 미리 정의된 앵커 박스 및 객체성 점수가 필요하지 않으므로, 이 탐지 헤드 설계는 다양한 크기와 모양의 객체를 탐지하는 모델의 능력을 향상시킬 수 있습니다. 이를 통해 YOLOv3u는 객체 탐지 작업에서 더욱 강력하고 정확해졌습니다.
지원되는 태스크 및 모드
YOLOv3는 객체 탐지(object detection) 작업을 위해 특별히 설계되었습니다. Ultralytics는 yolov3u, yolov3-tinyu, yolov3-sppu의 세 가지 YOLOv3 변형을 지원합니다. 이름의 u는 이 모델들이 앵커 기반의 원래 아키텍처와 달리 YOLOv8의 앵커 프리 헤드를 사용함을 의미합니다. 이 모델들은 정확도와 속도의 균형을 맞추어 다양한 실제 환경에서 효과적인 것으로 유명합니다. 각 변형은 고유한 기능과 최적화를 제공하여 다양한 응용 분야에 적합합니다.
세 모델 모두 포괄적인 모드 세트를 지원하여 모델 배포(model deployment) 및 개발의 다양한 단계에서 다용성을 보장합니다. 이러한 모드에는 추론(Inference), 검증(Validation), 학습(Training) 및 내보내기(Export)가 포함되어 있어 효과적인 객체 탐지를 위한 완벽한 툴킷을 사용자에게 제공합니다.
| 모델 유형 | 사전 학습된 가중치 | 지원 작업 | 추론 | 검증 | 학습 | 내보내기 (Export) |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | 객체 감지 | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | 객체 감지 | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | 객체 감지 | ✅ | ✅ | ✅ | ✅ |
이 표는 각 YOLOv3 변형의 기능을 한눈에 보여주며, 객체 탐지 워크플로의 다양한 작업 및 운영 모드에 대한 다용성과 적합성을 강조합니다.
사용 예시
이 예제는 간단한 YOLOv3 학습 및 추론 예제를 제공합니다. 이러한 모드 및 기타 모드(../modes/index.md)에 대한 전체 문서는 Predict, Train, Val 및 Export 문서 페이지를 참조하십시오.
PyTorch 사전 학습된 *.pt 모델과 구성 *.yaml 파일을 YOLO() 클래스에 전달하여 Python에서 모델 인스턴스를 생성할 수 있습니다:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")인용 및 감사의 글
연구에 YOLOv3를 사용하는 경우, 원본 YOLO 논문과 Ultralytics YOLOv3 저장소를 인용하십시오:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}원본 YOLOv3를 개발한 Joseph Redmon과 Ali Farhadi에게 감사드립니다.
FAQ
YOLOv3, YOLOv3-Ultralytics, YOLOv3u 간의 차이점은 무엇인가요?
YOLOv3는 Joseph Redmon이 개발한 YOLO(You Only Look Once) 객체 탐지(object detection) 알고리즘의 세 번째 반복으로, 정확도(accuracy)와 속도의 균형으로 유명하며 탐지에 세 가지 스케일(13x13, 26x26, 52x52)을 활용합니다. YOLOv3-Ultralytics는 Ultralytics의 YOLOv3 적응 버전으로, 더 많은 사전 학습된 모델에 대한 지원을 추가하고 모델 사용자 정의를 더 쉽게 만듭니다. YOLOv3u는 YOLOv3-Ultralytics의 업그레이드된 변형으로, YOLOv8의 앵커 프리, 객체성 프리 분할 헤드를 통합하여 다양한 객체 크기에 대한 탐지 견고성과 정확도를 향상시킵니다. 변형에 대한 자세한 내용은 YOLOv3 시리즈를 참조하십시오.
Ultralytics를 사용하여 YOLOv3 모델을 어떻게 학습할 수 있나요?
Ultralytics를 사용한 YOLOv3 모델 학습은 간단합니다. Python 또는 CLI를 사용하여 모델을 학습할 수 있습니다:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)더 포괄적인 학습 옵션 및 가이드라인은 학습 모드 문서를 방문하십시오.
무엇이 YOLOv3u를 객체 탐지 작업에서 더 정확하게 만드나요?
YOLOv3u는 YOLOv8 모델에 사용된 앵커 프리, 객체성 프리 분할 헤드를 통합하여 YOLOv3 및 YOLOv3-Ultralytics를 개선합니다. 이 업그레이드는 미리 정의된 앵커 박스와 객체성 점수의 필요성을 제거하여, 다양한 크기와 모양의 객체를 더 정확하게 탐지하는 능력을 향상시킵니다. 이는 YOLOv3u를 복잡하고 다양한 객체 탐지 작업에 더 나은 선택으로 만듭니다. 자세한 내용은 주요 기능(#key-features) 섹션을 참조하십시오.
추론에 YOLOv3 모델을 어떻게 사용할 수 있나요?
Python 스크립트 또는 CLI 명령을 사용하여 YOLOv3 모델로 추론을 수행할 수 있습니다:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")YOLO 모델 실행에 대한 자세한 내용은 추론 모드 문서를 참조하십시오.
YOLOv3 및 그 변형 모델은 어떤 작업을 지원하나요?
YOLOv3, YOLOv3-Tiny 및 YOLOv3-SPP는 주로 객체 탐지 작업을 지원합니다. 이 모델들은 추론, 검증, 학습 및 내보내기와 같은 모델 배포 및 개발의 다양한 단계에 사용될 수 있습니다. 지원되는 작업의 포괄적인 세트와 더 자세한 내용은 객체 탐지 작업 문서를 방문하십시오.
연구에서 YOLOv3를 인용하기 위한 리소스는 어디에서 찾을 수 있나요?
연구에 YOLOv3를 사용하는 경우, 원본 YOLO 논문과 Ultralytics YOLOv3 저장소를 인용하십시오. BibTeX 인용 예시:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}더 자세한 인용 정보는 인용 및 감사의 글(#citations-and-acknowledgments) 섹션을 참조하십시오.