Video Recognition AI Platform

Video Recognition AI Platform

Challenge

  • Building a face recognition system
  • Developing a video streaming architecture to process millions of real-time video streams
  • Building a face recognition system as a RESTful API service able to process a huge amount of images per seconds and recognize people with very high accuracy
  • Providing the ability for the user to select a single camera and manipulate with its data or observe all room cameras at once

Solution

  • Development of a smart distributed and scalable system of Apache Kafka topics communicating with databases and internal API services asynchronously. We applied deep neural network architecture for searching human faces on an image. FaceNet deep neural network was used as feature extractor on the cropped images
  • Achieving of the high rate and quality of face recognition due to an optimized k-nearest-neighbors algorithm used as a classifier
  • Integration of the parallel recognition of millions of phases simultaneously; we have developed a distributed system of unblocking processes with the help of RabbitMQ
  • Adoption of Grafana and Prometheus for the current architecture that allowed increasing system performance

Technology stack

Python, Node.js, Apache Kafka, S3, PostgreSQL, Apache Cassandra, Aiohttp, Asyncio, Prometheus, Grafana, TensorFlow, Baidu FR, BOS, RabbitMQ

Result

ActiveWizards team built a face recognition system that identifies people on video with low error rateĀ (less than 3%). We managed to develop a scalable real-time data streaming system joined with data storages and internal services and a high-load RESTful API service able to process asynchronously millions of requests for enough time and resource consuming operations of face recognition.