Links

Renesas RZ/V2L

The Renesas RZ/V2L is the latest state-of-the-art general-purpose 64-bit Linux MPU with a dual-core ARM Cortex-A55 processor running at 1.2GHz and ARM Mali-G31 3D graphic engine.
The RZ/V2L EVK consists of a SMARC SOM module and an I/O carrier board that provides a USB serial interface, 2 channel Ethernet interfaces, a camera and an HDMI display interface, in addition to many other interfaces (PMOD, microphone, audio output, etc.). The RZ/V2L EVK can be acquired directly through the Renesas website. Since the RZ/V2L is intended for vision AI, the EVK already contains the Google Coral Camera Module.
Renesas RZ/V2L
The Renesas RZ/V2L board realizes hardware acceleration through the DRP-AI IP that consists of a Dynamically Configurable Processor (DRP), and Multiply and Accumulate unit (AI-MAC). The DRP-AI IP is designed to process the entire neural network plus the required pre- and post-processing steps. Additional optimization techniques reduce power consumption and increase processing performance. This leads to high power efficiency and allows using the MPU without a heat sink.
Note that, the DRP-AI is designed for feed-forward neural networks that are usually in vision-based architectures. For more information about the DRP-AI, please refer to the white paper published by the Renesas team.
The Renesas tool “DRP-AI translator” is used to translate machine learning models and optimize the processing for DRP-AI. The tool is fully supported by Edge Impulse. This means that machine learning models downloaded from the studio can be directly deployed to the RZ/V2L board.
For more technical information about RZ/V2L, please refer to the Renesas RZ/V2L documentation.

1. Linux image preparation

Renesas provides Yocto build system to build all the necessary packages and create the Linux image. In this section, we will build the Linux image with the Edge Impulse CLI tools. However, Renesas recommends using the Ubuntu 20.04 Linux distribution to build the Linux image. Therefore, we recommend building the image inside a Docker container if you are not using Ubuntu 20.04.

Docker

Install Docker Desktop for macOS and Windows. For Linux, please refer to the Ubuntu installation instructions.

Yocto

This guide assumes that the user does not have any experience in Yocto. The objective is to provide the user with the necessary configurations to build the Linux image and Edge Impulse CLI. For further details about Yocto please refer to this page.
In order to build the Yocto Image, please download the latest version of RZ/V2L Verified Linux Package (v3.0.0) from the Renesas download section (can be found here). Please create an account on Renesas' website to be able to download the package. Once the package is downloaded, please copy the package to the docker container using this command
docker cp /host/path/target <containerId>:/file/path/within/container
In addition to the Verified Linux Package (VLP) v3.0.0, you need to download the DRP-AI package from Renesas' website as well. Please consult this link.
Decompress the package using the unzip command. Inside the package, you will find a directory that contains several PDF files. Please refer to the file that ends with rz-v2l-linux.pdf to have a look at the build instruction. You need also to do a similar thing for the DRP-AI package. The idea is to extract the Yocto layers for the Linux image and the DRP-AI. Please follow the Renesas documentation to see how to compile these two layers together.
Note that, it is recommended to add the Mali GPU support layer and the codec layer to get the advantage of the GPU hardware acceleration. Installation instructions for GPU and codec layers can be found on Renesas' website.
Note: The Renesas documentation might refer to adding additional layers such as the ISP layer. Please do not add this layer for now (current version VLP 3.0.0), as the SW setup isn’t compatible yet. This is going to change with the next release b/o 2023.
Please build the Weston image instead of building the minimal image when going through the instructions.
If you are a root user inside a docker container, you will need to disable the security check in order to allow for bitbake to start the build process. This can be done by commenting out the sanity check in poky/meta/conf/sanity.conf as follows:
# INHERIT += "sanity"
In addition, it is required to modify the BSP layer as follows in order to be able to start the build:
mv -n ../meta-renesas/include/core-image-bsp.inc ../meta-renesas/include/core-image-bsp.inc_org
grep -v "lttng" ../meta-renesas/include/core-image-bsp.inc_org >> ../meta-renesas/include/core-image-bsp.inc
Yocto configurations without Firefox
Once you finish the build instructions, we need to add Edge Impulse CLI packages to the Yocto build. Edge Impulse CLI requires to have nodejs and npm packages installed in addition to upgrading the glibc version from 2.28 to 2.31. To do this, we need to add the following configurations to Yocto build configurations page at the end of local.conf file that is located inside the build directory build/conf/local.conf.
# Select CIP Core packages
CIP_CORE = "0"
IMAGE_INSTALL_append = " \
nodejs \
nodejs-npm \
"
BBMASK = "meta-renesas/recipes-common/recipes-debian"
Yocto configurations with Firefox
This step is optional, but it allows adding support for the Firefox browser. First, you need to follow the above instructions on installing nodejs and upgrading glibc. Second, you need to follow the instructions on Adding the HTML5 website from Renesas' website.

