project spacelock - architecture & design

24
Architecture & Design Abhishek Mishra, Aditya Sagi, K Sree Harsha, Prabhat Godse http://spacelock.madetokill.com

Upload: abhishek-mishra

Post on 14-Jan-2015

1.151 views

Category:

Technology


3 download

DESCRIPTION

Finally done with the Design and Architecture Description of our Project - http://spacelock.madetokill.com

TRANSCRIPT

Page 1: Project SpaceLock - Architecture & Design

Architecture & Design

Abhishek Mishra, Aditya Sagi, K Sree Harsha, Prabhat Godse

http://spacelock.madetokill.com

Page 2: Project SpaceLock - Architecture & Design

Introduction

This document aims to provide an overview and a detailed description of Project SpaceLock. It is meant to

have an overview of how components of SpaceLock interact with each other, the user and the environment.

Before discussing various modules, it clarifies the basis on which the project has been split into modules. It

also talks about reasons behind choosing a particular set of tools and libraries to realize these modules.

Document Overview

Solution Overview

o Introduction

o Vision Statement

o Scope

o Objectives

o Execution Overview

o Team Members

Architectural Strategies

o Detecting Motion

o SMS Alerts

o Camera Control

o Web Interface

o Web Server

o Database

System Architecture

o Components Overview

o Component Interaction Diagram

o User Stories

Intruder Interaction with SpaceLock

User Interaction through SMS

User Interaction over Internet/LAN

User Interaction with Control Module

What Happens on Intrusion?

Detailed System Design

o Control Module

o Motion Detection Module

o Web Interface

o SMS Module

o Camera Control Module

Glossary

Page 3: Project SpaceLock - Architecture & Design

Solution Overview

Introduction

Project SpaceLock aims to unite already existing technologies of your infrastructure into a robust Video

Surveillance System. It’s a Software Solution based on .NET Technologies, that aims to reduce your cost and

assure security. The end users installs SpaceLock over their system, attach a webcam, attach an optional cheap

GSM cellphone, put webcam over optional rotator mount, configure SpaceLock to suite themselves and that’s

all.

Vision Statement

“Put video surveillance in reach of Everyone by Cost Minimization and Re-Use”

Scope

Project SpaceLock is developed to help a common person easily assemble a reliable security system at home

or workplace. Project SpaceLock aims to provide – intrusion alerts, access & control over distance, video

recordings of events. SpaceLock is software that works with hardware provided by the user. Hence, the

features vary according to the kind of hardware it gets from you.

SpaceLock is not only limited to small area security, but can also be implemented to wide area monitoring and

for monitoring any kind of motion.

Deployment

System

Page 4: Project SpaceLock - Architecture & Design

Objectives Project SpaceLock aims to –

put visual security in reach of everyone by cost minimization and re-use

make SpaceLock easy to assemble, install, configure and maintain

present a new way to look at visual security

put before you a unique example of hardware, software & network integration

instill the same passion which drives us into our friends

send out a message on how to maximize our potential with what we already have

Execution Overview

SpaceLock, once configured and set into monitoring mode, watches the defined area for motion. Once a

motion is detected and happens to cross the tolerance limits, it sends the user an SMS alert and starts

recording a video of the intrusion. With tracking algorithms, it rotates the camera to keep intruder in the view.

The user can either come over to the place of installation or access the live stream / intrusion log over the

network. By configuring the local network properly, the web access can also be extended over internet.

Team Members (team SpaceInvaders)

Abhishek Mishra ([email protected]) – Web Interface in ASP.NET, Project Management

Aditya Varma Sagi ([email protected])– Camera Control, Electronics

K Sree Harsha ([email protected])– Image Processing, Motion Detection

Prabhat Godse ([email protected])– Application Development over C#, Security

Page 5: Project SpaceLock - Architecture & Design

Architectural Strategies

A talk about the Architectural Strategies we decided to go for would be incomplete without specifying the

requirements that the strategy aimed to fulfill. So here is a list of strategies classified under different

requirements of the project –

Detecting Motion: SpaceLock needs to monitor a specified area and look if there is any motion.

Any kind of motion above a fixed tolerance level translates to occurrence of an intrusion. For this, we

need to interface the webcam and need to have a backend that allows us to do fast Image Processing.

Since, a live video is also relayed over the Web Interface, the Image Processing work shouldn’t

consume too much time. That is necessary to give a real time view of place where SpaceLock is

deployed.

Matlab Aforge OpenCV

