Project 2 of the Intel® Edge AI for IoT Developers Nanodegree Program.
The aim of the project is to develop a smart queuing system and choose the appropriate hardware for three different scenarios:
To meet the customer requirements and constraints for each scenario, the system is tested on CPU, Integrated GPU, VPU and FPGA.
The project has been developed following the steps below.
A best hardware choice has initially been determined based on the requirements and needs for each scenarios.
The initial choice is documented in the hardware choice document.
For the three scenario, the main script is person_detect.py
. The detection model used is the pre-trained person-detection-retail-0013, based on MobileNetV2-like backbone.
To test the script in the three different scenarios, use the following command:
python3 person_detect.py --model <path_to_the_model> --video ./scenarios/<scenario>/<scenario>_original.mp4 --queue_param ./scenarios/<scenario>/<scenario>_queue_param.npy
The performance of the application has been tested using the Udacity workspace provided with IEI Tank AIOT Developer Kit. The queue_job.sh
script is used to submit job to Intel DevCloud and then the result are collected once the job is finished.
The tested devices for each scenario are:
- CPU: Intel® Core™ i5-6500TE Processor
- Integrated GPU: Intel® HD Graphics 530
- VPU: Intel® Neural Compute Stick 2
- FPGA: IEI Mustang-F100-A10
After testing the performance for each device, the initial hardware choice has been reviewed and both the testing and the revision are documented in the hardware choice document.