- Notifications
You must be signed in to change notification settings - Fork0
Create a smart video IoT solution using Intel® hardware and OpenVino Toolkit. The app will detect people in a designated area, providing the number of people in the frame, the average duration of people in the frame, and total count. Send all calculated Stats and Output Image to the server using Mosca and FFmpeg server.
Ahwar/PeopleCounter-IoT-App-Intel-OpenVino
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Details | |
---|---|
Programming Language: | Python 3.5 or 3.6 |
Intel® Distribution of OpenVINO™ toolkit version: | 2020.3 LTS release |
The people counter application will demonstrate how to create a smart video IoT solution using Intel® hardware and software tools. The app will detect people in a designated area, providing the number of people in the frame, average duration of people in frame, and total count. Send all calculated Stats and Output Image to the server using Mosca and FFmpeg server.
The counter will use the Inference Engine included in the Intel® Distribution of OpenVINO™ Toolkit. The model used will be able to identify people in a video frame. The app should count the number of people in the current frame, the duration that a person is in the frame (time elapsed between entering and exiting a frame) and the total count of people. It then sends the data to a local web server using the Paho MQTT Python package.
- 6th to 10th generation Intel® Core™ processor with Iris® Pro graphics or Intel® HD Graphics.
- OR use of Intel® Neural Compute Stick 2 (NCS2)
- Intel® Distribution of OpenVINO™ toolkit 2020.3 LTS release
- Node v6.17.1
- Npm v3.10.10
- CMake
- MQTT Mosca server
refer to the relevant instructions for your operating system for this step.
refer to the relevant instructions for your operating system for this step.
There are three components that need to be running in separate terminals for this application to work:
- MQTT Mosca server
- Node.js* Web server
- FFmpeg server
From the main directory:
For MQTT/Mosca server:
cd webservice/servernpm install
For Web server:
cd ../uinpm install
Note: If any configuration errors occur in mosca server or Web server while usingnpm install, use the below commands:
sudo npm install npm -g rm -rf node_modulesnpm cache cleannpm config set registry "http://registry.npmjs.org"npm install
We used pretrained intel model from Intel OpenVino Model Zoo. i.eperson-detection-retail-0013.
To download use steps below.You can also seeOpenVino Model Downloader Guide
go to model downloader script
cd /opt/intel/openvino/deployment_tools/tools/model_downloader
downloadperson-detection-retail-0013
model.
python downloader.py --name person-detection-retail-0013 -o [project_home_dir]/models/
now model is download at[project_home_dir]/models/intel/
From the main directory:
cd webservice/server/node-servernode ./server.js
You should see the following message, if successful:
Mosca server started.
Open new terminal and run below commands.
cd webservice/uinpm run dev
You should see the following message in the terminal.
webpack: Compiled successfully
Open new terminal and run the below commands.
sudo ffserver -f ./ffmpeg/server.conf
Open a new terminal to run the code.
You must configure the environment to use the Intel® Distribution of OpenVINO™ toolkit one time per session by running the following command:
source /opt/intel/openvino/bin/setupvars.sh -pyver 3.5
You should also be able to run the application with Python 3.6, although newer versions of Python will not work with the app.
Though by default application runs on CPU, this can also be explicitly specified by-d CPU
command-line argument:
python main.py -i resources/Pedestrian_Detect_2_1_1.mp4 -m models/intel/person-detection-retail-0013/FP32/person-detection-retail-0013.xml -d CPU -pt 0.6 | ffmpeg -v warning -f rawvideo -pixel_format bgr24 -video_size 768x432 -framerate 24 -i - http://0.0.0.0:3004/fac.ffm
To run on the Intel® Neural Compute Stick, use the-d MYRIAD
command-line argument:
python main.py -d MYRIAD -i resources/Pedestrian_Detect_2_1_1.mp4 -m models/intel/person-detection-retail-0013/FP16/person-detection-retail-0013.xml -pt 0.6 | ffmpeg -v warning -f rawvideo -pixel_format bgr24 -video_size 768x432 -framerate 24 -i - http://0.0.0.0:3004/fac.ffm
To see the output on a web based interface, open the linkhttp://0.0.0.0:3004 in a browser.
Note: The Intel® Neural Compute Stick can only run FP16 models at this time. The model that is passed to the application, through the-m <path_to_model>
command-line argument, must be of data type FP16.
To get the input video from the camera, use the-i CAM
command-line argument. Specify the resolution of the camera using the-video_size
command line argument.
For example:
python main.py -i CAM -m your-model.xml -l /opt/intel/openvino/deployment_tools/inference_engine/lib/intel64/libcpu_extension_sse4.so -d CPU -pt 0.6 | ffmpeg -v warning -f rawvideo -pixel_format bgr24 -video_size 768x432 -framerate 24 -i - http://0.0.0.0:3004/fac.ffm
To see the output on a web based interface, open the linkhttp://0.0.0.0:3004 in a browser.
Note:User has to give-video_size
command line argument according to the input as it is used to specify the resolution of the video or image file.
As such,to run on your local machine, you will need to change the below file:
webservice/ui/src/constants/constants.js
TheCAMERA_FEED_SERVER
andMQTT_SERVER
both use the workspace configuration.You can change each of these as follows:
CAMERA_FEED_SERVER: "http://localhost:3004"...MQTT_SERVER: "ws://localhost:3002"
About
Create a smart video IoT solution using Intel® hardware and OpenVino Toolkit. The app will detect people in a designated area, providing the number of people in the frame, the average duration of people in the frame, and total count. Send all calculated Stats and Output Image to the server using Mosca and FFmpeg server.
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Contributors2
Uh oh!
There was an error while loading.Please reload this page.