YOLOv5 : révolutionner la détection d'objets en temps réel - HashDork (2024)

La technologie de détection d'objets de la vision par ordinateur est essentielle pour de nombreuses applications. Nous l'utilisons dans la robotique, les équipements de surveillance, les automobiles autonomes et bien d'autres domaines. Par conséquent, nous pouvons trouver et reconnaître certaines choses dans une image ou une vidéo.

L'un des plus connus algorithmes d'identification d'objets est le YOLO (You Only Look Once) ensemble de modèles. Ces modèles sont créés par Ultralytiques LLC.

La version la plus récente de cette série est YOLOv5. Et c'est le modèle d'identification d'objet le plus rapide et le plus précis du marché. La capacité du modèle à généraliser à de nouvelles données a été grandement améliorée. En outre, il contient de nombreuses fonctionnalités qui le rendent plus performant que les itérations précédentes.

YOLOv5 est idéal pour les applications en temps réel car il peut traiter des images à une vitesse allant jusqu'à 1000 images par seconde sur un seul GPU.

YOLOv5: révolutionner la détection d'objets en temps réel - HashDork (1)

Dans cet article, nous allons présenter YOLOv5 et détailler ses domaines d'application.

Parcours de YOLO: de YOLO à YOLOv5

Joseph Redmon et al. a initialement introduit le YOLO, un ensemble de modèles d'identification d'objets, en 2016. Le modèle YOLO initial pouvait identifier des objets en temps réel. Cependant, il avait une faible précision par rapport aux autres modèles de l'époque.

Plusieurs versions améliorées de YOLO ont été publiées au fil des ans. Et enfin, Ultralytics LLC a créé la dernière édition de la série YOLO, YOLOv5.

YOLOv5 est le modèle d'identification d'objet le plus précis et le plus rapide actuellement disponible.

Caractéristiques importantes

Boîtes d'ancrage

YOLOv5 prédit les cadres de délimitation des objets dans une image à l'aide de cadres d'ancrage. Le modèle prédit laquelle des nombreuses boîtes prédéfinies avec différents rapports d'aspect correspond le mieux à l'élément de l'image à l'aide de boîtes d'ancrage. Ce sont des cases prédéfinies.

Et, ils permettent à YOLOv5 de reconnaître et de trouver des éléments dans une image avec précision.

Augmentation des données en mosaïque

Lors de la formation, YOLOv5 utilise une méthode connue sous le nom de mosaïque augmentation des données. Pour développer de nouvelles images d'entraînement, notre modèle combine de manière aléatoire des patchs de plusieurs photos. En conséquence, le modèle devient plus résilient et fiable. Par conséquent, il arrive à généraliser à de nouvelles données et à réduire le surajustement.

Un pipeline de formation unique

Un pipeline de formation unique qui mélange supervisé et apprentissage non supervisé est utilisé.

Ainsi, le modèle apprend à partir d'un échantillon plus petit et utilise efficacement les entrées non étiquetées. Cela améliore les performances du modèle et améliore sa capacité à généraliser à de nouvelles entrées.

Couches résiduelles et non résiduelles

L'architecture de YOLOv5 combine des couches résiduelles et non résiduelles. En permettant aux gradients de circuler à travers les couches, les couches résiduelles aident le modèle à apprendre les caractéristiques difficiles. De plus, les couches non résiduelles fournissent au modèle une compréhension plus complète de l'image d'entrée. En conséquence, YOLOv5 peut fonctionner plus précisément et plus efficacement.

YOLOv5: révolutionner la détection d'objets en temps réel - HashDork (2)

Comment utiliser YOLOv5

Installation

L'installation de YOLOv5 peut être effectuée rapidement à l'aide de pip. Pip est un gestionnaire de packages Python. Les procédures générales d'installation de YOLOv5 sont les suivantes:

1- Installer PyTorch : Parce que YOLOv5 est basé sur le framework PyTorch, vous devez d'abord installer PyTorch.

pip install torch torchvision

2. Installez CUDA : Vous devez installer CUDA si vous avez l'intention d'exécuter YOLOv5 sur un GPU.

3. Installez YOLOv5: après avoir configuré PyTorch et CUDA, utilisez la commande suivante pour télécharger YOLOv5.

pip install yolov5

4- Suite à l'installation de YOLOv5, vous devez télécharger les poids pré-entraînés. Les poids pré-formés sont disponibles dans le référentiel GitHub d'Ultralytics.

Accédez à la partie "poids" du site Web en faisant défiler vers le bas. Vous pouvez télécharger des poids pré-entraînés à partir de la liste que vous pouvez trouver ici.

5. Sélectionnez les poids qui sont déjà formés et qui conviennent le mieux à votre cas d'utilisation. L'ensemble de données ou la version particulière de YOLOv5 dans laquelle les poids ont été appris peut être utilisé pour réduire la liste.

6- Après avoir choisi les poids appropriés, choisissez le poids en cliquant sur le bouton "Télécharger" à côté. Les poids seront disponibles en téléchargement au format. fichiers pt.

7- Transférer les poids téléchargés dans le répertoire. C'est là que votre script de détection fonctionnera.

8- À ce stade, vous pouvez exécuter la détection d'objets sur vos photos ou vidéos en utilisant les poids pré-formés dans votre script de détection.

YOLOv5: révolutionner la détection d'objets en temps réel - HashDork (3)

Préparer les données

Vous devez effectuer les actions suivantes pour que les données soient prêtes à être utilisées avec YOLOv5:

1. Rassemblez les données: la première étape consiste à rassembler les données d'image ou de vidéo dont vous aurez besoin pour détection d'objets. Les éléments que vous souhaitez détecter doivent être présents sur les photos ou les vidéos.

2- Formater les données : Vous pouvez simplement importer des photos dans votre script si vous les utilisez. Vous devez transformer une vidéo en une série de photos si vous prévoyez d'en utiliser une. Vous pouvez extraire les images d'un film en utilisant une bibliothèque comme OpenCV.

import cv2

img = cv2.imread('path/to/image')

Avec la bibliothèque OpenCV, vous pouvez utiliser la commande suivante pour transformer une vidéo en une série d'images:

import cv2

cap = cv2.VideoCapture('path/to/video')

while True:

ret, frame = cap.read()

if not ret:

break

cv2.imshow('frame', frame)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()

3. Étiquetez les données: vous devez étiqueter les données si vous utilisez votre jeu de données. Dessinez des cadres de délimitation autour des éléments que vous souhaitez identifier dans chaque cadre d'une image. C'est le processus d'étiquetage des données. Vous pouvez utiliser plusieurs outils pour vous aider dans cette opération, notamment LabelImg et RectLabel.

4- Vous devez diviser les données en ensembles d'entraînement et de test après les avoir étiquetés. Ceci est crucial pour évaluer les performances de votre modèle.

5. Enfin, vous devrez peut-être prétraiter les données avant l'entraînement ou les tests. Cela peut impliquer la mise à l'échelle des images ou des vidéos, la standardisation des valeurs de pixel ou l'utilisation de méthodes d'augmentation des données.

Une fois ces étapes terminées, vos données sont prêtes.

YOLOv5: révolutionner la détection d'objets en temps réel - HashDork (4)

Exécutez le script de détection

Voici une illustration d'un script de détection qui analyse une image et trouve des objets.

import yolov5

import cv2

# Pre-trained weights should be loaded.

weights = 'path/to/weights.pt'

# Set the detection confidence level

conf_thres = 0.5

# Set the Non-Maxima Suppression (NMS) threshold

nms_thres = 0.5

# Create the detector object

detector = yolov5.YOLOv5(weights, conf_thres, nms_thres)

# Load the image

img = cv2.imread('path/to/image')

# Perform object detection

detections = detector.detect(img)

# Print the detections

for x1, y1, x2, y2, conf, cls_conf, cls_pred in detections:

print("Object:", classes[int(cls_pred)])

print("Confidence:", conf)

print("Bounding box:", (x1, y1, x2, y2))

Post-traitement

La suppression non maximale est l'une des techniques de post-traitement les plus fréquemment utilisées dans la détection d'objets (NMS). Nous utilisons NMS pour éliminer les boîtes englobantes qui se chevauchent pour le même objet. Pour exécuter NMS sur les détections, nous pouvons utiliser la méthode cv2.dnn.NMSBoxes() de la bibliothèque OpenCV.

Voici un exemple de post-traitement des détections à l'aide de NMS.

import cv2

# Perform Non-Maxima Suppression (NMS)

indices = cv2.dnn.NMSBoxes(détections, confiances, conf_thres, nms_thres)

Visualisation

Dans le cas de la visualisation, nous pouvons à nouveau utiliser une bibliothèque comme OpenCV. Nous pouvons afficher les boîtes englobantes autour des objets découverts sur l'image ou la vidéo source. Pour dessiner les cadres de délimitation de l'image, utilisez la méthode cv2.rectangle(). Voici comment afficher les détections sur l'image d'origine:

importer cv2

# Draw the bounding boxes on the image

pour I dans les indices:

i = i[0]

x1, y1, x2, y2 = detections[i][0], detections[i][1], detections[i][2], detections[i][3]

cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2)

cv2.putText(img, classes[class_ids[i]], (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)

# Show the image

cv2.imshow("Object Detection", img)

cv2

YOLOv5: révolutionner la détection d'objets en temps réel - HashDork (5)

Applications

YOLOv5 est un modèle d'identification d'objet puissant. Par conséquent, nous pouvons l'utiliser dans de nombreux scénarios du monde réel. L'une des utilisations les plus importantes concerne les voitures autonomes. YOLOv5 peut identifier des éléments en temps réel tels que des automobiles et des feux de circulation.

Dans les systèmes de surveillance, nous pouvons utiliser YOLOv5 pour reconnaître et suivre les objets dans les flux vidéo en direct. De plus, YOLOv5 peut être un atout majeur en robotique. Il peut aider les robots à détecter et à comprendre leur environnement. Ceci est extrêmement important pour des activités comme la navigation et la manipulation.

YOLOv5 peut également être utilisé dans n'importe quelle industrie qui nécessite la détection d'objets, comme la vente au détail, le sport, la médecine et la sécurité.

Conclusion

Enfin, YOLOv5 est la version la plus récente et la plus sophistiquée de la famille YOLO de détection d'objets numériques jumeaux (digital twin models)

. En outre, il est juste de dire qu'il s'agit du modèle de détection d'objet le plus précis disponible. Grâce à sa grande précision et sa rapidité, vous pouvez le choisir en toute sécurité pour vos projets de détection d'objets.

YOLOv5: révolutionner la détection d'objets en temps réel - HashDork (6)

YOLOv5 : révolutionner la détection d'objets en temps réel - HashDork (2024)
Top Articles
Latest Posts
Article information

Author: Arielle Torp

Last Updated:

Views: 5932

Rating: 4 / 5 (41 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Arielle Torp

Birthday: 1997-09-20

Address: 87313 Erdman Vista, North Dustinborough, WA 37563

Phone: +97216742823598

Job: Central Technology Officer

Hobby: Taekwondo, Macrame, Foreign language learning, Kite flying, Cooking, Skiing, Computer programming

Introduction: My name is Arielle Torp, I am a comfortable, kind, zealous, lovely, jolly, colorful, adventurous person who loves writing and wants to share my knowledge and understanding with you.