تحسين تطبيقات الرؤية الحاسوبية باستخدام التمثيلات المرئية
تعرف على كيفية تحويل البيانات من تطبيقات الرؤية الحاسوبية إلى رسوم بيانية سهلة الفهم باستخدام حزمة Ultralytics Python للحصول على رؤى أفضل.

في كل دقيقة، يتم إنشاء كميات هائلة من البيانات، بدءاً من صالات المطارات ومحطات القطارات وصولاً إلى مراكز التسوق. ومع ازدياد استخدام الذكاء الاصطناعي، يتم الآن تحليل وتفكيك الكثير من هذه البيانات. لكن في بعض الأحيان، قد تجعل النتائج المستخلصة من نماذج الذكاء الاصطناعي هذه من الصعب اكتشاف الأنماط أو فهم الاتجاهات بنظرة سريعة. وهنا يأتي دور تصور البيانات (data visualization)، حيث تعمل على تحويل المخرجات المعقدة إلى رؤى واضحة وسهلة الاستيعاب.
هذا صحيح بشكل خاص عندما يتعلق الأمر بتطبيقات الرؤية الحاسوبية. Computer vision هو فرع من artificial intelligence (AI) يساعد الآلات على تفسير وفهم المعلومات المرئية من البيئة المحيطة، مثل الصور والفيديوهات. وفي حين أن نماذج الذكاء الاصطناعي للرؤية، مثل Ultralytics YOLO11، يمكن أن تساعد في تحليل هذه البيانات المرئية لاستخلاص المعلومات، فإن تصور البيانات يساعد في وضع تلك المعلومات في تنسيق يسهل فهمه.
ببساطة، يعمل تصور البيانات على سد الفجوة بين البيانات الخام والفهم الحقيقي باستخدام رسوم بيانية تحليلية ذات مغزى. في عالمنا القائم على البيانات اليوم، يعد هذا أمراً جوهرياً لأنه لا يكفي أن تقوم الآلات بالمهام فحسب، بل نحتاج منها أن تحكي قصة.
هذه الحاجة إلى سرد القصص هي السبب وراء تزايد أهمية تصور البيانات، حيث من المقرر أن يبلغ حجم السوق $18.36 billion بحلول عام 2030. في السابق، استكشفنا كيف يمكن للرؤية الحاسوبية تقديم business insights قيمة. اليوم، سنخطو خطوة أخرى إلى الأمام من خلال استعراض كيفية إنشاء رسوم بيانية تحليلية واضحة ومؤثرة لتطبيقات الرؤية الحاسوبية باستخدام حزمة Ultralytics. لنبدأ!

Fig 1. مثال على تصور البيانات بناءً على مخرجات YOLO11.
نظرة عامة على تصور البيانات في تطبيقات الرؤية الحاسوبية#
يتضمن تصور البيانات في تطبيقات الرؤية الحاسوبية تحويل نتائج computer vision tasks، مثل كشف الأشياء وتتبعها، إلى مخططات أو لوحات معلومات يسهل فهمها. تساعد هذه العناصر المرئية في تحديد الأنماط والاتجاهات، خاصة عند العمل مع كميات كبيرة من لقطات الفيديو.
على سبيل المثال، بدلاً من مراجعة ساعات من لقطات المراقبة يدوياً، يمكن لرسم بياني خطي بسيط يعرض عدد السيارات أو الأشخاص الذين تم اكتشافهم بمرور الوقت أن يسلط الضوء بسرعة على ساعات الذروة أو الفترات الهادئة بشكل غير معتاد.
إليك بعض الأسباب الرئيسية التي تجعل تصور البيانات مفيداً:
-
تبسيط البيانات المعقدة: يمكن أن تكون آلاف عمليات اكتشاف الأشياء أمراً مربكاً، لكن المرئيات مثل المخططات الشريطية أو الدائرية تجعل من السهل رؤية الصورة الكبيرة، على سبيل المثال، أي الأشياء تظهر بشكل متكرر أكثر.
-
كشف الاتجاهات: تساعد الرسوم البيانية الخطية والشريطية في تحديد الأنماط بمرور الوقت، مثل متى وأين تميل حركة المشاة إلى الزيادة.
-
توفير الوقت: بدلاً من مراجعة كل إطار من الفيديو، يمكن للرسوم البيانية تسليط الضوء بسرعة على التفاصيل المهمة، مثل الارتفاعات المفاجئة في نشاط المركبات أو ظهور أشياء غير معتادة في المناطق المحظورة.
-
تحسين التواصل: تجعل المرئيات من السهل مشاركة الرؤى مع الجماهير غير التقنية، مما يساعد الجميع على فهم النتائج بشكل أوضح.
أنواع مختلفة من تصور البيانات#
يمكن لأنواع مختلفة من الرسوم البيانية التحليلية تحويل نتائج الرؤية الحاسوبية إلى عناصر مرئية واضحة وسهلة الفهم. لنفترض أنك تعمل على computer vision application يكتشف الأشخاص والمركبات في لقطات المراقبة. في هذه الحالة، يعد الرسم البياني الخطي رائعًا لتوضيح كيف يتغير عدد الاكتشافات بمرور الوقت، مثل تتبع ذروة حركة المشاة على مدار اليوم.
وبالمثل، تكون المخططات الشريطية مفيدة عندما تريد مقارنة عدد أنواع الأشياء المختلفة التي تم اكتشافها، مثل معرفة ما إذا كانت هناك سيارات أو دراجات أو مشاة أكثر يظهرون في الفيديو. من ناحية أخرى، تُظهر المخططات الدائرية النسبة المئوية التي يشكلها كل نوع من الأشياء من إجمالي الاكتشافات. لكل رسم بياني استخدامه الخاص ويساعد في جعل بيانات الرؤية الحاسوبية المعقدة أسهل في التفسير والمشاركة.

