diff --git a/esp32/README.rst b/esp32/README.rst index f1d4e6d..a9f618e 100644 --- a/esp32/README.rst +++ b/esp32/README.rst @@ -26,6 +26,70 @@ Benchmark Below is a summary of the OpenCV features tested on the ESP32 and the time they took (adding the heap/stack used could also be useful). ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| Function name and arguments | BUILD_TYPE=Debug | BUILD_TYPE=Release | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| | 160x120 | 320x240 | 640x480 | 1024x768 | 160x120 | 320x240 | 640x480 | 1024x768 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| All measures are in [ms] | | ++================================================+=============+=============+=============+=============+=============+=============+=============+=============+ +| | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| **Threshold** | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| binaryThreshold | 4.5 | 18 | 69 | 175 | 2.6 | 11 | 42 | 107 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| triangleThreshold | 8.1 | 32 | 124 | 315 | 3.9 | 17 | 66 | 168 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| OTSUThreshold | 11 | 35 | 127 | 318 | 6.5 | 20 | 69 | 171 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| toZeroThreshold | 4.5 | 18 | 69 | 175 | 2.6 | 11 | 42 | 107 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| **Blurring** | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| GaussianBlur 9x9 kernel | 223 | 875 | 3473 | 9042 | 34 | 128 | 504 | 1458 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| medianBlur 9x9 kernel | 141 | 608 | 2754 | 7505 | 56 | 273 | 1425 | 4091 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| bilateralFilter diameter=9 | 413 | 1628 | 6487 | 16386 | 138 | 535 | 2119 | 5293 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| **Morphological tranforms** | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| erode 5x5 kernel | 41 | 151 | 587 | 1493 | 6.2 | 22 | 84 | 214 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| dilate 5x5 kernel | 41 | 151 | 587 | 1494 | 6.2 | 22 | 84 | 214 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| open 5x5 kernel | 81 | 299 | 1163 | 2959 | 11 | 41 | 158 | 400 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| **Resize image** | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| resize linear interpolation | 10 | 39 | 150 | 378 | 3.8 | 16 | 59 | 147 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| resize cubic interpolation | 21 | 75 | 291 | 733 | 6.5 | 27 | 108 | 277 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| **Edge detection** | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| Sobel | 34 | 116 | 438 | 1129 | 14 | 50 | 187 | 497 | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| Canny | 81 | 260 | 894 | ERR | 32 | 108 | 375 | ERR | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| **Hough tranformations** | | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| HoughLines | 392 | 897 | ERR | ERR | 313 | 681 | 2121 | ERR | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ +| HoughLines probabilistic | 699 | 1652 | ERR | ERR | 608 | 1358 | 3766 | ERR | ++------------------------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ + Installing esp-idf toolchain @@ -113,7 +177,7 @@ Adding images codecs support Things done to read/writes images in JPEG, PNG, etc.. PNG - +^^^ - Remove `-DWITH_PNG=OFF` and add `-DBUILD_PNG=ON` and `-DBUILD_ZLIB=ON` of the cmake command - => The lib `opencv_imgcodecs.a` build pass @@ -123,7 +187,7 @@ The library is compiled in the `3rdparty/` folder. Copy this folder into the esp JPEG - +^^^^ - Remove `-DWITH_JPEG=OFF` and add `-DBUILD_JPEG=ON` of the cmake command - => Problem at compilation time. TODO @@ -156,7 +220,7 @@ Imgproc module: --------------- Colorspaces - +^^^^^^^^^^^ Opencv supports multiple colorspaces (RGB, BGR, RGB565, RGBA, CIELAB, CIEXYZ, Luv, YUV, HSV, HLS, YCrCb, Bayer, Gray). All these colorspaces are not mandatory for an embedded system, so some are removed.