تعرف على كيفية تحويل البيانات من تطبيقات الرؤية الحاسوبية إلى رسوم بيانية سهلة الفهم باستخدام حزمة Ultralytics Python للحصول على رؤى أفضل.
.webp)
تعرف على كيفية تحويل البيانات من تطبيقات الرؤية الحاسوبية إلى رسوم بيانية سهلة الفهم باستخدام حزمة Ultralytics Python للحصول على رؤى أفضل.
في كل دقيقة، يتم إنشاء كميات هائلة من البيانات، من مباني المطارات ومحطات القطار إلى مراكز التسوق. مع تزايد استخدام الذكاء الاصطناعي على نطاق واسع، يتم الآن تحليل الكثير من هذه البيانات وتفكيكها. ولكن في بعض الأحيان، يمكن أن تجعل النتائج من نماذج الذكاء الاصطناعي هذه من الصعب تحديد الأنماط أو فهم الاتجاهات في لمحة. هذا هو المكان الذي يساعد فيه تصور البيانات - فهو يحول المخرجات المعقدة إلى رؤى واضحة وسهلة الفهم.
هذا صحيح بشكل خاص عندما يتعلق الأمر بتطبيقات الرؤية الحاسوبية. الرؤية الحاسوبية هي فرع من الذكاء الاصطناعي (AI) الذي يساعد الآلات على تفسير وفهم المعلومات المرئية من العالم المحيط، مثل الصور ومقاطع الفيديو. في حين أن نماذج Vision 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) بالانتقال إلى قائمة "Runtime"، وتحديد "Change runtime type"، وتعيين مسرع الأجهزة على GPU (يفضل أن يكون T4).
لتجهيز بيئتك، ستحتاج إلى تثبيت حزمة Ultralytics Python باستخدام الأمر المذكور أدناه. في الأدوات المستندة إلى دفتر الملاحظات مثل Colab أو Jupyter، تأكد من إضافة علامة تعجب (!) قبل الأمر.
pip install ultralytics
بعد ذلك، سنحتاج إلى مقطع فيديو للعمل معه. يمكنك بسهولة تنزيل واحد من موقع مجاني مثل Pexels. تأكد من اختيار مقطع فيديو يتضمن كائنات يمكن لـ YOLO11 اكتشافها. نظرًا لأن النموذج مدرب مسبقًا على مجموعة بيانات 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 Analytics لإنشاء رسوم بيانية من الفيديو. يمكنك اختيار كيفية عرض البيانات، مثل مخطط خطي أو دائري أو مساحي أو شريطي، وأي نموذج 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 الخاص بنا، وتواصل مع مجتمعنا، وتحقق من خيارات الترخيص الخاصة بنا لبدء مشروع الرؤية الحاسوبية الخاص بك. تعرف على المزيد حول الابتكارات مثل الذكاء الاصطناعي في التصنيع و الرؤية الحاسوبية في صناعة الخدمات اللوجستية على صفحات الحلول الخاصة بنا.