All Projects → RedisGears → AnimalRecognitionDemo

RedisGears / AnimalRecognitionDemo

Licence: Apache-2.0 license
An example of using Redis Streams, RedisGears and RedisAI for Realtime Video Analytics (i.e. filtering cats)

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects
Makefile
30231 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
PureBasic
71 projects

Projects that are alternatives of or similar to AnimalRecognitionDemo

redis-modules-java
Java client libraries for redis-modules https://redis.io/modules, based on Redisson. https://github.com/redisson/redisson
Stars: ✭ 57 (+62.86%)
Mutual labels:  redisai, redisgears
orkid-node
Reliable and modern Redis Streams based task queue for Node.js 🤖
Stars: ✭ 61 (+74.29%)
Mutual labels:  redis-streams
robots.txt
🤖 robots.txt as a service. Crawls robots.txt files, downloads and parses them to check rules through an API
Stars: ✭ 13 (-62.86%)
Mutual labels:  redis-streams
redisai-go
A Golang client for RedisAI
Stars: ✭ 23 (-34.29%)
Mutual labels:  redisai
redisplanet
Redisplanet - An Ultimate Hands-on Labs on Redis
Stars: ✭ 24 (-31.43%)
Mutual labels:  redisai
SmartRedis
SmartSim Infrastructure Library Clients.
Stars: ✭ 37 (+5.71%)
Mutual labels:  redisai
redis-modules-sdk-ts
A Software development kit for easier connection and execution of Redis Modules commands.
Stars: ✭ 152 (+334.29%)
Mutual labels:  redisgears
rgsync
A Write-Behind and Write-Through recipe for RedisGears
Stars: ✭ 75 (+114.29%)
Mutual labels:  redisgears

license Animal Recognition Forum Discord

AnimalRecognitionDemo

This demo combines several Redis data structures and Redis Modules to process a AnimalRecognitionDemostream of images and filter out the images that contain cats.

It uses:

  • Redis Streams to capture the input video stream: all
  • RedisGears to process this stream
  • RedisAI to classify the images with MobilenetV2

It forwards the images that contain cats to a stream: cats

It uses RedisAI Integration in RedisGears with asynchronous function so the server is not blocked while RedisGears is triggering an inference session in RedisAI.

Architecture

Architecture Architecture

Requirements

Docker and Python 3

Running the Demo

To run the demo:

git clone https://github.com/RedisGears/AnimalRecognitionDemo.git
cd AnimalRecognitionDemo
# If you don't have it already, install https://git-lfs.github.com/ (On OSX: brew install git-lfs)
git lfs install && git lfs fetch && git lfs checkout

For running the demo with make, run:

make start
make camera

Then open the UI to watch the result streams.

To end the demo, then to stop the containers:

make stop

Run make help for a few more options.

For running the demo manually, run:

docker-compose up

If something went wrong, e.g. you skipped installing git-lfs, you need to force docker-compose to rebuild the containers

docker-compose up --force-recreate --build

Open a second terminal for the video capturing:

pip install -r camera/requirements.txt
python camera/read_camera.py

Or run the camera process in test mode (without streaming from your camera):

ANIMAL=[cat|dog] python camera/read_camera.py --test

UI

  • http://localhost:3000 shows all the captured frames
  • http://localhost:3001 shows only the framse with cats

Limitations

This demo is designed to be easy to setup, so it relies heavily on docker. You can get better performance and a higher FPS by runninng this demo outside docker. To control the FPS, edit the gear.py file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].