Skip to content

Commit 71eec1e

Browse files
authored
Update README.md
1 parent b6a465d commit 71eec1e

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
#Video Analytics Pipeline-Serving Multiple Models Together
1+
# Video Analytics Pipeline-Serving Multiple Models Together
22

3-
Hey, thanks for giving me this opportunity to test at Xihlem Robotics. Here I have presented a sample of my recent Python project.
43

5-
####AIM: The motivation to develop this system was to do video analytics inference of multiple Machine models in parallel on video streams coming via the cloud.
4+
#### AIM: The motivation to develop this system was to do video analytics inference of multiple Machine models in parallel on video streams coming via the cloud.
65

7-
####Objective:
6+
#### Objective:
87
1. Streaming video from any camera/robot to the cloud using a producer-consumer architecture with the help of AWS KVS-based HTTP streaming.
98
2. This stream from the cloud would be consumed by multiple Machine Learning Models in parallel using Threading architecture and would pump their output data into a json.
109
3. Here you could also switch specific models to run. To do this in the main.py file just comment out line no.115
@@ -14,9 +13,9 @@ Hey, thanks for giving me this opportunity to test at Xihlem Robotics. Here I ha
1413
2.This video is consumed by the main.py file and it applies multiple ML Models together.
1514
3.The output of each module is written in the output_data.json file.
1615

17-
######Note - I have used AWS Models API and YOLO Object detector for test purposes, originally I used custom-trained models served via flask.
16+
###### Note - I have used AWS Models API and YOLO Object detector for test purposes, originally I used custom-trained models served via flask.
1817

19-
##Features:
18+
## Features:
2019
- **_General Object Det ection:_** General objects that include a variety of classes. Also, can filter for classes as required.
2120

2221

@@ -34,14 +33,14 @@ Hey, thanks for giving me this opportunity to test at Xihlem Robotics. Here I ha
3433

3534
- _**YOLO**_: YOLO object detection model, served using Flask.
3635

37-
###Files and their usage:
36+
### Files and their usage:
3837
1. main.py - This is the main engine where it gets the video frames, applies ML Models, and pumps data. All there three process works in parallel. All ML Models also work in parallel on frames.
3938
2. model_detections.py - Here ML Models API has been initialized. This would probably call the models via POST request and pass each frame for inference.
4039
3. app.py - Here YOLO Model is been hosted using Flask.
4140
4. static_object_detection.py - An algorithm that uses the bounding box to detect static objects in frames.
4241

4342

44-
###**HOW TO RUN:**
43+
### **HOW TO RUN:**
4544
For these tests, I have enabled docker since there are a lot of dependencies. I have built the docker script assuming that you are using Ubuntu, since on Mac, docker doesn't support camera access. It would take some time to build the docker!
4645

4746
1. Build container:
@@ -58,7 +57,7 @@ Don't wait step 2 to get completed in another termial run step 3.
5857
sudo docker exec -it va_container /bin/sh -c "cd;LD_LIBRARY_PATH=/opt/amazon-kinesis-video-streams-producer--source/local/lib;GST_PLUGIN_PATH=/opt/amazon-kinesis-video-streams-producer-sdk-cpp/build;gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! x264enc bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="testapp" storage-size=512 access-key="AKIAU7NAZHMYB6H2VJ7S" secret-key="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" aws-region="us-west-2""
5958

6059

61-
####Switching VA Module:
60+
#### Switching VA Module:
6261

6362

6463
Users can also pass a custom list of VA modules from Robot to run custom VA modules.
@@ -71,4 +70,4 @@ NOTE: The names of VA modules are case-sensitive. The following are names used -
7170
"face_search",
7271
"static_object",`
7372

74-
It runs all VA modules, by default, if the empty list of VA modules is passed. See line no 115 in main.py
73+
It runs all VA modules, by default, if the empty list of VA modules is passed. See line no 115 in main.py

0 commit comments

Comments
 (0)