Skip to content
This repository has been archived by the owner on Jan 31, 2019. It is now read-only.

Commit

Permalink
Updated changelog, readme and todo
Browse files Browse the repository at this point in the history
  • Loading branch information
srepollock committed Apr 14, 2016
1 parent e27368f commit db954fa
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 22 deletions.
60 changes: 60 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,65 @@
# COMP4932-Assignment3
COMP4932 Assignment 3 : Facial Recognition

# About
Face recognizer program. This is a program that uses your computers webcam to find a face, currently the best face inside the face space, to then find in the library of faces (prerequisite).

# Table of Contents
* [Controls](#controls)
* [Usage](#usage)
* [Adding Faces](#adding-faces)
* [Finding Faces](#finding-faces)
* [FAQ](#faq)
* [References](#references)
* [Library](#library)
* [Viola-Jones](#viola-jones)
* [EigenFaces](#eigen-faces)
* [License](#license)

# Controls
1. Ctrl-Shift-C : Finds the best face in the image (the one that looks like the best face)
2. Ctrl-Shift-F : Finds the face that we captured in the face [library*](#library) and displays the recration of it.

# Usage

## Adding faces
> You will need to complete this 3 times, having your face within the box.
> - Top of the head at the top of the box
> - Bottom of the chin at the bottom
> - Equal gaps on both sides of the head
1. First capture the face with [Ctrl-Shift-C](#short-keys)
2. Add the face to the library with [Ctrl-Shift-C](#short-keys)
3. Name the file `tempXX.bmp` where `XX` is the next number in the series of images

[FAQ](#faq)

## Finding faces
1. Refresh the cameras in the list.
- This will get all the webcams/cameras currently plugged in
2. Select a resolution from the dropdown below it
- Fastest results is to use a lower resolution as it is faster at finding the faces
3. First capture the face with [Ctrl-Shift-C](#short-keys)
4. Then test if the found face is in the [library*](#library) using [Ctrl-Shift-F](##short-keys)
- It will then display the found face & average face reconstructed.

# FAQ
_Question_
The program keeps crashing after adding faces. Why is it doing this?
> Most likely you have not added the correct amount of images. You must add *3* (no more, no less) images of your face for the program to work. Any more or any less and the program will throw an exception.
# References

## Library
When talking about library, I am stating that the image library of the faces must be preset with your face to be 'recognized' by the software. The image must follow the [format](#format) of the faces to be searched for the program to work correctly.
## Viola-Jones
When talking about Viola-Jones I am referencing the method of Viola-Jones.
[Wiki](https://en.wikipedia.org/wiki/Viola%E2%80%93Jones_object_detection_framework)
[Slides-shortened](http://www.cs.ubc.ca/~lowe/425/slides/13-ViolaJones.pdf)
# Eigen Faces
The face finder method used is based on the paper found [here](https://en.wikipedia.org/wiki/Eigenface).
[EigenFaces paper](http://www.face-rec.org/algorithms/PCA/jcn.pdf)

# License
MIT License
> *Note*: The Viola-Jones library used can be found [here](https://github.com/accord-net/framework) under [Accord-Vision](https://github.com/accord-net/framework/tree/development/Sources/Accord.Vision).
3 changes: 3 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Changelog
> YYYY-MM-DD HH:MM {Changes}
2016-04-13 19:30 Added student's code and and finding the face comparing the face space
2016-04-12 11:23 Using Viola-Jones method/library to find the face
2016-04-11 09:33 Using AForge to get the video camera
2016-04-07 12:47 Added comments to ImageTool. Moved functions into ImageTool. Removed ImageChanger class (moved into ImageTool).
2016-04-06 23:58 Fixed moved functions to data class. Added toolstrip menu and extra button disable functions.
2016-04-06 12:11 Added .gif image support.
Expand Down
38 changes: 16 additions & 22 deletions todo.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,24 @@
# TODO
> Most of my TODO's for the project will be in the Visual Studio Task list. This is just an overview of the projects to do
- [ ] Brute Force: **(20%)**
- See notes in notebook on how to implement
- Comment the shit outta this part
- Basically search each point and try to find a space
- Ask Tyler & Dimitry for some help
- [ x ] Optimize face space: **(10%)**
- thread?
- searching?
- [ x ] Motion tracking & Head tracking: **(20%)**
- Differences between two images
- Find the face based on the "blob"
- see headtracking.gif for example of the "face" blob
- "face" is a small blob ontop of a "body" a larger blob
- Ask Tyler for some help
- [ ] Background elimitation: **(10%)**
- Haar?
- I don't know what to do about this one. Just find the face and smooth out the edges?
- I know I have to apply a filter
- [ ] Integration of code provided: **(20%)**
- basically we have to use this. Just get it working and this is done
- [] Brute Force: **(20%)**
- Search the entire image, 256x256 rectangle, then check to see if that is a face
- [x] Optimize face space: **(10%)**
- Viola-Jones
- [x] Motion tracking & Head tracking: **(20%)**
- Using Viola-Jones
- Searches the image initially to find the face first,
- Then remembers where the face is and searches locally around it to see if it is still in the image
- [] Background elimitation: **(10%)**
- Use AForge's Gaussian blur on the found face to eliminate the background
> Maybe other methods as weel.
- [x] Integration of code provided: **(20%)**
- Get previous student code working with the face found

## Thoughs
> Basic ideas and just a notepad for thoughts on the project
1. Find the best face
1. [x] Find the best face
- Instead of using just rekt[0], use rekt[i], looping through the faces and finding the best

for(int i = 0; i < rects.Lenght; i++){
Expand All @@ -39,4 +32,5 @@
}
}

> What functions do I need to call here? What am I actually calculating?
> What functions do I need to call here? What am I actually calculating?
2.

0 comments on commit db954fa

Please sign in to comment.