Giter VIP home page Giter VIP logo

feniks's Introduction

Feniks - A computer based NVR with AI capabilities

  • Connect any source FFmpeg supports and start streaming with low latency.
  • Record your streams 7/24.
  • Detect 80 different objects, recognizes human faces and car plates.
  • Query your AI data fast & easy by date, time, camera, label, score and color.
  • If you want more, develop your own custom AI service and easily integrate with Feniks.
Demo Link (Runs on Nvidia Jetson Nano 4GB)

Installation

  • The installation process can be done effortlessly since all services are dockerized and can be run by Docker-Compose in one single command. I' ve created a wizard to make generating Docker-Compose file easy.

Screenshots

Technical Notes

  • Feniks consists of 11 different services. Those are:

    • The FFmpeg Service For Live 7/24 Streaming, Snapshot and Recording (Python).
    • The Object Detection Service (Python).
    • The Snapshot Service (Python Multi-Process)
    • The Facial Recognition Service (Python, PyTorch).
    • The Plate Recognition Service (Golang).
    • The DeepStack Service (Python).
    • The Onvif Service (Golang).
    • The Cloud and Notification Service (GoLang).
    • The Web/Websockets Server Service (Golang).
    • The Web Application (Javascript/Typescript, Vue3, Quasar).
    • The Persistent RTSP Reader Service For AI (Python).
  • Runs natively on Linux.

  • Uses FFmpeg to handle video, audio, snapshot, probing and streaming.

  • Uses Redis as a main NoSql database and massage broker.

  • MongoDB or SQLite is used for AI Events and query databases.

  • The web application supports more than one user and node server.

  • The UI app was developed by using Vue3 & Quasar. It uses gridstack.js to support highly customizable (like resize, dragging) video players.

  • Supported Deep-Learning Frameworks: PyTorch, Tensorflow and the Nvidia Jetson Library and can be selected from the Config page.

  • Automatic plate recognition performs very well since it has a built-in job scheduler and LPR docker containers can be scaled up horizontally.

  • It has a built-in watchdog mechanism to monitor all processes and recover them.

  • It can scan the whole network to find cameras which have RTSP broadcasts. You don’t need to find cameras’ IPs to register the system. All is done automatically.

  • You can search detected objects by their color in the Smart Search section. Other search options like shape, size, barcode, etc. will be added in the future.

  • All running node services can be viewed on the UI app. All Services can be started/stopped by using the services page.

  • The services are tested on x86 workstation, Dell Intel x86 laptop, Raspberry PI (ARM664) and Nvidia Jetson Nano.

  • It supports multiple storages. You can assign any storage to any camera.

  • Broken / failed connections are shown in the information page. If a stream fails more than once in a given time, a notification will be sent to receivers (users) by the cloud provider service.

  • Supported Stream Types are shown below:

    Hardware Demand Latency Compatibility
    FLV * * ****
    HLS * ***** *****
    WebSockets ***** * *****
  • Supported video codecs for both streaming and recording are:

    • H.264 (Software, VA-API, NVIDIA, INTEL, RASPBERRY PI)
    • H.265 (Software, VA-API, NVIDIA, INTEL, streaming is not supported since browsers and RTMP servers don’t support HEVC hardware decoding)
    • AV1 (Software, VA-API, NVIDIA, INTEL)
    • VP8 (Software, VA-API, NVIDIA, INTEL)
    • VP9 (Software, VA-API, NVIDIA, INTEL)
  • Supported audio codecs for both streaming and recording are:

    • MP3
    • AAC
    • AC3
    • DTS
    • ALAC
  • Supported Video Container Formats:

    • MP4
    • WebM
  • All AI events (Object Detection, Face Recognition, Plate Recognition) can be queried by date, time, camera, label and score. All those fields are all indexed and saved as denormalized entities to provide best read performance even for big data.

  • It can store detected objects on clouds. Current cloud providers are:

    • Google Gdrive
    • Telegram
  • Feniks supports 3 different motion detection methods, those are:

    • OpenCV: Superb accuracy precision but it costs relatively high CPU time
    • Imagehash: good accuracy and high performance. It is suitable for low cost devices like Raspberry PI or Jetson Nano
    • PSNR: Similar to Imagehash
  • Re-streaming via RTMP to reduce the number of connections to your camera

Currently Developing Features List (Ordered By Release Date)

  1. Positive/negative list support for facial recognition.
  2. Adding camera location info registration support by Google Maps.
  3. Adding Amazon S3, Microsoft OneDrive and Dropbox support as cloud providers.
  4. Making ONVIF support more compatible and superior like adding PTZ (Pan-Tilt-Zoom Support for Cameras) support.
  5. Adding Tensorflow/PyTorch Pose Estimation deep-learning models.
  6. Adding Windows support.

feniks's People

Contributors

mehmetgoren avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.