Detecting People & Generating 3D Trajectories
Simulation system for VERITAS Cluster Server
Annie : Neural network library
Process Checkpointing and Restarting using the core file
As part of our final year research project we developed a system to detect human faces in a video frame and then track these faces through the video sequence in order to generate their 3D trajectories. As a potential application of this, we try to generate textual commentary of the trajectories. For example, given a sequence we'd like to say "Person A went from left to right", "Person B is walking towards the camera" etc. The faces detected could possibly be passed on to a face recognition system (which we're not working on) which would then identify the actors of the sequence. More details.
I spent the summer of 2002 with VERITAS Software in San Jose, CA, where I worked on their high-availability server (VERITAS Cluster Server (VCS)). VCS connects a group of servers hosting multiple applications (such as a web, mail and database servers) to provide automatic failover of these applications in case of any hardware/software fault, thus minimizing downtime for the users of these applications. Over the years failover policies have become complicated and complex configurations have been placed on the system (multiple applications and resources with dependencies between them). While at VERITAS my job was to develop a simulation system which would allow cluster managers to see the reaction of VCS to hypothetical faults and failures to help them tweak configurations and come up with optimal one. The idea was to not develop a simulator from scratch but use the same code base so that the simulator truly reflects VCS logic. In short, I had to construct a stand-alone simulator for the distributed program. The simulator developed was able to correctly simulator VCS behaviour on any cluster (1-32 nodes). The work I did during this internship is now part of VCS 4.0.
Annie is an object-oriented C++ library for creating, training and getting output from neural networks that I designed and created. Originally this was created to aid in the face detection project, but has grown since and has been used by other people for their applications as well. It has support for many different types of neural networks and can be used in both Windows and Linux applications. annie is now hosted on sourceforge. For details please visit the annie homepage.
A core-dump of a running process is an effective checkpoint of the state of that process. I created a system to resume a process from the state present in the core file. More Details.