Skip to content

arielbrizi/go-intelligent-monitoring-system

Repository files navigation

Intelligent Monitoring System

gopher-camera

Its a Simple free Software to make a monitoring system based on Face Recognition using standars IP cameras. They only need to be able to send images to an FTP Server.

I developed it implementing Hexagonal Architecture (or Ports & Adapters architecture ). You can see on the diagram that is very simple to add anothers adapters to process images. In fact, you can easily change AWS Recognize component with another.

Architecture

Architecture

UML Graphics

PlantUML

API Documentation - Swagger

editor.swagger.io (It's also automatically published on .../swagger/index.html)

Installation

  1. Install FTP Server. Recommended:

  2. Set the Ip of the FTP server in your IP cameras. On movement detection, cameras will send the image captured to the FTP server defined.

  3. Create a directory and put all the photos of people who is authorized by you. Try to find photos with just one person on it. When you run the application, they will be added to the collection of known people. The directory must be that one you set on docker-compose.yml as "AUTHORIZED_FACES_DIRECTORY"

  4. Notification Configuration. You can choose 2 options (adapters)

    • Telegram
      • Create BOT You can do it from your mobile-app. You will use the Bot to receive notifications and send him "commands" using telegram chat.
      • Create a Telegram channel from your mobile-app. The bot can only send notifications to channels. You can add all the people you want to this channel to receive notifications.
    • AWS SNS
  5. Set Up Environment variables in "docker-compose.yml" file

    • Run "sudo docker-compose up --build -d" from your go-intelligent-monitoring-system directory. If you have problems check 'service docker status'. If it's neccesary run 'sudo service docker start'