Overslaan naar inhoud

Objecten vervagen met Ultralytics YOLOv8 🚀

Wat is objectvervaging?

Objecten vervagen met Ultralytics YOLOv8 Hierbij wordt een vervagingseffect toegepast op specifieke gedetecteerde objecten in een afbeelding of video. Dit kan worden bereikt door gebruik te maken van de mogelijkheden van het YOLOv8 model om objecten in een bepaalde scène te identificeren en te manipuleren.



Kijken: Object vervagen met Ultralytics YOLOv8

Voordelen van objectvervaging?

  • Privacybescherming: Objectvervaging is een effectief hulpmiddel om privacy te beschermen door gevoelige of persoonlijk identificeerbare informatie in afbeeldingen of video's te verbergen.
  • Selectieve focus: YOLOv8 maakt selectieve vervaging mogelijk, zodat gebruikers zich kunnen richten op specifieke objecten, zodat er een balans is tussen privacy en het behouden van relevante visuele informatie.
  • Real-time verwerking: YOLOv8 De efficiëntie maakt objectvervaging in realtime mogelijk, waardoor het geschikt is voor toepassingen die direct privacyverbeteringen vereisen in dynamische omgevingen.

Object vervagen met YOLOv8 Voorbeeld

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()

Argumenten model.predict

Naam Type Standaard Beschrijving
source str 'ultralytics/assets' bronmap voor afbeeldingen of video's
conf float 0.25 objectbetrouwbaarheidsdrempel voor detectie
iou float 0.7 intersectie over unie (IoU) drempel voor NMS
imgsz int or tuple 640 afbeeldingsgrootte als scalair of (h, w) lijst, bijv. (640, 480)
half bool False gebruik halve precisie (FP16)
device None or str None apparaat om op te draaien, bijvoorbeeld cuda device=0/1/2/3 of device=cpu
max_det int 300 maximum aantal detecties per afbeelding
vid_stride bool False video frame-rate stap
stream_buffer bool False buffer alle streaming frames (True) of retourneer het meest recente frame (False)
visualize bool False modeleigenschappen visualiseren
augment bool False beeldvergroting toepassen op voorspellingsbronnen
agnostic_nms bool False klassennagnostische NMS
classes list[int] None filter resultaten op klasse, d.w.z. classes=0, of classes=[0,2,3]
retina_masks bool False segmentatiemaskers met hoge resolutie gebruiken
embed list[int] None retourneer kenmerkvectoren/embeddingen van gegeven lagen

FAQ

Wat is objectvervaging met Ultralytics YOLOv8 ?

Objecten vervagen met Ultralytics YOLOv8 Het automatisch detecteren en toepassen van een vervagingseffect op specifieke objecten in afbeeldingen of video's. Deze techniek verbetert de privacy door gevoelige informatie te verbergen terwijl relevante visuele gegevens behouden blijven. YOLOv8 De realtime verwerkingsmogelijkheden maken het geschikt voor toepassingen die onmiddellijke privacybescherming en selectieve focusaanpassingen vereisen.

Hoe kan ik realtime objectvervaging implementeren met YOLOv8?

Om realtime objectvervaging te implementeren met YOLOv8, volg je het voorbeeld Python . Hierbij wordt YOLOv8 gebruikt voor objectdetectie en OpenCV voor het toepassen van het vervagingseffect. Hier is een vereenvoudigde versie:

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()

Wat zijn de voordelen van het gebruik van Ultralytics YOLOv8 voor objectvervaging?

Ultralytics YOLOv8 biedt verschillende voordelen voor objectvervaging:

  • Bescherming van privacy: Gevoelige of identificeerbare informatie effectief verbergen.
  • Selectieve focus: Richt je op specifieke objecten om ze te vervagen, met behoud van essentiële visuele inhoud.
  • Real-time verwerking: Objectvervaging efficiënt uitvoeren in dynamische omgevingen, geschikt voor directe privacyverbeteringen.

Kijk voor meer gedetailleerde toepassingen in het gedeelte Voordelen van objectvervaging.

Kan ik Ultralytics YOLOv8 gebruiken om gezichten in een video te vervagen om privacyredenen?

Ja, Ultralytics YOLOv8 kan worden geconfigureerd om gezichten in video's te detecteren en te vervagen om de privacy te beschermen. Door een voorgetraind model te trainen of te gebruiken om specifiek gezichten te herkennen, kunnen de detectieresultaten worden verwerkt met OpenCV om een onscherpeffect toe te passen. Raadpleeg onze gids over objectdetectie met YOLOv8 en pas de code aan voor gezichtsdetectie.

Hoe verhoudt YOLOv8 zich tot andere objectdetectiemodellen zoals Faster R-CNN voor objectvervaging?

Ultralytics YOLOv8 presteert qua snelheid meestal beter dan modellen als Faster R-CNN, waardoor het geschikter is voor realtime toepassingen. Hoewel beide modellen nauwkeurige detectie bieden, is de architectuur van YOLOv8 geoptimaliseerd voor snelle inferentie, wat cruciaal is voor taken zoals het in real-time vervagen van objecten. Lees meer over de technische verschillen en prestatiecijfers in onze YOLOv8 documentatie.



Aangemaakt 2024-01-09, Bijgewerkt 2024-07-05
Auteurs: glenn-jocher (6), RizwanMunawar (1), IvorZhu331 (1), AyushExel (1)

Reacties