تعرّف على كيفية تحويل البيانات من تطبيقات الرؤية الحاسوبية إلى رسوم بيانية سهلة الفهم باستخدام حزمة Ultralytics Python للحصول على رؤى أفضل.
تعرّف على كيفية تحويل البيانات من تطبيقات الرؤية الحاسوبية إلى رسوم بيانية سهلة الفهم باستخدام حزمة Ultralytics Python للحصول على رؤى أفضل.
في كل دقيقة، يتم إنشاء كميات هائلة من البيانات، من مباني المطارات ومحطات القطار إلى مراكز التسوق. مع تزايد استخدام الذكاء الاصطناعي على نطاق واسع، يتم الآن تحليل الكثير من هذه البيانات وتفكيكها. ولكن في بعض الأحيان، يمكن أن تجعل النتائج من نماذج الذكاء الاصطناعي هذه من الصعب تحديد الأنماط أو فهم الاتجاهات في لمحة. هذا هو المكان الذي يساعد فيه تصور البيانات - فهو يحول المخرجات المعقدة إلى رؤى واضحة وسهلة الفهم.
هذا صحيح بشكل خاص عندما يتعلق الأمر بتطبيقات الرؤية الحاسوبية. الرؤية الحاسوبية هي فرع من فروع الذكاء الاصطناعي (AI) يساعد الآلات على تفسير وفهم المعلومات المرئية من العالم المحيط، مثل الصور ومقاطع الفيديو. بينما نماذج الذكاء الاصطناعي للرؤية، مثل Ultralytics YOLO11يمكن أن تساعد في تحليل مثل هذه البيانات المرئية للحصول على معلومات، فإن تصور البيانات يساعد في وضع تلك المعلومات في شكل يسهل فهمه.
ببساطة، يسد تصور البيانات الفجوة بين البيانات الأولية والفهم الحقيقي باستخدام الرسوم البيانية التحليلية الهادفة. في عالم اليوم القائم على البيانات، هذا أمر أساسي لأنه لا يكفي أن تقوم الآلات بمهام فحسب - بل نحتاج إليها لتروي قصة.
إن هذه الحاجة إلى سرد القصص هي بالضبط السبب في تزايد الحاجة إلى تصور البيانات، حيث من المتوقع أن يصل حجم السوق إلى 18.36 مليار دولار بحلول عام 2030. استكشفنا سابقًا كيف يمكن للرؤية الحاسوبية تقديم رؤى قيمة للأعمال. واليوم، سنخطو خطوة إلى الأمام من خلال استعراض كيفية إنشاء رسوم بيانية تحليلية واضحة وثاقبة لتطبيقات الرؤية الحاسوبية باستخدام حزمة Ultralytics . لنبدأ!

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

والآن بعد أن استكشفنا ماهية تصور البيانات وسبب أهمية الأنواع المختلفة من الرسوم البيانية التحليلية، دعنا نلقي نظرة فاحصة على كيفية استخدام حلUltralytics Analytics لتصور نتائج تنبؤات نموذج الرؤية الحاسوبية. قبل أن نستعرض العملية خطوة بخطوة، دعنا نلقي نظرة على الأدوات وخيارات الإعداد لتدريب واستخدام حزمة Ultralytics ونماذج مثل YOLO11.
تجعل حزمة Ultralytics Python من السهل تدريب النماذج detect الكائنات وتشغيل التنبؤات وتصور النتائج. للبدء في استخدامها، ستحتاج إلى بيئة ترميز. إليك ثلاثة خيارات بسيطة:
هذه الأدوات رائعة لبدء العمل بسرعة، ولكن يمكن للمستخدمين أيضًا دمج Ultralytics في بيئات التطوير المتكاملة (IDEs) مثل Visual Studio Code (VS Code) أو في خطوط الإنتاج. لمزيد من الخيارات، استكشف وثائقUltralytics الرسمية.
بمجرد اختيار البيئة المفضلة لديك، فإن الخطوة التالية هي إعدادها لتشغيل التنبؤات وتصور النتائج. يمكنك استخدام أي من البيئات المذكورة أعلاه، اعتمادًا على ما تشعر بالراحة معه.
إذا كنت تعمل في Google Colab، فضع في اعتبارك أنه يستخدم CPU افتراضيًا، مما قد يؤدي إلى إبطاء الأداء. لتسريع الأمور، قم بالتبديل إلى GPU بالانتقال إلى قائمة "وقت التشغيل"، واختيار "تغيير نوع وقت التشغيل"، وتعيين مسرع الأجهزة على GPU (من الأفضل أن يكون T4).
لتجهيز بيئتك، ستحتاج إلى تثبيت حزمةUltralytics Python باستخدام الأمر المذكور أدناه. في الأدوات القائمة على دفتر الملاحظات مثل Colab أو Jupyter، تأكد من إضافة علامة تعجب (!) قبل الأمر.
pip install ultralyticsبعد ذلك، سنحتاج إلى فيديو للعمل عليه. يمكنك بسهولة تنزيل واحد من موقع مخزون مجاني مثل Pexels. تأكد من اختيار مقطع فيديو يتضمن كائنات يمكن YOLO11 detect. بما أن النموذج مُدرَّب مسبقاً على مجموعة بياناتCOCO يمكنه التعرّف على الأجسام الشائعة مثل الأشخاص، والسيارات، والدراجات.
في هذا البرنامج التعليمي، سنستخدم مقطع فيديو لمناولة الأمتعة في محطة مطار مزدحمة. يمكنك استخدام نفس الفيديو أو اختيار فيديو مختلف يناسب مشروعك.

بعد ذلك، يمكننا استيراد المكتبات الضرورية وتحميل الفيديو المدخل.
سنبدأ باستيراد OpenCV (cv2)، وهي مكتبة مستخدمة على نطاق واسع للعمل مع الصور والفيديو في الرؤية الحاسوبية. سنقوم أيضًا باستيراد مكتبة Ultralytics والتي تساعدنا في تشغيل اكتشاف الأجسام وإنشاء تحليلات من الفيديو.
بعد ذلك، سنحاول فتح ملف الفيديو عن طريق تحديد مساره. تأكد من استبدال "path/to/video.mp4" بالموقع الفعلي لملف الفيديو الذي تم تنزيله.
أيضًا، يتضمن مقتطف التعليمات البرمجية أدناه فحصًا بسيطًا للتأكد من تحميل الفيديو بشكل صحيح. إذا كان المسار خاطئًا أو كان الملف تالفًا، فسيتوقف البرنامج ويعرض رسالة خطأ: "Error reading video file."
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 الخاص بنا، وتواصل مع مجتمعنا، وتحقق من خيارات الترخيص الخاصة بنا لبدء مشروع الرؤية الحاسوبية الخاص بك. تعرف على المزيد حول الابتكارات مثل الذكاء الاصطناعي في التصنيع و الرؤية الحاسوبية في صناعة الخدمات اللوجستية على صفحات الحلول الخاصة بنا.