Project ID:
568123
Intent
As esp-eye is not so readily available or is very expensive, I wanted to use and test vision capabilities using AI-Thinker board ESP-32 board. I found that this was mentioned here so I wanted to give it a try to check out end-to-end capture, to training, to deployment and runtime experience.
Model performance was not the goal.
Context/Use case:
Preparation of board for capture (Although I think documentation can be better), The capture, labelling and and Training was done with little to no hiccups, post training, when library was exported.
Details below.
Question/Issue:
After exporting as Arduino library (Unoptimized (float32)), as first step,
for the static_buffer
example, I commented out everything & just kept the library import to see if it compiles:
Test simple static buffer code modified to just test exported library import
#include <esp32-cam-test_inferencing.h>
static const float features[] = {
// copy raw features here (for example from the 'Live classification' page)
// see https://docs.edgeimpulse.com/docs/running-your-impulse-arduino
};
void setup() {
Serial.begin(115200);
// comment out the below line to cancel the wait for USB connection (needed for native USB)
while (!Serial)
;
Serial.println("Edge Impulse Inferencing Demo");
}
void loop() {
delay(1000);
}
Arduino IDE Version: 2.3.3
Board Settings : for compilation
Board: "AI Thinker ESP32-CAM"
CPU Frequency: "240 MHZ (WiFi/BT)"
Core Debug Level: "None"
Erase All Flash Before Sketch Upload: "Disabled"
Flash Frequency: "80 MHz"
Flash Mode: "QIO"
Partition Scheme: "Huge APP (3 MB No OTA/1 MB SPIFFS)"
I got the following error:
Partial Error only output from IDE
...
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/algorithm:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/common.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/reference/binary_function.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/logical_common.cpp:16:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/l2_pool_2d.cpp:23:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/algorithm:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/reference/pooling.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/l2_pool_2d.cpp:19:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/leaky_relu.cpp:23:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/algorithm:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/reference/leaky_relu.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/leaky_relu.cpp:16:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/fake_micro_context.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_runner.h:22,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_runner.cpp:16:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/utility:69,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/third_party/flatbuffers/include/flatbuffers/fb_base.h:46,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/third_party/flatbuffers/include/flatbuffers/fb_array.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/third_party/flatbuffers/include/flatbuffers/flatbuffers.h:22,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_utils.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:24:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/logistic.cpp:26:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/algorithm:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/reference/integer_ops/logistic.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/logistic.cpp:16:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/log_softmax.cpp:25:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/algorithm:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/reference/log_softmax.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/log_softmax.cpp:15:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/l2norm.cpp:21:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/vector:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/portable_tensor.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/l2norm.cpp:17:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/lstm_eval.h:27,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/lstm_eval.cpp:15:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/algorithm:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/lstm_eval.h:22:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/if.cpp:24:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/algorithm:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/types.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/tensor_ctypes.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:24:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
In file included from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/flatbuffer_conversions_bridge.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/micro_context.h:20,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:26,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util_micro.cpp:16:
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h: In member function 'T* tflite::BuiltinDataAllocator::AllocatePOD()':
/Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.h:46:24: warning: 'template<class _Tp> struct std::is_pod' is deprecated: use is_standard_layout && is_trivial instead [-Wdeprecated-declarations]
46 | static_assert(std::is_pod<T>::value, "Builtin data structure must be POD.");
| ^~~~~~
In file included from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_pair.h:60,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:64,
from /Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/algorithm:60,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/types.h:18,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/kernels/internal/tensor_ctypes.h:19,
from /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing/src/edge-impulse-sdk/tensorflow/lite/micro/kernels/kernel_util.h:24:
/Users/saurabhdatta/Library/Arduino15/packages/esp32/tools/esp-x32/2302/xtensa-esp32-elf/include/c++/12.2.0/type_traits:757:5: note: declared here
757 | is_pod
| ^~~~~~
Using library esp32-cam-test_inferencing at version 1.0.1 in folder: /Users/saurabhdatta/Documents/Arduino/libraries/esp32-cam-test_inferencing
exit status 1
Compilation error: exit status 1
Seems like the library doesn’t even compile
Exact Steps Taken, from the beginning:
-
AI-Thinker board ESP-32 board preparation for capture: I followed this tutorial here from the edge impulses’s github page and Espressif’s documentation from here and here.
I needed to flash this way as I needed to compile the binary with swapped pins for my board (AI-Thinker board ESP-32) and not esp-eye for which you have provided an convenient binary and a flashing script.
This step worked, No problem.
-
Capture settings and Training Settings in Edge Impulse Studio
-
Capture: Now that the right ingestion firmware was flashed, it was time to collect some data. After registering the project using
edge-impulse-daemon
from the terminal. I switched toweb USB
method to capture the data. The Frame size was320x240
.
All the data were then captured and labelled successfully
-
Create Impulse: I saw once that during training, it fails, if the image is not sq. My Question here is then why do you allow users to set that diff sizes for
width
andheight
just to fail later? suggestion: keep the ratios 1:1 in the selection box. Anyways, I selectedto Squash
andw=96
andh=96
, as highlighted.
Am I doing something wrong here?
-
Generate Image Features: I kept color depth to
RGB
and generated the features.
I know, not enough data, but that is not the issue I guess
- Training was successfully completed and Live classification also worked, at-least as expected from the training result.
-
-
Exporting for Devices: I did not export the esp-eye binary as the bin is compiled and pin swaps necessary for my module, could not be defined. So I exported Arduino Lib, used
Unoptimized float 32
, hoping to get better performance.Am I doing something wrong here?
-
Importing into IDE: As stated above, from examples, tried the
libraries/esp32-cam-test_inferencing/examples/static_buffer/static_buffer.ino
, removed everything from it (check the sketch above), just to test library import is working correctly. The board settings are mentioned above.
I get the aforementioned error.
Expected Outcome:
Before I could even go to camera example and select the macro for my device (AI Thinker ESP32-CAM) and try it out, the exported library is not working .
What is going on?
A Step By Step methodical guidance would be appreciated (I think I wrote a pretty decent explanatory query.
Environment:
- Platform: AI Thinker ESP32-CAM
- Build Environment Details: Arduino IDE 2.3.3, ESP32 Core 3.0.7
- OS Version: MacOS Sequoia 15.1
EI_STUDIO_VERSION_MAJOR: 1
EI_STUDIO_VERSION_MINOR: 61
EI_STUDIO_VERSION_PATCH: 26
-
Edge Impulse CLI Version:
Edge Impulse serial daemon v1.30.1
-
Project Version: [e.g., 1.0.0]
Logs/Attachments: Attached above …