Ultralytics YOLO27:

YOLOv3 및 YOLOv3u#

개요#

이 문서에서는 밀접한 관련이 있는 세 가지 객체 감지 모델, 즉 YOLOv3, YOLOv3-Ultralytics, YOLOv3u에 대한 개요를 제공합니다.

  1. YOLOv3: YOLO 객체 감지 알고리즘의 세 번째 버전입니다. Joseph Redmon이 처음 개발했으며, 다중 스케일 예측과 세 가지 크기의 감지 커널 등의 기능을 도입하여 이전 버전보다 개선되었습니다.

  2. YOLOv3-Ultralytics: 이 버전은 ultralytics/yolov3 저장소에서 유지 관리되는 YOLOv3의 Ultralytics PyTorch 구현입니다. 기존의 앵커 기반 아키텍처를 유지하면서 더 많은 사전훈련된 모델과 간편한 커스터마이징 기능을 제공합니다.

  3. YOLOv3u: YOLOv8 모델에서 사용되는 anchor-free, objectness-free 분할 헤드를 통합한 YOLOv3-Ultralytics의 업데이트 버전입니다. YOLOv3u는 YOLOv3와 동일한 백본 및 neck 아키텍처를 유지하면서 YOLOv8의 업데이트된 감지 헤드를 사용합니다.

YOLOv3 객체 감지 모델 배너

주요 기능#

  • YOLOv3: 세 가지 크기의 감지 커널(13x13, 26x26, 52x52)을 활용하여 감지에 세 가지 서로 다른 스케일을 사용하는 방식을 도입했습니다. 이를 통해 다양한 크기의 객체에 대한 감지 정확도가 크게 향상되었습니다. 또한 YOLOv3는 각 바운딩 박스에 대한 다중 레이블 예측과 더욱 향상된 feature extractor 네트워크 등의 기능을 추가했습니다.

  • YOLOv3u: 이 업데이트된 모델은 YOLOv8의 anchor-free, objectness-free 분할 헤드를 통합합니다. 사전 정의된 anchor box와 objectness score가 필요하지 않으므로, 이 감지 헤드 설계는 다양한 크기와 형태의 객체를 감지하는 모델의 성능을 향상시킬 수 있습니다. 따라서 YOLOv3u는 객체 감지 작업에서 더욱 강력하고 정확합니다.

지원되는 태스크 및 모드#

YOLOv3는 객체 감지 작업을 위해 특별히 설계되었습니다. Ultralytics는 YOLOv3의 세 가지 변형인 yolov3u, yolov3-tinyu, yolov3-sppu을 지원합니다. 이름에 포함된 u는 이러한 모델이 anchor-based인 원래 아키텍처와 달리 YOLOv8의 anchor-free 헤드를 사용한다는 의미입니다. 이러한 모델은 정확도와 속도의 균형을 유지하면서 다양한 실제 시나리오에서 뛰어난 성능을 발휘하는 것으로 알려져 있습니다. 각 변형은 고유한 기능과 최적화를 제공하므로 다양한 애플리케이션에 적합합니다.

세 모델 모두 포괄적인 모드 집합을 지원하므로 다양한 모델 배포 및 개발 단계에서 유연하게 사용할 수 있습니다. 이러한 모드에는 추론, 검증, 학습, 내보내기가 포함되며, 효과적인 객체 감지를 위한 완전한 툴킷을 제공합니다.

모델 유형사전 학습된 가중치지원되는 작업학습검증추론내보내기
YOLOv3(u)yolov3u.ptObject Detection
YOLOv3-Tiny(u)yolov3-tinyu.ptObject Detection
YOLOv3-SPP(u)yolov3-sppu.ptObject Detection

이 표는 각 YOLOv3 변형의 기능을 한눈에 보여 주며, 객체 감지 워크플로에서 다양한 작업과 운영 모드에 대한 유연성과 적합성을 강조합니다.

사용 예시#

이 예제에서는 간단한 YOLOv3 학습 및 추론 예제를 제공합니다. 이러한 모드와 기타 모드에 대한 전체 문서는 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는 Joseph Redmon이 개발한 YOLO(한 번에 한 번 보기) 객체 감지 알고리즘의 세 번째 버전으로, 정확도와 속도의 균형으로 잘 알려져 있으며 감지에 세 가지 스케일(13x13, 26x26, 52x52)을 사용합니다. YOLOv3-Ultralytics는 더 많은 사전 학습 모델에 대한 지원을 추가하고 모델을 더욱 쉽게 사용자 지정할 수 있도록 한 Ultralytics의 YOLOv3 개조 버전입니다. YOLOv3u는 YOLOv8의 anchor-free, objectness-free 분할 헤드를 통합하여 다양한 크기의 객체에 대한 감지 견고성과 정확도를 향상한 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)

    보다 포괄적인 학습 옵션과 지침은 Train 모드 문서를 참조하세요.

  • YOLOv3u는 YOLOv8 모델에서 사용되는 anchor-free, objectness-free 분할 헤드를 통합하여 YOLOv3 및 YOLOv3-Ultralytics를 개선합니다. 이 업그레이드는 사전 정의된 anchor box와 objectness score가 필요하지 않으므로 다양한 크기와 형태의 객체를 더 정밀하게 감지하는 성능을 향상시킵니다. 따라서 YOLOv3u는 복잡하고 다양한 객체 감지 작업에 더 적합한 선택입니다. 자세한 내용은 주요 기능 섹션을 참조하세요.

  • 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-Tiny, YOLOv3-SPP는 주로 객체 감지 작업을 지원합니다. 이러한 모델은 추론, 검증, 학습, 내보내기와 같은 모델 배포 및 개발의 다양한 단계에서 사용할 수 있습니다. 지원되는 작업의 전체 목록과 자세한 내용은 객체 감지 작업 문서를 참조하세요.

  • 연구에서 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}
    }

    인용에 대한 자세한 내용은 인용 및 감사의 말 섹션을 참조하세요.

댓글