Sfocatura degli oggetti con Ultralytics YOLOv8 🚀
Che cos'è la sfocatura degli oggetti?
Sfocatura degli oggetti con Ultralytics YOLOv8 consiste nell'applicare un effetto di sfocatura a specifici oggetti rilevati in un'immagine o in un video. Questo può essere ottenuto utilizzando le funzionalità del modello YOLOv8 per identificare e manipolare gli oggetti all'interno di una determinata scena.
Guarda: Sfocatura degli oggetti con Ultralytics YOLOv8
Vantaggi della sfocatura degli oggetti?
- Protezione della privacy: La sfocatura degli oggetti è uno strumento efficace per salvaguardare la privacy nascondendo informazioni sensibili o di identificazione personale nelle immagini o nei video.
- Messa a fuoco selettiva: YOLOv8 permette di sfocare in modo selettivo, consentendo agli utenti di mirare a oggetti specifici, garantendo un equilibrio tra privacy e conservazione delle informazioni visive rilevanti.
- Elaborazione in tempo reale: YOLOv8 L'efficienza del sistema consente di sfocare gli oggetti in tempo reale, rendendolo adatto alle applicazioni che richiedono miglioramenti della privacy al volo in ambienti dinamici.
Esempio di sfocatura degli oggetti con 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()
Argomenti model.predict
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
source |
str |
'ultralytics/assets' |
directory di origine per le immagini o i video |
conf |
float |
0.25 |
soglia di fiducia dell'oggetto per il rilevamento |
iou |
float |
0.7 |
soglia di intersezione su unione (IoU) per gli NMS |
imgsz |
int or tuple |
640 |
dimensione dell'immagine come scalare o come elenco (h, w), ad esempio (640, 480) |
half |
bool |
False |
usa la mezza precisione (FP16) |
device |
None or str |
None |
Il dispositivo su cui eseguire l'operazione, ad esempio cuda device=0/1/2/3 o device=cpu |
max_det |
int |
300 |
numero massimo di rilevamenti per immagine |
vid_stride |
bool |
False |
passo della frequenza dei fotogrammi video |
stream_buffer |
bool |
False |
bufferizza tutti i fotogrammi dello streaming (True) o restituisce il fotogramma più recente (False) |
visualize |
bool |
False |
visualizzare le caratteristiche del modello |
augment |
bool |
False |
applicare l'aumento dell'immagine alle fonti di predizione |
agnostic_nms |
bool |
False |
NMS con compatibilità di classe |
classes |
list[int] |
None |
filtrare i risultati per classe, ad esempio classi=0 o classi=[0,2,3]. |
retina_masks |
bool |
False |
utilizzare maschere di segmentazione ad alta risoluzione |
embed |
list[int] |
None |
restituisce vettori di caratteristiche/embeddings da determinati livelli |
DOMANDE FREQUENTI
Che cos'è la sfocatura degli oggetti con Ultralytics YOLOv8 ?
La sfocatura degli oggetti con Ultralytics YOLOv8 consiste nel rilevare e applicare automaticamente un effetto di sfocatura a determinati oggetti nelle immagini o nei video. Questa tecnica migliora la privacy nascondendo le informazioni sensibili e conservando i dati visivi rilevanti. YOLOv8 Le sue capacità di elaborazione in tempo reale lo rendono adatto alle applicazioni che richiedono una protezione immediata della privacy e una regolazione selettiva della messa a fuoco.
Come posso implementare la sfocatura degli oggetti in tempo reale utilizzando YOLOv8?
Per implementare la sfocatura degli oggetti in tempo reale con YOLOv8, segui l'esempio di Python . Questo prevede l'utilizzo di YOLOv8 per il rilevamento degli oggetti e di OpenCV per l'applicazione dell'effetto di sfocatura. Ecco una versione semplificata:
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()
Quali sono i vantaggi dell'utilizzo di Ultralytics YOLOv8 per la sfocatura degli oggetti?
Ultralytics YOLOv8 offre diversi vantaggi per la sfocatura degli oggetti:
- Protezione della privacy: Oscura efficacemente le informazioni sensibili o identificabili.
- Messa a fuoco selettiva: Seleziona oggetti specifici da sfocare, mantenendo i contenuti visivi essenziali.
- Elaborazione in tempo reale: Esegui in modo efficiente la sfocatura degli oggetti in ambienti dinamici, adatti a migliorare istantaneamente la privacy.
Per applicazioni più dettagliate, consulta la sezione Vantaggi della sfocatura degli oggetti.
Posso utilizzare Ultralytics YOLOv8 per sfocare i volti in un video per motivi di privacy?
Sì, Ultralytics YOLOv8 può essere configurato per rilevare e sfocare i volti nei video per proteggere la privacy. Addestrando o utilizzando un modello pre-addestrato per riconoscere specificamente i volti, i risultati del rilevamento possono essere elaborati con OpenCV per applicare un effetto di sfocatura. Fai riferimento alla nostra guida sul rilevamento degli oggetti con YOLOv8 e modifica il codice per il rilevamento dei volti.
Come si colloca YOLOv8 rispetto ad altri modelli di rilevamento degli oggetti come Faster R-CNN per la sfocatura degli oggetti?
Ultralytics YOLOv8 in genere supera modelli come Faster R-CNN in termini di velocità, rendendolo più adatto alle applicazioni in tempo reale. Sebbene entrambi i modelli offrano un rilevamento accurato, l'architettura di YOLOv8 è ottimizzata per un'inferenza rapida, fondamentale per attività come la sfocatura degli oggetti in tempo reale. Per saperne di più sulle differenze tecniche e sulle metriche delle prestazioni, consulta la documentazione di YOLOv8 .
Creato 2024-01-09, Aggiornato 2024-07-05
Autori: glenn-jocher (6), RizwanMunawar (1), IvorZhu331 (1), AyushExel (1)