تعتيم الكائن باستخدام Ultralytics YOLOv8 🚀
ما هو تعتيم الكائن؟
تعتيم الكائن باستخدام Ultralytics YOLOv8 يتضمن تطبيق تأثير تمويه على كائنات محددة تم اكتشافها في صورة أو فيديو. يمكن تحقيق ذلك باستخدام YOLOv8 قدرات نموذجية لتحديد الكائنات ومعالجتها داخل مشهد معين.
شاهد: طمس الأجسام باستخدام Ultralytics YOLOv8
مزايا طمس الكائن؟
- حماية الخصوصية: يعد تعتيم الكائن أداة فعالة لحماية الخصوصية عن طريق إخفاء المعلومات الحساسة أو الشخصية في الصور أو مقاطع الفيديو.
- التركيز الانتقائي: YOLOv8 يسمح بالتعتيم الانتقائي ، مما يمكن المستخدمين من استهداف كائنات محددة ، مما يضمن التوازن بين الخصوصية والاحتفاظ بالمعلومات المرئية ذات الصلة.
- المعالجة في الوقت الحقيقي: YOLOv8، تتيح الكفاءة تعتيم الكائن في الوقت الفعلي، مما يجعله مناسبا للتطبيقات التي تتطلب تحسينات خصوصية سريعة في البيئات الديناميكية.
تعتيم الكائن باستخدام YOLOv8 مثل
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
model = YOLO("yolov8n.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' |
الدليل المصدر للصور أو مقاطع الفيديو |
conf |
float |
0.25 |
عتبة ثقة الكائن للكشف |
iou |
float |
0.7 |
التقاطع على عتبة الاتحاد (IoU) ل NMS |
imgsz |
int or tuple |
640 |
حجم الصورة كعدد قياسي أو قائمة (H ، W) ، أي (640 ، 480) |
half |
bool |
False |
استخدام نصف الدقة (FP16) |
device |
None or str |
None |
الجهاز المراد تشغيله عليه، أي cuda الجهاز=0/1/2/3 أو الجهاز=cpu |
max_det |
int |
300 |
الحد الأقصى لعدد الاكتشافات لكل صورة |
vid_stride |
bool |
False |
خطوة معدل إطارات الفيديو |
stream_buffer |
bool |
False |
التخزين المؤقت لجميع إطارات البث (صواب) أو إرجاع أحدث إطار (خطأ) |
visualize |
bool |
False |
تصور ميزات النموذج |
augment |
bool |
False |
تطبيق تكبير الصورة على مصادر التنبؤ |
agnostic_nms |
bool |
False |
NMS اللاأدري الطبقي |
classes |
list[int] |
None |
تصفية النتائج حسب الفئة ، أي الفئات = 0 ، أو الفئات = [0،2،3] |
retina_masks |
bool |
False |
استخدام أقنعة تجزئة عالية الدقة |
embed |
list[int] |
None |
إرجاع متجهات / تضمينات المعالم من طبقات معينة |
الأسئلة المتداولة
ما هو تمويه الكائن مع Ultralytics YOLOv8 ؟
تمويه الأجسام باستخدام Ultralytics YOLOv8 يتضمن الكشف عن تأثير التعتيم وتطبيقه تلقائيًا على كائنات محددة في الصور أو مقاطع الفيديو. تعزز هذه التقنية الخصوصية من خلال إخفاء المعلومات الحساسة مع الاحتفاظ بالبيانات المرئية ذات الصلة. YOLOv8 إمكانيات المعالجة في الوقت الحقيقي تجعلها مناسبة للتطبيقات التي تتطلب حماية فورية للخصوصية وتعديلات انتقائية للتركيز البؤري.
كيف يمكنني تنفيذ تمويه الأجسام في الوقت الحقيقي باستخدام YOLOv8 ؟
لتنفيذ تمويه الأجسام في الوقت الحقيقي باستخدام YOLOv8 ، اتبع المثال Python المقدم. يتضمن ذلك استخدام YOLOv8 لاكتشاف الأجسام و OpenCV لتطبيق تأثير التعتيم. إليك نسخة مبسطة:
import cv2
from ultralytics import YOLO
model = YOLO("yolov8n.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("YOLOv8 Blurring", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
ما هي فوائد استخدام Ultralytics YOLOv8 لطمس الأجسام؟
Ultralytics YOLOv8 العديد من المزايا لطمس الأجسام:
- حماية الخصوصية: إخفاء المعلومات الحساسة أو القابلة للتحديد بشكل فعال.
- تركيز انتقائي: استهداف كائنات محددة للتشويش، مع الحفاظ على المحتوى المرئي الأساسي.
- معالجة في الوقت الحقيقي: تنفيذ تشويش الكائنات بكفاءة في البيئات الديناميكية، ومناسبة لتحسينات الخصوصية الفورية.
لمزيد من التطبيقات الأكثر تفصيلاً، راجع قسم مزايا تمويه الأجسام.
هل يمكنني استخدام Ultralytics YOLOv8 لتمويه الوجوه في الفيديو لأسباب تتعلق بالخصوصية؟
نعم، يمكن تهيئة Ultralytics YOLOv8 لاكتشاف الوجوه في مقاطع الفيديو وتمويهها لحماية الخصوصية. من خلال التدريب أو استخدام نموذج مدرب مسبقًا للتعرف على الوجوه على وجه التحديد، يمكن معالجة نتائج الاكتشاف باستخدام OpenCV لتطبيق تأثير التمويه. ارجع إلى دليلنا الخاص باكتشاف الأجسام باستخدام YOLOv8 وقم بتعديل الكود لاستهداف اكتشاف الوجوه.
كيف يمكن مقارنة YOLOv8 بنماذج الكشف عن الأجسام الأخرى مثل Faster R-CNN لتعتيم الأجسام؟
Ultralytics YOLOv8 عادةً ما تتفوق على نماذج مثل Faster R-CNN من حيث السرعة، مما يجعلها أكثر ملاءمة للتطبيقات في الوقت الحقيقي. في حين أن كلا النموذجين يوفران اكتشافًا دقيقًا، إلا أن بنية YOLOv8 مُحسّنة للاستدلال السريع، وهو أمر بالغ الأهمية لمهام مثل طمس الأجسام في الوقت الحقيقي. تعرف على المزيد حول الاختلافات التقنية ومقاييس الأداء في وثائقناYOLOv8 .
تم الإنشاء 2024-01-09، تم التحديث 2024-07-05
المؤلفون: جلين-جوتشر (6)، رضوان منور (1)، إيفور زو331 (1)، أيوش إكسل (1)