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

Internally, YOLO processes losses and outputs in the xywhr format, which represents the bounding box's center point (xy), width, height, and rotation.

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, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-obb.onnximgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-obb_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-obb.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-obb.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-obb_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-obb.pbimgsz, batch, device
TF Litetfliteyolo26n-obb.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-obb_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-obb_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-obb_paddle_model/imgsz, batch, device
MNNmnnyolo26n-obb.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-obb_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-obb_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-obb_rknn_model/imgsz, batch, name, half, int8, data, fraction, device
ExecuTorchexecutorchyolo26n-obb_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-obb_axelera_model/imgsz, batch, int8, data, fraction, device
DEEPXdeepxyolo26n-obb_deepx_model/imgsz, int8, data, optimize, device
Qualcomm QNNqnnyolo26n-obb_qnn.onnximgsz, batch, name, int8, 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) 섹션을 참조하십시오.

댓글