วันศุกร์ที่ 15 กรกฎาคม พ.ศ. 2565

Raspberry pi 4B Object Detection with Intel Neural Compute Stick and OpenVINO

Raspberry pi Object Detection with Intel Neural Compute Stick and OpenVINO

This project showcases Object Detection on edge device.

We use Raspberry pi 4B board with Intel NCS ( Neural Compute Stick ) and OpenVINO Library and Source code from Intel AI.

 

Hardware

·     Raspberry Pi Board (4B )
·     Intel Neural Compute Stick 2
·     SD Card 32GB
·     5V DC. 2A Power Supply

Software

·     OS Raspbien 10 ( Buster )
·     Python 3.7.3
·     OpenVINO Toolkit 2019.R3
·     OpenCV 4.0.0

Machine Learning Object Detection Model : Mobilenet SSD V2

Run Python Code ( Async Mode )

Async API usage can improve overall frame-rate of the application, because rather than wait for inference to complete, the app can continue doing things on the host, while accelerator is busy.

This and other performance implications and tips for the Async API are covered in the Optimization Guide.

Other demo objectives are:

  • Video as input support via OpenCV*

  • Visualization of the resulting bounding boxes and text labels (from the .labels file) or class number (if no file is provided)



Video Test   : 960x540 pixels

Total frame  : 301 frames

Total Inference time   : 12.44 sec

Average performance : 24.20 fps

Run Python Code ( Sync Mode )





Video Test   : 960x540 pixels

Total frame  : 301 frames

Total Inference time   : 24.96 sec

Average performance : 12.06 fps


OpenVINO Toolkit

Now We try to use OpenVINO 2020.3 compare with OpenVINO 2019 R3.

OpenVINO 2020.3 frame rate is a little bit lower than OpenVINO 2019 R3.



Comparison

Async vs Sync Mode














This is my experiment may something was wrong.









YouTube Video

Raspberry pi Object Detection with Intel Neural Compute Stick and OpenVINO ( 2020.3 )

Compare Raspberry pi Object Detection Intel NCS ( Async vs. Sync mode )

Raspberry pi Object Detection with Intel Neural Compute Stick ( Sync mode )

Raspberry pi Object Detection with Intel Neural Compute Stick ( Async mode )

Compare Raspberry pi Object Detection ( TensorFlow vs. TensorFlow-lite ) 

Raspberry pi Object Detection with TensorFlow-lite ( INT8 )

Raspberry pi Object Detection with TensorFlow ( FP32 )

Reference

Raspberry pi OpenVINO with Intel Movidius ( Neural Compute Stick )

 

Install OpenVINO™ toolkit for Raspbian* OS

https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_raspbian.html

Object Detection Python* Demo

https://docs.openvino.ai/latest/omz_demos_object_detection_demo_python.html

Model ( SSD MobileNet )


https://docs.openvino.ai/latest/omz_models_model_ssd_mobilenet_v1_coco.html


https://docs.openvino.ai/latest/omz_models_model_ssdlite_mobilenet_v2.html



OpenVINO Optimization


https://docs.openvino.ai/latest/openvino_docs_optimization_guide_dldt_optimization_guide.html



Adun Nantakaew อดุลย์ นันทะแก้ว 081-6452400
LINE : adunnan

    

วันพุธที่ 13 กรกฎาคม พ.ศ. 2565

Raspberry pi 4 Object Detection with TensorFlow and TensorFlow lite

Raspberry pi 4B Object Detection with TensorFlow and Tensorflow Lite Comparison













What is object detection?

Given an image or a video stream, an object detection model can identify which of a known set of objects might be present and provide information about their positions within the image.

An object detection model is trained to detect the presence and location of multiple classes of objects. For example, a model might be trained with images that contain various pieces of fruit, along with a label that specifies the class of fruit they represent (e.g. an apple, a banana, or a strawberry), and data specifying where each object appears in the image.

When we subsequently provide an image to the model, it will output a list of the objects it detects, the location of a bounding box that contains each object, and a score that indicates the confidence that detection was correct.

Object Detection Models

We use MobileNet-v2 Model.

Run Object Detection Model on Raspberry pi 4B


TensorFlow

Software • Raspberry pi Legacy OS ( Raspbian 10 , 32 bit version ) • Tensorflow 1.14.0 • OpenCV 4.0 • Python 3.7.3 Machine Learning Model : SSD Mobilenet V2 ( FP32 )

Image JPG 1024x636 pixels

Video MP4 960x540 pixels

Result ( Image )


Loading time 8327.86 ms             @ test1

Inference time 10245.02 ms


Loading time: 7910.86 ms            @ test2

Inference time: 9650.78 ms


Loading time: 7917.60 ms            @ test3

Inference time: 9642.02 ms


Result ( Video )    ~ 2 fps



TensorFlow-lite

 
Result ( image )


Loading time: 4.13 ms            @ test1

Inference time: 229.85 ms


Loading time: 4.38 ms            @ test2

Inference time: 231.55 ms


Result ( Video )    ~ 4-5 fps



TensorFlow and TensorFlow-lite Comparison















Reference

TensorFlow

https://www.tensorflow.org/

https://github.com/tensorflow/models


TensorFlow-lite

https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi


Website : https://softpower.tech