Changes

Jump to: navigation, search

ML-TN-002 - Real-time Social Distancing estimation

360 bytes added, 17:47, 18 February 2021
Introduction
To date, though, the computing power required for algorithms that complex has represented a hurdle difficult to overcome, hindering the adoption of embedded platforms for these tasks. Recently, new system-on-chips (SoC's) integrating Neural Network hardware accelerators have appeared on the market, however. Thanks to such an improvement in terms of computational power, these devices allow the implementation of novel solutions satisfying all the above-mentioned requirements.
This Technical Note illustrates one of these implementations regarding the real-time social distancing estimation issue. This work started off the publicly-available , open-source Social-Distancing project released by the [https://iit.it/|Istituto Istituto Italiano di Tecnologia (IIT)], which is illustrated in this [https://arxiv.org/abs/2011.02018v2 paper]. The goal was to port the IIT code onto a one of the DAVE Embedded Systems Single Board Computer (SBC) powered by the [https://wwwwiki.nxpdave.comeu/productsindex.php/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-8-processors/i-mx-8m-plus-arm-cortex-a53-machine-learning-vision-multimedia-and-industrial-iot:IMX8MPLUS|NXP i.MX8M Plus SoCMain_Page#Single_Board_Computers Single Board Computers]. This (SBC) suitable to build an industrial/automotive-grade SoC is built around a 4-core ARM Cortex A53 CPU and has a rich set of peripherals and systems. It also integrates a 2.3 TOPS Neural Processing Unit (NPU) and native interfaces to connect image sensors making it suited automatic machine vision system for this kind of applicationssocial distancing.
==The hardware/software platform==
The hardware platform consists ofchoice fell on the [https:* //wiki.dave.eu/index.php/ORCA_SBC ORCA SBC* TBDRegarding the software platform], it which is based on powered by the [https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-8-processors/i-mx-8m-plus-arm-cortex-a53-machine-learning-vision-multimedia-and-industrial-iot:IMX8MPLUS|NXP BSP TBDNXP i. In addition to the default packages, MX8M Plus SoC]. This industrial/automotive-grade SoC is built around a 4-core ARM Cortex-A53 CPU and has a number rich set of libraries were added peripherals and systems. It also integrates a 2.3 TOPS Neural Processing Unit (NPU) and native interfaces to satisfy the application's requirementsconnect image sensors making it suited for computer vision applications.
The system software is a Yocto Linux distribution derived from the [https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX NXP 5.4.70_2.3.0] BSP. In addition to the default packages, a number of libraries were added to satisfy the application's requirements. === Main application =Application software ==
As stated previously, the main application derives from the IIT Social-Distancing project. It was developed in several steps starting when only a few alpha samples of the i.MX8M Plus were available thanks to the fact that DAVE Embedded Systems joined the the component's beta program.
==== Step #1 ====
The first step was conducted using the official evaluation kit (EVK) by NXP. The goal was to make the Social-Distancing project to work on this platform maintaining the core functionalities. In essence, the code was modified in order to replace the [https://github.com/CMU-Perceptual-Computing-Lab/openpose OpenPose library] with [https://github.com/tensorflow/tfjs-models/tree/master/posenet PoseNet]. This was required to cope with the operations actually supported by the [https://www.nxp.com/design/software/development-software/eiq-ml-development-environment:EIQ NXP eIQ] software stack and the NPU. For those who are familiar with embedded software development, this should be unsurprising. When porting applications from PC-like platforms to embedded platforms, in fact, handling such hardware/software constraints is a common practice.
The resulting processing pipeline is shown in the following figure.
[[File:Ss-main-pipeline-20210127.png|center|thumb|600x600px|Processing pipeline]]
The yellow boxes indicate processing performed by the ARM cores , while the green one refers to the computation carried out by the NPU.
The following screenshots show the application running on the EVK.
4,650
edits

Navigation menu