Objektzählung auf Bildern mit OpenCV/YOLOv4 [geschlossen]
Posted: 05 Jan 2025, 14:15
Mir wurde ein Bild gegeben, das Sterne und Ovale enthielt, und ich wurde damit beauftragt, herauszufinden, welches welches ist, und zu zählen, wie viele davon im Bild enthalten sind. Ein solches Bild mit Ovalen sieht nur so aus.
Ich habe zuerst versucht, das Problem mit OpenCV zu lösen, indem ich Tutorials wie dieses und dieses verwendet habe.
Allerdings stoße ich bei beiden auf Probleme beim Begrenzen der Ovale. Bei einem ergibt sich eine Zählung von 1 Oval, bei einem anderen die Zählung von 330.
Ich habe es dann mit versucht YOLOv4, ich denke, dass es nützlicher wäre, wenn man damit umgeht zwei verschiedene Klassen (Sterne und Ovale). Ich habe den folgenden Code von oben verwendet, um gebundene Kästchen in meinem Beispielbild auszuprobieren.
Ich habe jedoch Folgendes erhalten:
IndexError: Ungültiger Index für Skalarvariable.
Kann mir jemand den richtigen Weg weisen, wie ich vorgehen soll? Ich muss es zunächst für eine Klasse und dann für mehrere Klassen tun können, bevor ich es automatisch für mehrere Bilder ausführe.
Ich habe zuerst versucht, das Problem mit OpenCV zu lösen, indem ich Tutorials wie dieses und dieses verwendet habe.
Allerdings stoße ich bei beiden auf Probleme beim Begrenzen der Ovale. Bei einem ergibt sich eine Zählung von 1 Oval, bei einem anderen die Zählung von 330.
Ich habe es dann mit versucht YOLOv4, ich denke, dass es nützlicher wäre, wenn man damit umgeht zwei verschiedene Klassen (Sterne und Ovale). Ich habe den folgenden Code von oben verwendet, um gebundene Kästchen in meinem Beispielbild auszuprobieren.
Code: Select all
box, label, count = cv.detect_common_objects(img)
output = draw_bbox(img, box, label, count)
output = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.figure(figsize= (10, 10))
plt.axis("off")
plt.imshow(img1)
plt.show()
IndexError: Ungültiger Index für Skalarvariable.
Kann mir jemand den richtigen Weg weisen, wie ich vorgehen soll? Ich muss es zunächst für eine Klasse und dann für mehrere Klassen tun können, bevor ich es automatisch für mehrere Bilder ausführe.