Tutorial 0: Corerain RainBuilder Development Kit Introdution

  • Corerain RainBuilder Development Kit

    With the rapid development of deep learning technology, Convolution Neural Network (CNN) has gradually become the first choice for different applications in the field of computer vision (CV). Although CNN's performance on many classic CV problems is outperform traditional machine learning algorithms, it still has a lot design challenges due to high computation complexity.

    RainBuilder is an End-to-End development kit designed for deep learning to provide an efficient and easy-to-use underlying hardware solution for deep learning algorithms.

    This tutorial will take the classic face detection in CV as an example to introduce how to use RainBuilder in detail.

    Brief introduction of RainBuilder

    RainBuilder uses Rainman's 3rd generation accelerator (RainmanV3) board developed by Corerain Technology as a hardware platform. It provides an easy-to-use compiling tool that can directly convert Tensorflow model to an application that can be directly downloaded into hardware, so that users can easly deploy application developed by CNN into IoT devices such as cameras, drones, and robots.

    Rainman V3 board

    RainBuilder contains three components which we will introduce in Turotial 2, 3, and 4 respectively.

    • CNN algorithm training module - Tutorial 2
      training module is based on Tensorflow, supports user-defined tasks and related parameters for model optimization
    • Plumber: the Graph structure analysis tool - Tutorial 3
      Analyze the Tensorflow graph structure and translate the model definitions and data types to the form that Rainman V3 support.
      Optimize the model structure and parameter for Rainman V3.
      Base on the provided model to generate hardware configuration parameters.
    • How to Raintime based on SSD example- Tutorial 4
      Raintime running time in Rainman V3.

    Development Kit introduction

    This development kit contains two parts:

    • Docker -- Contains training modules and Plumber tool
    • Rainman 3rd generation development board -- Raintime runtime development environment and SSD example installed.

    Develop steps

    In Docker

    1. Data preparation -- Collect and mark the training data.
    2. Data conversion -- Convert data and its annotation into Tensorflow data types.
    3. Model training -- Define the model structure and optimize parameters.
    4. Model analysis -- Use Plumber to analyzes the graph structure of Tensorflow.
    5. Model Transformation -- Plumber transforms the model into the data type used by RainmanV3.

    Rainman Board

    1. Board Configuration -- Download the file generated in step 5 to the board to complete the board configuration.
    2. Application Development -- Call the Raintime interface to complete the CNN inference function.
    3. Board Integration -- Call the RainIO interface to complete the communication between the board and external data.

    Tutorial Introduction

    This tutorial is divided into four parts:

    1. Introduction to the overall operation and configuration process - Tutorial 1: User guide of Rainman V3 board.
    2. Training module introduction - Tutorial 2:Algorithm training instruction.
    3. Plumber instruction - Tutorial 3:Plumber user guide.
    4. Raintime interface instruction - Tutorial 4:Running SSD example by using Raintime.

    Please read these tutorial with the order above.