Zum Inhalt springen

Objektverwischung mit Ultralytics YOLOv8 🚀

Was ist Objektunschärfe?

Objektunschärfe mit Ultralytics YOLOv8 ist die Anwendung eines Unschärfeeffekts auf bestimmte erkannte Objekte in einem Bild oder Video. Dies kann mit Hilfe der YOLOv8 Modellfähigkeiten erreicht werden, um Objekte in einer bestimmten Szene zu identifizieren und zu manipulieren.



Pass auf: Objektverwischung mit Ultralytics YOLOv8

Vorteile der Objektverwischung?

  • Schutz der Privatsphäre: Die Unschärfe von Objekten ist ein wirksames Mittel zum Schutz der Privatsphäre, indem sensible oder persönlich identifizierbare Informationen in Bildern oder Videos verborgen werden.
  • Selektive Fokussierung: YOLOv8 ermöglicht eine selektive Unschärfe, mit der die Nutzer/innen bestimmte Objekte anvisieren können, um ein Gleichgewicht zwischen Privatsphäre und dem Erhalt relevanter visueller Informationen zu gewährleisten.
  • Verarbeitung in Echtzeit: YOLOv8 Die Effizienz der Software ermöglicht die Verwischung von Objekten in Echtzeit und eignet sich daher für Anwendungen, die eine sofortige Verbesserung der Privatsphäre in dynamischen Umgebungen erfordern.

Objektverwischung mit YOLOv8 Beispiel

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

Argumente model.predict

Name Typ Standard Beschreibung
source str 'ultralytics/assets' Quellverzeichnis für Bilder oder Videos
conf float 0.25 Objektkonfidenzschwelle für die Erkennung
iou float 0.7 intersection over union (IoU) Schwelle für NMS
imgsz int or tuple 640 Bildgröße als Skalar oder (h, w) Liste, z.B. (640, 480)
half bool False halbe Genauigkeit verwenden (FP16)
device None or str None Gerät, auf dem es laufen soll, d.h. cuda device=0/1/2/3 oder device=cpu
max_det int 300 maximale Anzahl von Erkennungen pro Bild
vid_stride bool False Video-Frame-Rate-Schritt
stream_buffer bool False alle Streaming-Frames puffern (True) oder den letzten Frame zurückgeben (False)
visualize bool False Modelleigenschaften visualisieren
augment bool False Bildvergrößerung auf Vorhersagequellen anwenden
agnostic_nms bool False klassenunabhängige NMS
classes list[int] None Ergebnisse nach Klassen filtern, d.h. classes=0, oder classes=[0,2,3]
retina_masks bool False hochauflösende Segmentierungsmasken verwenden
embed list[int] None Feature-Vektoren/Embeddings aus den gegebenen Schichten zurückgeben

FAQ

Was ist Objektverwischung mit Ultralytics YOLOv8 ?

Objektverwischung mit Ultralytics YOLOv8 Bei dieser Technik werden bestimmte Objekte in Bildern oder Videos automatisch erkannt und mit einem Unschärfeeffekt versehen. Diese Technik verbessert die Privatsphäre, indem sie sensible Informationen verbirgt, während die relevanten visuellen Daten erhalten bleiben. YOLOv8 Die Echtzeitverarbeitungsfähigkeiten von Object Blurring eignen sich für Anwendungen, die einen sofortigen Schutz der Privatsphäre und selektive Fokusanpassungen erfordern.

Wie kann ich Echtzeit-Objektverwischung mit YOLOv8 implementieren?

Um das Weichzeichnen von Objekten in Echtzeit mit YOLOv8 zu implementieren, folge dem Beispiel unter Python . Dabei wird YOLOv8 für die Objekterkennung und OpenCV für die Anwendung des Weichzeichnereffekts verwendet. Hier ist eine vereinfachte Version:

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

Was sind die Vorteile der Verwendung von Ultralytics YOLOv8 für die Objektverwischung?

Ultralytics YOLOv8 bietet mehrere Vorteile für die Objektverwischung:

  • Schutz der Privatsphäre: Sensible oder identifizierbare Informationen effektiv verschleiern.
  • Selektiver Fokus: Wähle bestimmte Objekte aus, um sie unscharf zu machen, wobei der wesentliche visuelle Inhalt erhalten bleibt.
  • Verarbeitung in Echtzeit: Führe die Objektverwischung effizient in dynamischen Umgebungen aus, die sich für die sofortige Verbesserung der Privatsphäre eignen.

Detailliertere Anwendungen findest du im Abschnitt über die Vorteile der Objektverwischung.

Kann ich Ultralytics YOLOv8 verwenden, um Gesichter in einem Video aus Gründen der Privatsphäre unkenntlich zu machen?

Ja, Ultralytics YOLOv8 kann so konfiguriert werden, dass Gesichter in Videos erkannt und weichgezeichnet werden, um die Privatsphäre zu schützen. Indem du ein Modell trainierst oder verwendest, das speziell Gesichter erkennt, können die Erkennungsergebnisse mit OpenCV verarbeitet werden, um einen Unschärfeeffekt anzuwenden. Sieh dir unsere Anleitung zur Objekterkennung mit YOLOv8 an und ändere den Code für die Gesichtserkennung.

Wie schneidet YOLOv8 im Vergleich zu anderen Objekterkennungsmodellen wie Faster R-CNN für Objektverwischung ab?

Ultralytics YOLOv8 übertrifft Modelle wie das Faster R-CNN in der Regel in Bezug auf die Geschwindigkeit, was es für Echtzeitanwendungen geeigneter macht. Während beide Modelle eine genaue Erkennung bieten, ist die Architektur von YOLOv8 für eine schnelle Inferenz optimiert, was für Aufgaben wie die Verwischung von Objekten in Echtzeit entscheidend ist. Erfahre mehr über die technischen Unterschiede und Leistungskennzahlen in unserer DokumentationYOLOv8 .



Erstellt 2024-01-09, Aktualisiert 2024-07-05
Autoren: glenn-jocher (6), RizwanMunawar (1), IvorZhu331 (1), AyushExel (1)

Kommentare