DEV Community

Marco Steinke
Marco Steinke

Posted on

2

πŸ“· survAPI Surveillance Camera Analysis

❓ Need surveillance, but low on server capacity?
πŸ’‘ Train the camera to know when to record.

find my Repository here: https://github.com/MarcoSteinke/survAPI-Surveillance-Camera-Analysis

⚑ Introduction:

This implementation demonstrates a Security-Camera Software which was written in javascript and uses cocossd offered by ml5 to detect objects.

The application is secured using express-session and bcrypt. This way only authenticated users can access your surveillance and you are able to allow registrations and create new roles to control this system.

❓ Problem:

A business needs a security camera, but is low on server capacity. Thatswhy the business can not store videos 24/7.

πŸ’‘ Solution:

Using Machine Learning, we can tell the camera when it has objects in view and use a lightweight backend to store the timestamps and also the type of objects which where detected.

Classification:

After detection, the software later classifies them as certain targets.

Persistence

If the classified object is one of the targets, it will be persisted in the database by giving information on its type and also adding a timestamp and date. Now we know when to start recording and stop after a predefined amount of time passed.

πŸ’ͺ Improvements over conventional Security Cameras:

  • installation is very easy and very customizable due to Open Source Technology

  • a clean webinterface makes your cameras accessible and configurable

  • detection of persons is a standard problem of Machine Learning and already has a very high precision

  • destroy video material in which nothing happens, you will only store critical/important moments

⭐ advance your security by getting additional information from your camera.

⭐ super simple setup.

⭐ modern dashboard and webpages to access the cameras.

⭐ combine any hardware with this software.

⭐ SurvAPI: The included surveillance API also offers all of the analysis tool to be called from other frameworks.

⭐ lightweight and fast.

⭐ optimized amount of video data.

⭐ Machine Learning used to detect certain targets.

⭐ predefine intervals to control data produced by the camera.

⭐ very simple database structure

⭐high security level by using bcrypt

πŸ›οΈ Architecture:
The project will be separated into the subsystems Camera, Surveillance, Database, Webviews where each subsystem exactly solves one of the given business problems.

To guarantee clean code, this project will profit from Domain Driven Design and from Self Contained System’s.

Camera:
The subsystem will fulfill the HARDWARE-part in this project. All types of cameras (which you find right below under Compatibility) will be connected via this subsystem. It defines a domain model which projects the real world properties of cameras into code and offers its configured cameras to all of the other subsystems. All of the input will run through this subsystem.

Surveillance:
The surveillance will process video material received from any video source, configured in the Camera subsystem. It makes use of ML5 and analyses the material based on the admins preferences. The analysis results will be persisted in the Database subsystem. It usually is not a separate subsystem, but for this project it will do best if the database can completely be substituted behind an interface which connects the Webviews and the Surveillance to it.

Database:
Use any type of database you want and store all of the analysis results. You can access the persisted data by using the Webviews or build your own UI to access it.

Webviews:
Basically a frontend which can be accessed from any webbrowser. You can configure the cameras, inspect detections in a nice way and get watch live material from your surveillance cameras.

Image of Wix Studio

2025: Your year to build apps that sell

Dive into hands-on resources and actionable strategies designed to help you build and sell apps on the Wix App Market.

Get started

Top comments (1)

Collapse
 
helencardona14 profile image
Helen cardona β€’

Do you know if it can be compatible with the AJAX system to improve a closed circuit already made or would I have to make one from the beginning? I would like to be able to test it, with which devices do you recommend the code or firmware of the files that you left, thanks for the contribution I liked it Very much, I would like to know more about programming, do you know where I can learn about software development?

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

πŸ‘‹ Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay