0% ont trouvé ce document utile (0 vote)
20 vues2 pages

Python 5

Le document présente un programme utilisant le modèle de deep learning YOLOv3 pour la détection d'objets dans une image. Il décrit le processus de chargement du modèle, de traitement de l'image et d'affichage des résultats avec des annotations. Ce programme illustre des applications avancées en Python, notamment en deep learning et traitement d'images.

Transféré par

MOHAMMED BOUKANTAR
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues2 pages

Python 5

Le document présente un programme utilisant le modèle de deep learning YOLOv3 pour la détection d'objets dans une image. Il décrit le processus de chargement du modèle, de traitement de l'image et d'affichage des résultats avec des annotations. Ce programme illustre des applications avancées en Python, notamment en deep learning et traitement d'images.

Transféré par

MOHAMMED BOUKANTAR
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

6.

Reconnaissance d'objets dans des images avec un modèle de Deep Learning


(yolo)

Énoncé :

Utiliser un modèle de deep learning pré-entrainé comme YOLO pour effectuer la détection
d'objets dans une image.

Solution :

python
Copier
import cv2
import numpy as np

# Charger le modèle pré-entrainé YOLO


yolo_net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg")
layer_names = yolo_net.getLayerNames()
output_layers = [layer_names[i - 1] for i in
yolo_net.getUnconnectedOutLayers()]

# Charger l'image
image = cv2.imread("image.jpg")
height, width, channels = image.shape

# Convertir l'image en un blob pour la passer au modèle


blob = cv2.dnn.blobFromImage(image, 0.00392, (416, 416), (0, 0, 0), True,
crop=False)
yolo_net.setInput(blob)

# Exécuter la détection d'objets


outs = yolo_net.forward(output_layers)

# Analyser les résultats


class_ids = []
confidences = []
boxes = []

for out in outs:


for detection in out:
scores = detection[5:]
class_id = np.argmax(scores)
confidence = scores[class_id]
if confidence > 0.5: # Seuillage de confiance
center_x = int(detection[0] * width)
center_y = int(detection[1] * height)
w = int(detection[2] * width)
h = int(detection[3] * height)

x = int(center_x - w / 2)
y = int(center_y - h / 2)

boxes.append([x, y, w, h])
confidences.append(float(confidence))
class_ids.append(class_id)

# Application de la suppression non-maximale pour éviter les doublons


indices = cv2.dnn.NMSBoxes(boxes, confidences, 0.5, 0.4)
# Afficher les objets détectés sur l'image
with open("coco.names", "r") as f:
classes = [line.strip() for line in f.readlines()]

for i in indices.flatten():
x, y, w, h = boxes[i]
label = str(classes[class_ids[i]])
cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2)
cv2.putText(image, label, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5,
(0, 255, 0), 2)

# Affichage de l'image
cv2.imshow("Detected Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Explication :

 Ce programme utilise le modèle YOLOv3 pour la détection d'objets dans une image.
 YOLO est un modèle de deep learning rapide pour la détection d'objets, capable de
localiser et classifier plusieurs objets dans une image en un seul passage.
 Après avoir chargé l'image et effectué la détection d'objets, les résultats sont affichés
en traçant des rectangles autour des objets détectés et en annotant chaque rectangle
avec le nom de l'objet.

Ces programmes couvrent une variété de domaines avancés en Python, notamment


l'optimisation combinatoire, les algorithmes d'intelligence artificielle, le deep learning et le
traitement d'images. Ces exemples peuvent être adaptés à des cas d'utilisation plus spécifiques
selon vos besoins.

Vous aimerez peut-être aussi