mit YOLO-NAS kann man Bilder durchlaufen lassen dieser erkennen Personen, Hund und Katze etc.
Das funktioniert auch soweit gut , nur werden zb. auch jene Bilder abgespeichert die keine Erkennungen haben.
Jetzt habe ich nach langem suchen gefunden das man mit Hilfe der Labels (denke ich) oder auch BBox diese weiterverarbeiten kann.
Hier habe ich aus verschiedenen Codes schon etwas zusammengestellt das funktioniert, bei der Weiterverarbeitung hänge ich leider.
Es scheint alle Bilder werden in ein Array gespeichert und dann auf einmal ausgegeben. Diese werden in einen Ordner gespeichert und mit 1 beginnend nummeriert.
Muss ich diese aus dem Array löschen? oder nur erkannte in ein neues schreiben und dann speichern?
Ich würde gerne nur Bilder speichern(mit original Namen) bei dem etwas erkannt wurde.
Später würde ich gerne anstelle des abspeichern das Originalbild (oder Video) im original Ordner löschen .
Leider findet man sehr wenig Dokumentation , bzw. ich finde diese nicht . zb. um zu sehen wie die Ordner verarbeitet werden.
Code: Alles auswählen
import gc
import os
import torch
from torchinfo import summary
from super_gradients.training import models
import argparse
def detect_objects(image):
device = torch.device("cpu")
model = models.get("yolo_nas_s", pretrained_weights="coco").to(device)
out = model.predict(image, conf=0.6)
for image_prediction in out:
class_names = image_prediction.class_names
labels = image_prediction.prediction.labels
confidence = image_prediction.prediction.confidence
bboxes = image_prediction.prediction.bboxes_xyxy
out.save("predictions");
for i, (label, conf, bbox) in enumerate(zip(labels, confidence, bboxes)):
print("prediction: ", i)
print("label_id: ", label)
print("label_name: ", class_names[int(label)])
print("confidence: ", conf)
print("bbox: ", bbox)
print("--" * 10)
# You can use the detection results for various tasks, such as:
# - Filtering objects based on confidence scores or labels
# - Analyzing object distributions within the images
# - Calculating object dimensions or areas
# - Implementing custom visualization techniques
# - ...
del model
gc.collect()
torch.cuda.empty_cache()
if __name__ == "__main__":
os.makedirs("predictions", exist_ok=True)
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required = True, help = "Path to input file")
args = vars(ap.parse_args())
detect_objects(args["image"])
Der ganze Codes stammt von https://dev.to/ethand91/object-detectio ... lo-nas-831 und von https://docs.deci.ai/super-gradients/do ... ple-images
Leider kenne ich mich nicht so gut aus und bitte um Nachsicht.
