ultralytics/yolov3

PyTorch implementation of YOLOv3, YOLOv3-SPP, and YOLOv3-tiny for real-time object detection with training, validation, inference, and multi-format export.

해결하는 문제

이 프로젝트는 이미지 또는 비디오 내의 객체를 식별하고 위치를 찾는 실시간 객체 탐지 모델인 YOLOv3의 PyTorch 구현을 제공합니다. 이는 단 한 번의 패스로 다양한 크기(소, 중, 대)의 여러 객체를 탐지하기 위해 빠르고 정확하며 배포가 쉬운 시스템이 필요한 문제를 해결합니다.

작동 원리

YOLOv3는 객체 탐지를 단일 회귀 문제로 취급하여, 한 번의 포워드 패스에서 전체 이미지로부터 경계 상자(bounding boxes)와 클래스 확률을 직접 예측합니다. 특징 추출을 위해 Darknet-53 백본을 사용하며, 세 가지 다른 스케일에서 예측을 수행하기 위해 특징 피라미드 스타일의 설계를 사용합니다. 또한 학습을 안정화하기 위한 앵커 박스와 단일 객체가 여러 레이블을 가질 수 있도록 하는 독립적인 로지스틱 분류기를 채택하고 있습니다.

대상 사용자

고성능 GPU에 배포하는 사용자부터 CPU 및 에지 디바이스(YOLOv3-tiny 변형 사용)를 대상으로 하는 사용자까지, 실시간 객체 탐지 기능이 필요한 개발자와 연구자를 위해 설계되었습니다.

주요 특징

  • 3가지 모델 변형: YOLOv3(균형 잡힌 모델), YOLOv3-SPP(Spatial Pyramid Pooling을 통한 정확도 향상), YOLOv3-tiny(속도 및 에지 디바이스 최적화)를 포함합니다.
  • 포괄적인 도구 세트: 학습, 검증, 추론 및 ONNX, TensorRT, CoreML과 같은 형식으로 모델을 내보내기 위한 내장 스크립드를 제공합니다.
  • 멀티 스케일 탐지: 멀티 스케일 특징 맵을 통해 다양한 크기의 객체를 효율적으로 처리합니다.
  • PyTorch Hub 통합: 몇 줄의 코드로 프로그래밍 방식으로 사전 학습된 모델을 로드할 수 있습니다.