تخطي إلى المحتوى

طمس الأجسام باستخدام Ultralytics YOLO11 🚀

ما هو تشويش الكائن؟

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



شاهد: طمس الأجسام باستخدام Ultralytics YOLO11

مزايا طمس الكائنات؟

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

طمس الكائن باستخدام YOLO11 مثال على ذلك

import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

model = YOLO("yolo11n.pt")
names = model.names

cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

# Blur ratio
blur_ratio = 50

# Video writer
video_writer = cv2.VideoWriter("object_blurring_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = model.predict(im0, show=False)
    boxes = results[0].boxes.xyxy.cpu().tolist()
    clss = results[0].boxes.cls.cpu().tolist()
    annotator = Annotator(im0, line_width=2, example=names)

    if boxes is not None:
        for box, cls in zip(boxes, clss):
            annotator.box_label(box, color=colors(int(cls), True), label=names[int(cls)])

            obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]
            blur_obj = cv2.blur(obj, (blur_ratio, blur_ratio))

            im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])] = blur_obj

    cv2.imshow("ultralytics", im0)
    video_writer.write(im0)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
video_writer.release()
cv2.destroyAllWindows()

الحجج model.predict

الجدال النوع افتراضي الوصف
source str 'ultralytics/assets' يحدد مصدر البيانات للاستدلال. يمكن أن يكون مسار صورة، أو ملف فيديو، أو دليل، أو عنوان URL، أو معرّف جهاز للبث المباشر. يدعم مجموعة واسعة من التنسيقات والمصادر، مما يتيح التطبيق المرن عبر أنواع مختلفة من المدخلات.
conf float 0.25 تعيين الحد الأدنى لعتبة الثقة للاكتشافات. سيتم تجاهل الكائنات المكتشفة بثقة أقل من هذه العتبة. يمكن أن يساعد ضبط هذه القيمة في تقليل النتائج الإيجابية الخاطئة.
iou float 0.7 عتبة التقاطع فوق الاتحاد (IoU) للقمع غير الأقصى (NMS). تؤدي القيم المنخفضة إلى عدد أقل من الاكتشافات عن طريق التخلص من المربعات المتداخلة، وهو أمر مفيد لتقليل التكرارات.
imgsz int or tuple 640 يحدد حجم الصورة للاستدلال. يمكن أن يكون عددًا صحيحًا واحدًا 640 لتغيير حجم المربع أو (الارتفاع، العرض) المربّع أو (الارتفاع، العرض). يمكن أن يحسن التحجيم المناسب من الكشف الدقة وسرعة المعالجة.
half bool False تمكين الاستدلال بنصف الدقة (FP16)، والذي يمكن أن يسرّع استدلال النموذج على وحدات معالجة الرسومات المدعومة بأقل تأثير على الدقة.
device str None يحدد جهاز الاستدلال (على سبيل المثال, cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU ، أو جهاز GPU معين، أو أجهزة حوسبة أخرى لتنفيذ النموذج.
batch int 1 يحدد حجم الدُفعة للاستدلال (يعمل فقط عندما يكون المصدر هو دليل أو ملف فيديو أو .txt الملف). يمكن أن يوفر حجم الدفعة الأكبر إنتاجية أعلى، مما يقلل من إجمالي الوقت اللازم للاستدلال.
max_det int 300 الحد الأقصى لعدد الاكتشافات المسموح به لكل صورة. يحد من العدد الإجمالي للأجسام التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات الزائدة في المشاهد الكثيفة.
vid_stride int 1 خطوة الإطار لمدخلات الفيديو. يسمح بتخطي الإطارات في مقاطع الفيديو لتسريع المعالجة على حساب الدقة الزمنية. القيمة 1 تعالج كل إطار، والقيم الأعلى تتخطى الإطارات.
stream_buffer bool False يحدد ما إذا كان سيتم وضع الإطارات الواردة في قائمة الانتظار لبث الفيديو. في حالة False، يتم إسقاط الإطارات القديمة لاستيعاب الإطارات الجديدة (محسّن لتطبيقات الوقت الحقيقي). إذا كان 'صحيح'، يتم وضع الإطارات الجديدة في قائمة انتظار في مخزن مؤقت، مما يضمن عدم تخطي أي إطارات، ولكن سيتسبب في حدوث تأخير في التأخير إذا كان معدل الإطارات في الثانية في الاستدلال أقل من معدل الإطارات في الثانية في الدفق.
visualize bool False يُفعّل تصور ميزات النموذج أثناء الاستدلال، مما يوفر نظرة ثاقبة لما "يراه" النموذج. مفيد لتصحيح الأخطاء وتفسير النموذج.
augment bool False تمكين زيادة وقت الاختبار (TTA) للتنبؤات، مما قد يحسن من قوة الكشف على حساب سرعة الاستدلال.
agnostic_nms bool False تمكين الكبت غير الفئوي غير الفئوي (NMS)، الذي يدمج المربعات المتداخلة من فئات مختلفة. مفيد في سيناريوهات الكشف متعدد الفئات حيث يكون تداخل الفئات شائعًا.
classes list[int] None تصفية التنبؤات إلى مجموعة من معرّفات الفئات. سيتم إرجاع الاكتشافات التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الكشف متعدد الفئات.
retina_masks bool False إرجاع أقنعة تجزئة عالية الدقة. الأقنعة التي تم إرجاعها (masks.data) ستطابق حجم الصورة الأصلية إذا تم تمكينها. أما إذا تم تعطيلها، فسيكون لها حجم الصورة المستخدم أثناء الاستدلال.
embed list[int] None يحدد الطبقات التي يتم استخراج متجهات الميزات أو التضمينات منها. مفيد للمهام النهائية مثل التجميع أو البحث عن التشابه.
project str None اسم دليل المشروع حيث يتم حفظ مخرجات التنبؤ في حالة save ممكّنة.
name str None اسم عملية تشغيل التنبؤ. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين مخرجات التنبؤ في حالة save ممكّنة.

الأسئلة الشائعة

ما هو تمويه الكائن مع Ultralytics YOLO11 ؟

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

كيف يمكنني تنفيذ تمويه الأجسام في الوقت الحقيقي باستخدام YOLO11 ؟

لتنفيذ تمويه الأجسام في الوقت الحقيقي باستخدام YOLO11 ، اتبع المثال Python المقدم. يتضمن ذلك استخدام YOLO11 لاكتشاف الأجسام و OpenCV لتطبيق تأثير التعتيم. إليك نسخة مبسطة:

import cv2

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break

    results = model.predict(im0, show=False)
    for box in results[0].boxes.xyxy.cpu().tolist():
        obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]
        im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])] = cv2.blur(obj, (50, 50))

    cv2.imshow("YOLO11 Blurring", im0)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

ما هي فوائد استخدام Ultralytics YOLO11 لطمس الأجسام؟

Ultralytics YOLO11 العديد من المزايا لطمس الأجسام:

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

لمزيد من التطبيقات الأكثر تفصيلاً، راجع قسم مزايا تمويه الأجسام.

هل يمكنني استخدام Ultralytics YOLO11 لتمويه الوجوه في الفيديو لأسباب تتعلق بالخصوصية؟

نعم، يمكن تهيئة Ultralytics YOLO11 لاكتشاف الوجوه في مقاطع الفيديو وتمويهها لحماية الخصوصية. من خلال التدريب أو استخدام نموذج مدرب مسبقًا للتعرف على الوجوه على وجه التحديد، يمكن معالجة نتائج الكشف باستخدام OpenCV لتطبيق تأثير التمويه. ارجع إلى دليلنا الخاص باكتشاف الأجسام باستخدام YOLO11 وقم بتعديل الكود لاستهداف اكتشاف الوجوه.

كيف يمكن مقارنة YOLO11 بنماذج أخرى لاكتشاف الأجسام مثل Faster R-CNN لتعتيم الأجسام؟

Ultralytics YOLO11 عادةً ما تتفوق على نماذج مثل Faster R-CNN من حيث السرعة، مما يجعلها أكثر ملاءمة للتطبيقات في الوقت الحقيقي. في حين أن كلا النموذجين يوفران اكتشافًا دقيقًا، إلا أن بنية YOLO11 مُحسّنة للاستدلال السريع، وهو أمر بالغ الأهمية لمهام مثل طمس الأجسام في الوقت الحقيقي. تعرف على المزيد حول الاختلافات التقنية ومقاييس الأداء في وثائقناYOLO11 .

📅 تم الإنشاء منذ 11 شهرًا ✏️ تم التحديث منذ 2 أشهر

التعليقات