Ultralytics YOLO를 사용한 객체 탐지#
객체 탐지는 이미지 또는 비디오 스트림에서 객체의 위치와 클래스를 식별하는 작업입니다.
객체 탐지기의 출력은 이미지 내 객체를 둘러싸는 바운딩 박스 집합과 각 박스에 대한 클래스 레이블 및 신뢰도 점수입니다. 장면에서 관심 있는 객체를 식별해야 하지만 객체의 정확한 위치나 형태까지 알 필요는 없는 경우 객체 탐지가 적합합니다.
Watch: Object Detection with Pretrained Ultralytics YOLO Model.
YOLO26 Detect 모델은 기본 YOLO26 모델, 즉 yolo26n.pt이며 COCO로 사전 학습됩니다.
모델#
여기에는 YOLO26 사전 학습 Detect 모델이 나와 있습니다. Detect, Segment 및 Pose 모델은 COCO 데이터셋으로 사전 학습되며, Semantic 모델은 Cityscapes로, Classify 모델은 ImageNet 데이터셋으로 사전 학습됩니다.
모델은 처음 사용할 때 최신 Ultralytics 릴리스에서 자동으로 다운로드됩니다.
| 모델 | 크기 (픽셀) | mAPval 50-95 | mAPval 50-95(e2e) | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.5 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.9 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.4 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.8 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 194.4 |
- mAPval 값은 COCO val2017 데이터셋에서의 단일 모델, 단일 스케일 기준입니다.
재현하려면yolo val detect data=coco.yaml device=0을 사용하십시오. e2e 열을 재현하려면nms=False를 추가하십시오. - Speed는 Amazon EC2 P4d 인스턴스를 사용하여 COCO val 이미지에 대해 평균을 낸 값입니다.
yolo val detect data=coco.yaml batch=1 device=0|cpu nms=False로 재현할 수 있습니다. - Params 및 FLOPs 값은 Conv/BatchNorm 융합 및 사용되지 않는 탐지 브랜치 제거 이후의 융합된 모델 기준입니다. 사전 학습된 체크포인트는 전체 학습 아키텍처를 유지하므로 더 높은 수치를 나타낼 수 있습니다.
초기 COCO 탐지 결과에 대해서는 미출시 YOLO27 미리보기를 참조하십시오.
학습#
이미지 크기 640으로 COCO8 데이터셋에서 100 epoch 동안 YOLO26n을 학습합니다. 사용 가능한 인수의 전체 목록은 Configuration 페이지를 참조하십시오.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.yaml") # build a new model from YAML
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Train 페이지에서 전체 train 모드 세부 정보를 확인하십시오. 탐지 모델은 Ultralytics Platform 클라우드 학습으로도 학습할 수 있습니다.
데이터셋 형식#
YOLO 감지 데이터셋 형식에 대한 자세한 내용은 데이터셋 가이드에서 확인할 수 있습니다. 기존 COCO JSON 데이터셋을 YOLO 형식으로 변환하려면 COCO에서 YOLO로 가이드에 설명된 기본 제공 convert_coco 함수를 사용하십시오. 또한 Ultralytics 플랫폼의 AI 지원 어노테이션 도구를 사용하여 감지 데이터셋을 어노테이션하고 관리할 수 있습니다.
검증#
COCO8 데이터셋에서 학습된 YOLO26n 모델의 정확도를 검증합니다. model이 학습 data 및 인수를 모델 속성으로 유지하므로 인수가 필요하지 않습니다.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list containing mAP50-95 for each category
metrics.box.image_metrics # per-image metrics dictionary with precision, recall, F1, TP, FP, and FNPrediction#
학습된 YOLO26n 모델을 사용하여 이미지에 대한 예측을 실행합니다.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
xywh = result.boxes.xywh # center-x, center-y, width, height
xywhn = result.boxes.xywhn # normalized
xyxy = result.boxes.xyxy # top-left-x, top-left-y, bottom-right-x, bottom-right-y
xyxyn = result.boxes.xyxyn # normalized
names = [result.names[cls.item()] for cls in result.boxes.cls.int()] # class name of each box
confs = result.boxes.conf # confidence score of each box전체 predict mode 세부 정보는 Predict 페이지를 참조하십시오.
결과 출력#
객체 탐지는 이미지당 하나의 Results 객체를 반환합니다. 기본 예측 필드는 result.boxes이며, 여기에는 탐지된 각 객체의
박스 좌표, 클래스 ID 및 신뢰도 점수가 포함됩니다.
| Attribute | 유형 | Shape | 설명 |
|---|---|---|---|
result.boxes | Boxes | (N) | Detection box입니다. |
result.boxes.data | torch.float32 | (N,6/7) | Raw [x1,y1,x2,y2,conf,cls]이며, 선택적으로 track ID를 포함합니다. |
result.boxes.xyxy | torch.float32 | (N,4) | xyxy pixel box입니다. |
result.boxes.conf | torch.float32 | (N,) | Confidence score입니다. |
result.boxes.cls | torch.float32 | (N,) | Class ID이며, name을 가져오려면 int으로 cast합니다. |
모든 task에서 task-specific Results field를 확인하려면 Predict Results by Task 섹션을 참조하십시오.
내보내기#
YOLO26n 모델을 ONNX, CoreML 등의 다른 형식으로 내보냅니다.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")사용 가능한 YOLO26 내보내기 형식은 아래 표에 나와 있습니다. format 인수, 즉 format='onnx' 또는 format='engine'를 사용하여 모든 형식으로 내보낼 수 있습니다. 내보낸 모델에서 직접 예측하거나 검증할 수 있으며, 즉 yolo predict model=yolo26n.onnx을 사용할 수 있습니다. 내보내기가 완료되면 해당 모델에 대한 사용 예제가 표시됩니다.
| 형식 | format Argument | 모델 | Metadata | Arguments |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
nms=None은(는) 외부 NMS에 대해 기본적으로 원시 출력을 사용합니다. 사용 가능한 NMS 프리 헤드를 선택하려면 nms=False을(를) 설정하세요. 지원되지 않는 형식은 기본 출력 경로로 대체됩니다. 위의 nms 항목은 nms=True(으)로 NMS를 임베드할 수 있는 형식을 식별합니다.
전체 export 세부 정보는 Export 페이지를 참조하십시오.
FAQ#
예. Ultralytics Platform 빠른 시작에서는 데이터셋에 어노테이션을 지정하고, 클라우드 GPU에서 탐지 모델을 학습하며, 추론 엔드포인트에 배포하는 브라우저 기반 워크플로를 다룹니다.
사용자 지정 데이터셋에서 YOLO26 모델을 학습하는 과정은 몇 가지 단계로 구성됩니다.
- 데이터셋 준비: 데이터셋이 YOLO 형식인지 확인합니다. 자세한 지침은 Dataset Guide를 참조하십시오.
- 모델 로드: Ultralytics YOLO 라이브러리를 사용하여 사전 학습된 모델을 로드하거나 YAML 파일에서 새 모델을 생성합니다.
- 모델 학습: Python에서
train메서드를 실행하거나 CLI에서yolo detect train명령을 실행합니다.
예시from ultralytics import YOLO # Load a pretrained model model = YOLO("yolo26n.pt") # Train the model on your custom dataset model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)자세한 구성 옵션은 Configuration 페이지를 참조하십시오.
Ultralytics YOLO26은 객체 탐지, 인스턴스 세그멘테이션, 시맨틱 세그멘테이션 및 포즈 추정을 위한 다양한 사전 학습 모델을 제공합니다. 이러한 모델은 COCO 데이터셋, 시맨틱 세그멘테이션의 경우 Cityscapes, 분류 작업의 경우 ImageNet으로 사전 학습됩니다. 사용 가능한 모델 중 일부는 다음과 같습니다.
자세한 목록과 성능 지표는 Models 섹션을 참조하십시오.
학습된 YOLO26 모델의 정확도를 검증하려면 Python에서
.val()메서드를 사용하거나 CLI에서yolo detect val명령을 사용할 수 있습니다. 이를 통해 mAP50-95, mAP50 등의 지표를 확인할 수 있습니다.예시from ultralytics import YOLO # Load the model model = YOLO("path/to/best.pt") # Validate the model metrics = model.val() print(metrics.box.map) # mAP50-95검증에 대한 자세한 내용은 Val 페이지를 참조하십시오.
Ultralytics YOLO26은 객체 탐지, 인스턴스 세그멘테이션, 시맨틱 세그멘테이션 및 포즈 추정에서 최첨단 성능을 제공하도록 설계되었습니다. 주요 장점은 다음과 같습니다.
- 사전 학습 모델: COCO 및 ImageNet과 같은 인기 데이터셋으로 사전 학습된 모델을 활용하여 개발 속도를 높일 수 있습니다.
- 높은 정확도: 인상적인 mAP 점수를 달성하여 안정적인 객체 탐지를 보장합니다.
- 속도: 실시간 추론에 맞게 최적화되어 신속한 처리가 필요한 애플리케이션에 적합합니다.
- 유연성: ONNX 및 TensorRT와 같은 다양한 형식으로 모델을 내보내 여러 플랫폼에 배포할 수 있습니다.
YOLO26의 실제 활용 사례와 성공 사례를 소개하는 Blog를 살펴보십시오.