work portfolio
DESCRIPTION
TRANSCRIPT
Work Portfolio
Amit PrabhudesaiSamsung Adv. Inst. Tech. (SAIT)
Bangalore, India
About me ...
Hi, I'm Amit and I work in the multimedia domain. My specialties are image processing and computer vision. I graduated from the Indian Institute of Technology (IIT) Bombay, Mumbai where I worked on the problem of image retrieval. I have worked with Siemens Corporate Technology Labs (July 2006 - Aug 2008) and am currently working in SAIT - India, a division of Samsung India Software Ops. (SISO). You can learn more about me at: http://unhub.com/AmitPrabhudesai Feel free to drop me a line at [email protected]'m passionate about technology, innovation and product-engineering. I blog about these topics (and more) at: http://thoughtlabs.wordpress.com/
Human-detection using Adaboost
Problem statement - detecting presence of humans in video frames from a surveillance camera
What is Adaboost?
Adaboost or ADAptive BOOSTing is a method to learn a single 'strong' classifier from a huge set of so-called 'weak' classifiers
What are 'weak' classifiers? They are a set of simple features - only constraint being that the max. absolute classification error over the training set < 0.5e.g. - Haar features - difference-of-sum features computed over image regions
Philosophy of AdaboostLearn the best-set of features by solving successively difficult problems (think GRE-test!)
Adaboost gives you the final set of best features, weights to combine them and a threshold
Fast feature computation
Efficient feature computation via the 'Integral Image' II(x,y) = sum(i(x',y')) s.t. x' <= x, y' <= y
Why compute the integral-image representation?Constant-time computation of difference-of-sum features!Rectangular sum computed in 4 array referencesDifference between rectangular sums computed in 8 array referencesAdjacent rectangle-sums computed in 6 array references
Work packages
Creation of training data-set 1000 positive samples from training videos from surveillance video3000 negative samples from videos not containing pedestrians - randomly extracted windows
Prototype development of a human-detection system using the Adaboost algorithm
Use of MATLAB for rapid development and testingTraining the classifier Testing on unseen samples (partitioned from the collected data-set)Testing on unseen real-life video sequences from the surveillance camera
Work packages
System implementation in C for benchmark and demo to managementPromising results
Good detection rate (97 per cent +) Low false-positive rate (1 FP in every 1,000,000 windows examined)
FP-rate is critical in real-life systemsCost of false-alarms is high!
Porting of system to FPGA for embedded hardware implementation
Close involvement with FPGA team to explain system architecture Explore scope for parallel implementation - real-time performance desired!
Success Stories!
System ported on FPGA and DSP-based 'Smart Camera' attaining real-time performance
Detecting all humans present in a 320 x 240 video frame with frame rate of 30 fps
System deployed on Client site for use as Intruder detection system
Lane Departure Warning (LDW) System
Part of the Automatic Driver Assistance System (ADAS) Portfolio
LDW System - Goals & Responsibilities
Porting and Optimization of a LDW system to the Texas Instruments (TI) DM6437 fixed-point digital signal processor Responsibilities
Part of the team as a computer-vision algorithms expertReverse-engineer the algorithm from C++ code provided by the ClientPrepare detailed-flow-diagrams (DFDs) and conduct code walk-throughs
Understand the algorithm and help with the optimization for the TI-C6000 architecture
Suggest possible algorithm enhancements to algorithm developers (Client-side)
LDW System - Work packages
Complete understanding of the algorithm from C++ source code and preparation of DFDs for algorithm understandingInvolved in porting and optimization for TI-DSP C6000 architecture
Code optimization and re-structuring for efficient embedded implementationTuning of run-time critical loops using compiler intrinsics, assembly optimizationMemory optimization - re-structuring data, reducing memory stallsFixed-point optimization using the TI IQMath library
LDW System - Contributions
Obtained overall improvement of 2.5X in system performance (from baseline version) with up to 4X improvement in run-time critical modules Proposed an alternative design for a LDW system which is considerably less complex than existing design
Implementation and validation of proposed design in C with both synthetic test sequences and real-life test sequences A Disclosure of Invention (DoI) filing on the work on the alternative LDW System design and implementation
Video Analytics for Retail Store Chain
Vision-based system to count number of people entering a store
Subsidiary system to detect the formation of a queue at billing counters
Video analytics for Retail Store
Problem statement: System to count the number of people entering a store and allied (separate) system to detect queue-formation at billing counterResponsibilities
Complete responsibility of end-to-end solution designRequirements gathering and spec'ingSystem architecture definition Software development Testing and ValidationDemo
Retail store video analytics - Solution
Proposed an efficient system based on adaptive background separation (Stauffer-Grimson algorithm)
Background separation to detect foreground blobs Feature-extraction on detected blobs and validation Track the blobs on basis of extracted features
Guard against counting same person twiceQueue formation detection
Simple morphological operations on background subtracted frameFlag _queueFormed event on basis of blob dimensions
Retail store video analytics - Development
Software development for the proposed system in C++ Testing and validation on simulated sequencesProposed system demonstrated to management
Automatic Fingerprint Identification System (AFIS)
Responsible for complete software development in C++ for automatic fingerprint identification systemUse of OpenCV library for rapid prototyping and developmentProposed and implemented heuristics for reliable minutiae extraction from fingerprint imagesDynamic programming (DP) based string-matching algorithm for identificationDemo-system with developed software, and basic UI to interface capacitive touch sensor to PC for fingerprint enrollment and matching
Trainings/Mentorship
Attended the Texas Instruments Developers' Conference - India (2008) Workshop on Optimizing for TI-C6000 architectureAttended the ICVGIP'06 Conference representing Siemens as a delegateMentored interns on their summer projects/Graduate projectsDevelopment of an image-processing library optimized for the TI-C6000 architecture with an intern from IIT-Madras
More to follow ...