Meet YOLO26: next-gen vision AI.

Link to this sectionصناديق التحديد الموجهة (OBB) لـ اكتشاف الأشياء#

يخطو اكتشاف الأشياء الموجهة خطوة أبعد من اكتشاف الأشياء القياسي من خلال إدخال زاوية إضافية لتحديد مواقع الأشياء بدقة أكبر في الصورة.

مخرجات كاشف الأشياء الموجهة هي مجموعة من صناديق التحديد المدارة التي تحيط بالأشياء في الصورة بدقة، بالإضافة إلى تسميات الفئات ودرجات الثقة لكل صندوق. تعتبر صناديق التحديد الموجهة مفيدة بشكل خاص عندما تظهر الأشياء بزوايا مختلفة، كما هو الحال في الصور الجوية، حيث قد تتضمن صناديق التحديد التقليدية المحاذية للمحاور خلفية غير ضرورية.

نصيحة

تستخدم نماذج 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النماذج#

يتم عرض نماذج YOLO26 OBB المدربة مسبقًا هنا، والتي تم تدريبها على مجموعة بيانات DOTAv1.

يتم تنزيل النماذج تلقائياً من أحدث إصدار لـ 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.
  • تم حساب السرعة (Speed) كمتوسط عبر صور مجموعة التحقق DOTAv1 باستخدام مثيل Amazon EC2 P4d.
    يمكنك إعادة إنتاجها عبر yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
  • قيم Params و FLOPs هي للنموذج المدمج بعد model.fuse()، والذي يدمج طبقات Conv و BatchNorm، وبالنسبة لنماذج end2end، فإنه يزيل رأس الكشف الإضافي واحد-إلى-متعدد. تحتفظ نقاط الفحص المدربة مسبقاً ببنية التدريب الكاملة وقد تظهر أعداداً أعلى.

Link to this sectionالتدريب#

قم بتدريب نموذج YOLO26n-obb على مجموعة بيانات DOTA8 لمدة 100 حقبة بحجم صورة 640. للحصول على قائمة كاملة بالوسيطات المتاحة، راجع صفحة الإعدادات.

ملاحظة

صندوق التحديد الموجه (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 التعليقات التوضيحية لـ 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 FN

Link 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 box


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

اطلع على تفاصيل وضع predict الكاملة في صفحة التنبؤ.

Link to this sectionمخرجات النتائج#

يُرجع اكتشاف صناديق التحديد الموجهة كائن Results واحدًا لكل صورة. حقل التنبؤ الأساسي هو result.obb، الذي يحتوي على الصناديق المدارة، ومعرفات الفئات، ودرجات الثقة لكل كائن تم اكتشافه.

السمة (Attribute)النوعالشكلالوصف
result.obbOBB(N)الصناديق الموجهة.
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التصدير#

قم بتصدير نموذج 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النموذجالبيانات الوصفيةالوسائط (Arguments)
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تطبيقات العالم الحقيقي#

لاكتشاف OBB باستخدام YOLO26 تطبيقات عملية عديدة عبر مختلف الصناعات:

  • إدارة الملاحة والموانئ: اكتشاف السفن والمركبات المائية بزوايا مختلفة لـ إدارة الأسطول والمراقبة.
  • التخطيط الحضري: تحليل المباني والبنية التحتية من الصور الجوية.
  • الزراعة: مراقبة المحاصيل والمعدات الزراعية من لقطات الطائرات بدون طيار (الدرون).
  • قطاع الطاقة: فحص الألواح الشمسية وتوربينات الرياح في اتجاهات مختلفة.
  • النقل: تتبع المركبات على الطرق وفي مواقف السيارات من منظورات مختلفة.

تستفيد هذه التطبيقات من قدرة OBB على ملاءمة الأشياء بدقة في أي زاوية، مما يوفر اكتشافًا أكثر دقة من صناديق التحديد التقليدية.

Link to this sectionالأسئلة الشائعة#

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 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.

التعليقات