Domain Research, Mathematics AI, Robotics, Machine Learning

Computer Vision

Portable ? Needs MCR (200 MB) Yes Yes

Size Bulky Lightweight Comfortable Size

Speed Acceptable Slow Fast

Developer Community Huge Small Big and Growing

Updates As per MathWorks releases

Less frequent Frequent (as the community develops it)

For Motion Detection, we analyzed the existing solutions. The first choice was Matlab. But, it failed to

meet our needs of portability and fast image processing due to its bulkiness. We tried another library

called AForge, natively made for .NET. Aforge came out to be a generalized library and a little slow on

motion detection.

Intel’s OpenCV was the last stop. Unlike Matlab and AForge, it is dedicated to Computer Vision. We

also found interesting wrappers like emguCV that interface OpenCV and .NET. This makes it possible

for us to write Image Processing Code in C# and remove the need of inter-process communication as

needed with Matlab implementation. While Matlab hinders portability and speed, AForge has a small

developer community. In this scenario, it seems practical to choose OpenCV for our needs.

Page 6: Project SpaceLock - Architecture & Design

SMS Alerts: What good is a security system which doesn’t alert you on time? What could be the

best way to alert the users? Now, considering India, there is no doubt that it’s a very fast growing cell-

phone market. India has already ousted the US in terms of cell-phone users