Flashing the SD card with the Yocto image

Once the image has been built you will see the images subdirectory inside the build/tmp/deploy directory. To flash the image to an SD card, Renesas has published a guide on how to do this on their renesas.info website. Please go to this page and go to section 4 on that page.
If you are inside a docker container, you will need to copy the build directory from the container to the host. Use this command to do so, you need to specify the path on the container and the path on the host:
docker cp <containerId>:/file/path/within/container /host/path/target
If you are not using the docker container then it should be straightforward as described above.

Accessing the board using screen

The easiest way is to connect through serial to the RZ/V2L board using the USB mini b port.
  1. 1.
    After connecting the board with a USB-C cable, please power the board with the red power button.
  2. 2.
    Please install screen to the host machine and then execute the following command from Linux to access the board:
    screen /dev/ttyUSB0 115200
  3. 3.
    You will see the boot process, then you will be asked to log in:
    • Log in with username root.
    • There is no password
Note that, it should be possible to use an Ethernet cable and log in via SSH if the daemon is installed on the image. However, for simplicity purposes, we do not refer to this one here.

2. Installing Edge Impulse Linux CLI

Once you have logged in to the board, please run the following command to install Edge Impulse Linux CLI
npm config set user root && npm install edge-impulse-linux -g --unsafe-perm

3. Connecting to Edge Impulse

With all software set up, connect your google coral camera to your Renesas board (see 'Next steps' further on this page if you want to connect a different sensor), and run:
edge-impulse-linux
This will start a wizard which will ask you to log in and choose an Edge Impulse project. If you want to switch projects run the command with --clean.

4. Verifying that your device is connected

That's all! Your device is now connected to Edge Impulse. To verify this, go to your Edge Impulse project, and click Devices. The device will be listed here.
Device connected to Edge Impulse.

Next steps: building a machine learning model

Currently, all Edge Impulse models can run on the RZ/V2L CPU which is a dedicated Cortex A55. In addition, you can bring your own model to Edge Impulse and use it on the device. However, if you would like to benefit from the DRP-AI hardware acceleration support including higher performance and power efficiency, please use one of the following models:
For object detection:
  • Yolov5 (v5)
  • FOMO (Faster objects More Objects)
For Image classification:
  • MobileNet v1, v2
It supports as well models built within the studio using the available layers on the training page.
Note that, on the training page you have to select the target before starting the training in order to tell the studio that you are training the model for the RZ/V2L. This can be done on the top right in the training page.
Selecting the target from the training page
If you would like to do object detection with Yolov5 (v5) you need to fix the image resolution in the impulse design to 320x320, otherwise, you might risk that the training fails.
With everything set up you can now build your first machine learning model with these tutorials:

EON tuner

If you are interested in using the EON tuner in order to improve the accuracy of the model this is possible only for image classification for now. EON tuner supports for object detection is arriving soon.
If you use the EON tuner with image classification, you need to filter the int8 models since they are not supported by the DRP-AI. Also, you need to filter the grayscale models as well. Note that if you leave the EON tuner page, the filter will reset to the default settings, which means you need to re-filter the above models.

Deploying back to the device

To run your impulse locally, just connect to your Renesas RZ/V2L and run:
edge-impulse-linux-runner
This will automatically compile your model with full hardware acceleration and download the model to your Renesas board, and then start classifying.
Or you can select the RZ/V2L board from the deployment page, this will download an eim model that you can use with the above runner as follows:
Go to the deployment page and select:
EIM model for the RZ/V2L
Then run the following on the RZ/V2L:
edge-impulse-linux-runner --model-file downloaded-model.eim
You will see the model inferencing results in the terminal also we stream the results to the local network. This allows you to see the output of the model in real-time in your web browser. Open the URL shown when you start the runner and you will see both the camera feed and the classification results.

DRP-AI library

Since the RZ/V2L benefits from hardware acceleration using the DRP-AI, we provide you with the drp-ai library that uses our C++ Edge Impulse SDK and models headers that run on the hardware accelerator. If you would like to integrate the model source code into your applications and benefit from the drp-ai then you need to select the drp-ai library.
We have an example showing how to use the drp-ai library that can be found in Deploy your model as a DRP-AI library.
DRP-AI library