Link to this sectionمربعات الإحاطة الموجهة اكتشاف الكائنات#
يذهب اكتشاف الكائنات الموجهة خطوة أبعد من اكتشاف الكائنات القياسي من خلال إدخال زاوية إضافية لتحديد موقع الكائنات بدقة أكبر في الصورة.
مخرجات كاشف الكائنات الموجهة هي مجموعة من مربعات الإحاطة المستديرة التي تحيط بالكائنات في الصورة بدقة، إلى جانب تسميات الفئات ودرجات الثقة لكل مربع. تكون مربعات الإحاطة الموجهة مفيدة بشكل خاص عندما تظهر الكائنات بزوايا مختلفة، كما هو الحال في الصور الجوية، حيث قد تتضمن مربعات الإحاطة التقليدية المحاذية للمحاور خلفية غير ضرورية.
تستخدم نماذج 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 |
|---|---|
![]() | ![]() |
Link to this sectionالنماذج#
يتم عرض نماذج YOLO26 OBB المدربة مسبقاً هنا، والتي تم تدريبها مسبقاً على مجموعة بيانات DOTAv1.
يتم تنزيل النماذج تلقائياً من أحدث إصدار لـ Ultralytics عند الاستخدام الأول.
| نموذج | الحجم (بكسل) | mAPtest 50-95(e2e) | mAPtest 50(e2e) | السرعة CPU ONNX (ملي ثانية) | السرعة T4 TensorRT10 (ملي ثانية) | المعاملات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| 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. - السرعة متوسطة عبر صور تحقق DOTAv1 باستخدام مثيل Amazon EC2 P4d.
يمكن إعادة الإنتاج عبرyolo val obb data=DOTAv1.yaml batch=1 device=0|cpu - قيم المعاملات و FLOPs هي للنموذج المدمج بعد
model.fuse()، الذي يدمج طبقات Conv و BatchNorm، وبالنسبة للنماذج من طرف إلى طرف، فإنه يزيل رأس الاكتشاف الإضافي من واحد إلى متعدد. تحتفظ نقاط التحقق المدربة مسبقاً ببنية التدريب الكاملة وقد تظهر أعداداً أعلى.
Link to this sectionتدريب#
قم بتدريب YOLO26n-obb على مجموعة بيانات DOTA8 لمدة 100 عصر (epoch) بحجم صورة 640. للحصول على قائمة كاملة بالوسائط المتاحة، راجع صفحة التكوين (Configuration).
إن OBB ودورانه بزاوية 180 درجة متطابقان، لذا يتم تعريف الدوران بمقياس 180 درجة والمربع ليس له اتجاه. داخلياً، يتم تخزين الزاوية بالراديان وتطبيعها إلى [-π/4, 3π/4) ([-45°, 135°))، ويتم اعتبار عرض المربع w هو الضلع الأطول، ويتم تعريف الزاوية كزاوية في اتجاه عقارب الساعة من المحور السيني الموجب إلى اتجاه 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 تعليق OBB بأداة رسم مربعات إحاطة موجهة مخصصة:
class_index x1 y1 x2 y2 x3 y3 x4 y4
داخلياً، تعالج YOLO الخسائر والمخرجات بتنسيق xywhr، والذي يمثل النقطة المركزية لـ مربع الإحاطة (xy)، والعرض، والارتفاع، والدوران.
Link to this sectionالتحقق#
تحقق من دقة نموذج 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 FNLink to this sectionتنبؤ#
استخدم نموذج 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 الكاملة في صفحة التنبؤ.
Link to this sectionمخرج النتائج#
يُرجع اكتشاف مربع الإحاطة الموجه كائن Results واحداً لكل صورة. حقل التنبؤ الأساسي هو result.obb، والذي يحتوي على مربعات مستديرة، ومعرفات الفئات، ودرجات الثقة لكل كائن مكتشف.
| السمة | النوع | الشكل | الوصف |
|---|---|---|---|
result.obb | OBB | (N) | المربعات الموجهة. |
result.obb.data | torch.float32 | (N,7/8) | المربعات المستديرة الخام مع الثقة/الفئة. |
result.obb.xywhr | torch.float32 | (N,5) | مربعات مستديرة بتنسيق xywhr. |
result.obb.xyxyxyxy | torch.float32 | (N,4,2) | نقاط الزوايا الأربع. |
result.obb.conf | torch.float32 | (N,) | درجات الثقة. |
للحصول على حقول Results الخاصة بكل مهمة عبر جميع المهام، راجع قسم نتائج التنبؤ حسب المهمة.
Link to this sectionتصدير#
تصدير نموذج 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, int8, dynamic, simplify, opset, nms, batch, data, fraction, 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, int8, data, fraction, 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 |
| Qualcomm QNN | qnn | yolo26n-obb_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
طالع تفاصيل export الكاملة في صفحة Export.
Link to this sectionتطبيقات العالم الحقيقي#
لاكتشاف OBB باستخدام YOLO26 تطبيقات عملية عديدة عبر مختلف الصناعات:
- إدارة الملاحة والموانئ: اكتشاف السفن والمركبات بزوايا مختلفة لـ إدارة الأسطول والمراقبة.
- التخطيط العمراني: تحليل المباني والبنية التحتية من الصور الجوية.
- الزراعة: مراقبة المحاصيل والمعدات الزراعية من لقطات الطائرات بدون طيار.
- قطاع الطاقة: فحص الألواح الشمسية وتوربينات الرياح في اتجاهات مختلفة.
- النقل: تتبع المركبات على الطرق وفي مواقف السيارات من منظورات مختلفة.
تستفيد هذه التطبيقات من قدرة OBB على ملاءمة الكائنات بدقة عند أي زاوية، مما يوفر كشفاً أكثر دقة من صناديق الإحاطة التقليدية.
Link to this sectionالأسئلة الشائعة#
Link to this sectionما هي صناديق الإحاطة الموجهة (OBB) وكيف تختلف عن صناديق الإحاطة العادية؟#
تتضمن صناديق الإحاطة الموجهة (OBB) زاوية إضافية لتعزيز دقة تحديد موقع الكائنات في الصور. على عكس صناديق الإحاطة العادية، التي هي مستطيلات محاذية للمحاور، يمكن لـ OBBs الدوران لتناسب اتجاه الكائن بشكل أفضل. هذا مفيد بشكل خاص للتطبيقات التي تتطلب وضعاً دقيقاً للكائنات، مثل الصور الجوية أو صور الأقمار الصناعية (دليل مجموعات البيانات).
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 sectionما هي مجموعات البيانات التي يمكنني استخدامها لتدريب نماذج YOLO26-OBB؟#
يتم تدريب نماذج YOLO26-OBB مسبقاً على مجموعات بيانات مثل DOTAv1 ولكن يمكنك استخدام أي مجموعة بيانات مهيأة لـ OBB. يمكن العثور على معلومات مفصلة حول تنسيقات مجموعات بيانات OBB في دليل مجموعات البيانات.
Link to this sectionكيف يمكنني تصدير نموذج 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")لمزيد من تنسيقات التصدير والتفاصيل، راجع صفحة التصدير.
Link to this sectionكيف يمكنني التحقق من دقة نموذج 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).

