Topic

Automotive

Detecto is an IP core designed by EVS that speeds up object detection tasks in programmable logic. Detecto is optimized for AMD SoC.

Problem

Object detection involves detecting instances of semantic objects of a certain class

Object detection involves detecting instances of semantic objects of a certain class (such as humans, buildings or cars) in digital images and videos. Object detection can be applied to many areas of computer vision including machine vision, driving assistance, robotics, video surveillance and image retrieval.

Methods for object detection are generally based on two steps: feature extraction and classification. They are compute-intensive and, especially on embedded systems, need to be accelerated by dedicated hardware so as not to overload the CPU. This is the case of smart cameras, car computers, IOT devices, etc.

Solution

An FPGA IP core that implements a classic ML object detection algorithm

EVS has designed Detecto, an FPGA IP core that implements a classic ML object detection algorithm, using a discriminative approach and combining a HOG (Histogram of Oriented Gradients) feature extractor and an SVM (Support Vector Machine) classifier.

Although state-of-the-art methods (e.g., based on a Yolo deep learning framework) generally outperform classical methods, the latter offer significant advantages in some contexts.

Detecto inherits all the advantages of FPGAs: parallel computing to maximize throughput, low consumption/emissions, fully pipelined to minimize DDR B/W, reconfigurability to ensure maintainability and adaptability. It is self-contained to completely offload the CPU.

The core is configurable, scalable, trainable and programmable at run-time so that multiple instances of different object classes can be detected at the same time and the object of interest, search area and depth range can be modified.

It is compatible with all AMD SoC families and can easily be integrated and configured in your design through the AMD Vivado suite.

Detecto was tested and successfully used in real applications to detect pedestrians, cars, faces, motorcycles, road signs, cells and many other objects.

Added value

Embedded vision devices with additional object detection capabilities

Manufacturers of embedded vision devices equipped with a AMD FPGA, who need to add object detection capabilities to their specific applications, can benefit from Detecto. The added value of using Detecto in your FPGA design project can be summarized as follows:

  • high ratio between performance (i.e., speed and accuracy) and compactness in terms of programmable logic resources which make it particularly suitable for targeting small devices;
  • easy to use, train, integrate and program;
  • well-tested and ready to use with a consequent reduction in time to market.

Detecto can also be used to support neural approaches by acting as a region proposal generator to implement the redundancy required for functional safety.

Project partner

The Detecto project started in 2010 in collaboration with AMD Automotive and is the result of over 10 years of R&D in which the core was refined and validated in projects with our customers. Over 40 system integrators and tier 1 in the Automotive industry have been using Detecto for prototyping and several of them are using Detecto in production.

Insights

Training & Testing Tools

Detecto comes with an ad hoc software tool called STK used for training and testing object detector models targeting the IP core. STK was designed to simply and effectively assist users in complex operations, from media annotation to training configuration. With STK, anyone, not only machine learning experts, can train a classifier.

You can use STK to train the model on your specific dataset and preview Detecto’s performance in your test scenario.

Using the Demo App, detection can be run directly on the hardware platform connected to your PC using your media (image folders or video files) as input data. The trained models provided can be used as a target object model. The STK can be used to train your new model starting from your training data.

The development of STK was sponsored by AMD.