Meet YOLO26: next-gen vision AI.

Link to this section회전된 경계 상자(Oriented Bounding Boxes) 객체 탐지#

회전된 객체 탐지는 이미지 내의 객체 위치를 더 정확하게 파악하기 위해 각도를 추가하여 표준 객체 탐지보다 한 단계 더 나아갑니다.

회전된 객체 탐지기의 출력은 이미지 내 객체를 정밀하게 둘러싸는 회전된 경계 상자 세트이며, 각 상자에 대한 클래스 레이블과 신뢰도 점수가 함께 제공됩니다. 회전된 경계 상자는 항공 이미지와 같이 객체가 다양한 각도로 나타나는 경우에 특히 유용한데, 이는 기존의 축 정렬 경계 상자가 불필요한 배경을 포함할 수 있기 때문입니다.

YOLO26 OBB 모델은 -obb 접미사를 사용하며, 예: yolo26n-obb.pt, DOTAv1으로 사전 훈련되었습니다.



Watch: How to Detect & Track Objects with Ultralytics YOLO26 Oriented Bounding Boxes (OBB) | Ship Tracking 🚢

Link to this section시각적 샘플#

OBB를 사용한 선박 탐지OBB를 사용한 차량 탐지
OBB를 사용한 선박 탐지OBB를 사용한 차량 탐지

Link to this section모델#

여기에는 DOTAv1 데이터셋으로 사전 훈련된 YOLO26 사전 훈련 OBB 모델이 표시되어 있습니다.

모델은 처음 사용할 때 최신 Ultralytics 릴리스에서 자동으로 다운로드됩니다.

모델크기
(픽셀)
mAPtest
50-95(e2e)
mAPtest
50(e2e)
속도
CPU ONNX
(ms)
속도
T4 TensorRT10
(ms)
파라미터
(M)
FLOPs
(B)
YOLO26n-obb102452.478.997.7 ± 0.92.8 ± 0.02.514.0
YOLO26s-obb102454.880.9218.0 ± 1.44.9 ± 0.19.855.1
YOLO26m-obb102455.381.0579.2 ± 3.810.2 ± 0.321.2183.3
YOLO26l-obb102456.281.6735.6 ± 3.113.0 ± 0.225.6230.0
YOLO26x-obb102456.781.71485.7 ± 11.530.5 ± 0.957.6516.5
  • mAPtest 값은 DOTAv1 데이터셋에 대한 단일 모델 다중 스케일 결과입니다.
    yolo val obb data=DOTAv1.yaml device=0 split=test를 통해 재현하고 병합된 결과를 DOTA 평가에 제출하십시오.
  • 속도Amazon EC2 P4d 인스턴스를 사용하여 DOTAv1 검증 이미지 전체의 평균을 낸 것입니다.
    yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu를 통해 재현하십시오.
  • 파라미터(Params)FLOPs 값은 Conv 및 BatchNorm 레이어를 병합하고 엔드투엔드(end2end) 모델의 경우 보조 일대다(one-to-many) 감지 헤드를 제거하는 model.fuse() 이후의 융합 모델 기준입니다. 사전 학습된 체크포인트는 전체 학습 아키텍처를 유지하므로 더 높은 수치를 보일 수 있습니다.

Link to this section학습(Train)#

DOTA8 데이터셋에서 640 이미지 크기로 100 에폭 동안 YOLO26n-obb를 훈련합니다. 사용 가능한 전체 인수 목록은 구성 페이지를 참조하십시오.

참고

OBB와 그 180° 회전은 동일하므로 회전은 180° 모듈로 정의되며 상자에는 방향이 없습니다. 내부적으로 각도는 라디안 단위로 저장되고 [-π/4, 3π/4) ([-45°, 135°))로 정규화됩니다. 상자 너비 w는 긴 변으로 간주되며, 각도는 양의 x축에서 w 방향까지의 시계 방향 각도로 정의됩니다. [0°, 90°) 형식은 정규화된 DOTA 스타일 규칙이며 훈련이나 추론 시에는 적용되지 않습니다.

