Maison  >  Article  >  développement back-end  >  Où est Charlie - AI

Où est Charlie - AI

Barbara Streisand
Barbara Streisandoriginal
2024-11-22 08:12:10789parcourir

Bonjour, dans cet article nous allons trouver une technique pour résoudre Où est Charlie avec l'IA.


I - Ensemble de données

J'ai trouvé un ensemble de données sur le github suivant :
https://github.com/kiim29/Ou_est_charlie

La première étape consiste à convertir ces données au format Yolo v5.
Pour ce faire, je crée les répertoires suivants :

yolov5/
├── train
│   ├── images
│   └── labels
└── val
    ├── images
    └── labels

Et mettez toutes les images dans le bon dossier.

Pour l'annotation, je crée un script pour lire le csv dans le github et crée les différents fichiers d'étiquettes avec la transformation de type de position.
Parce que le format du fichier d'étiquettes yolov5 est :
index_item (xmin xmax) / 2 / largeur (ymin ymax) / 2 / hauteur (xmax - xmin) / largeur (ymax - ymin) / hauteur

import pandas as pd

class Main:


    def __init__(self):
        csv = pd.read_csv("../annotations/annotations.csv")
        for i in range(len(csv)):
            filename = csv["filename"][i].split(".")[0]
            width = csv["width"][i]
            height = csv["height"][i]
            xmin = csv["xmin"][i]
            ymin = csv["ymin"][i]
            xmax = csv["xmax"][i]
            ymax = csv["ymax"][i]

            x_center = (xmin + xmax) / 2 / width
            y_center = (ymin + ymax) / 2 / height
            bbox_width = (xmax - xmin) / width
            bbox_height = (ymax - ymin) / height


            with open(f"../dataset/train/labels/{filename}.txt", "a") as f:
                f.write(f"0 {x_center} {y_center} {bbox_width} {bbox_height}\n")






if __name__ == "__main__":
    Main()

II-Trainer

Pour l'entraînement j'utilise des ultralytiques

pip install ultralytics

Et je lance la formation avec les arguments suivants.

from ultralytics import YOLO

model = YOLO('yolov8n.pt')

model.train(data='dataset.yaml', epochs=50, patience=10000)

model.export()

III - Essai

À des fins de tests, nous pouvons exécuter une image aléatoire avec les ultralytiques et le nouveau modèle :)

import sys

from ultralytics import YOLO


model = YOLO('../last.pt')

image_path = f'../dataset/train/images/{sys.argv[1]}.jpg'

results = model(image_path,conf=0.2)

Où est Charlie - AI

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn