حالات الاستخدام والحلول الواقعية
أبعد من مجرد مربعات على شاشة: كيف نستفيد من النتائج؟
تخيل أن لديك مساعداً يراقب الكاميرات، هو ذكي جداً ويستطيع رؤية “مربعات” حول كل شيء، لكنه يحتاج لتعليمات واضحة:
فكر فيها كأنها:
“المساعد رأى لصاً (رؤية).. الآن يجب عليه أن يدق الجرس (حل واقعي)!”
توفر Ultralytics مجموعة من الحلول (Solutions) الجاهزة التي تغلف نموذج الذكاء الاصطناعي وتسهل استخدامه.
تسمح لك هذه الحلول ببناء أنظمة رؤية حاسوبية احترافية ببضعة أسطر برمجية فقط!
افتراضياً، تقوم Ultralytics بإنشاء مجلد باسم runs/ في نفس مكان عملك الحالي:
مجلد_مشروعك/
└── runs/
├── detect/
│ ├── predict/ # نتائج التوقع (الصور والفيديوهات)
│ └── train/ # نتائج التدريب (الأوزان، الرسوم البيانية)
├── segment/
│ └── predict/
└── solutions/ # إحصائيات الحلول (كالجداول الزمنية للعد)Note
يمكنك تغيير مكان الحفظ واسم المجلد باستخدام أوامر project و name في الأكواد.
العد، المناطق، والطوابير
تعتمد هذه الحلول على رسم خطوط أو مضلعات وهمية (رقمية) على الفيديو، ومراقبة الكائنات عندما تتقاطع معها.
ببساطة: “عد أي شخص يلمس هذا الخط الأخضر”.
تنظيم وتوجيه حركة السيارات في المواقف ومعرفة الشاغر منها.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("videos/traffic.mp4")
# إحداثيات كل موقف سيارة على حدة
parking_spots = [
[(10, 10), (10, 50), (100, 50), (100, 10)],
[(110, 10), (110, 50), (200, 50), (200, 10)]
]
manager = solutions.ParkingManagement(
model="weights/yolo26n.pt", region=parking_spots, show=True
)
while cap.isOpened():
success, im0 = cap.read()
if not success: break
results = manager(im0)السرعة، المسافات، ومجال الرؤية
كيف يعرف الكمبيوتر المسافة وهو يرى مجرد “بكسلات” (نقاط) على الشاشة؟
تشبيه المسطرة
تخيل أنك تضع مسطرة على شاشة التلفاز؛ المسطرة تقيس بالسنتيمتر، لكن في الحقيقة السيارة التي تراها قد قطعت كيلومترات! نحن نعلم الكمبيوتر “كم متراً حقيقياً يساويه كل بكسل على الشاشة”.
الجزء الأهم هو meter_per_pixel؛ هو الجسر الذي يربط الشاشة بالواقع.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("videos/traffic.mp4")
# ضبط ساهر الرقمي
speed_radar = solutions.SpeedEstimator(
show=True, model="yolo11n.pt",
meter_per_pixel=0.01
)
while cap.isOpened():
success, im0 = cap.read()
if not success: break
results = speed_radar(im0)لماذا نحتاج السرعة؟
التحليلات والخرائط الحرارية (Heatmaps)
بدلاً من مجرد رؤية الكائنات، يقوم الكمبيوتر بتسجيل “تاريخ” ما حدث في تقارير بصرية.
تخيلها كأنها:
اكتشاف الأنماط واتخاذ قرارات مبنية على بيانات واضحة (رسوم خطية، أعمدة، أو دائرية).
import os, cv2
from ultralytics import solutions
cap = cv2.VideoCapture("assets/Pull_ups.mp4")
analytics = solutions.Analytics(
show=True,
analytics_type="line", # الخيارات: "pie", "bar", "area"
model="weights/yolo26n.pt",
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if not success: break
frame_count += 1
results = analytics(im0, frame_count) تساعدنا في تحويل الفيديو الجاف إلى “خريطة كنز” توضح لنا أين تتركز الأهمية.
القص والتمويه (Blurring)
خطوات معالجة للصور تتم بعد الاستدلال باستخدام إحداثيات المربعات.
طمس المربعات المكتشفة تلقائياً لحماية خصوصية الأفراد المارة أو لوحات السيارات.
import os, cv2
from ultralytics import solutions
cap = cv2.VideoCapture("assets/Pull_ups.mp4")
blurrer = solutions.ObjectBlurrer(
show=True,
model="weights/yolo26n.pt",
blur_ratio=0.5, # نسبة قوة التمويه والضبابية
)
while cap.isOpened():
success, im0 = cap.read()
if not success: break
results = blurrer(im0)التجزئة والهيكل
أحياناً المربع لا يكفي؛ نحتاج لمعرفة الشكل الدقيق أو وضعية الجسم.
تخيلها كأنها:
YOLO-seg و YOLO-pose للوصول لهذه الدقة.مخرجات التجزئة
تتبع وتقييم الأداء الرياضي (مثل العقلة أو الضغط) باستخدام نقاط الهيكل البشري.
import os, cv2
from ultralytics import solutions
cap = cv2.VideoCapture("assets/Pull_ups.mp4")
gym = solutions.AIGym(
show=True,
kpts=[6, 8, 10], # النقاط الخاصة بالذراعين (لتمارين العقلة/الضغط)
model="yolov8n-pose.pt",
)
while cap.isOpened():
success, im0 = cap.read()
if not success: break
results = gym(im0)مخرجات الهيكل
وصل المشكلة بالحل البرمجي الصحيح
اضغط على المشكلة أولاً، ثم اضغط على الحل الذي تراه مناسباً:
[!IMPORTANT] الذكاء الحقيقي هو توظيف التقنية لحل مشاكل الناس اليومية!
نهاية الجزء الثاني
في الدرس القادم: البيانات المخصصة والتدريب
يُسعدني الإجابة على استفساراتكم ومناقشاتكم