Page 1 of 1

Der Speicherverbrauch steigt mit der Kameraschleife

Posted: 24 Dec 2024, 05:48
by Anonymous
Ich habe ein Python-Skript zum Aufnehmen von Bildern und zum Hochladen dieser auf meinen Server. Dies ist eine abgeschwächte Version davon, reproduziert aber das gleiche Ergebnis. Es erfasst zwar ein Bild, erhöht aber mit jeder Schleife den Speicherverbrauch, bis das Skript schließlich abgebrochen wird. Ich verwende ein RPi 4B mit einer 13-Megapixel-USB-Kamera.
import cv2, psutil, os, gc, time

def takepic():

frame = None
cw, ch = 4000, 3000
cap = cv2.VideoCapture(0)
print('click!')
cap.set(cv2.CAP_PROP_FRAME_WIDTH, cw)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, ch)
time.sleep(0.6)
suc, frame = cap.read()
cap.release()

process = psutil.Process(os.getpid())
print(f'Memory Used {round(process.memory_percent(), 2)}%')
resizeit(frame)

def resizeit(img):
small = cv2.resize(img, (0,0), fx=0.5, fy=0.5)
del small
del img
print(gc.get_count())
gc.collect()
print(gc.get_count())
time.sleep(1)
takepic()

takepic()

Ich habe es satt, del mit den Variablen zu verwenden, auf „None“ zu setzen und auch den Garbage Collector ohne Erfolg zu verwenden.
[img]https://i. sstatic.net/KIWkbuGy.png[/img]