YOLO-NAS
YOLO-NAS의 원개발사인 Deci가 NVIDIA에 인수되었습니다. 이에 따라 해당 모델들은 더 이상 Deci에서 적극적으로 유지 관리하지 않습니다. Ultralytics는 이러한 모델의 사용을 계속 지원하지만, 원개발팀으로부터의 추가 업데이트는 없을 예정입니다.
개요
Deci AI가 개발한 YOLO-NAS는 획기적인 객체 탐지 기반 모델입니다. 이 모델은 이전 YOLO 모델의 한계를 해결하기 위해 세심하게 설계된 고급 Neural Architecture Search 기술의 산물입니다. 양자화 지원 및 정확도-지연 시간 트레이드오프 측면에서 상당한 개선을 이룬 YOLO-NAS는 객체 탐지 분야의 큰 도약을 상징합니다.
YOLO-NAS 개요. YOLO-NAS는 최적의 성능을 위해 양자화 인식 블록과 선택적 양자화를 채택합니다. 이 모델을 INT8 양자화 버전으로 변환하면 정밀도 저하가 최소화되며, 이는 다른 모델에 비해 괄목할 만한 개선입니다. 이러한 발전은 전례 없는 객체 탐지 기능과 탁월한 성능을 갖춘 우수한 아키텍처를 완성합니다.
주요 특징
- 양자화 친화적 기본 블록: YOLO-NAS는 이전 YOLO 모델의 중대한 한계 중 하나를 해결하는 양자화 친화적인 새로운 기본 블록을 도입했습니다.
- 정교한 학습 및 양자화: YOLO-NAS는 성능 향상을 위해 고급 학습 계획과 학습 후 양자화를 활용합니다.
- AutoNAC 최적화 및 사전 학습: YOLO-NAS는 AutoNAC 최적화를 사용하며 COCO, Objects365, Roboflow 100과 같은 유명 데이터셋으로 사전 학습되었습니다. 이러한 사전 학습 덕분에 운영 환경에서의 다운스트림 객체 탐지 작업에 매우 적합합니다.
사전 학습된 모델
Ultralytics에서 제공하는 사전 학습된 YOLO-NAS 모델로 차세대 객체 탐지의 강력함을 경험해 보십시오. 이 모델들은 속도와 정확도 면에서 최고 수준의 성능을 제공하도록 설계되었습니다. 귀하의 구체적인 요구 사항에 맞춰 다양한 옵션 중에서 선택하십시오:
| 모델 | mAP | 지연 시간 (ms) |
|---|---|---|
| YOLO-NAS S | 47.5 | 3.21 |
| YOLO-NAS M | 51.55 | 5.85 |
| YOLO-NAS L | 52.22 | 7.87 |
| YOLO-NAS S INT-8 | 47.03 | 2.36 |
| YOLO-NAS M INT-8 | 51.0 | 3.78 |
| YOLO-NAS L INT-8 | 52.1 | 4.78 |
각 모델 변형은 Mean Average Precision (mAP)과 지연 시간 사이의 균형을 제공하도록 설계되어, 성능과 속도 모두를 위해 객체 탐지 작업을 최적화할 수 있도록 돕습니다.
사용 예시
Ultralytics는 ultralytics python 패키지를 통해 귀하의 Python 애플리케이션에 YOLO-NAS 모델을 쉽게 통합할 수 있도록 지원합니다. 이 패키지는 프로세스를 간소화하는 사용자 친화적인 Python API를 제공합니다.
다음 예제는 ultralytics 패키지를 사용하여 추론 및 검증을 위해 YOLO-NAS 모델을 사용하는 방법을 보여줍니다:
추론 및 검증 예제
이 예제에서는 COCO8 데이터셋에서 YOLO-NAS-s를 검증합니다.
이 예제는 YOLO-NAS에 대한 간단한 추론 및 검증 코드를 제공합니다. 추론 결과 처리는 Predict 모드를 참조하십시오. 추가 모드에서 YOLO-NAS를 사용하는 방법은 Val 및 Export를 참조하십시오. ultralytics 패키지에서의 YOLO-NAS는 학습을 지원하지 않습니다.
PyTorch 사전 학습된 *.pt 모델 파일은 NAS() 클래스에 전달되어 python에서 모델 인스턴스를 생성할 수 있습니다:
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Display model information (optional)
model.info()
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")지원되는 태스크 및 모드
당사는 Small (s), Medium (m), Large (l) 등 세 가지 YOLO-NAS 모델 변형을 제공합니다. 각 변형은 다양한 컴퓨팅 및 성능 요구 사항을 충족하도록 설계되었습니다:
- YOLO-NAS-s: 컴퓨팅 자원이 제한적이지만 효율성이 핵심인 환경에 최적화되어 있습니다.
- YOLO-NAS-m: 더 높은 정확도로 일반적인 객체 탐지에 적합한 균형 잡힌 접근 방식을 제공합니다.
- YOLO-NAS-l: 컴퓨팅 자원 제약이 적고 최고의 정확도가 요구되는 시나리오에 맞춰져 있습니다.
다음은 사전 학습된 가중치 링크, 지원하는 작업, 다양한 운영 모드와의 호환성을 포함하여 각 모델에 대한 상세 개요입니다.
| 모델 유형 | 사전 학습된 가중치 | 지원 작업 | 추론 | 검증 | 학습 | 내보내기 (Export) |
|---|---|---|---|---|---|---|
| YOLO-NAS-s | yolo_nas_s.pt | 객체 감지 | ✅ | ✅ | ❌ | ✅ |
| YOLO-NAS-m | yolo_nas_m.pt | 객체 감지 | ✅ | ✅ | ❌ | ✅ |
| YOLO-NAS-l | yolo_nas_l.pt | 객체 감지 | ✅ | ✅ | ❌ | ✅ |
인용 및 감사의 글
연구 또는 개발 작업에 YOLO-NAS를 사용하는 경우 SuperGradients를 인용해 주십시오:
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/records/7789328},
author = {Aharon, Shay and {Louis-Dupont} and {Ofri Masad} and Yurkova, Kate and {Lotem Fridman} and {Lkdci} and Khvedchenya, Eugene and Rubin, Ran and Bagrov, Natan and Tymchenko, Borys and Keren, Tomer and Zhilko, Alexander and {Eran-Deci}},
title = {Super-Gradients},
publisher = {GitHub},
journal = {GitHub repository},
year = {2021},
}We express our gratitude to Deci AI's SuperGradients team for their efforts in creating and maintaining this valuable resource for the computer vision community. We believe YOLO-NAS, with its innovative architecture and superior object detection capabilities, will become a critical tool for developers and researchers alike.
FAQ
YOLO-NAS란 무엇이며 이전 YOLO 모델에 비해 어떻게 개선되었습니까?
Deci AI가 개발한 YOLO-NAS는 최첨단 Neural Architecture Search (NAS) 기술을 활용하는 최신 객체 탐지 모델입니다. 양자화 친화적 기본 블록과 정교한 학습 계획과 같은 기능을 도입하여 이전 YOLO 모델의 한계를 해결합니다. 이는 특히 컴퓨팅 자원이 제한된 환경에서 성능을 크게 향상시킵니다. YOLO-NAS는 또한 양자화를 지원하여 INT8 버전으로 변환된 후에도 높은 정확도를 유지하므로 운영 환경에 더 적합합니다. 자세한 내용은 개요 섹션을 참조하십시오.
YOLO-NAS 모델을 내 Python 애플리케이션에 어떻게 통합할 수 있습니까?
ultralytics 패키지를 사용하여 YOLO-NAS 모델을 귀하의 Python 애플리케이션에 쉽게 통합할 수 있습니다. 사전 학습된 YOLO-NAS 모델을 로드하고 추론을 수행하는 간단한 예제는 다음과 같습니다:
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")자세한 정보는 추론 및 검증 예제를 참조하십시오.
YOLO-NAS의 핵심 기능은 무엇이며 왜 사용을 고려해야 합니까?
YOLO-NAS는 객체 탐지 작업에 탁월한 선택이 되도록 하는 몇 가지 핵심 기능을 도입했습니다:
- 양자화 친화적 기본 블록: 양자화 후 정밀도 저하를 최소화하면서 모델 성능을 향상시키는 개선된 아키텍처입니다.
- 정교한 학습 및 양자화: 고급 학습 계획과 학습 후 양자화 기술을 채택합니다.
- AutoNAC 최적화 및 사전 학습: AutoNAC 최적화를 사용하며 COCO, Objects365, Roboflow 100과 같은 유명 데이터셋으로 사전 학습되었습니다.
이러한 기능들은 높은 정확도, 효율적인 성능, 그리고 운영 환경 배포에 대한 적합성에 기여합니다. 핵심 기능 섹션에서 자세히 알아보십시오.
YOLO-NAS 모델은 어떤 작업과 모드를 지원합니까?
YOLO-NAS 모델은 추론, 검증, 내보내기와 같은 다양한 객체 탐지 작업과 모드를 지원합니다. 학습은 지원하지 않습니다. 지원되는 모델로는 YOLO-NAS-s, YOLO-NAS-m, YOLO-NAS-l이 있으며, 각 모델은 서로 다른 컴퓨팅 용량과 성능 요구 사항에 맞춰져 있습니다. 자세한 개요는 지원되는 작업 및 모드 섹션을 참조하십시오.
사전 학습된 YOLO-NAS 모델을 사용할 수 있습니까? 어떻게 액세스할 수 있습니까?
네, Ultralytics는 직접 액세스할 수 있는 사전 학습된 YOLO-NAS 모델을 제공합니다. 이 모델들은 COCO와 같은 데이터셋으로 사전 학습되어 속도와 정확도 면에서 높은 성능을 보장합니다. 사전 학습된 모델 섹션에 제공된 링크를 사용하여 이 모델들을 다운로드할 수 있습니다. 다음은 몇 가지 예입니다: