Help needed - has anyone experienced this? Am i doing something wrong? Shall i move to object detection rather than classification?
Object classification task with ESP32-CAM and classifier (48px x 48px) running a few times till running into error below. It feels like a memory leak as it kicks in after a certain time.
With a larger network (160px x 160px) the effect kicks in after one successful inference. With the smaller network after around 20 inferences.
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13964
load:0x40080400,len:3600
entry 0x400805f0
Edge Impulse Inferencing Demo
Camera initialized
Starting continious inference in 2 seconds...
Predictions (DSP: 2 ms., Classification: 359 ms., Anomaly: 0 ms.):
chick: 0.03906
unknown: 0.96094
Predictions (DSP: 2 ms., Classification: 359 ms., Anomaly: 0 ms.):
chick: 0.07422
unknown: 0.92578
Predictions (DSP: 2 ms., Classification: 359 ms., Anomaly: 0 ms.):
chick: 0.07031
unknown: 0.92969
Predictions (DSP: 2 ms., Classification: 358 ms., Anomaly: 0 ms.):
chick: 0.08203
unknown: 0.91797
Predictions (DSP: 2 ms., Classification: 358 ms., Anomaly: 0 ms.):
chick: 0.06250
unknown: 0.93750
Predictions (DSP: 2 ms., Classification: 359 ms., Anomaly: 0 ms.):
chick: 0.05859
unknown: 0.94141
...............
ERR: failed to allocate tensor arena
Failed to initialize the model (error code 1)
ERR: Failed to run classifier (-6)
ERR: failed to allocate tensor arena
Failed to initialize the model (error code 1)
ERR: Failed to run classifier (-6)
ERR: failed to allocate tensor arena
Failed to initialize the model (error code 1)
ERR: Failed to run classifier (-6)
ERR: failed to allocate tensor arena
Failed to initialize the model (error code 1)
ERR: Failed to run classifier (-6)
Without the error above I am happy the way it runs.
Steps how to reproduce:
Deployment option: Arduino Library
Executing the esp32/esp_camera.cxx in classifier mode with #define CAMERA_MODEL_AI_THINKER in arduino ide@1.8 and esp32@2.0.11
Project ID 327534
@floda Based on my experience, the error you are encountering is related to a memory issue where the size of your model exceeds the RAM capacity of your microcontroller. To avoid this, select the targeted device during the training process to optimize the model to that specific device. After feature exploration, you can find the On-Device Performance results, which display the RAM, ROM, and latency for both optimized (Int8) and unquantized (Float32) models. If the RAM usage of your model exceeds the recommended specifications for your microcontroller, you will need to retrain your model and adjust some parameters in your Neural Network Settings.
Please, share the screenshot of your model for On-device performance before deployment and let me know if this works, and if not so I may provide other alternatives.
“In one of my past projects, I needed to switch to transfer learning for object detection and use the MobileNetV1 model for training. I set the image size to 96px X 96px with RGB color depth on the Image data Block. It’s important to check the number of features on the input layer before starting the training because a large number can result in a bigger model size.”
Hi and thanks for the reply. the model fits perfectly in the RAM. I am able to do multiple inferences already as you see in the log. If i use a bigger model, the memory allocation problem occurs earlier. The artefact i am seeing feels more like unfreed memory.