Hallo, in diesem Artikel werden wir eine Technik finden, um „Où est Charlie“ mit KI zu lösen.
Ich habe einen Datensatz auf dem folgenden Github gefunden:
https://github.com/kiim29/Ou_est_charlie
Der erste Schritt besteht darin, diese Daten in das Yolo v5-Format zu konvertieren.
Dazu erstelle ich folgende Verzeichnisse:
yolov5/ ├── train │ ├── images │ └── labels └── val ├── images └── labels
Und legen Sie alle Bilder in den guten Ordner.
Für die Annotation erstelle ich ein Skript, um die CSV-Datei im Github zu lesen und die verschiedenen Etikettendateien mit der Positionstyptransformation zu erstellen.
Weil das Format der Yolov5-Label-Datei ist:
index_item (xmin xmax) / 2 / Breite (ymin ymax) / 2 / Höhe (xmax - xmin) / Breite (ymax - ymin) / Höhe
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()
Für das Training verwende ich Ultralytics
pip install ultralytics
Und ich starte das Training mit den folgenden Argumenten.
from ultralytics import YOLO model = YOLO('yolov8n.pt') model.train(data='dataset.yaml', epochs=50, patience=10000) model.export()
Zu Testzwecken können wir ein zufälliges Bild mit Ultralytics und dem neuen Modell ausführen :)
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)
Das obige ist der detaillierte Inhalt vonWo ist Charlie – KI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!