Python implémente la détection d'objets basée sur Yolov8 + CPU

Table des matières

1. Environnement de développement

2. Installez la bibliothèque liée à la détection d'objets Python basée sur Yolov8

2.1 Ouvrez l'invite de commande (cmd) ou le terminal et installez la bibliothèque 

2.2 Problèmes rencontrés lors du processus d'installation des bibliothèques associées 

3. Implémentation du code de détection d'objets basé sur Yolov8 (complet)

3.1 Code complet de détection d'objet Yolov8

3.2 Solution au téléchargement lent du modèle yolov8 lors de la première exécution du code

4. Affichage de l'effet de détection d'objet Yolov8 + CPU 


1. Environnement de développement

1. PyCharm [ Cliquez pour télécharger ]

2. Python3.9 [ Cliquez pour télécharger ]

Remarque : La dernière version est Python 3.11.5, vous pouvez la télécharger en fonction de la situation réelle.

2. Installez la bibliothèque liée à la détection d'objets Python basée sur Yolov8

ultralytiques==8.0.26 

opencv-python==4.5.4.60

cvzone==1.5.6

mathématiques

temps

2.1 Ouvrez l'invite de commande (cmd) ou le terminal et installez la bibliothèque 

1. Entrez la commande suivante pour installer la bibliothèque ultralytics : 

pip install ultralytics==8.0.26

2. Entrez la commande suivante pour installer la bibliothèque cv2 (OpenCV) :

pip install opencv-python==4.5.4.60 

3. Entrez la commande suivante pour installer la bibliothèque cvzone :

pip install cvzone==1.5.6 

4. Entrez la commande suivante pour installer la bibliothèque mathématique (bibliothèque intégrée Python, aucune installation supplémentaire requise) :

pip install math 

5. La bibliothèque de temps est une bibliothèque intégrée de Python et ne nécessite aucune installation supplémentaire. 

2.2 Problèmes rencontrés lors du processus d'installation des bibliothèques associées 

Description du problème 1 :  Lors de l'installation de la bibliothèque ultralytics, un message d'erreur apparaît : ERREUR : Opération annulée par l'utilisateur

Analyse des causes :  la raison de ces erreurs est que l'environnement réseau n'est pas bon et que la vitesse de téléchargement de la bibliothèque est très lente et peut être déconnectée à mi-chemin, provoquant l'échec du téléchargement.

Solution :  La solution consiste à remplacer l'environnement de téléchargement par un meilleur. Si l'environnement ne peut pas être modifié, réessayez l'installation jusqu'à ce qu'elle réussisse : pip install ultralytics==8.0.26 

Description du problème 2 :  les bibliothèques associées telles que les ultralytics ont été installées avec succès, mais Pycharm ne peut pas les détecter.

Analyse des causes :

  1. Il se peut que l'interpréteur Python utilisé par votre PyCharm et cmd soit différent ;
  2. PyCharm utilise le même interpréteur Python que cmd, mais les bibliothèques associées ne sont pas ajoutées à l'environnement PyCharm.

Solution:

1. Assurez-vous d'abord que votre PyCharm et votre cmd utilisent le même interpréteur Python :

2. Ajoutez la bibliothèque associée à l'environnement PyCharm :

3. Implémentation d'un code de détection d'objets basé sur Yolov8 ( complet )

3.1 Code complet de détection d'objet Yolov8

from ultralytics import YOLO
import cv2
import cvzone
import math
import time

cap = cv2.VideoCapture("motorbikes.mp4")  # For Video

model = YOLO("yolov8n.pt")

classNames = ["person", "bicycle", "car", "motorbike", "aeroplane", "bus", "train", "truck", "boat",
              "traffic light", "fire hydrant", "stop sign", "parking meter", "bench", "bird", "cat",
              "dog", "horse", "sheep", "cow", "elephant", "bear", "zebra", "giraffe", "backpack", "umbrella",
              "handbag", "tie", "suitcase", "frisbee", "skis", "snowboard", "sports ball", "kite", "baseball bat",
              "baseball glove", "skateboard", "surfboard", "tennis racket", "bottle", "wine glass", "cup",
              "fork", "knife", "spoon", "bowl", "banana", "apple", "sandwich", "orange", "broccoli",
              "carrot", "hot dog", "pizza", "donut", "cake", "chair", "sofa", "pottedplant", "bed",
              "diningtable", "toilet", "tvmonitor", "laptop", "mouse", "remote", "keyboard", "cell phone",
              "microwave", "oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors",
              "teddy bear", "hair drier", "toothbrush"
              ]

prev_frame_time = 0
new_frame_time = 0

while True:
    new_frame_time = time.time()
    success, img = cap.read()
    results = model(img, stream=True)
    for r in results:
        boxes = r.boxes
        for box in boxes:
            # Bounding Box
            x1, y1, x2, y2 = box.xyxy[0]
            x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)
            w, h = x2 - x1, y2 - y1
            cvzone.cornerRect(img, (x1, y1, w, h))
            # Confidence
            conf = math.ceil((box.conf[0] * 100)) / 100
            # Class Name
            cls = int(box.cls[0])

            cvzone.putTextRect(img, f'{classNames[cls]} {conf}', (max(0, x1), max(35, y1)), scale=1, thickness=1)

    fps = 1 / (new_frame_time - prev_frame_time)
    prev_frame_time = new_frame_time
    print(fps)

    cv2.imshow("Image", img)
    cv2.waitKey(1)

3.2 Solution au téléchargement lent du modèle yolov8 lors de la première exécution du code

1. Le modèle Yolov8 utilisé pour la détection d'objets dans ce chapitre est implémenté sur la base de yolov8n.pt ;

2. Lorsque le code est exécuté pour la première fois, le modèle correspondant sera téléchargé de Github vers le local ;

3. Si l'environnement réseau n'est pas bon, la vitesse de téléchargement peut être très lente ;

4. Par conséquent, il est recommandé d'arrêter d'abord d'exécuter le code, puis de télécharger manuellement le modèle depuis Github.

Modèle yolov8n.pt [ cliquez pour télécharger ]

4. Affichage de l'effet de détection d'objet Yolov8 + CPU 

Je suppose que tu aimes

Origine blog.csdn.net/m0_37383484/article/details/133387751
conseillé
Classement