From 4a77046c7c575954a7af394800b11cdaeac47519 Mon Sep 17 00:00:00 2001 From: blakeblackshear Date: Mon, 4 Feb 2019 07:10:42 -0600 Subject: [PATCH] update readme --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 771fa775f..8b5dc53c2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ # Realtime Object Detection for RTSP Cameras +This results in a MJPEG stream with objects identified that has a lower latency than directly viewing the RTSP feed with VLC. - Prioritizes realtime processing over frames per second. Dropping frames is fine. - OpenCV runs in a separate process so it can grab frames as quickly as possible to ensure there aren't old frames in the buffer - Object detection with Tensorflow runs in a separate process and ignores frames that are more than 0.5 seconds old - Uses shared memory arrays for handing frames between processes - Provides a url for viewing the video feed at a hard coded ~5FPS as an mjpeg stream - Frames are only encoded into mjpeg stream when it is being viewed +- A process is created per detection region ## Getting Started Build the container with @@ -23,13 +25,18 @@ docker run -it --rm \ -v :/label_map.pbtext:ro \ -p 5000:5000 \ -e RTSP_URL='' \ +-e REGIONS=',,:,,' \ realtime-od:latest ``` Access the mjpeg stream at http://localhost:5000 +## Tips +- Lower the framerate of the RTSP feed on the camera to what you want to reduce the CPU usage for capturing the feed + ## Future improvements - MQTT messages when detected objects change - Dynamic changes to processing speed, ie. only process 1FPS unless motion detected -- Break incoming frame into multiple smaller images and run detection in parallel for lower latency (rather than input a lower resolution) -- Parallel processing to increase FPS \ No newline at end of file +- Parallel processing to increase FPS +- Look into GPU accelerated decoding of RTSP stream +- Send video over a socket and use JSMPEG \ No newline at end of file