Part 1: Segmentation of hands In this part, we are given a sequence of video frames in which a person is playing the piano with both hands. We Try to develop an algorithm to identify the pianist's hands. Portions of the hands are sometimes in deep shadow, which creates a challenging imaging situation for us.
Part 2: Track moving objects We are tracking bats and cells for this part
Method and Implementation
Part 1: We first use absdiff to find the difference between the first frame and the later frame. We then use projection to find out Region Of interest(ROI); We use skin detection on the ROL(we have to adjust the parameters the the skin detection in order to get the perfect result) Then we apply the FindBinaryLargeObjects function provided in lab we find the hand. Since skin detection will detect face and part of piano. We make sure that the area of the blob we find is between certain range.
Briefly outline the functions you created in your code
For part one, we use absdiff, skin detection and FindBinaryLargeObjects as well as erosion and dilation
In this part, we used kalman filter and hungarian algorithm to track the bats in each frame. Our basic process is:
grayscale the image, do background subtracting, get the objects, draw the contour, eliminate noise, get the centroids
of every object and use the centers as our main track measurment.
Functions and classes involved:
class kalman----kalman filter class for every tracked object
Detect()----for objects detecting and drawing contours
tracking()----for objects tracking
The processes of tracking bats and cells have not much difference.
Part one : We use the pianist frames that has provided. We want to see if we can detect the correct two regions (both hand) in all frame
Part two : We use the bats frames that has provided.We want to see if we can track the bats correctly
Discuss your method and results:
- For part one, we successfully detect both hands of all the frame
- For part two, Hungarian algorithm is a very important part for this programming, since we do not have a offical algorithm so we try to write it by ourselves. The algorithm we comp up with is not very fast. Furthermore, there are lots of parameters involved in the process of tracking objects (e.g., the max trace lenght we set, the width of the gate, the delta time). All these parameters will have influences (more or less) on the results. Sometime it is hard to determine these parameters. We need to understand more about the theory of the process to get clearer about how to track an object.
ConclusionsIt is a hard work but we all have fun at last I think.
Credits and Bibliography
Jiafei Xue Xi You Guangxing Ren
Material on the web should include the url and date of access.
Credit any joint work or discussions with your classmates.