صناديق التحديد الموجهة اكتشاف الكائنات
يذهب اكتشاف الكائنات الموجهة خطوة أبعد من اكتشاف الكائنات القياسي من خلال إدخال زاوية إضافية لتحديد موقع الكائنات بدقة أكبر في الصورة.
مخرجات كاشف الكائنات الموجه هي مجموعة من صناديق التحديد الدوارة التي تحيط بالكائنات بدقة في الصورة، إلى جانب تسميات الفئة ودرجات الثقة لكل صندوق. تعتبر صناديق التحديد الموجهة مفيدة بشكل خاص عندما تظهر الكائنات بزوايا مختلفة، كما هو الحال في الصور الجوية، حيث قد تتضمن صناديق التحديد التقليدية المحاذية للمحور خلفية غير ضرورية.
تستخدم نماذج YOLO26 OBB اللاحقة -obb، على سبيل المثال yolo26n-obb.pt، وهي مدربة مسبقاً على DOTAv1.
Watch: How to Detect & Track Objects with Ultralytics YOLO26 Oriented Bounding Boxes (OBB) | Ship Tracking 🚢
نماذج مرئية
| اكتشاف السفن باستخدام OBB | اكتشاف المركبات باستخدام OBB |
|---|---|
![]() | ![]() |
النماذج
يتم عرض نماذج OBB المدربة مسبقاً من YOLO26 هنا، والتي تم تدريبها مسبقاً على مجموعة بيانات DOTAv1.
يتم تنزيل النماذج تلقائياً من أحدث إصدار لـ Ultralytics عند الاستخدام الأول.
| النموذج | الحجم (بكسل) | mAPtest 50-95(e2e) | mAPtest 50(e2e) | السرعة CPU ONNX (ملي ثانية) | السرعة T4 TensorRT10 (ملي ثانية) | المعلمات (مليون) | FLOPs (مليار) |
|---|---|---|---|---|---|---|---|
| YOLO26n-obb | 1024 | 52.4 | 78.9 | 97.7 ± 0.9 | 2.8 ± 0.0 | 2.5 | 14.0 |
| YOLO26s-obb | 1024 | 54.8 | 80.9 | 218.0 ± 1.4 | 4.9 ± 0.1 | 9.8 | 55.1 |
| YOLO26m-obb | 1024 | 55.3 | 81.0 | 579.2 ± 3.8 | 10.2 ± 0.3 | 21.2 | 183.3 |
| YOLO26l-obb | 1024 | 56.2 | 81.6 | 735.6 ± 3.1 | 13.0 ± 0.2 | 25.6 | 230.0 |
| YOLO26x-obb | 1024 | 56.7 | 81.7 | 1485.7 ± 11.5 | 30.5 ± 0.9 | 57.6 | 516.5 |
- قيم mAPtest هي لنموذج أحادي متعدد المقاييس على مجموعة بيانات DOTAv1.
يمكن إعادة إنتاجها عبرyolo val obb data=DOTAv1.yaml device=0 split=testوتقديم النتائج المدمجة إلى تقييم DOTA. - السرعة محسوبة كمتوسط عبر صور التحقق (val) الخاصة بـ DOTAv1 باستخدام مثيل Amazon EC2 P4d.
يمكن إعادة إنتاجها عبرyolo val obb data=DOTAv1.yaml batch=1 device=0|cpu - قيم Params و FLOPs هي للنموذج المدمج بعد
model.fuse()، الذي يدمج طبقات Conv وBatchNorm، وبالنسبة للنماذج من النوع end2end، يقوم بإزالة رأس الاكتشاف المساعد من نوع واحد إلى متعدد. تحتفظ نقاط التحقق المدربة مسبقاً ببنية التدريب الكاملة وقد تُظهر أعداداً أعلى.
تدريب
قم بتدريب YOLO26n-obb على مجموعة بيانات DOTA8 لمدة 100 دورة تدريبية بحجم صورة 640. للحصول على قائمة كاملة بالحجج المتاحة، راجع صفحة الإعدادات.
زوايا OBB مقيدة بنطاق 0–90 درجة (باستثناء 90). الزوايا التي تبلغ 90 درجة أو أكثر غير مدعومة.
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
تنسيق مجموعة البيانات
يمكن العثور على تنسيق مجموعة بيانات OBB بالتفصيل في دليل مجموعة البيانات. يحدد تنسيق YOLO OBB صناديق التحديد من خلال نقاط الزوايا الأربع الخاصة بها مع إحداثيات طبيعية بين 0 و1، متبعاً هذا الهيكل. تدعم منصة Ultralytics تعليقات OBB باستخدام أداة رسم صناديق تحديد موجهة مخصصة:
class_index x1 y1 x2 y2 x3 y3 x4 y4
داخلياً، تعالج YOLO الخسائر والمخرجات بتنسيق xywhr، والذي يمثل نقطة المركز (xy)، والعرض، والارتفاع، والدوران لـ صندوق التحديد.
تقييم
قم بالتحقق من دقة نموذج YOLO26n-obb المدرب على مجموعة بيانات DOTA8. لا يلزم وجود وسيطات لأن 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التنبؤ
استخدم نموذج 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 boxWatch: How to Detect and Track Storage Tanks using Ultralytics YOLO-OBB | Oriented Bounding Boxes | DOTA
راجع تفاصيل وضع predict الكاملة في صفحة التنبؤ.
تصدير
قم بتصدير نموذج 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 | ✅ | - |
| TorchScript | torchscript | yolo26n-obb.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-obb.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-obb_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-obb.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-obb.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-obb_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-obb.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-obb.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-obb_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-obb_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-obb_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-obb.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-obb_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-obb_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-obb_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-obb_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-obb_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n-obb_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
راجع تفاصيل export الكاملة في صفحة Export.
تطبيقات العالم الحقيقي
يتمتع اكتشاف OBB باستخدام YOLO26 بالعديد من التطبيقات العملية عبر مختلف الصناعات:
- الإدارة البحرية والموانئ: اكتشاف السفن والمراكب بزوايا مختلفة لـ إدارة الأسطول والمراقبة.
- التخطيط الحضري: تحليل المباني والبنية التحتية من الصور الجوية.
- الزراعة: مراقبة المحاصيل والمعدات الزراعية من لقطات الطائرات بدون طيار.
- قطاع الطاقة: فحص الألواح الشمسية وتوربينات الرياح بتوجهات مختلفة.
- النقل: تتبع المركبات على الطرق وفي مواقف السيارات من منظورات مختلفة.
تستفيد هذه التطبيقات من قدرة OBB على ملاءمة الكائنات بدقة عند أي زاوية، مما يوفر اكتشافاً أكثر دقة من صناديق التحديد التقليدية.
الأسئلة الشائعة
ما هي صناديق التحديد الموجهة (OBB) وكيف تختلف عن صناديق التحديد العادية؟
تتضمن صناديق التحديد الموجهة (OBB) زاوية إضافية لتعزيز دقة تحديد موقع الكائنات في الصور. على عكس صناديق التحديد العادية، التي هي مستطيلات محاذية للمحور، يمكن لـ OBB الدوران لتلائم توجيه الكائن بشكل أفضل. هذا مفيد بشكل خاص للتطبيقات التي تتطلب وضعاً دقيقاً للكائنات، مثل الصور الجوية أو صور الأقمار الصناعية (دليل مجموعة البيانات).
كيف يمكنني تدريب نموذج 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)لمزيد من وسيطات التدريب، تحقق من قسم الإعدادات.
ما هي مجموعات البيانات التي يمكنني استخدامها لتدريب نماذج YOLO26-OBB؟
يتم تدريب نماذج YOLO26-OBB مسبقاً على مجموعات بيانات مثل DOTAv1 ولكن يمكنك استخدام أي مجموعة بيانات منسقة لـ OBB. يمكن العثور على معلومات مفصلة حول تنسيقات مجموعة بيانات OBB في دليل مجموعة البيانات.
كيف يمكنني تصدير نموذج YOLO26-OBB إلى تنسيق ONNX؟
تصدير نموذج YOLO26-OBB إلى تنسيق ONNX مباشر باستخدام إما Python أو CLI:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Export the model
model.export(format="onnx")لمزيد من تنسيقات التصدير والتفاصيل، راجع صفحة التصدير.
كيف يمكنني التحقق من دقة نموذج YOLO26n-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).

