Flouter les objets à l'aide de Ultralytics YOLOv8 🚀
Qu'est-ce que le flou artistique ?
Le flou d'objet avec Ultralytics YOLOv8 consiste à appliquer un effet de flou à des objets spécifiques détectés dans une image ou une vidéo. Ceci peut être réalisé en utilisant les capacités du modèle YOLOv8 pour identifier et manipuler des objets dans une scène donnée.
Regarde : Rendre les objets flous Ă l'aide de Ultralytics YOLOv8
Avantages du flou artistique ?
- Protection de la vie privée: Le flou d'objet est un outil efficace pour protéger la vie privée en dissimulant les informations sensibles ou personnellement identifiables dans les images ou les vidéos.
- Mise au point sélective: YOLOv8 permet un flou sélectif, ce qui permet aux utilisateurs de cibler des objets spécifiques, assurant un équilibre entre le respect de la vie privée et la conservation des informations visuelles pertinentes.
- Traitement en temps réel: YOLOv8 L'efficacité du logiciel permet de flouter les objets en temps réel, ce qui le rend adapté aux applications nécessitant des améliorations de la confidentialité à la volée dans des environnements dynamiques.
Flouter les objets Ă l'aide de YOLOv8 Exemple
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()
Arguments model.predict
Nom | Type | DĂ©faut | Description |
---|---|---|---|
source |
str |
'ultralytics/assets' |
répertoire source pour les images ou les vidéos |
conf |
float |
0.25 |
seuil de confiance de l'objet pour la détection |
iou |
float |
0.7 |
seuil d'intersection sur l'union (IoU) pour NMS |
imgsz |
int or tuple |
640 |
taille de l'image sous forme de scalaire ou de liste (h, w), c'est-Ă -dire (640, 480) |
half |
bool |
False |
utiliser la demi-précision (FP16) |
device |
None or str |
None |
périphérique à utiliser, c'est-à -dire cuda device=0/1/2/3 ou device=...cpu |
max_det |
int |
300 |
nombre maximum de détections par image |
vid_stride |
bool |
False |
taux d'images vidéo stride |
stream_buffer |
bool |
False |
mettre en mémoire tampon toutes les images de streaming (True) ou renvoyer l'image la plus récente (False) |
visualize |
bool |
False |
visualise les caractéristiques du modèle |
augment |
bool |
False |
applique l'augmentation d'image aux sources de prédiction |
agnostic_nms |
bool |
False |
NMS agnostique |
classes |
list[int] |
None |
filtre les résultats par classe, c'est-à -dire classes=0, ou classes=[0,2,3] |
retina_masks |
bool |
False |
utiliser des masques de segmentation à haute résolution |
embed |
list[int] |
None |
renvoie les vecteurs de caractéristiques/embeddings des couches données |
FAQ
Qu'est-ce que le flou artistique avec Ultralytics YOLOv8 ?
Le flou d'objet avec Ultralytics YOLOv8 consiste à détecter et à appliquer automatiquement un effet de flou à des objets spécifiques dans des images ou des vidéos. Cette technique améliore la protection de la vie privée en dissimulant les informations sensibles tout en conservant les données visuelles pertinentes. YOLOv8 Grâce à ses capacités de traitement en temps réel, le système convient aux applications qui nécessitent une protection immédiate de la vie privée et des ajustements sélectifs de la mise au point.
Comment puis-je mettre en place un flou d'objet en temps réel à l'aide de YOLOv8?
Pour mettre en œuvre le flou d'objet en temps réel avec YOLOv8, suis l'exemple fourni par Python . Il s'agit d'utiliser YOLOv8 pour la détection des objets et OpenCV pour l'application de l'effet de flou. Voici une version simplifiée :
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()
Quels sont les avantages de l'utilisation de Ultralytics YOLOv8 pour le floutage d'objets ?
Ultralytics YOLOv8 offre plusieurs avantages pour le floutage d'objets :
- Protection de la vie privée: Occulte efficacement les informations sensibles ou identifiables.
- Mise au point sélective: Cible des objets spécifiques pour les rendre flous, en conservant le contenu visuel essentiel.
- Traitement en temps réel: Exécuter efficacement le floutage des objets dans des environnements dynamiques, adapté à l'amélioration instantanée de la vie privée.
Pour des applications plus détaillées, consulte la section sur les avantages du flou d'objet.
Puis-je utiliser Ultralytics YOLOv8 pour brouiller les visages dans une vidéo pour des raisons de confidentialité ?
Oui, Ultralytics YOLOv8 peut être configuré pour détecter et flouter les visages dans les vidéos afin de protéger la vie privée. En entraînant ou en utilisant un modèle pré-entraîné pour reconnaître spécifiquement les visages, les résultats de la détection peuvent être traités avec OpenCV pour appliquer un effet de flou. Reporte-toi à notre guide sur la détection d'objets avec YOLOv8 et modifie le code pour cibler la détection des visages.
Comment YOLOv8 se compare-t-il à d'autres modèles de détection d'objets comme Faster R-CNN pour les objets flous ?
Ultralytics YOLOv8 Sur le plan de la vitesse, Faster R-CNN est généralement plus performant que des modèles tels que Faster R-CNN, ce qui le rend plus adapté aux applications en temps réel. Bien que les deux modèles offrent une détection précise, l'architecture de YOLOv8 est optimisée pour une inférence rapide, ce qui est essentiel pour des tâches telles que le floutage d'objets en temps réel. Pour en savoir plus sur les différences techniques et les mesures de performance, consulte notre documentation surYOLOv8 .
Créé le 2024-01-09, Mis à jour le 2024-07-05
Auteurs : glenn-jocher (6), RizwanMunawar (1), IvorZhu331 (1), AyushExel (1)