YOLOv4: 고속 및 정밀 객체 탐지

2020년 Alexey Bochkovskiy가 https://github.com/AlexeyAB/darknet에서 발표한 최첨단 실시간 객체 탐지기인 YOLOv4에 대한 Ultralytics 문서 페이지에 오신 것을 환영합니다. YOLOv4는 속도와 정확도 사이의 최적의 균형을 제공하도록 설계되어 많은 애플리케이션에서 탁월한 선택입니다.

YOLOv4 아키텍처 다이어그램 YOLOv4 아키텍처 다이어그램. 백본(backbone), 넥(neck), 헤드(head) 구성 요소를 포함한 YOLOv4의 복잡한 네트워크 설계와 최적의 실시간 객체 탐지를 위한 상호 연결된 레이어를 보여줍니다.

소개

YOLOv4는 You Only Look Once version 4의 약자입니다. YOLOv3와 같은 이전 YOLO 버전 및 기타 객체 탐지 모델의 한계를 해결하기 위해 개발된 실시간 객체 탐지 모델입니다. 다른 합성곱 신경망 (CNN) 기반 객체 탐지기와 달리, YOLOv4는 추천 시스템뿐만 아니라 독립형 프로세스 관리 및 인적 입력 감소에도 적용할 수 있습니다. 일반 그래픽 처리 장치(GPU)에서 작동하므로 저렴한 비용으로 대량 사용이 가능하며, 훈련 시 단 하나의 GPU만 필요하도록 설계되었습니다.

아키텍처

YOLOv4는 성능을 최적화하기 위해 함께 작동하는 여러 혁신적인 기능을 활용합니다. 여기에는 Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic 데이터 증강, DropBlock 정규화 및 CIoU loss가 포함됩니다. 이러한 기능들이 결합되어 최첨단 결과를 달성합니다.

일반적인 객체 탐지기는 입력, 백본, 넥, 헤드를 포함한 여러 부분으로 구성됩니다. YOLOv4의 백본은 ImageNet으로 사전 훈련되어 있으며 객체의 클래스와 바운딩 박스를 예측하는 데 사용됩니다. 백본은 VGG, ResNet, ResNeXt 또는 DenseNet을 포함한 여러 모델에서 가져올 수 있습니다. 탐지기의 넥 부분은 여러 단계에서 특성 맵을 수집하는 데 사용되며 일반적으로 여러 상향식 경로와 여러 하향식 경로를 포함합니다. 헤드 부분은 최종 객체 탐지 및 분류를 수행하는 데 사용됩니다.

Bag of Freebies

YOLOv4는 또한 추론 비용을 증가시키지 않으면서 훈련 중 모델의 정확도를 향상시키는 기법인 "bag of freebies"라고 알려진 방법을 사용합니다. 데이터 증강객체 탐지에서 흔히 사용되는 bag of freebies 기법으로, 입력 이미지의 변동성을 높여 모델의 견고성을 개선합니다. 데이터 증강의 예로는 광도 왜곡(이미지의 밝기, 대비, 색상, 채도 및 노이즈 조정)과 기하학적 왜곡(무작위 스케일링, 자르기, 뒤집기 및 회전 추가)이 있습니다. 이러한 기법은 모델이 다양한 유형의 이미지에 더 잘 일반화되도록 돕습니다.

기능 및 성능

YOLOv4는 객체 탐지에서 최적의 속도와 정확도를 위해 설계되었습니다. YOLOv4의 아키텍처는 백본으로 CSPDarknet53, 넥으로 PANet, 탐지 헤드로 YOLOv3를 포함합니다. 이 설계 덕분에 YOLOv4는 인상적인 속도로 객체 탐지를 수행할 수 있어 실시간 애플리케이션에 적합합니다. 또한 YOLOv4는 COCO와 같은 객체 탐지 벤치마크에서 최첨단 결과를 달성하며 정확도 면에서도 뛰어납니다.

YOLOv5YOLOv7과 같은 YOLO 제품군의 다른 모델과 비교할 때, YOLOv4는 속도와 정확도 사이의 균형에서 강력한 위치를 유지합니다. 최신 모델이 특정 이점을 제공할 수도 있지만, YOLOv4의 아키텍처 혁신은 실시간 성능이 필요한 많은 애플리케이션에서 여전히 유효합니다.

사용 예시

YOLOv4 is a Darknet-based model and is not natively supported by the Ultralytics Python package: there are no yolov4.pt pretrained weights published on ultralytics/assets and no ultralytics/cfg/models/v4/ YAMLs. This page is kept as an architectural reference. Users interested in running YOLOv4 should refer directly to the YOLOv4 GitHub repository for installation and usage instructions.

다음은 YOLOv4를 사용하기 위해 수행할 수 있는 일반적인 단계에 대한 간략한 개요입니다:

  1. YOLOv4 GitHub 저장소 방문: https://github.com/AlexeyAB/darknet.

  2. 설치를 위해 README 파일에 제공된 지침을 따르십시오. 일반적으로 저장소 복제, 필수 종속성 설치, 필요한 환경 변수 설정이 포함됩니다.

  3. 설치가 완료되면 저장소에 제공된 사용 지침에 따라 모델을 훈련하고 사용할 수 있습니다. 여기에는 일반적으로 데이터셋 준비, 모델 매개변수 구성, 모델 훈련, 훈련된 모델을 사용하여 객체 탐지 수행이 포함됩니다.

특정 단계는 귀하의 사용 사례와 YOLOv4 저장소의 현재 상태에 따라 다를 수 있습니다. 따라서 YOLOv4 GitHub 저장소에 제공된 지침을 직접 참조하는 것을 강력히 권장합니다.

