Ultralytics YOLO27:
Get Started

Meituan YOLOv6#

개요#

2022년에 출시된 Meituan YOLOv6은 속도와 정확도의 균형이 뛰어나 실시간 애플리케이션에서 널리 사용됩니다. 이 모델은 Bi-directional Concatenation(BiC) 모듈, anchor-aided training(AAT) 전략, COCO 데이터셋에서 높은 정확도를 제공하기 위한 개선된 백본 및 넥 설계를 비롯해 아키텍처와 학습 방식에 몇 가지 주목할 만한 개선 사항을 도입합니다.

Meituan의 YOLOv6 실시간 객체 탐지 모델 YOLOv6 모델 아키텍처 다이어그램 YOLOv6 개요. 재설계된 네트워크 구성 요소와 학습 전략을 보여주는 모델 아키텍처 다이어그램으로, 이를 통해 성능이 크게 향상되었습니다. (a) YOLOv6의 넥(N 및 S 표시). M/L의 경우 RepBlocks가 CSPStackRep로 대체됩니다. (b) BiC 모듈 구조. (c) SimCSPSPPF 블록. (출처.)

주요 기능#

  • 양방향 연결(BiC) 모듈: YOLOv6은 탐지기의 넥에 BiC 모듈을 도입하여 위치 파악 신호를 강화하고 속도 저하를 거의 유발하지 않으면서 성능을 향상합니다.
  • 앵커 보조 학습(AAT) 전략: 이 모델은 추론 효율성을 저해하지 않으면서 앵커 기반 및 앵커 프리 방식의 장점을 모두 활용하는 AAT를 제안합니다.
  • 개선된 백본 및 넥 설계: YOLOv6의 백본과 넥에 단계를 하나 더 추가해 심화한 결과, 출시 당시 고해상도 입력의 COCO 데이터셋에서 뛰어난 성능을 달성했습니다.
  • 자기 증류 전략: YOLOv6의 소형 모델 성능을 높이기 위해 새로운 자기 증류 전략을 구현했습니다. 학습 중에는 보조 회귀 분기를 강화하고, 추론 시에는 해당 분기를 제거해 속도가 크게 저하되지 않도록 합니다.

성능 지표#

YOLOv6은 서로 다른 스케일의 다양한 사전 학습 모델을 제공합니다:

  • YOLOv6-N: COCO val2017에서 37.5% AP, NVIDIA T4 GPU에서 1187 FPS.
  • YOLOv6-S: 45.0% AP, 484 FPS.
  • YOLOv6-M: 50.0% AP, 226 FPS.
  • YOLOv6-L: 52.8% AP, 116 FPS.
  • YOLOv6-L6: 실시간 환경에서 최첨단 정확도를 제공합니다.

YOLOv6은 다양한 정밀도에 맞춘 양자화 모델과 모바일 플랫폼에 최적화된 모델도 제공합니다.

사용 예시#

이 예제에서는 YOLOv6의 기본 학습 및 추론 예제를 제공합니다. 이러한 작업과 기타 모드에 대한 전체 문서는 예측, 학습, 검증 및 내보내기 문서 페이지를 참조하세요.

예제

YOLOv6 *.yaml 파일을 YOLO() 클래스에 전달하면 Python에서 해당 모델을 생성할 수 있습니다:

from ultralytics import YOLO

# YOLOv6n 모델을 처음부터 생성
model = YOLO("yolov6n.yaml")

# 모델 정보 표시(선택 사항)
model.info()

# COCO8 예제 데이터셋으로 100 에포크 동안 모델 학습
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 'bus.jpg' 이미지에서 YOLOv6n 모델로 추론 실행
results = model("path/to/bus.jpg")

지원 작업 및 모드#

YOLOv6 시리즈는 고성능 객체 탐지에 최적화된 다양한 모델을 제공합니다. 각 모델은 서로 다른 연산 요구 사항과 정확도를 충족하므로 폭넓은 애플리케이션에 활용할 수 있습니다.

모델파일 이름작업학습검증추론내보내기
YOLOv6-Nyolov6n.yaml객체 탐지✅✅✅✅
YOLOv6-Syolov6s.yaml객체 탐지✅✅✅✅
YOLOv6-Myolov6m.yaml객체 탐지✅✅✅✅
YOLOv6-Lyolov6l.yaml객체 탐지✅✅✅✅
YOLOv6-Xyolov6x.yaml객체 탐지✅✅✅✅

이 표에서는 YOLOv6 모델 변형의 상세한 개요를 제공하고, 객체 탐지 작업에서의 성능과 추론, 검증, 학습, 내보내기와 같은 다양한 운영 모드와의 호환성을 설명합니다. 이러한 포괄적인 지원을 통해 사용자는 폭넓은 객체 탐지 시나리오에서 YOLOv6 모델의 기능을 충분히 활용할 수 있습니다.

인용 및 감사의 글#

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

인용
@misc{li2023yolov6,
      title={YOLOv6 v3.0: A Full-Scale Reloading},
      author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
      year={2023},
      eprint={2301.05586},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

YOLOv6 원본 논문은 arXiv에서 확인할 수 있습니다. 저자들은 연구 결과를 공개했으며, 코드베이스는 GitHub에서 확인할 수 있습니다. 해당 분야를 발전시키고 더 넓은 커뮤니티가 연구 결과를 활용할 수 있도록 한 저자들의 노력에 감사드립니다.

자주 묻는 질문#

  • 2022년에 출시된 Meituan YOLOv6은 속도와 정확도의 균형을 맞춘 객체 탐지기로, 실시간 애플리케이션을 위해 설계되었습니다. 양방향 연결(BiC) 모듈과 앵커 보조 학습(AAT) 전략 등 주목할 만한 아키텍처 개선 사항을 적용했습니다. 이러한 혁신은 속도 저하를 최소화하면서 성능을 크게 향상하므로 YOLOv6은 객체 탐지 작업에 적합한 경쟁력 있는 모델입니다.

  • YOLOv6의 양방향 연결(BiC) 모듈은 탐지기 넥의 위치 파악 신호를 강화하여 속도에 미치는 영향은 거의 없이 성능을 개선합니다. 이 모듈은 서로 다른 특징 맵을 효과적으로 결합하여 객체를 정확하게 탐지하는 모델의 능력을 향상합니다. YOLOv6의 기능에 대한 자세한 내용은 주요 기능 섹션을 참조하세요.

  • 간단한 Python 또는 CLI 명령을 사용해 Ultralytics에서 YOLOv6 모델을 학습할 수 있습니다. 예를 들면 다음과 같습니다:

    예제
    from ultralytics import YOLO
    
    # YOLOv6n 모델을 처음부터 생성
    model = YOLO("yolov6n.yaml")
    
    # COCO8 예제 데이터셋으로 100 에포크 동안 모델 학습
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    자세한 내용은 학습 페이지를 참조하세요.

  • YOLOv6은 각각 서로 다른 성능 요구 사항에 최적화된 여러 버전을 제공합니다:

    • YOLOv6-N: 37.5% AP, 1187 FPS
    • YOLOv6-S: 45.0% AP, 484 FPS
    • YOLOv6-M: 50.0% AP, 226 FPS
    • YOLOv6-L: 52.8% AP, 116 FPS
    • YOLOv6-L6: 실시간 시나리오에서 최첨단 정확도를 제공합니다.

    이 모델은 NVIDIA T4 GPU를 사용해 COCO 데이터셋에서 평가되었습니다. 성능 지표에 대한 자세한 내용은 성능 지표 섹션을 참조하세요.

  • YOLOv6의 앵커 보조 학습(AAT)은 앵커 기반 방식과 앵커 프리 방식의 요소를 결합하여 추론 효율성을 저해하지 않으면서 모델의 탐지 기능을 향상합니다. 이 전략은 학습 중 앵커를 활용해 바운딩 박스 예측을 개선하므로 YOLOv6은 다양한 객체 탐지 작업에서 효과적입니다.

  • YOLOv6은 추론, 검증, 학습, 내보내기를 비롯한 다양한 운영 모드를 지원합니다. 이러한 유연성 덕분에 사용자는 여러 시나리오에서 모델의 기능을 충분히 활용할 수 있습니다. 각 모드에 대한 자세한 개요는 지원되는 작업 및 모드 섹션을 참조하세요.

댓글