تعرّف على كيفية تحويل البيانات من تطبيقات الرؤية الحاسوبية إلى رسوم بيانية سهلة الفهم باستخدام حزمة Ultralytics Python للحصول على رؤى أفضل.
في كل دقيقة، يتم إنشاء كميات هائلة من البيانات، من محطات المطارات ومحطات القطارات إلى مراكز التسوق. ومع ازدياد استخدام الذكاء الاصطناعي على نطاق واسع، يتم الآن تحليل الكثير من هذه البيانات وتقسيمها. ولكن في بعض الأحيان قد تؤدي نتائج نماذج الذكاء الاصطناعي هذه إلى صعوبة اكتشاف الأنماط أو فهم الاتجاهات في لمحة سريعة. وهنا يأتي دور التصور المرئي للبيانات - فهو يحول المخرجات المعقدة إلى رؤى واضحة وسهلة الفهم.
هذا صحيح بشكل خاص عندما يتعلق الأمر بتطبيقات الرؤية الحاسوبية. الرؤية الحاسوبية هي فرع من فروع الذكاء الاصطناعي (AI) يساعد الآلات على تفسير وفهم المعلومات المرئية من العالم المحيط، مثل الصور ومقاطع الفيديو. في حين أن نماذج الذكاء الاصطناعي للرؤية، مثل Ultralytics YOLO11يمكن أن تساعد في تحليل مثل هذه البيانات المرئية للحصول على معلومات، فإن تصور البيانات يساعد في وضع تلك المعلومات في شكل يسهل فهمه.
ببساطة، يعمل تصور البيانات على سد الفجوة بين البيانات الأولية والفهم الحقيقي باستخدام الرسوم البيانية التحليلية ذات المغزى. في عالم اليوم القائم على البيانات، هذا أمر أساسي لأنه لا يكفي أن تقوم الآلات بأداء المهام فحسب، بل نحتاج إلى أن تروي قصة.
إن هذه الحاجة إلى سرد القصص هي بالضبط السبب في تزايد الحاجة إلى تصور البيانات، حيث من المتوقع أن يصل حجم السوق إلى 18.36 مليار دولار بحلول عام 2030. استكشفنا سابقًا كيف يمكن للرؤية الحاسوبية تقديم رؤى قيمة للأعمال. واليوم، سنخطو خطوة إلى الأمام من خلال استعراض كيفية إنشاء رسوم بيانية تحليلية واضحة وثاقبة لتطبيقات الرؤية الحاسوبية باستخدام حزمة Ultralytics . لنبدأ!
يتضمن تصور البيانات في تطبيقات الرؤية الحاسوبية تحويل نتائج مهام الرؤية الحاسوبية، مثل اكتشاف الأجسام وتتبعها، إلى مخططات أو لوحات معلومات سهلة الفهم. تساعد هذه المرئيات في تحديد الأنماط والاتجاهات، خاصةً عند العمل مع كميات كبيرة من لقطات الفيديو.
على سبيل المثال، بدلاً من مراجعة ساعات من فيديو المراقبة يدوياً، يمكن لرسم بياني خطي بسيط يعرض عدد السيارات أو الأشخاص الذين تم اكتشافهم بمرور الوقت أن يسلط الضوء بسرعة على ساعات الذروة أو فترات الهدوء غير المعتادة.
فيما يلي بعض الأسباب الرئيسية التي تجعل تصور البيانات مفيدًا:
يمكن للأنواع المختلفة من الرسوم البيانية التحليلية تحويل نتائج الرؤية الحاسوبية إلى صور واضحة وسهلة الفهم. لنفترض أنك تعمل على تطبيق رؤية حاسوبية يكتشف الأشخاص والمركبات في لقطات المراقبة. في هذه الحالة، يعد الرسم البياني الخطي رائعًا لإظهار كيفية تغير عدد الاكتشافات بمرور الوقت، مثل تتبع الذروة في حركة السير على الأقدام على مدار اليوم.
وبالمثل، تكون المخططات الشريطية مفيدة عندما تريد مقارنة عدد أنواع الأجسام المختلفة المكتشفة، مثل معرفة ما إذا كان عدد السيارات أو الدراجات أو المشاة الذين يظهرون في الفيديو أكثر من غيرهم. من ناحية أخرى، تُظهر المخططات الدائرية النسبة المئوية التي يشكّلها كل نوع من أنواع الكائنات من إجمالي الاكتشافات. لكل رسم بياني استخداماته الخاصة ويساعد في تسهيل تفسير بيانات الرؤية الحاسوبية المعقدة ومشاركتها.
الآن وبعد أن استكشفنا ماهية تصور البيانات وسبب أهمية الأنواع المختلفة من الرسوم البيانية التحليلية، دعنا نلقي نظرة فاحصة على كيفية استخدام حلUltralytics Analytics لتصور نتائج تنبؤات نموذج الرؤية الحاسوبية. قبل أن نستعرض العملية خطوة بخطوة، دعنا نلقي نظرة على الأدوات وخيارات الإعداد لتدريب واستخدام حزمة Ultralytics ونماذج مثل YOLO11.
تجعل حزمة Ultralytics Python من السهل تدريب النماذج واكتشاف الكائنات وتشغيل التنبؤات وتصور النتائج. للبدء في استخدامها، ستحتاج إلى بيئة ترميز. إليك ثلاثة خيارات بسيطة:
تعد هذه الأدوات رائعة للبدء بسرعة، ولكن يمكن للمستخدمين أيضًا دمج Ultralytics في بيئات التطوير المتكاملة (IDEs) مثل Visual Studio Code (VS Code) أو في خطوط الإنتاج. لمزيد من الخيارات، استكشف وثائقUltralytics الرسمية.
بمجرد اختيار البيئة المفضلة لديك، فإن الخطوة التالية هي إعدادها لتشغيل التنبؤات وتصور النتائج. يمكنك استخدام أي من البيئات المذكورة أعلاه، اعتمادًا على ما يناسبك أكثر.
إذا كنت تعمل في Google Colab، فضع في اعتبارك أنه يستخدم CPU افتراضيًا، مما قد يؤدي إلى إبطاء الأداء. لتسريع الأمور، قم بالتبديل إلى GPU بالانتقال إلى قائمة "وقت التشغيل"، واختيار "تغيير نوع وقت التشغيل"، وتعيين مسرع الأجهزة على GPU (من الأفضل أن يكون T4).
لتجهيز بيئتك، ستحتاج إلى تثبيت حزمةUltralytics Python باستخدام الأمر المذكور أدناه. في الأدوات القائمة على دفتر الملاحظات مثل Colab أو Jupyter، تأكد من إضافة علامة تعجب (!) قبل الأمر.
pip install ultralytics
بعد ذلك، سنحتاج إلى فيديو للعمل عليه. يمكنك بسهولة تنزيل واحد من موقع مخزون مجاني مثل Pexels. تأكد من اختيار مقطع فيديو يتضمن كائنات يمكن YOLO11 اكتشافها. بما أن النموذج مُدرَّب مسبقاً على مجموعة بيانات COCO، يمكنه التعرّف على الأجسام الشائعة مثل الأشخاص، والسيارات، والدراجات.
في هذا البرنامج التعليمي، سنستخدم مقطع فيديو لمناولة الأمتعة في محطة مطار مزدحمة. يمكنك استخدام الفيديو نفسه أو اختيار فيديو مختلف يناسب مشروعك.
بعد ذلك، يمكننا استيراد المكتبات اللازمة وتحميل فيديو الإدخال.
سنبدأ باستيراد OpenCV (cv2)، وهي مكتبة مستخدمة على نطاق واسع للعمل مع الصور والفيديو في الرؤية الحاسوبية. سنقوم أيضًا باستيراد مكتبة Ultralytics والتي تساعدنا في تشغيل اكتشاف الأجسام وإنشاء تحليلات من الفيديو.
بعد ذلك، سنحاول فتح ملف الفيديو من خلال تحديد مساره. تأكد من استبدال "path/to/video.mp4" بالموقع الفعلي لملف الفيديو الذي تم تنزيله.
أيضًا، يتضمن مقتطف الكود أدناه فحصًا بسيطًا للتأكد من تحميل الفيديو بشكل صحيح. إذا كان المسار خاطئًا أو كان الملف تالفًا، سيتوقف البرنامج ويظهر رسالة خطأ: "خطأ في قراءة ملف الفيديو."
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
بعد ذلك، سنقوم بإعداد كاتب فيديو لحفظ المخرجات. عندما نقوم بتشغيل التحليلات، سينشئ هذا الجزء من الشيفرة ملف فيديو جديد يسجل الرسوم البيانية المحدثة التي تم إنشاؤها من كل إطار من الفيديو الأصلي.
في المقتطف البرمجي أدناه، نستخرج أولًا الخصائص الرئيسية من الفيديو المُدخَل - العرض والارتفاع والإطارات في الثانية (fps). هذه القيم مأخوذة مباشرةً من الفيديو ومحوّلة إلى أعداد صحيحة للتأكد من أنها بالصيغة الصحيحة لكتابة الإخراج.
بعد ذلك، نستخدم الدالة cv2.VideoWriter لإنشاء ملف فيديو جديد باسم "analytics_output.avi" (يمكنك إعادة تسميته حسب الحاجة). يُحفظ الفيديو باستخدام صيغة MJPG، وهي طريقة ضغط فيديو شائعة. يتم ضبط دقة الإخراج على 1280×720 بكسل، بغض النظر عن حجم الفيديو الأصلي.
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"analytics_output.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720),
)
الآن، سنقوم بإعداد حل Ultralytics ytics لإنشاء رسوم بيانية من الفيديو. يمكنك اختيار كيفية عرض البيانات، مثل مخطط خطي أو دائري أو مساحي أو شريطي وأي نموذجYOLO المراد استخدامه. في هذا المثال، سنستخدم في هذا المثال نموذج "yolo11n.pt" خفيف الوزن ونعرض النتائج كرسم بياني مساحي.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)
يشغل الجزء الأخير من الكود حلقة تعالج الفيديو إطارًا واحدًا في كل مرة. يتم تمرير كل إطار إلى أداة التحليلات، والتي تقوم بتحديث الرسم البياني في الوقت الفعلي. ثم يُكتب الرسم البياني المحدَّث إلى فيديو الإخراج. إذا تعذرت قراءة إطار، تتوقف الحلقة. بعد معالجة جميع الإطارات، يتم حفظ الفيديو وإغلاق أي نوافذ مفتوحة.
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count)
out.write(results.plot_im)
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
أخيرًا، لنجمع كل شيء معًا. من خلال بضعة أسطر إضافية من الشيفرة، يمكننا إنشاء مقطعي فيديو: أحدهما يعرض نتائجاكتشاف كائنات YOLO11 مع المربعات المحدودة والتسميات، والآخر يعرض الرسوم البيانية للتحليلات في الوقت الفعلي.
للقيام بذلك، سنقوم بإعداد نسختين من VideoWriter - واحدة لحفظ فيديو التنبؤ وأخرى للتحليلات. يتضمن هذا الإصدار من الشيفرة كلاً من تتبع الكائنات وإنشاء الرسم البياني، حتى تتمكن من رؤية نتائج الكشف إلى جانب الرؤى المرئية.
إليك الكود الشامل مع أمثلة لكل من مخرجات التنبؤ والتحليلات.
import cv2
from ultralytics import YOLO, solutions
# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"
# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)
# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)
# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')
# Process frames
frame_count = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame_count += 1
pred_frame = model.track(frame, persist=True)[0].plot()
out_pred.write(pred_frame)
resized = cv2.resize(pred_frame, analytics_res)
out_ana.write(analytics(resized, frame_count).plot_im)
cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()
عندما يتم تشغيل الكود أعلاه بنجاح، سينشئ مقطعي فيديو للإخراج. سيعرض ملف "output_predictions.avi" نتائج اكتشاف الكائنات مع المربعات المحدودة والتسميات، بينما سيعرض ملف "output_analytics.avi" الرسوم البيانية للتحليلات في الوقت الفعلي بناءً على عمليات الكشف.
إليك إطار من مخرجات التحليلات بناءً على التنبؤات. باستخدام الرسم البياني المساحي، يمكننا الحصول على رؤى مثل التقلبات في عدد الحقائب بمرور الوقت، مثل الارتفاع المفاجئ حول الإطار 268، مما يشير إلى حركة أو نشاط الحقيبة في ذلك الجزء من الفيديو.
فيما يلي بعض تطبيقات الرؤية الحاسوبية في العالم الحقيقي حيث يكون لتصور البيانات تأثير كبير:
باستخدام حزمة Ultralytics يمكنك بسهولة تحويل لقطات الفيديو إلى رسوم بيانية واضحة وثاقبة تكشف ما يحدث، مثل تتبع عدد الأشخاص أو الأشياء التي تظهر مع مرور الوقت. وبدلاً من مراجعة ساعات من الفيديو يدوياً، يمكنك إنشاء ملخصات مرئية تسلط الضوء على الأنماط والاتجاهات الرئيسية، مما يسهل عليك التصرف بسرعة. سواءً كان ذلك في المستشفيات أو متاجر البيع بالتجزئة أو منشآت التصنيع، فإن هذه الرسوم البيانية تحوّل مخرجات الذكاء الاصطناعي المعقدة إلى رؤى يمكن لأي شخص فهمها واستخدامها.
هل تريد معرفة المزيد عن الذكاء الاصطناعي؟ استكشف مستودع GitHub الخاص بنا، وتواصل مع مجتمعنا، وتحقق من خيارات الترخيص لدينا لبدء مشروع الرؤية الحاسوبية الخاص بك. تعرّف على المزيد حول الابتكارات مثل الذكاء الاصطناعي في التصنيع والرؤية الحاسوبية في مجال الخدمات اللوجستية على صفحات الحلول الخاصة بنا.