MCUXpresso_MIMXRT1052xxxxB/boards/evkbimxrt1050/eiq_examples/deepviewrt_image_detection
Yilin Sun 6baf4427ce
Updated to v2.15.000
Signed-off-by: Yilin Sun <imi415@imi.moe>
2024-03-18 23:15:10 +08:00
..
armgcc Updated to v2.15.000 2024-03-18 23:15:10 +08:00
source Updated to v2.15.000 2024-03-18 23:15:10 +08:00
board.c Updated to v2.15.000 2024-03-18 23:15:10 +08:00
board.h Updated to v2.15.000 2024-03-18 23:15:10 +08:00
board_init.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
board_init.h Updated to v2.15.000 2024-03-18 23:15:10 +08:00
clock_config.c Update SDK to v2.13.0 2023-01-26 09:35:56 +08:00
clock_config.h Update SDK to v2.13.0 2023-01-26 09:35:56 +08:00
cr_section_macros.h Updated to v2.15.000 2024-03-18 23:15:10 +08:00
dcd.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
dcd.h SDK v2.11.1 2022-04-08 22:46:35 +08:00
deepviewrt_image_detection_v3_14.xml Updated to v2.15.000 2024-03-18 23:15:10 +08:00
evkbimxrt1050_sdram_init.jlinkscript Updated to v2.14.0 2023-11-30 20:55:00 +08:00
main.c Updated to v2.12.0 2022-08-24 23:30:23 +08:00
model.S SDK v2.11.1 2022-04-08 22:46:35 +08:00
pin_mux.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
pin_mux.h SDK v2.11.1 2022-04-08 22:46:35 +08:00
readme.md Updated to v2.15.000 2024-03-18 23:15:10 +08:00

readme.md

Overview

This "Image Detection" example shows the demonstration of using DeepViewRT API to do image detection on an IMXRT platform. The application could identify multiple objects in a single image and outputs the result via UART console. The result is including detected object name and bounding box array.

Documentation

https://www.nxp.com/design/software/development-software/eiq-ml-development-environment:EIQ

Library configuration

Stack memory configuration During the library compilation, based on the stack memory configuration, the EIGEN_STACK_ALLOCATION_LIMIT macro definition can be set to the maximum size of temporary objects that can be allocated on the stack (they will be dynamically allocated instead). A high number may cause stack overflow. A low number may decrease object allocation performance.

SDK version

  • Version: 2.15.000

Toolchain supported

  • MCUXpresso 11.8.0
  • IAR embedded Workbench 9.40.1
  • Keil MDK 5.38.1
  • GCC ARM Embedded 12.2

Hardware requirements

  • Mini/micro USB cable
  • EVKB-IMXRT1050 board
  • Personal Computer

Board settings

No special settings are required.

Prepare the Demo

  1. Connect a USB cable between the PC host and the OpenSDA(or USB to Serial) USB port on the target board.
  2. Open a serial terminal on PC for OpenSDA serial(or USB to Serial) device with these settings:
    • 115200 baud rate
    • 8 data bits
    • No parity
    • One stop bit
    • No flow control
  3. Insert the Ethernet Cable into the target board's RJ45 port and connect it to a router (or other DHCP server capable device).
  4. Download the program to the target board.
  5. Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.

Running the demo

The log below shows the output of the demo in the terminal window (compiled with MCUX):

begin post-processing
Class ID = [1][person]
Class ID = [2][bicycle] [...]
Class ID = [16][bird]
Class ID = [17][cat]
Class ID = [18][dog]
Class ID = [19][horse] Predicted bounding box[0]: 0.316 0.061 0.900 0.408 (0.966182) Predicted bounding box[1]: 0.070 0.323 0.890 0.657 (0.909269) Predicted bounding box[2]: 0.475 0.628 0.798 0.845 (0.812548) Predicted bounding box[3]: 0.468 0.837 0.821 0.998 (0.778532) Class ID = [20][sheep]
Class ID = [21][cow]
Class ID = [24][zebra] [...]
Class ID = [90][toothbrush]
decode img takes 54000 us, inference takes 2378000 us