Ask Slashdot: Open-Source Forensic Surveillance Analysis Software? 131
McBooCZech writes "I am trying to set up a surveillance system. It is not intended to build a real-time on-line surveillance system to watch a wall of monitors on a 24/7 basis. The main scope is to record video (24/7) from the fixed cameras around our facility and when needed, get back to pre-recorded video and check it for particular event(s). Of course, it is possible to use a human to fast forward through video using a DVR-type FF function for short video sequences. Unfortunately, for long sequences (one week), it is not acceptable solution. I was searching online the whole weekend for the open source software for analysis of pre-recorded video in order to retrieve events and data from recorded video but had no luck. So I ask you, Slashdotters: Can you provide some suggestions for forensic software to analyze/find specific events in pre-recorded video? Some examples of events: 'human entering restricted zone,' 'movement in the restricted zone,' 'light in the restricted zone.'"
A few suggestions (Score:5, Informative)
http://code.google.com/p/openvss/ Open Platform Video Surveillance System
http://www.zoneminder.com/
Commercial likely your best option. (Score:3, Informative)
There are several brands I would recommend. Any of these can sell standalone servers or just the server software.
Exacq (www.exacq.com)
milestone (milestonesys.com)
Avigilon (avigilon.com)
Of those three, Avigilon has the better video handling, IMHO. Especially when working with 3, 5, or 16MP cameras.
All are somewhat comparable in price.
computer vision systems (Score:4, Informative)
What you are asking for is a computer vision system. Typically there are parts, but no complete Open Source implementation of what you want, unless you are willing to assemble them yourself, and accept somewhat less than commercial quality.
Here's the most comprehensive resource: http://www.roborealm.com/links/vision_software.php [roborealm.com]
Movid is the part you want for human tracking; typically these systems are going to require parallax cameras, meaning binocular vision, for some of the recognition.
Re:Easy (Score:5, Informative)
Developing forensic video tools is hard, it takes a long time, it costs a lot of money, and takes it an enormous amount of testing and tweaking. So far only the big names in security video have adequate Intelligent Video, aka Video Analytics, offerings, Milestone, Lenel, Verint, Exacq, a few others. None of them are cheap, Exacq is probably the least expensive and easiest to use, but most limited. Some of the camera manufacturers have pretty good analytics available in their firmware, normally for an extra licensing fee. Pelco, Axis, Panasonic, some others that I haven't used. You need to configure the VMS (Video Management System) to be able to capture the events though, and not all are able. Again, you're back to the big names.
Join some of the forums on LinkedIn, especially CCTV Video Surveillance, IP Technology & Solutions. Yes, IAAPSP (Physical Security Professional)
Some thoughts. (Score:3, Informative)
To start, ZoneMinder is a project that I have a soft spot for. It's a very complex application that works moderately well than even some brand new proprietary solutions out there today. That said, ZoneMinder has to go through a monumental facelift before I would consider using it again. Last I used it, it would run for a few minutes then just stop recording and populate thousands of errors in my syslog. ZoneMinder has had some recent developer activity with some individuals who are taking it upon themselves to do work on it and patch it accordingly. The problem is, these individuals don't have access to patch the core version in the repos. I wouldn't be surprised if a large update comes out soon or that ZoneMinder gets forked under a different name with all of the updates. Either option is possible. That said, ZM isn't my software of choice at the moment.
Instead, I use Motion. Just a quick disclaimer, Motion is admittedly not for Grandma Edna who never used Linux before. It's something that requires a little bit of setup. It's a daemon, not a GUI. You have to create the directories for each camera feed. You have to adjust all of the parameters you want within the config file. You have to lay down the initial foundation upon which Motion will run on. If you want some insight with getting started, have a look at my YouTube tutorial I set up a few months ago. http://www.youtube.com/watch?v=NwDLkMPLTw0 [youtube.com] (take note there's also a Part 2)
Motion works by watching the MJPG stream of your camera and taking snapshots accordingly. Those snapshots can be configured to stay regular JPG's, or you can turn off JPG's all together and have the system stitch them into an avi file and have more of a video-esque playback. Because MJPG isn't that fantastic with compression, it's literally impossible to have a flawless amazingly epic jaw dropping 3000 FPS feed that looks like BluRay quality. MJPG is solid, but it's not something you would want to be running as a traffic cam where every second makes a tremendous difference. The reality is when it comes to surveillance footage, it only takes a single JPG to really capture the face of a crook. MJPG is very well suited for things like that, so running an MJPG setup at 2, 5, 7, 10 FPS, whatever it may be could very well be a home run.
As I said, Motion has no GUI. You may be wondering, but wait, I want to have a montage of all video feeds actively running. You can do that relatively easy, but it'll take a little bit of leg work. Here on the Motion FAQ I posted some ideas as to what you can use to create your own montage. This will be very basic with no additional features, but you'll see all cameras running at once. Likewise, you can click on each feed to see it full screen. I built my own motion.html file and just keep it saved locally and open it in a web browser when I want to have view. I use Method 2, but each one should serve its purpose: http://www.lavrsen.dk/foswiki/bin/view/Motion/FrequentlyAskedQuestions#How_do_I_see_more_than_one_camera_stream_at_a_time_63 [lavrsen.dk]
I personally run dual streams. I have Motion running at 1 FPS with the MJPG stream of my cameras which saves the JPG's accordingly to the specific directory for that camera... meaning my camera out front will save the JPGs in