예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.yaml")  # build a new model from YAML
model = YOLO("yolo26n-obb.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-obb.yaml").load("yolo26n-obb.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)


Watch: How to Train Ultralytics YOLO-OBB (Oriented Bounding Boxes) Models on DOTA Dataset using Ultralytics Platform

Link to this section데이터셋 형식#

OBB 데이터셋 형식에 대한 자세한 내용은 데이터셋 가이드에서 확인할 수 있습니다. YOLO OBB 형식은 이 구조를 따라 좌표가 0과 1 사이로 정규화된 네 개의 모서리 점으로 경계 상자를 지정합니다. Ultralytics Platform은 전용 회전된 경계 상자 그리기 도구를 사용하여 OBB 주석을 지원합니다.

class_index x1 y1 x2 y2 x3 y3 x4 y4

내부적으로 YOLO는 손실(loss)과 출력을 xywhr 형식으로 처리하며, 이는 bounding box의 중심점(xy), 너비, 높이 및 회전을 나타냅니다.

Link to this section검증(Val)#

DOTA8 데이터셋에서 훈련된 YOLO26n-obb 모델의 정확도를 검증합니다. model이 훈련 data와 인수를 모델 속성으로 유지하므로 별도의 인수는 필요하지 않습니다.

예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val(data="dota8.yaml")  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list containing mAP50-95(B) for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

Link to this section추론(Predict)#

훈련된 YOLO26n-obb 모델을 사용하여 이미지에 대한 예측을 수행합니다.

예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.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/boats.jpg")  # predict on an image

# Access the results
for result in results:
    xywhr = result.obb.xywhr  # center-x, center-y, width, height, angle (radians)
    xyxyxyxy = result.obb.xyxyxyxy  # polygon format with 4-points
    names = [result.names[cls.item()] for cls in result.obb.cls.int()]  # class name of each box
    confs = result.obb.conf  # confidence score of each box


Watch: How to Detect and Track Storage Tanks using Ultralytics YOLO-OBB | Oriented Bounding Boxes | DOTA

전체 predict 모드 세부 정보는 Predict 페이지를 확인하십시오.

Link to this section결과 출력#

회전된 경계 상자 탐지는 이미지당 하나의 Results 객체를 반환합니다. 주요 예측 필드는 result.obb이며, 여기에는 탐지된 각 객체에 대한 회전된 상자, 클래스 ID 및 신뢰도 점수가 포함됩니다.

속성유형형태설명
result.obbOBB(N)회전된 박스(Oriented boxes)입니다.
result.obb.datatorch.float32(N,7/8)신뢰도/클래스를 포함한 원시 회전 박스입니다.
result.obb.xywhrtorch.float32(N,5)xywhr 회전 박스입니다.
result.obb.xyxyxyxytorch.float32(N,4,2)네 개의 모서리 점입니다.
result.obb.conftorch.float32(N,)신뢰도 점수입니다.

모든 작업에 걸친 작업별 Results 필드는 작업별 예측 결과 섹션을 참조하십시오.

Link to this section내보내기(Export)#

YOLO26n-obb 모델을 ONNX, CoreML 등과 같은 다른 형식으로 내보냅니다.

예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")

사용 가능한 YOLO26-obb 내보내기 형식은 아래 표와 같습니다. format 인수를 사용하여 모든 형식으로 내보낼 수 있습니다(예: format='onnx' 또는 format='engine'). 내보낸 모델에서 직접 예측하거나 검증할 수 있습니다(예: yolo predict model=yolo26n-obb.onnx). 모델 내보내기가 완료된 후 사용 예제가 표시됩니다.

형식format 인수모델메타데이터인수
PyTorch-yolo26n-obb.pt-
TorchScripttorchscriptyolo26n-obb.torchscriptimgsz, quantize, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-obb.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-obb_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-obb.engineimgsz, quantize, dynamic, simplify, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-obb.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-obb_saved_model/imgsz, keras, quantize, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-obb.pbimgsz, batch, device
TF Edge TPUedgetpuyolo26n-obb_edgetpu.tfliteimgsz, quantize, data, fraction, device
PaddlePaddlepaddleyolo26n-obb_paddle_model/imgsz, batch, device
MNNmnnyolo26n-obb.mnnimgsz, batch, quantize, device
NCNNncnnyolo26n-obb_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-obb_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-obb_rknn_model/imgsz, batch, name, quantize, data, fraction, device
ExecuTorchexecutorchyolo26n-obb_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-obb_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-obb_deepx_model/imgsz, quantize, data, optimize, device
Qualcomm QNNqnnyolo26n-obb_qnn.onnximgsz, batch, name, quantize, data, fraction, device
LiteRTlitertyolo26n-obb.tfliteimgsz, quantize, batch, data, fraction, device

전체 export 세부 사항은 Export 페이지에서 확인하십시오.

Link to this section실제 활용 사례#

YOLO26을 사용한 OBB 탐지는 다양한 산업 분야에서 수많은 실제 응용 사례를 가지고 있습니다.

  • 해양 및 항만 관리: 선단 관리 및 모니터링을 위해 다양한 각도에서 선박과 함정을 탐지합니다.
  • 도시 계획: 항공 이미지를 통해 건물과 인프라를 분석합니다.
  • 농업: 드론 영상을 통해 작물과 농기계를 모니터링합니다.
  • 에너지 부문: 다양한 방향의 태양광 패널과 풍력 터빈을 검사합니다.
  • 교통: 다양한 관점에서 도로와 주차장의 차량을 추적합니다.

이러한 응용 프로그램은 객체를 모든 각도에서 정확하게 맞추는 OBB의 기능으로 혜택을 보며, 기존의 경계 상자보다 더 정확한 탐지 성능을 제공합니다.

Link to this sectionFAQ#

Link to this section회전된 경계 상자(OBB)란 무엇이며 일반 경계 상자와 어떻게 다릅니까?#

회전된 경계 상자(OBB)는 이미지 내 객체 위치 파악 정확도를 높이기 위해 추가 각도를 포함합니다. 축 정렬 직사각형인 일반 경계 상자와 달리, OBB는 객체의 방향에 맞게 회전할 수 있습니다. 이는 항공이나 위성 이미지와 같이 정밀한 객체 배치가 필요한 애플리케이션에 특히 유용합니다(데이터셋 가이드).

Link to this section사용자 지정 데이터셋을 사용하여 YOLO26n-obb 모델을 어떻게 훈련합니까?#

사용자 지정 데이터셋으로 YOLO26n-obb 모델을 훈련하려면 Python이나 CLI를 사용하여 아래 예제를 따르십시오.

예시
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-obb.pt")

# Train the model
results = model.train(data="path/to/custom_dataset.yaml", epochs=100, imgsz=640)

더 많은 훈련 인수는 구성 섹션을 확인하십시오.

Link to this sectionYOLO26-OBB 모델 훈련에는 어떤 데이터셋을 사용할 수 있습니까?#

YOLO26-OBB 모델은 DOTAv1과 같은 데이터셋으로 사전 훈련되어 있지만, OBB용으로 형식화된 모든 데이터셋을 사용할 수 있습니다. OBB 데이터셋 형식에 대한 자세한 정보는 데이터셋 가이드에서 찾을 수 있습니다.

Link to this sectionYOLO26-OBB 모델을 ONNX 형식으로 어떻게 내보낼 수 있습니까?#

Python이나 CLI를 사용하여 YOLO26-OBB 모델을 ONNX 형식으로 내보내는 방법은 간단합니다.

예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")

# Export the model
model.export(format="onnx")

더 많은 내보내기 형식과 자세한 내용은 내보내기 페이지를 참조하십시오.

Link to this sectionYOLO26n-obb 모델의 정확도는 어떻게 검증합니까?#

YOLO26n-obb 모델을 검증하려면 아래와 같이 Python 또는 CLI 명령어를 사용할 수 있습니다.

예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")

# Validate the model
metrics = model.val(data="dota8.yaml")

전체 검증 세부 정보는 검증(Val) 섹션을 참조하십시오.

댓글