Fig 2. أمثلة على الرسوم البيانية التحليلية.
إنشاء رسوم بيانية تحليلية لاكتساب رؤى الرؤية الحاسوبية#
الآن بعد أن استكشفنا ماهية تصور البيانات وسبب أهمية الأنواع المختلفة من الرسوم البيانية التحليلية، دعنا نلقي نظرة عن قرب على كيفية استخدام Ultralytics Analytics solution لتصور نتائج توقعات نموذج الرؤية الحاسوبية الخاص بك. قبل أن نستعرض العملية خطوة بخطوة، دعنا نلقي نظرة على الأدوات وخيارات الإعداد لتدريب واستخدام حزمة Ultralytics والنماذج مثل YOLO11.
تسهل حزمة Python الخاصة بـ Ultralytics تدريب النماذج واكتشاف الأشياء وتشغيل التنبؤات وتصور النتائج. للبدء بها، ستحتاج إلى بيئة برمجة. إليك ثلاثة خيارات بسيطة:
-
واجهة سطر الأوامر (CLI): هي أداة أساسية تعتمد على النص فقط حيث يمكنك كتابة الأوامر لتشغيل الكود الخاص بك. ليس لديها واجهة مرئية، وتتفاعل معها عن طريق كتابة التعليمات في جهاز طرفي (terminal) أو موجه الأوامر.
-
Jupyter Notebooks: هي بيئة برمجة تفاعلية حيث يمكنك كتابة وتشغيل واختبار أجزاء صغيرة من الكود (تسمى "خلايا") في وقت واحد. تعرض النتائج مباشرة أسفل كل خلية، مما يسهل فهم ما يحدث خطوة بخطوة. وهي مفيدة بشكل خاص للتعلم والتجريب.
-
Google Colab: هذا الخيار هو نسخة مجانية سحابية من دفاتر Jupyter Notebooks تعمل في متصفح الويب الخاص بك. ولا يتطلب أي إعداد على جهاز الكمبيوتر الخاص بك ويمنحك الوصول إلى وحدات معالجة رسومية (GPUs) مجانية لمعالجة أسرع.
هذه الأدوات ممتازة للبدء بسرعة، ولكن يمكن للمستخدمين أيضًا دمج Ultralytics في بيئات التطوير المتكاملة (IDEs) مثل Visual Studio Code (VS Code) أو في خطوط إنتاج العمل. لمزيد من الخيارات، استكشف Ultralytics documentation الرسمية.
الخطوة 1: إعداد البيئة#
بمجرد اختيار بيئتك المفضلة، تكون الخطوة التالية هي إعدادها لتشغيل التنبؤات وتصور النتائج. يمكنك استخدام أي من البيئات المذكورة أعلاه، اعتماداً على ما تشعر براحة أكبر معه.
إذا كنت تعمل في Google Colab، ضع في اعتبارك أنها تستخدم CPU افتراضياً، مما قد يؤدي إلى إبطاء الأداء. لتسريع الأمور، قم بالتبديل إلى GPU بالانتقال إلى قائمة "Runtime"، واختيار "Change runtime type"، وتعيين مسرع الأجهزة على GPU (يفضل T4).
لإعداد بيئتك، ستحتاج إلى تثبيت Ultralytics Python package باستخدام الأمر المذكور أدناه. في الأدوات المستندة إلى الدفاتر مثل Colab أو Jupyter، تأكد من إضافة علامة تعجب (!) قبل الأمر.
pip install ultralyticsالخطوة 2: تنزيل ملف فيديو#
بعد ذلك، سنحتاج إلى فيديو للعمل عليه. يمكنك تنزيل فيديو بسهولة من موقع مجاني للصور ومقاطع الفيديو مثل Pexels. تأكد من اختيار فيديو يحتوي على كائنات يمكن لـ Ultralytics YOLO11 اكتشافها. وبما أن النموذج مدرب مسبقاً على COCO dataset، فيمكنه التعرف على الكائنات الشائعة مثل الأشخاص والسيارات والدراجات.
لهذا البرنامج التعليمي، سنستخدم فيديو لـ baggage handling في محطة مطار مزدحمة. يمكنك استخدام نفس الفيديو أو اختيار فيديو مختلف يناسب مشروعك.

