This software will fetch frames from different visual data sources and streaming it into redis stream The Stream is a new data type introduced with Redis 5.0, which models a_log data structure_in a more abstract way, after pushing the visual data into redis stream, another server will retrieve the visual data and process it as needed, For example, in our case, I'm planning to analysis each frame and get the object from it.
The reason for choosing the redis stream for this project:
- Redis streams are primarily an append-only data structure
- A stream can have multiple clients waiting for data.
- Collect large volumes of data arriving in high velocity
- Create a data channel between many producers and many consumers.
Requimnet:
- Redis version > 5.
- Python > 3.5
- Any visual source.
- python opencv
- flask
- python redis
- Docker
This project just for fun, I'm trying to learning visual data processing.
pip install -r requirements.txt
To start retrieving visual data from webcam
- use
python server/visualDataStreamer.py
to start web server in order to liveview the stream from redis
- user
python webInterface/webServer.py
Build the images
docker-compose build
To start services
docker-compose up
To stop services
docker-compose down
To monitor data in redis redis-cli monitor
- Add multiple visual data source support as [video file, Camera URL].
- Do some basic visual data process and get objects from the stream.
- Make a web interface to show the stream data.