Wednesday, September 13, 2006

Reunion of BCSS01 and BCSF01

Reunion of first 2 batches of PUCIT BSc HONS was held on 10th September 2006, in Salt n Pepper Grill.

Both batches attended the reunion in large numbers. Only 16 students from BCSS01 and about more than 50 students from BCSF01 attended the reunion. Great ratio, right:)

The idea was initiated by our junior microsftian Fahim, and our teachers Sir Waqar and Anzar proved to be very supportive. It was great fun meeting everyone after almost 20 months. All juniors have got a better place and few are getting higher education, that is great toooo.

The event started well and ended well. We had a fateha for our batch fellow Farhan Bhatti. Aleem shared some of his experiences with everyone while standing on a fountain :D We had a great dinner and it was something I will not forget for some time. The students of our batch who attended were:

Abdul Aleem Khan, he is currently working in Dubai sotware house (don't remember the name) as a Senior Software Engineer.
Mian Haroon Saeed, he is currently working in Techlogix as a software engineer. He also became a coder king in couple of weeks back.
Usman Qutab, he is currently working in CambridgeDocs as a software engineer. A .Net specialized boy working in Java domain from about a year.
Touseef Liaqat, he is currently working in Mentor Graphics as a software engineer. He is engaged and sooon will be married.
Yasir Mehmood, he is currently working in Innovative as a software engineer. He got married 2 days before the Reunion.
Ikhlaq Ahmed, he is going to University of Glosgow on HEC scholarship for facult development program. He will join Quetta Institute of Technology after completing his studies.
Waleed Yousaf, he is also going on 26th september 2006 for further studies. I did not get the course name and place where he is going.
Sheheryar Ilahi, he left Descon then joined some other place, and then he again joined Descon. How faithful :)
Salman Abid Jafri, he is I think in Descon. Did not get a chance to know about him completely.
Salman Hamid, he is a Human Resource Manager in Greenwich something. They conduct hiring for many big companies.
Irfan Tahir, he is doing MBA from NUST.
Tariq Yousaf, he is currently working in Systems Ltd as a software engineer in .Net team.
Moeen Ahmed, he is currently working in Systems Ltd as a software engineer in .Net team.
Najam Nazar, he is currently working in a software house (did not get the name) as a software engineer.
Dawood Nasim, he is ................ did not get the chance to ask him what he is doing :)

I hope I haven't missed anyone. I'll add them if anyone comes in my mind.

Good luck to everyone for their plans.




Dynamic Ellipse Fitting on blobs in an image

Dynamic Ellipse Fitting on blobs in an image means placing an elliptical human model on detected foreground to classify either the foreground contains a human or not. First of all, if the blob size(foreground size) is less than some threshold then it is not a human. If it is a human, then we perform this technique to decide either there are more than one person or not. In short, we use dynamic ellipse fitting for Occlussion Removal.

The technique to place a dynamic ellipse is as follow:

Center of Image ---> (Xi,Yi)
Center of blob -----> (Xb,Yb)

Angle for the orientation of the ellipse depends upon the distance from the center and also the location of the blob in an image, therefore

Angle--------------> 180 - ((arctan((Yb-Yi)/(Xb-Xi)))*180/Pi)

Equation of the ellipse is:
-------------------------
x^2/a^2 + y^2/b^2 = 1
-------------------------
this can be expanded to:
(Xb-Xi)^2/Rx^2 + (Yb-Yi)^2/Ry^2 = 1

=> (Xb-Xi)^2*Ry^2 + (Yb-Yi)^2*Rx^2 = Rx^2*Ry^2

where Rx = Wi/hx, Ry = Hi/hy

Wi = width of the image
Hi = height of the image
hx = ??????? (still not finalized)
hy = ??????? (still not finalized)

distance of the blob from the center of an image -> sqRoot((Yb-Yi)^2 + (Xb-Xi)^2)
this thing will be used to adjust the values of hx and hy. In this way a variable length ellipse will be
placed on the blobs in an image.

Tuesday, September 12, 2006

Teaching at PUCIT

I started teaching Computer graphics in PUCIT, University of the Punjab on April 3rd 2006. I was allocated to 6th semester, BCS Fall 2003. On Friday September 15th, 2006 is the final exam of my subject :)

Will discuss the contents which I covered in the course, later.

Reconnection with my blog

I really appreciate the help of my friend Abdul Aleem Khan....... because he told me the way to access my blog again.
Thanx Aleeem

Saturday, August 26, 2006

Background Subtraction - Stauffer & Grimson's Algorithm

Background Subtraction is a technique in which background and foreground are segmented so that we can perform our required algorithms (such as face detection, gender classification etc). The basic approach for background subtraction is to store the background image as the reference image, in which there is no movement and then in every other frame subtract the reference image to extract the alien objects in the scene. The alien objects are captured as foreground and these are used for further applications.
Since the background does not always remain constant (mainly because of light changes or continuous movement of leaves) therefore we need to develop an approach in which we update the background continuously so that minute changes in the background are made part of the background. Stauffer & Grimson’s algorithm is one of the most reliable algorithms to facilitate adaptive background subtraction.
Stauffer & Grimson Algorithm
The algorithm models each pixel with a mixture of Gaussians. At every frame, for each pixel, distance of pixel’s color value is calculated from each of the associated K Gaussian distributions. Every new pixel is checked against all existing distributions. The match is the distribution with Mahalanobis distance less than a threshold. The mean and variance of unmatched distributions remain unchanged. The matched distributions are updated by using alpha blending concept. For the unmatched pixel, the lowest weight Gaussian is replaced by the new Gaussian with mean at the new pixel and an initial estimate of covariance matrix. Then we sum up distributions less than some threshold to decide whether the current pixel is part of the background or foreground.
Reference
"Adaptive Background mixture models for real-time tracking" by Chris Stauffer and W.E.L Grimson (The Artificial Intelligence Laboratory, Massachusetts Institute of Technology)
http://www.ai.mit.edu/projects/vsam/
Overview of the algorithm is given at the following link:
http://www-staff.it.uts.edu.au/~massimo/BackgroundSubtractionReview-Piccardi.pdf
The original paper is available at the following link:
http://www.ai.mit.edu/projects/vsam/Publications/stauffer_cvpr98_track.pdf

Principal Component Analysis

PCA is an approach used for face recognition and it is also enhanced to work for gender classification and skin detection.

Basic Principles of PCA

To decompose face images into a small set of characteristic feature images called Eigenfaces, which may be thought of as the principal components of the original images. These Eigenfaces function as the orthogonal basis vectors of a linear subspace called Face Space. Recognition is performed by projecting a new face image into this face space and then comparing it position in the face space with those of known faces.

Phases of PCA

A - Initialization
Acquisition of training set of face images and calculation of Eigenfaces.

B - RecognitionGiven an image to be recognized, calculate a set of weights of M Eigenfaces by projecting it onto each of the Eigenfaces. Determine if the face image is a face at all by checking if the image is sufficiently close to the face space. If it is a face, classify the weight pattern as either a known person or as unknown. If the same unknown face is seen several times, Eigenfaces and weight patterns are updated by calculating the new face’s characteristic weight and incorporating into the known faces.

for more info:

http://en.wikipedia.org/wiki/Principal_components_analysis