Не удается включить распознавание лиц на esp32 cam : CORRUPT HEAP: Bad head at 0x3ffe2eb4. Expected 0xabba1234 got 0x00000008 abort()

Я пытался сделать esp32 распознавание лиц , используя пример веб-сервера камеры esp32 в arduino , и все работает хорошо, пока я не нажму на распознавание лиц кадр заморожен, модуль перезапущен и поставил эту ошибку на последовательный монитор :


CORRUPT HEAP: Bad head at 0x3ffe2eb4. Expected 0xabba1234 got 0x00000008
abort() was called at PC 0x4008a64d on core 1

ELF file SHA256: 0000000000000000

Backtrace: 0x4008df7c:0x3ffe1c30 0x4008e1f5:0x3ffe1c50 0x4008a64d:0x3ffe1c70         
0x4008a779:0x3ffe1ca0 0x400f97cb:0x3ffe1cc0 0x400f5a61:0x3ffe1f80 0x400f59f0:0x3ffe1fd0     
0x40093545:0x3ffe2000 0x40082976:0x3ffe2020 0x4008a545:0x3ffe2040 0x4000bec7:0x3ffe2060     
0x400d1bc9:0x3ffe2080 0x401194f5:0x3ffe2230 0x40119bfd:0x3ffe2260 0x40119cb5:0x3ffe22f0 
0x4011a088:0x3ffe2310 0x40118774:0x3ffe2330 0x401187cb:0x3ffe2370 0x4008fe86:0x3ffe2390

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_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:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4

 

Я попробовал стереть flash но она снова сделала ту же ошибку Я использую Arduino IDE 1.8.12 , esp32-cam , работающий на 5 вольт от программатора (также пробовал другие внешние источники питания) , и вот фотографии настроек : (также использовал wrover kit в настройках программирования с огромным приложением >3 мб)>

Имя чипа ESP32 Cam Программатор FTDI AI THINKER Настройки

Я хочу сделать дверной замок для распознавания лиц , если это не работает, может ли кто-нибудь обратиться ко мне, как я могу получить распознавание лиц на esp32 cam любым другим способом?

, 👍2


3 ответа


0

Я столкнулся с этой проблемой с той же настройкой. Эта проблема с Github кажется идентичной нашей, и применение исправления в этом комментарии быстро решило ее для меня: https://github.com/espressif/arduino-esp32/issues/5128#issuecomment-851785970. Удачи!

,

Хотя теоретически это может дать ответ на вопрос, [было бы предпочтительнее](//meta.stackexchange.com/q/8259 ) включить сюда основные части ответа и предоставить ссылку для справки., @Juraj


1

Откатите драйвер платы ESP32 до 1.04. работает для меня ;-)

,

Спасибо!! это сработало для меня!!!, @ujjaldey


2

У меня недостаточно репутации, чтобы иметь возможность добавить комментарий, но, используя ответ Эндрю Харта, я смог решить эту проблему. Для полноты этой темы в случае, если связанное решение когда-либо исчезнет:

Найдите эти разделы в app_httpd.cpp:

if (net_boxes){
    detected = true;
    if(recognition_enabled){
        face_id = run_face_recognition(image_matrix, net_boxes);
    }
    draw_face_boxes(image_matrix, net_boxes, face_id);
    free(net_boxes->score);
    free(net_boxes->box);
    free(net_boxes->landmark);
    free(net_boxes);

и

fr_recognize = esp_timer_get_time();
draw_face_boxes(image_matrix, net_boxes, face_id);
free(net_boxes->score);
free(net_boxes->box);
free(net_boxes->landmark);
free(net_boxes);

замените 4 бесплатныхв каждом блоке на dl_lib_free.

,

Вышеупомянутые замены free (...) -> dl_lib_free (...) устранили проблему для меня. Это было сделано на версии платы 2.0.0 в Arduino IDE. Я смог вернуться к версии 1.0.4 и оказался в рабочем состоянии, но производительность была определенно хуже (где 1,5 кадра / с - хорошая производительность). Не забудьте повторно записаться, если вы сбреете бороду... Не то чтобы я не мог открыть шкаф из-за этого или чего-то еще., @Alex_L