GithubHelp home page GithubHelp logo

baeeq / opencctv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ait-vgl/opencctv

0.0 3.0 0.0 30.5 MB

OpenCCTV server application

Makefile 1.37% C++ 44.25% Protocol Buffer 0.09% Shell 0.85% Ruby 23.94% CoffeeScript 0.05% JavaScript 0.15% Java 13.45% CSS 0.83% HTML 14.07% Python 0.94%

opencctv's Introduction

The main goal of the OpenCCTV project is to provide a Video Analytic platform for CCTV camera base security solutions. OpenCCTV platform consists of a middleware and a Web application that enables integration of Video Management Systems (VMSes) with Video Analytics. We anticipate develop the system to support VMSes such as Milestone®, Zoneminder, OpenVSS etc. With this platform users will be able to execute their own Video Analytics on a distributed server apart from the VMSes and send Video Analytic results back to VMSes or write them to a user preferred database.

Why did we start this project?

Security & surveillance cameras are everywhere. There are many different VMSs are being deployed for management and storage purposes of video from these cameras. Most VMSs have limited video analytic capabilities. It is unable to deploy new/customized video analytics on the videos from cameras connected to VMSs. We started this project to develop open bus/plugin architecture to integrate VMSs with video analytic.

How it works?

OpenCCTV allows users to input VMS information into the system. Currently it supports only the Milestone XProtect® VMS but we will develop the system to support other popular VMSes in near future. Then system automatically connects to the Cameras configured with the VMSes. Users can create Streams with different resolutions from these Cameras. Users can upload their own video analytic modules as shared library files. Currently system supports only the Linux shared library files (.so) but we will develop it to support Microsoft Windows® shared library files (.dll) very soon. Then users can create instances of uploaded video analutic modules, and direct the Streams to these video analytic instances.

OpenCCTV Web

User have to use the Web application to input VMS information, create video Streams from the VMS Cameras, upload Video Analytics, create Video Analytic Instances and direct video Stream to created Video Analytic Instances.The information of VMSes, cameras, streams, analytic modules and analytic processes stored in the database through the Web application will be used by the middleware (OpenCCTV Server and Analytic Server).

OpenCCTV Server

This server application uses the data written by the Web application to the databse to connect to the VMSes and grab the video Streams from the VMS Cameras. These video Streams are routed to Video Analytic Instances that are running on the Analytic Servers by this server application.

Analytic Server

The Analytics server runs video analytic instances in separate processes. Since different analytics will have different processing speeds, each analytic process has its own input image queue and also output results queue. OpenCCTV server routes video Streams as individual image objects (with metadata) to these input image queues of analytic processes. And retrieves analytic results from the output results queues as XML texts.

OpenCCTV Videos

OpenCCTV Video part 1

OpenCCTV Video part 2

Required packages for OpenCCTV

Boost logo

Installation guide to Boost: http://particlephysicsandcode.com/2013/03/11/installing-boost-1-52-ubuntu-12-04-fedora/

ZeroMQ logo

Installation guide to ZeroMQ: https://maddigitiser.wordpress.com/2013/05/02/installing-zeromq-on-ubuntu-13-04/

OpenCV logo

Installation guide to OpenCV: http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html

MySQL logo

Installation guide to MySQL: http://www.tocker.ca/2014/04/21/installing-mysql-5-6-on-ubuntu-14-04-trusty-tahr.html

To install MySQL C++ connector API using terminal: sudo apt-get install libmysqlcppconn-dev

Supported By

This project is developed by Vision and Graphics Lab (VGL) at Asian Institute of Technology and the National Electronics and Computer Technology Center (NECTEC).

AIT logo

NECTEC logo

This project was funded by the Nation Science and Technology Development Agency (NSTDA).

NSTDA logo

opencctv's People

Contributors

sornrak-kp avatar tisserapac avatar lakinduboteju avatar sirivy avatar

Watchers

James Cloos avatar baeeq avatar  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.