Object Matching with Faces

Early Project Journal

Week 1On Tuesday, 1/23/07 I met with Dr. Pankratz and recieved my project. It is about object matching, specifically facial recognition. The goal is to try and indentify if a photo of a person's face matches any of the photos stored in a collection of faces. I began by researching some of the ideas behind facial, finding and thinking of defining facial characterstics, recognition and planning an outline of code to follow. There will be three main sections of code to write; the HCI for entering pictures and identifying features, the storages system of pictures and their information, and the search code. See my outline and analysis page for more.I got this webpage up and will be adding to it and modifying it throughout the project. I drew up a plan for the HCI for entering the pictures and identifying features. I will start by making the interface, beginning simply and then adding more later.
Week 2I began coding my interface in visual basic. I can load pictures as of now, but cannot do anything with them. I also looked up more information about the subject of face recognition on the internet. I hope to work more on the interface next week, implementing some of the characteristic identification, then starting on the data save system and maybe even work on the search a little bit.
Week 3I added the timeline to the website. It may end up changing as I continue working on the project, and I was not quite sure yet exactly what will be happening in the late middle section of the project. Here is a sample of code which can load a picture. Clicking on the picture will indicate the left eye position, right eye position, and nose position. The button click function can figure the ratio of distance between eyes and distance from eyes to nose after those locations have been clicked. Click to download sample1 VB form. Later in the week I implemented the first save system for pictures and data, which is a delineated text file. The save file is created if it does not exist. I also made functions for distance and midpoint. I began working on the search but it is not going yet in this sample. Click to download sample2 VB form.
Week 4I met with Dr. Pankratz on Monday. We discussed some ideas for the project, such as expanding around a clicked point and grabbing the color to get the average. I got Professor Blahnik's vb code, used for putting a picture into an array of bytes, from Jackie. I should be able to use it to get color information by pixel. Feature selection is now controlled by clicking on a button, and then clicking on that part of the face rather than by round robin.
Week 5 I took a bunch of pictures to use for testing the program at the COmputer Science Club meeting on Tuesday. They are really big and so I started cutting them down. I tested a few but the eye/nose distance ratios were similar, but more testing is needed. I made the parsing function for reading back a line from the save file and splitting it into the data, which is for now the file name;eye/nose distance ratio;sex.
Week 6I feel like I a have gotten a little behind on the project while working on other things. I met with Dr. Pankratz on Monday. He suggested dealing with the pictures entirely in my program rather than using a different program to edit them down to size. This could be done by either moving the picture or moving a rectangle around inside the picture. The size of the pictures from my camera is really big, 1600x1200, and they did not entirely show in the size of my VB form. I chose to scroll the picture and move the persons head into sight in the picture. I followed this example code to make my picture scroll with scroll bars. I have made it so that the picturebox window fits the size of the heads in the pictures. I tested the eye/nose ratio and accuracy of clicking on locations, using more pictures. I took the average point from five for the left to see if there would be much difference, but there is not alot. I can get within three pixels variance. The eye/nose distance ratio is different for different people so I think it can be used as one of the determining characteristics. I have found it so far to be between one and two. Clicking on the nose location is crucial. I have been trying to click on the very bottom of the nose, but tilt of the head can make it harder to see where to click. I think I will try putting the 5 click average on the nose point next. As for eyes, I have been trying to click on the center of the pupil. I made the program draw lines over the distance between the eyes and from the nose to between the eyes when it calculates the ratio. I tried coloring the pixels when clicking on the locations, but it is not as noticeable as the lines, because it is a single pixel. Click to download project sample3 as a zip file.
Home