(http://computing.in.msn.com/articles/article.aspx?cp-documentid=1308265). This surely calls of the

need of SMS alerts in SpaceLock. The users can change setting of SpaceLock and enter their GSM based

cellphone number for SMS alerts. In an event of intrusion, the users get timely alerts.

To be able to do so, we chose the GSMComm library

(http://www.scampers.org/steve/sms/libraries.htm). Again, the .NET compatibility of this library has

been the major push for this choice. It’s lightweight and has a very comfortable syntax. [Note: SMS features require the user to dedicate a GSM phone for SpaceLock. One can easily set this by choosing a cheap

cell phone coupled with a provider which gives cheap/free SMS services.]

Camera Control: SpaceLock aims to track an intruder. It also has to provide the user with the

ability to change camera orientation remotely at click of a mouse. For this we need a rotatory mount

using Servo motors and have it connected with the PC/Laptop for control. A Servo motor is a high

precision motor, and needs a microcontroller to control it precisely. We chose AVR-CDC and AVR-USB

for this part for the following reasons –

o Simple USB -serial converter

o Works well on Windows Vista as well as older versions

o Creates a COM port

o No drivers required

Page 7: Project SpaceLock - Architecture & Design

Web Interface: Doing work through web is popular today. A Software with a web interface

provides much more accessibility and reach, than the traditional install-and-user software. SpaceLock

too aims to let user access and control the surveillance system at a distance. So, for the web interface,

we had 4 options:

o PHP/MySQL

FREE

Popular

Familiarity

MVC frameworks available

[-] separates from core development environment – Visual Studio

o Ruby on Rails

Popular

Simplicity

[-] Lack of Ruby experience

[-] Too much time to be spent on learning RoR

o ASP.NET Classic

Popular

Integrates Well

[-] Treats web development as app. Development

[-] Lacks simplicity

o ASP.NET MVC

Simpler way to program ASP.NET

Clean separation of contents

Supports existing ASP.NET features

Integrates well with Visual Studio

We tried ASP.NET MVC and found it to be easy to learn and suitable for project as it harnesses the

power of .NET with a great IDE – Visual Studio 2008.

Web Server: Since Web Development for SpaceLock is planned to happen in ASP.NET MVC, IIS 7 is

an obvious option to go for. Additionally IIS is known to have great stability, supports ASP.NET, Easy to

configure, and comes bundled with Windows Vista.

Database: We chose SQL Server 2008 Express Edition. Again for it is free and mixes well with our

Visual Studio 2008 Express development setup. Familiar development environment was a priority here.

Page 8: Project SpaceLock - Architecture & Design

System Architecture

Components Overview

Components: SpaceLock is divided into 5 components. This division is direct reflection of differences in

responsibilities and working of different modules.

1. Control Module – This is the main module of SpaceLock that runs on the Computer. This acts like a

bridge between other modules and uses them to make the whole system work. It in a way, focuses on

overall logic of the security system. Some core functions of this module:

a. Lock the deployment system for security with a password

b. Provide an interface to configure SpaceLock

c. Use other modules to make decisions

d. Alert the user on abrupt disconnection of Web Cam

2. Motion Detection Module – This module utilizes OpenCV APIs to keep a watch on user defined area

for occurrences of motion. Some functions:

a. Does analysis of live images

b. Records video on intrusion

c. Rotates camera to track intruder

d. Prepares live streams for Web Interface

3. Web Interface – This is the web interface through which the user accesses and controls SpaceLock. It’s

functions:

a. Status & Live View of the area under surveillance

b. Set camera orientation, save/load positions

c. View / Manage Activity logs

d. Change settings through web

e. Help on SpaceLock

Page 9: Project SpaceLock - Architecture & Design

4. SMS Module – This helps SpaceLock send and receive SMS over GSM Network. This controls the phone

attached to SpaceLock through COM port and communicates to Control Module. Some tasks:

a. Sends alert messages to the user

b. Lets user control SpaceLock through SMS

c. Alerts the user in case the Camera gets detached

5. Camera Control Module – This helps the user with rotating/repositioning the Camera. It interacts with

the Web Interface, Motion Detection Module and Control Module for inputs. Its helps in –

a. Positioning the Camera properly to get view of important areas

b. Tracking the Intruder

c. Live User monitoring at a distance

Component Interaction Diagram: This diagram shows how the 5 components of SpaceLock

interact with one another and how a user gets access to SpaceLock.

Page 10: Project SpaceLock - Architecture & Design

User Stories: To have a clear picture of how SpaceLock works, it would be nice to show use case

diagrams for all the ways a user/intruder interacts with the system. Here are all the possible cases of user

interaction:

1. Intruder Interaction with SpaceLock

2. User Interaction through SMS

Page 11: Project SpaceLock - Architecture & Design

3. User Interaction through Internet/LAN

4. User Interaction with Control Module

Page 12: Project SpaceLock - Architecture & Design

What Happens on Intrusion?

Page 13: Project SpaceLock - Architecture & Design

Detailed System Design

1. Control Module: Control module is an independent module that runs all the time on the

deployment system.

Control Module co-ordinates functions of other modules and controls them in order to build up a

responsive surveillance system. Control Module also provides an interface for configuration and

additional security to make deployment system tamper proof.

Responsibilities: a. Additional Security on Deployment System / Password Lock

b. Triggering SMS module on Intrusion

c. Triggering SMS module on Camera Failure

d. Providing an Interface for configuration of SpaceLock

e. Letting user control camera position

Constraints: This module is functional only till all other modules are functional. On failure of a

module, it tries to raise an alert, however it cannot assure recovery from such situations. The

execution of this module signifies that SpaceLock is active, however we say SpaceLock is functional

only when all other modules are also working smoothly.

Composition:

This module has following sub-components, divided on the basis of interaction and function –

Communication Handler: It takes care of the communication that occurs between Control

Module and other components. This is done using Sockets, by listening for signals and

sending relevant control signals to other modules

Security Manager: Control Module locks the deployment system for preventing

unauthorized access. The Security Manager takes care of this task. It also monitors for

activeness of critical modules, and raises alerts/appends logs when other modules fail in

their function.

Page 14: Project SpaceLock - Architecture & Design

Configuration Manager: It provides an interface to change SpaceLock settings for the

owner/users of deployment system.

Database Handler: The Web Interface and Control Module share a common database to

reflect changes easily. This mainly focuses on connecting and handling query results of the

database.

Other details:

Developed in C#, no additional libraries needed

Uses Sockets for communication

Utilizes Database over SQL Server 2008 Express

2. Motion Detection Module: Motion Detection Module keeps looking for intrusions in

the area of surveillance by detecting motion.

Once motion is observed to be above threshold level, it signals the Control Module about the

intrusion and starts recording the video. Once an intrusion is over, it signals Control Module about

completion of video recording. The Control Module then appends the video and other information

into the Database. This communicates to the Camera Control Module as well to track the intruder.

Since the camera image is directly available to this module, it also takes care of streaming them

live.

Responsibilities: a. Detecting Motion: Motion detection is done through Difference Image method using OpenCV

API calls for image acquisition and analysis.

b. Recording the Video of Intrusion: This module also utilizes OpenCV APIs to generate an video of

intrusion in AVI format.

c. Video Compression: For better scalability and optimal use of space, it compresses the video

using free, open source compressors like ffmpeg.

d. Intruder Tracking: An intruder might move out of area under surveillance, Motion Detection

Module also analyses the images for motion and rotates the camera in such a way that intruder

remains in view for maximum time.

Constraints: If the intruder moves too fast, this module might not be able to capture/track it

properly. The user also needs to configure SpaceLock to suite lightening conditions over area of

surveillance.

Page 15: Project SpaceLock - Architecture & Design

Composition:

Communication Handler: It takes care of the communication that occurs between Control

Module and other components. This is done using Sockets, by listening for signals and

sending relevant control signals to other modules

M-JPEG streamer: The acquired images from camera are continuously pushed frame by

frame in motion-jpeg format and sent over a specific port using sockets. The live image can

be easily played over web interface by using a simple <img> tag with src attribute set to url

of m-jpeg streamer. http://en.wikipedia.org/wiki/Motion_JPEG

Motion Detector: This has the responsibility of detecting motion in surveillance area. It uses

OpenCV APIs to analyze images. Apart from alarming the Control Module about intrusion, it

also communicates to Camera Control Module to rotate the camera in order to track the

intruder.

Video Recorder: It generates videos in AVI formats using OpenCV APIs. This video is then

compressed and an entry is made in main database by Control Module.

Other details:

This module never interacts directly with the user.

It utilizes the Camera and Camera Control Module as its resources.

Recording Algorithm –

Lookout Time – The time after last motion detection till which the area is monitored for further motion.

o Start recording on intrusion

o Record and Monitor for motion till Lookout Time

o Keep Recording till there is not further motion even after Lookout Time

o Compress and Signal Control Module to append Intrusion Log.

Page 16: Project SpaceLock - Architecture & Design

3. Web Interface: This module facilitates the user with access over Internet or Local Network.

It runs over an IIS7 server setup. It shares the common database with Control Module. It’s based on

ASP.NET MVC, written in C#. Web Interface interacts with all other modules apart from SMS

module.

A Prototype –

Responsibilities: a. Live Video / Status: The web interface lets the user monitor the current situation at area of

surveillance at a distance. For this it provides Live View of the area using m-jpeg streams and

shows current status of SpaceLock deployment.

b. Remote Camera Control: The web interface allows users to control the camera position and

rotation. The user is also allowed to define pre-set positions and load already defined one. One

can even start or stop the surveillance.

c. Intrusion Archive: The Web Interface lets users browse through old records of intrusions and

one can even add notes to particular intrusion record. It also allows one to manage the

intrusion archive.

d. Settings: This module also enables change of SpaceLock Settings remotely. However critical

settings are not available in web interface due to lack of trust as to who is accessing it? Is it the

user, or someone else using the logged session

e. Security: The access to the Web Interface is restricted by password.

f. Online Help: The users can learn how to use SpaceLock easily over this web interface using the

Help Section

Page 17: Project SpaceLock - Architecture & Design

Constraints: The Web Interface doesn’t allow one to change the access control password for

Control Module active on the Deployment System. Also, the videos in intrusion archive can be

streamed given, the client has proper plug-ins and codecs at place. Alternatively, videos are also

available for download.

Composition: The composition of the Web Interface can be broken into main sections it has as

shown here –

These sub-sections can also be easily mapped onto sub-sections in the mock design –

Resources:

IIS7 Webserver Running on Deployment system

SQL Database shared with Control Module

Bandwidth for access over internet

Page 18: Project SpaceLock - Architecture & Design

Interfaces: Here are some mock templates of web interface that Project SpaceLock aims to realize:

Page 19: Project SpaceLock - Architecture & Design
Page 20: Project SpaceLock - Architecture & Design
Page 21: Project SpaceLock - Architecture & Design

4. SMS Module: This is a helper module and listens to Controller Module for tasks. It helps in

sending out timely alerts about intrusions or system failures. It also helps the users control

SpaceLock.

Responsibilities:

a. Intrusion Alert: It sends out an alert to the user through SMS about any intrusions that take

place.

b. System Failure Alerts: Whenever key components of SpaceLock, e.g. the Camera gets

disconnected or a module doesn’t function properly for a long time, the SMS module sends out

an alert to the user so that one can checkup the system for faults.

c. SMS Control: A user can also opt to control SpaceLock through SMS. Before the user enters the

area of surveillance, a small SMS can be sent to cell-phone attached to SpaceLock, which in turn

gets verified and requests to stop/start SpaceLock can be handled.

Constraints: Availability of cheap cell phone sets to dedicate to SpaceLock, and availability of cost

effective SMS plans by telecom providers, happens to be the major constraint here. Though prices

are reducing and companies like Reliance have introduced radical Rs.25 SIM cards with great free

SMS features, it’s finally left for the user to find a cheap cell phone and SMS plan. This feature is

kept optional for cases where the user does not wish to have SMS alerts.

Composition:

The SMS module is composed of:

SMS Dispatcher: Sends out SMS to the user defined phone number. Listens to Control

Module for commands.

SMS Command Analyzer: Validates received SMS on the Cell Phone attached to SpaceLock

and sends the command over to Control Module for implementation.

Cell Phone: User’s dedicated cell phone attached to SpaceLock.

Page 22: Project SpaceLock - Architecture & Design

5. Camera Control Module: It is basically the Servo motor mount over which the webcam is

mounted. It helps the user rotate the camera in 4 directions – Up, Down, Left, Right. This module is

based on AVR-CDC as described in Architectural Strategies –

Responsibilities: a. Intruder Tracking: It rotates the camera as specified by Motion Detection Module to track a

moving intruder.

b. Web Control for Camera: It lets the user control camera angle and position through

internet/LAN by interacting with Web Interface module.

c. Camera Control from Control Module: It also listens to Control Module for commands so that

the user can manage position and angles from Deployment System

Constraints: It cannot rotate too fast as Image Processing task of Motion Detection Module gets

affected by its motion. When it is in use by the user, there is no intrusion detection. This is because,

the intrusion detection is based on motion, and if camera itself rotates, it leads to false positives.

Interaction with other modules:

Page 23: Project SpaceLock - Architecture & Design

Glossary

.NET - The .NET Framework is Microsoft's comprehensive and consistent programming model for building

applications that have visually stunning user experiences, seamless and secure communication, and the ability to

model a range of business processes.

API - An application programming interface (API) is a set of routines, data structures, object classes and/or

protocols provided by libraries and/or operating system services in order to support the building of applications.

ASP.NET - ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers

to build dynamic web sites.

AVR - The AVR is a Modified Harvard architecture 8-bit RISC single chip microcontroller (µC) which was

developed by Atmel in 1996

AVR-CDC - AVR-CDC is a USB-RS232C interface using the CDC (Communication Device Class) protocol. Although

the bulk endpoint required for CDC is not allowed within the low-speed USB standard, it works fine on major

platforms.

C# - (pronounced C Sharp) is a multi-paradigm programming language that encompasses functional, imperative,

generic, object-oriented (class-based), and component-oriented programming disciplines.

COM - COM is the original, yet still common, name of the serial port interface on IBM PC-compatible computers.

It might not only refer to physical ports, but also to virtual ports, such as ports created by bluetooth or USB-to-

Serial adapters.

Deployment System – The Computer on which SpaceLock is installed.

Difference Image - http://www.ai.mit.edu/projects/cog/VisionSystem/motion_detection.html

EmguCV - Emgu CV is a cross platform .Net wrapper to the Intel OpenCV image-processing library.

FFmpeg - FFmpeg is a computer program that can record, convert and stream digital audio and video in

numerous formats.

GSM - GSM (Global System for Mobile communications: originally from Groupe Spécial Mobile) is the most

popular standard for mobile phones in the world.

IIS – Internet Information Server

Image Processing - In electrical engineering and computer science, image processing is any form of signal

processing for which the input is an image, such as photographs or frames of video; the output of image

processing can be either an image or a set of characteristics or parameters related to the image.

LAN – Local Area Network

MVC - Model–View–Controller is an architectural pattern used in software engineering. Successful use of the

pattern isolates business logic from user interface considerations, resulting in an application where it is easier to

modify either the visual appearance of the application or the underlying business rules without affecting the

other.

OpenCV - is a computer vision library originally developed by Intel. It is free for commercial and research use

under a BSD license. The library is cross-platform, and runs on Windows, Mac OS X, Linux, PSP, VCRT (Real-Time

OS on Smart camera) and other embedded devices.

PHP - PHP is a scripting language originally designed for producing dynamic web pages.

Query (SQL) - A query is an inquiry into the database using the SELECT statement. A query is used to extract data

from the database in a readable format according to the user's request.

SMS – Short Messaging System

Page 24: Project SpaceLock - Architecture & Design

Sockets - Normally, a server runs on a specific computer and has a socket that is bound to a specific port

number.

SQL – Sequential Query Language

Surveillance - close observation of a person or group

USB - Universal Serial Bus (USB) is a serial bus standard to connect devices to a host computer.