Meituan YOLOv6
개요
Meituan YOLOv6는 속도와 정확성 간의 놀라운 균형을 제공하는 최첨단 객체 감지기로 실시간 애플리케이션에 널리 사용됩니다. 이 모델은 Bi-directional Concatenation (BiC) 모듈, 앵커 지원 훈련 (AAT) 전략 및 COCO 데이터 세트에서 최첨단 정확도를 위한 개선된 백본 및 Neck 디자인을 포함하여 아키텍처 및 훈련 체계에 대한 몇 가지 주목할만한 개선 사항을 도입했습니다.
YOLOv6 개요. 상당한 성능 향상을 가져온 재설계된 네트워크 구성 요소 및 학습 전략을 보여주는 모델 아키텍처 다이어그램입니다. (a) YOLOv6의 neck 부분입니다(N 및 S가 표시됨). M/L의 경우 RepBlocks는 CSPStackRep로 대체됩니다. (b) BiC 모듈의 구조입니다. (c) SimCSPSPPF 블록입니다.소스)입니다.
주요 기능
- 양방향 연결 (BiC) 모듈: YOLOv6는 감지기의 neck에 BiC 모듈을 도입하여 로컬라이제이션 신호를 향상시키고 속도 저하를 무시하면서 성능 향상을 제공합니다.
- Anchor-Aided Training (AAT) 전략: 이 모델은 추론 효율성을 저해하지 않으면서 anchor-기반 및 anchor-free 패러다임의 이점을 모두 누릴 수 있도록 AAT를 제안합니다.
- 향상된 백본 및 넥 디자인: YOLOv6를 심화시켜 백본과 넥에 또 다른 단계를 포함함으로써 이 모델은 고해상도 입력에서 COCO 데이터 세트에 대한 최첨단 성능을 달성합니다.
- 자체 증류 전략: 새로운 자체 증류 전략이 구현되어 YOLOv6의 더 작은 모델의 성능을 향상시키고, 훈련 중 보조 회귀 분기를 강화하고 추론 시 속도 저하를 방지하기 위해 제거합니다.
성능 지표
YOLOv6는 다양한 스케일의 사전 훈련된 모델을 제공합니다.
- YOLOv6-N: NVIDIA T4 GPU를 사용하여 1187 FPS에서 COCO val2017에 대해 37.5% AP를 달성했습니다.
- YOLOv6-S: 484 FPS에서 45.0% AP입니다.
- YOLOv6-M: 226 FPS에서 50.0% AP입니다.
- YOLOv6-L: 116 FPS에서 52.8% AP입니다.
- YOLOv6-L6: 실시간 환경에서 최첨단 정확도를 제공합니다.
YOLOv6는 다양한 정밀도에 대해 양자화된 모델과 모바일 플랫폼에 최적화된 모델도 제공합니다.
사용 예시
이 예제는 간단한 YOLOv6 학습 및 추론 예제를 제공합니다. 이러한 모드 및 기타 모드에 대한 전체 문서는 예측, 학습, 검증 및 내보내기 문서 페이지를 참조하십시오.
예시
YOLOv6 *.yaml
파일을 다음으로 전달하여 YOLO()
Python에서 해당 모델을 빌드하는 클래스:
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# 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 YOLOv6n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
모델을 직접 실행하는 데 사용할 수 있는 CLI 명령은 다음과 같습니다.
# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=path/to/bus.jpg
지원되는 작업 및 모드
YOLOv6 시리즈는 고성능 객체 감지에 최적화된 다양한 모델을 제공합니다. 이러한 모델은 다양한 컴퓨팅 요구 사항과 정확도 요구 사항을 충족하므로 광범위한 애플리케이션에 다용도로 사용할 수 있습니다.
모델 | 파일 이름 | 태스크 | 추론 | 검증 | 훈련 | 내보내기 |
---|---|---|---|---|---|---|
YOLOv6-N | yolov6n.yaml |
객체 감지 | ✅ | ✅ | ✅ | ✅ |
YOLOv6-S | yolov6s.yaml |
객체 감지 | ✅ | ✅ | ✅ | ✅ |
YOLOv6-M | yolov6m.yaml |
객체 감지 | ✅ | ✅ | ✅ | ✅ |
YOLOv6-L | yolov6l.yaml |
객체 감지 | ✅ | ✅ | ✅ | ✅ |
YOLOv6-X | yolov6x.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에서 액세스할 수 있습니다. 우리는 이 분야를 발전시키고 그들의 연구 결과를 더 넓은 커뮤니티에서 액세스할 수 있도록 노력한 그들의 노고에 감사드립니다.
FAQ
Meituan YOLOv6는 무엇이며 무엇이 독특하게 만듭니까?
Meituan YOLOv6는 속도와 정확도의 균형을 맞춘 최첨단 객체 감지기로, 실시간 애플리케이션에 이상적입니다. Bi-directional Concatenation (BiC) 모듈 및 Anchor-Aided Training (AAT) 전략과 같은 주목할 만한 아키텍처 개선 사항이 특징입니다. 이러한 혁신은 속도 저하를 최소화하면서 상당한 성능 향상을 제공하여 YOLOv6를 객체 감지 작업에 경쟁력 있는 선택으로 만듭니다.
YOLOv6의 Bi-directional Concatenation (BiC) 모듈은 성능을 어떻게 향상시키나요?
YOLOv6의 Bi-directional Concatenation (BiC) 모듈은 감지기 neck 부분에서 위치 신호를 강화하여 속도에 거의 영향을 주지 않으면서 성능을 향상시킵니다. 이 모듈은 다양한 특징 맵을 효과적으로 결합하여 객체를 정확하게 감지하는 모델의 능력을 향상시킵니다. YOLOv6의 기능에 대한 자세한 내용은 주요 기능 섹션을 참조하십시오.
Ultralytics를 사용하여 YOLOv6 모델을 어떻게 훈련할 수 있습니까?
간단한 Python 또는 CLI 명령을 사용하여 Ultralytics로 YOLOv6 모델을 훈련할 수 있습니다. 예를 들어:
예시
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
자세한 내용은 Train 페이지를 참조하십시오.
YOLOv6의 다양한 버전과 성능 지표는 무엇인가요?
YOLOv6는 다양한 성능 요구 사항에 맞춰 최적화된 여러 버전을 제공합니다.
- YOLOv6-N: 1187 FPS에서 37.5% AP
- YOLOv6-S: 484 FPS에서 45.0% AP
- YOLOv6-M: 226 FPS에서 50.0% AP
- YOLOv6-L: 116 FPS에서 52.8% AP
- YOLOv6-L6: 실시간 환경에서 최첨단 정확도 제공
이러한 모델은 NVIDIA T4 GPU를 사용하여 COCO 데이터 세트에서 평가됩니다. 성능 지표에 대한 자세한 내용은 성능 지표 섹션을 참조하십시오.
Anchor-Aided Training (AAT) 전략은 YOLOv6에 어떤 이점을 제공합니까?
YOLOv6의 AAT(Anchor-Aided Training)는 앵커 기반 및 앵커 프리 방식의 요소를 결합하여 추론 효율성을 저해하지 않으면서 모델의 감지 기능을 향상시킵니다. 이 전략은 훈련 중에 앵커를 활용하여 경계 상자 예측을 개선하여 YOLOv6가 다양한 객체 감지 작업에서 효과적으로 작동하도록 합니다.
Ultralytics의 YOLOv6 모델에서 지원하는 작동 모드는 무엇입니까?
YOLOv6는 추론, 유효성 검사, 훈련 및 내보내기를 포함한 다양한 작동 모드를 지원합니다. 이러한 유연성을 통해 사용자는 다양한 시나리오에서 모델의 기능을 최대한 활용할 수 있습니다. 각 모드에 대한 자세한 개요는 지원되는 작업 및 모드 섹션을 확인하십시오.