Ultralytics 프레임워크 내에서의 훈련 및 추론은 YOLO11 또는 YOLO26을 참조하십시오.

결론

YOLOv4는 속도와 정확도의 균형을 맞추는 강력하고 효율적인 객체 탐지 모델입니다. 훈련 중 독특한 기능과 bag of freebies 기법을 사용하여 실시간 객체 탐지 작업에서 탁월한 성능을 발휘합니다. YOLOv4는 일반 GPU를 가진 사람이라면 누구나 훈련하고 사용할 수 있어 감시 시스템, 자율 주행 자동차, 산업 자동화를 포함한 광범위한 애플리케이션에 접근 가능하고 실용적입니다.

프로젝트에 객체 탐지를 구현하려는 사람들에게 YOLOv4는 특히 실시간 성능이 우선일 때 여전히 강력한 후보입니다. Ultralytics는 현재 YOLO11YOLO26과 같은 최신 YOLO 버전을 지원하는 데 중점을 두고 있지만, YOLOv4에서 도입된 아키텍처 혁신은 이러한 후속 모델 개발에 영향을 주었습니다.

인용 및 감사의 글

실시간 객체 탐지 분야에 중요한 기여를 한 YOLOv4 저자들에게 감사를 표합니다:

인용
@misc{bochkovskiy2020yolov4,
      title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
      author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
      year={2020},
      eprint={2004.10934},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

원래 YOLOv4 논문은 arXiv에서 찾을 수 있습니다. 저자들은 자신의 연구를 공개적으로 이용할 수 있도록 했으며, 코드베이스는 GitHub에서 액세스할 수 있습니다. 우리는 이 분야를 발전시키고 더 넓은 커뮤니티가 그들의 연구를 이용할 수 있게 만든 그들의 노력에 감사드립니다.

FAQ

YOLOv4란 무엇이며 객체 탐지에 왜 사용해야 하나요?

YOLOv4는 "You Only Look Once version 4"의 약자로, 2020년 Alexey Bochkovskiy가 개발한 최첨단 실시간 객체 탐지 모델입니다. 속도와 정확도 사이의 최적의 균형을 달성하여 실시간 애플리케이션에 매우 적합합니다. YOLOv4의 아키텍처는 Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Self-adversarial-training (SAT) 등 여러 혁신적인 기능을 통합하여 최첨단 결과를 달성합니다. 일반 GPU에서 효율적으로 작동하는 고성능 모델을 찾고 있다면 YOLOv4가 탁월한 선택입니다.

YOLOv4의 아키텍처는 성능을 어떻게 향상시키나요?

YOLOv4의 아키텍처에는 백본, 넥, 헤드라는 몇 가지 핵심 구성 요소가 포함됩니다. VGG, ResNet 또는 CSPDarknet53과 같은 모델이 될 수 있는 백본은 클래스와 바운딩 박스를 예측하도록 사전 훈련되어 있습니다. PANet을 활용하는 넥은 포괄적인 데이터 추출을 위해 서로 다른 단계의 특성 맵을 연결합니다. 마지막으로 YOLOv3의 구성을 사용하는 헤드가 최종 객체 탐지를 수행합니다. YOLOv4는 또한 Mosaic 데이터 증강 및 DropBlock 정규화와 같은 "bag of freebies" 기법을 사용하여 속도와 정확도를 더욱 최적화합니다.

YOLOv4 맥락에서 "bag of freebies"란 무엇인가요?

"Bag of freebies"는 추론 비용을 증가시키지 않으면서 YOLOv4의 훈련 정확도를 향상시키는 방법을 의미합니다. 이러한 기법에는 광도 왜곡(밝기, 대비 조정 등) 및 기하학적 왜곡(스케일링, 자르기, 뒤집기, 회전)과 같은 다양한 형태의 데이터 증강이 포함됩니다. 이러한 증강은 입력 이미지의 변동성을 높임으로써 YOLOv4가 다양한 유형의 이미지에 더 잘 일반화되도록 도와, 실시간 성능을 저하시키지 않으면서 견고성과 정확도를 향상시킵니다.

YOLOv4가 일반 GPU에서의 실시간 객체 탐지에 적합하다고 여겨지는 이유는 무엇인가요?

YOLOv4는 속도와 정확도를 모두 최적화하도록 설계되어 빠르고 신뢰할 수 있는 성능이 필요한 실시간 객체 탐지 작업에 이상적입니다. 일반 GPU에서 효율적으로 작동하며 훈련 및 추론 모두에 단 하나만 있으면 됩니다. 이는 추천 시스템부터 독립형 프로세스 관리까지 다양한 애플리케이션에 접근 가능하고 실용적이며, 따라서 광범위한 하드웨어 설정의 필요성을 줄여 실시간 객체 탐지를 위한 비용 효율적인 솔루션이 됩니다.

Ultralytics가 현재 YOLOv4를 지원하지 않는 경우 어떻게 시작할 수 있나요?

YOLOv4를 시작하려면 공식 YOLOv4 GitHub 저장소를 방문해야 합니다. 일반적으로 저장소 복제, 종속성 설치, 환경 변수 설정을 포함하는 README 파일의 설치 지침을 따르십시오. 설치가 완료되면 데이터셋 준비, 모델 매개변수 구성 및 제공된 사용 지침에 따라 모델을 훈련할 수 있습니다. Ultralytics는 현재 YOLOv4를 지원하지 않으므로 가장 최신의 자세한 안내를 받으려면 YOLOv4 GitHub를 직접 참조하는 것이 좋습니다.

댓글