RaspberryPi4 mit Python&OpenCV: ImageShow dauert 70ms

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Markovicz
User
Beiträge: 2
Registriert: Montag 13. Juli 2020, 10:38

Hallo zusammen,

ich würde gerne real-time-detection machen - die computation time liegt im Moment ca. bei 140ms, 70ms dauert allein das showimg-command, was die framerate halbiert und meine Anwendung ist bräuchte so viele frames wie möglich pro Sekunde :)

Im Moment lasse ich in etwa ein 1MB großes PNG Bild anzeigen und aktualisierte dort die personenzahl mit OpenCV. Ich habe schon daran gedacht, dass ich nur noch bei jedem zweiten oder vielleicht jedem 5Frame das Bild aktualisiere. Fällt euch etwas dazu ein, das showimage effizienter zu machen, gibt es evtl. noch andere Python-Module dafür?

Code: Alles auswählen

def showimage(img):
    to_show = img.copy()
    cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN)
    cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)
    cv2.putText(to_show, str(allowed), (180, 660), cv2.FONT_HERSHEY_SIMPLEX, 10, (255, 255, 255), 15)
    cv2.putText(to_show, str(people_inside), (180, 1020), cv2.FONT_HERSHEY_SIMPLEX, 10, (255, 255, 255), 15)
    cv2.imshow("window", to_show)
    cv2.waitKey(1)
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das einzige was hilft sind weniger Daten. Also zu probieren auf einer geringeren Auflösung zu arbeiten.
Markovicz
User
Beiträge: 2
Registriert: Montag 13. Juli 2020, 10:38

Alles klar, dankeschön, also von der Auflösung 1920x1080 runterzugehen wahrscheinlich? Bildkompression wird wohl nichts bringen, weil opencv dann immernoch die gleiche Pixelanzahl anzeigen muss.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ja. Und was willst du auf diesem Riesen Bild machen? ZB die meisten CNNs arbeiten auf ~200x200 Pixel großen Bildern.
Antworten