Fig 3. إطار من الفيديو المدخل يوضح التعامل مع الأمتعة في مبنى الركاب بالمطار.
الخطوة 3: استيراد الحزم#
بعد ذلك، يمكننا استيراد المكتبات اللازمة وتحميل فيديو الإدخال.
سنبدأ باستيراد OpenCV (cv2)، وهي مكتبة مستخدمة على نطاق واسع للتعامل مع الصور والفيديو في الرؤية الحاسوبية. سنقوم أيضًا باستيراد مكتبة Ultralytics، والتي تساعدنا في تشغيل كشف الأشياء وgenerate analytics من الفيديو.
بعد ذلك، سنحاول فتح ملف الفيديو عن طريق تحديد مساره. تأكد من استبدال "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"الخطوة 4: إعداد كاتب الفيديو#
بعد ذلك، سنقوم بإعداد كاتب فيديو لحفظ المخرجات. عندما نقوم بتشغيل التحليلات، سيقوم هذا الجزء من الكود بإنشاء ملف فيديو جديد يسجل الرسوم البيانية المحدثة التي يتم إنشاؤها من كل إطار من الفيديو الأصلي.
في مقطع البرمجة أدناه، نستخرج أولاً الخصائص الرئيسية من الفيديو المدخل - عرضه، وارتفاعه، وframes per second (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),
)الخطوة 5: إعداد حل Ultralytics Analytics#
الآن، سنقوم بإعداد حل Ultralytics Analytics لإنشاء رسوم بيانية من الفيديو. يمكنك اختيار كيفية عرض البيانات، مثل رسم بياني خطي، أو دائري، أو مساحي، أو شريطي، وأي YOLO model يجب استخدامه. في هذا المثال، سنستخدم نموذج "yolo11n.pt" خفيف الوزن ونعرض النتائج كرسم بياني مساحي.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)الخطوة 6: معالجة فيديو الإدخال#
يقوم الجزء الأخير من الكود بتشغيل حلقة (loop) تعالج الفيديو إطاراً تلو الآخر. يتم تمرير كل إطار إلى أداة التحليلات، التي تقوم بتحديث الرسم البياني في الوقت الفعلي. ثم تتم كتابة الرسم البياني المحدث في فيديو المخرجات. إذا تعذر قراءة إطار ما، تتوقف الحلقة. بعد معالجة جميع الإطارات، يتم حفظ الفيديو وإغلاق أي نوافذ مفتوحة.
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()الخطوة 7: تجميع كل شيء معاً#
وأخيراً، لنجمع كل شيء معاً. ببضع أسطر إضافية فقط من الكود، يمكننا إنشاء فيديوهين للنتائج: أحدهما يظهر نتائج object detection الخاصة بـ Ultralytics 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” رسوم التحليلات في الوقت الفعلي بناءً على الاكتشافات.

الشكل 4. إطار من ملف “output_predictions.avi”.
إليك إطار من مخرجات التحليلات بناءً على التنبؤات. باستخدام المخطط المساحي، يمكننا اكتساب رؤى مثل التقلبات في أعداد الحقائب بمرور الوقت، مثل ارتفاع مفاجئ حول الإطار 268، مما يشير إلى حركة الحقائب أو نشاطها في ذلك الجزء من الفيديو.

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






