오리엔티드 바운딩 박스 오브젝트 감지
방향성 물체 감지는 이미지에서 물체를 더 정확하게 찾을 수 있도록 추가 각도를 도입하여 표준 물체 감지보다 한 단계 더 발전한 기능입니다.
방향성 객체 감지기의 출력은 이미지에서 객체를 정확하게 둘러싸는 회전된 경계 상자 집합과 각 상자에 대한 클래스 레이블 및 신뢰도 점수로 구성됩니다. 방향이 지정된 바운딩 박스는 항공 이미지와 같이 물체가 다양한 각도로 나타나는 경우, 기존의 축 정렬 바운딩 박스에 불필요한 배경이 포함될 수 있는 경우에 특히 유용합니다.
팁
YOLO11 OBB 모델은 -obb
접미사, 즉 yolo11n-obb.pt
에 대해 사전 교육을 받았으며 DOTAv1.
Watch: Ultralytics YOLO 오리엔티드 바운딩 박스(YOLO-OBB)를 사용한 객체 감지
시각적 샘플
OBB를 사용한 선박 감지 | OBB를 사용한 차량 감지 |
---|---|
![]() |
![]() |
모델
YOLO11 DOTAv1 데이터 세트에서 사전 학습된 OBB 모델이 여기에 나와 있습니다.
모델은 처음 사용할 때 최신 Ultralytics 릴리스에서 자동으로 다운로드됩니다.
모델 | 크기 (픽셀) |
mAPtest 50 |
속도 CPU ONNX (ms) |
속도 T4TensorRT10 (ms) |
매개변수 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLO11n-obb | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 17.2 |
YOLO11s-obb | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.5 |
YOLO11m-obb | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 183.5 |
YOLO11l-obb | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.2 | 232.0 |
YOLO11x-obb | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 520.2 |
- mAPtest 값은 단일 모델 멀티스케일에서 DOTAv1 데이터 세트.
복제 대상yolo val obb data=DOTAv1.yaml device=0 split=test
을 클릭하고 병합된 결과를 다음 주소로 제출합니다. DOTA 평가. - 속도 를 사용하여 DOTAv1 val 이미지에 대한 평균값을 Amazon EC2 P4d 인스턴스입니다.
복제 대상yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
기차
이미지 크기 640으로 100개의 에포크에 대해 DOTA8 데이터 세트에서 YOLO11n-obb를 훈련합니다. 사용 가능한 인수의 전체 목록은 구성 페이지를 참조하세요.
예
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-obb.yaml") # build a new model from YAML
model = YOLO("yolo11n-obb.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-obb.yaml").load("yolo11n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo obb train data=dota8.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo obb train data=dota8.yaml model=yolo11n-obb.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo obb train data=dota8.yaml model=yolo11n-obb.yaml pretrained=yolo11n-obb.pt epochs=100 imgsz=640
Watch: Ultralytics YOLO -OBB(오리엔티드 바운딩 박스) 모델을 DOTA 데이터셋에서 훈련하는 방법 Ultralytics HUB 사용
데이터 집합 형식
OBB 데이터 세트 형식은 데이터 세트 가이드에서 자세히 확인할 수 있습니다. YOLO OBB 형식은 이 구조에 따라 0에서 1 사이로 정규화된 좌표를 사용하여 네 모서리 점으로 바운딩 박스를 지정합니다:
내부적으로는 YOLO 에서 손실 및 출력을 처리합니다. xywhr
형식을 나타내는 바운딩 박스의 중심점(xy), 너비, 높이 및 회전.
Val
학습된 YOLO11n-obb 모델 검증하기 정확성 로 설정할 수 있습니다. 인수가 필요하지 않으므로 model
교육 유지 data
및 인수를 모델 속성으로 사용합니다.
예
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 contains map50-95(B) of each category
예측
학습된 YOLO11n-obb 모델을 사용하여 이미지에 대한 예측을 실행합니다.
예
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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.keypoints.xy # 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: Ultralytics YOLO -OBB | 오리엔티드 바운딩 박스 | DOTA를 사용하여 저장 탱크를 감지하고 추적하는 방법
전체 보기 predict
모드 세부 정보에서 예측 페이지로 이동합니다.
내보내기
ONNX, CoreML 등과 같은 다른 형식으로 YOLO11n-obb 모델을 내보냅니다.
예
사용 가능한 YOLO11-obb 내보내기 형식은 아래 표에 나와 있습니다. 다음을 사용하여 모든 형식으로 내보낼 수 있습니다. format
인수, 즉 format='onnx'
또는 format='engine'
. 내보낸 모델에서 직접 예측하거나 검증할 수 있습니다. yolo predict model=yolo11n-obb.onnx
. 내보내기가 완료된 후 모델에 대한 사용 예가 표시됩니다.
형식 | format 인수 |
모델 | 메타데이터 | 인수 |
---|---|---|---|---|
PyTorch | - | yolo11n-obb.pt |
✅ | - |
TorchScript | torchscript |
yolo11n-obb.torchscript |
✅ | imgsz , optimize , nms , batch |
ONNX | onnx |
yolo11n-obb.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch |
OpenVINO | openvino |
yolo11n-obb_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data |
TensorRT | engine |
yolo11n-obb.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data |
CoreML | coreml |
yolo11n-obb.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n-obb_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch |
TF GraphDef | pb |
yolo11n-obb.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolo11n-obb.tflite |
✅ | imgsz , half , int8 , nms , batch , data |
TF Edge TPU | edgetpu |
yolo11n-obb_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolo11n-obb_web_model/ |
✅ | imgsz , half , int8 , nms , batch |
PaddlePaddle | paddle |
yolo11n-obb_paddle_model/ |
✅ | imgsz , batch |
MNN | mnn |
yolo11n-obb.mnn |
✅ | imgsz , batch , int8 , half |
NCNN | ncnn |
yolo11n-obb_ncnn_model/ |
✅ | imgsz , half , batch |
IMX500 | imx |
yolo11n-obb_imx_model/ |
✅ | imgsz , int8 , data |
RKNN | rknn |
yolo11n-obb_rknn_model/ |
✅ | imgsz , batch , name |
전체 보기 export
세부 정보에서 내보내기 페이지로 이동합니다.
실제 애플리케이션
YOLO11 이용한 OBB 감지는 다양한 산업 분야에서 실용적으로 활용되고 있습니다:
- 해양 및 항만 관리: 선단 관리 및 모니터링을 위해 다양한 각도에서 선박과 선박을 감지합니다.
- 도시 계획: 항공 이미지에서 건물과 인프라를 분석합니다.
- 농업: 드론 영상으로 농작물과 농기계를 모니터링합니다.
- 에너지 분야: 다양한 방향의 태양광 패널과 풍력 터빈을 검사합니다.
- 교통: 다양한 관점에서 도로와 주차장의 차량을 추적합니다.
이러한 애플리케이션은 어떤 각도에서도 오브젝트를 정확하게 맞출 수 있어 기존 바운딩 박스보다 더 정확한 감지 기능을 제공하는 OBB의 이점을 활용할 수 있습니다.
자주 묻는 질문
OBB(오리엔티드 바운딩 박스)란 무엇이며 일반 바운딩 박스와 어떻게 다른가요?
OBB(오리엔티드 바운딩 박스)는 이미지에서 객체의 위치 정확도를 높이기 위해 추가 각도를 포함합니다. 축이 정렬된 직사각형인 일반 바운딩 박스와 달리 OBB는 객체의 방향에 더 잘 맞도록 회전할 수 있습니다. 이는 항공 또는 위성 이미지와 같이 정확한 객체 배치가 필요한 애플리케이션에 특히 유용합니다(데이터 세트 가이드).
사용자 지정 데이터 세트를 사용하여 YOLO11n-obb 모델을 훈련하려면 어떻게 해야 하나요?
사용자 지정 데이터 세트로 YOLO11n-obb 모델을 훈련하려면 Python 또는 CLI 을 사용하여 아래 예제를 따르세요:
예
더 많은 교육 인수를 확인하려면 구성 섹션을 확인하세요.
YOLO11-OBB 모델 훈련에 사용할 수 있는 데이터 세트는 무엇인가요?
YOLO11-OBB 모델은 DOTAv1과 같은 데이터 세트에 대해 사전 학습되지만, OBB용으로 포맷된 모든 데이터 세트를 사용할 수 있습니다. OBB 데이터 세트 형식에 대한 자세한 정보는 데이터 세트 가이드에서 확인할 수 있습니다.
YOLO11-OBB 모델을 ONNX 형식으로 내보내려면 어떻게 해야 하나요?
YOLO11-OBB 모델을 ONNX 형식으로 내보내는 방법은 Python 또는 CLI 을 사용하여 간단하게 수행할 수 있습니다:
예
내보내기 형식 및 자세한 내용은 내보내기 페이지를 참조하세요.
YOLO11n-obb 모델의 정확성을 어떻게 검증하나요?
아래와 같이 Python 또는 CLI 명령을 사용하여 YOLO11n-obb 모델의 유효성을 검사할 수 있습니다:
예
Val 섹션에서 전체 유효성 검사 세부 정보를 확인하세요.