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

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

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

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

الشكل 3. إطار من فيديو الإدخال يظهر مناولة الأمتعة في صالة المطار.
Link to this sectionالخطوة 3: استيراد الحزم#
بعد ذلك، يمكننا استيراد المكتبات اللازمة وتحميل فيديو الإدخال.
سنبدأ باستيراد 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"Link to this sectionالخطوة 4: إعداد كاتب الفيديو#
بعد ذلك، سنقوم بإعداد كاتب فيديو لحفظ المخرجات. عندما نقوم بتشغيل التحليلات، سيقوم هذا الجزء من الكود بإنشاء ملف فيديو جديد يسجل الرسوم البيانية المحدثة التي يتم إنشاؤها من كل إطار من الفيديو الأصلي.
في مقتطف الكود أدناه، نستخرج أولاً الخصائص الرئيسية من فيديو الإدخال - عرضه وارتفاعه وعدد الإطارات في الثانية (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),
)Link to this sectionالخطوة 5: إعداد حل Ultralytics Analytics#
الآن، سنقوم بإعداد حل Ultralytics Analytics لإنشاء رسوم بيانية من الفيديو. يمكنك اختيار كيفية عرض البيانات، مثل مخطط خطي أو دائري أو مساحي أو شريطي، ونموذج YOLO الذي تريد استخدامه. في هذا المثال، سنستخدم نموذج "yolo11n.pt" خفيف الوزن ونعرض النتائج كمخطط مساحي.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)Link to this sectionالخطوة 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()Link to this sectionالخطوة 7: تجميع كل شيء معاً#
أخيراً، دعونا نجمع كل شيء معاً. ببضعة أسطر إضافية فقط من الكود، يمكننا إنشاء فيديوهين للمخرجات: أحدهما يظهر نتائج اكتشاف الأشياء لـ 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. تنبؤات YOLO11 مصورة كمخطط مساحي.
Link to this sectionاستخدام الرسوم البيانية في تطبيقات الرؤية الحاسوبية الواقعية#
إليك بعض تطبيقات الرؤية الحاسوبية الواقعية حيث يكون لتصور البيانات تأثير ملموس:
-
الرعاية الصحية: يمكن لأنظمة الرؤية الحاسوبية مراقبة نشاط المرضى، وحركة الموظفين، واستخدام المعدات في الوقت الفعلي. هذا يولد كميات كبيرة من البيانات المرئية التي، عند تصورها، يمكن أن تكشف عن أنماط - مثل أوقات ذروة تواجد المرضى أو تأخيرات الاستجابة.
-
التجزئة والتجارة الإلكترونية: يمكن استخدام الرؤية بالذكاء الاصطناعي لتتبع حركة العملاء، ووقت البقاء أمام الأرفف، وتفاعلات المنتجات. يمكن للتحليلات المرئية مثل المخططات الشريطية أو الدائرية تسليط الضوء على مناطق المتجر أو العناصر التي تحظى بأكبر قدر من الاهتمام، مما يساعد تجار التجزئة على تحسين وضع المنتجات وتحسين معدلات التحويل.
-
التصنيع: يمكن للكاميرات المجهزة بنماذج الرؤية الحاسوبية مراقبة خطوط التجميع للكشف عن العيوب، أو انتهاكات السلامة، أو حالة المعدات. يمكن لتصور البيانات إظهار اتجاهات في أنواع العيوب الأكثر شيوعاً أو تسليط الضوء على الفترات الزمنية ذات معدلات الخطأ الأعلى، مما يتيح اتخاذ قرارات أسرع وصيانة وقائية.
Link to this sectionأبرز النقاط#
باستخدام حزمة Ultralytics، يمكنك بسهولة تحويل لقطات الفيديو إلى رسوم بيانية واضحة وثاقبة تكشف عما يحدث، مثل تتبع عدد الأشخاص أو الأشياء التي تظهر بمرور الوقت. بدلاً من مراجعة ساعات من الفيديو يدوياً، يمكنك إنشاء ملخصات مرئية تسلط الضوء على الأنماط والاتجاهات الرئيسية، مما يسهل التصرف بسرعة. سواء في المستشفيات أو متاجر التجزئة أو مرافق التصنيع، تحول هذه الرسوم البيانية مخرجات الذكاء الاصطناعي المعقدة إلى رؤى يمكن لأي شخص فهمها واستخدامها.
هل ترغب في معرفة المزيد عن الذكاء الاصطناعي؟ استكشف مستودع GitHub الخاص بنا، وتواصل مع مجتمعنا، واطلع على خيارات الترخيص الخاصة بنا لبدء مشروع الرؤية الحاسوبية الخاص بك. اكتشف المزيد عن الابتكارات مثل الذكاء الاصطناعي في التصنيع والرؤية الحاسوبية في الخدمات اللوجستية على صفحات الحلول الخاصة بنا.






