A new version of CERT with different graphics (no mention of UCSD).
Only one output: Fake smile versus genuine.
May be based on the raw image like the smile detector or may be based on CERT output.

Javier would like an estimated budget. Deadline is the end of April.

If I'm going to be working on a new machine:
2 hours
	Create a branch in CERT (possibly also in FL)
	Check out all of FL, CERT and assorted other SVN reps (from branch(es))
	Get all paths pointed right and do a test build
1 hour
	Remove all references to UCSD/MPLab
	Add a new graphic? Simple text will be easy, graphic, much harder if I have to design it.
2 hours
	Create copies of any standard CERT plugins whose output will be needed by option 2 below and suppress the creation of AUViews. This will be used so that we can run the AU's needed for option 2 below, without the user needing to see the AU outputs.

	Create two different fake/genuine plugins.
2 hours
	A standard SVM plugin.
2+ hours
	The other a PostProcessing plugin. Possibly more than two hours if the output of multiple different plugins is needed and there is much in the way of reformatting that has to be done.

6 hours
	Testing. Do we have labelled images to compare with the CERT output?

Questions
What should the application be called?

The about box currently has the MPLab logo image (but no text identifying Mplab), plus the version and build numbers, plus a copyright. What should go in the about box? Do we have a logo of any kind? What name should the copyright list? What version number should we call this?

Right now we have a few help pages that include basic info about FACS and CERT and the plugins. Should I just disable all of that or are we going to want to include some help files?

What about the data window? Will they be saving actual output values, or just using it 'manually'?

What face features should we be using? Jake's feature improver? This should probably be the same as whatever was used to train the new weights.

Are we going to want the face boxes and features to be drawn on the image or not?

I still don't know how the new detector is going to work. Is it a normal set of SVM weights like he 11 base AUs, or is it going to need inputs from other AUs or detectors?

I've gotten a few things done this morning, but ran into quite a few questions:

What should the application be called?

The application is called ASAP (automatic smille analysis prototype). The product is developed by  MPT in partnership with PEG. The website is mpt4u.com

The about box currently has the MPLab logo image (but no text identifying Mplab), plus the version and build numbers, plus a copyright. What should go in the about box? Do we have a logo of any kind? What name should the copyright list? What version number should we call this?

Automatic Smile Analysis Prototype Version 1.0.
Copyright Machine Perception Technologies Inc and the Paul Ekman Group, 2009

Right now we have a few help pages that include basic info about FACS and CERT and the plugins. Should I just disable all of that or are we going to want to include some help files?

We'll probably have some help files later.

What about the data window? Will they be saving actual output values, or just using it 'manually'?

It shall save and display  only the smile analysis value. The smile analyzer is basically estimating whether or not the smile is a joy smile.

What face features should we be using? Jake's feature improver? This should probably be the same as whatever was used to train the new weights.

We shall use the best facial features: blink resistant + feature improver.

Are we going to want the face boxes and features to be drawn on the image or not?

Yes. It looks cool and provides important feedback to the user.

I still don't know how the new detector is going to work. Is it a normal set of SVM weights like he 11 base AUs, or is it going to need inputs from other AUs or detectors?

For now let's focus on the detector that uses inputs from the AU detectors.  There may also be a detector that uses svm weights like the 11 base AUS and another type that may
be work like the current smile detector put together by Jake.

-J

Sunday March 29, 2009
	~2 hours
Saturday April 4, 2009
	8:00 am - 10:30 am. Changed the app name and as many instances of 'CERT' as I could find. Created a new SVM plugin for the CERT 4.4 weights, tried removing the labels to disable display. Put together a long list of questions for Marni/Javier.
Sunday April 5, 2009
	4:00 pm - 5:30 pm. Added a 'display' flag to the plugin protocol and base class. The base class reads a 'Display' value from the plugins info.plist and if set to false, suppresses display of AU views.
Monday April 6, 2009
	6:30 - 8:00 am. Added CERT 4.0 AUs and Unilaterals plugins. Added default values for the feature averager that match the CERT command line config.
Wednesday April 8, 2009
	6:15 - 7:00 am. Added a new Enjoyment plugin (post process type). Added Gwen's weights to a plist and read it in.
	7:15 - 8:45 pm. Added code to grab all of the results, in the correct order. Except for the cropped face points which still need work.
Thursday April 9, 2009
	7:15 - 8:00 am. Finished the Enjoyment plugin. Disabled PoseDetector display. Checked everything in.
Monday April 13, 2009
	6:30 - 7:45 am. Changed the data recorder so that users shouldn't need the data window. Just start running images then use the Save menu item to save all the data.
Thursday April 23, 2009
	6:30 - 7:45 am. Removed the Live Video button and the control view from the bottom of the main window. Fixed a bug that was preventing the FeatureAverager from staying enabled. Fixed a bug that was preventing the PoseDetector from being enabled by default when the app was first run. Added a new view nib to the Enjoyment plugin, based on the Rubios status view.
Sunday April 26, 2009
	10:30 am - 4:30 pm (~4 hours). Added a basic analog display for the enjoyment output.
Monday April 27, 2009
	8:15 pm - 9:00 pm. Got the cutoff slider working.
Tuesday April 28, 2009
	6:30 am - 7:45 am. Added a green arc to the analog display for the cutoff.
Wednesday April 29, 2009
	7:30 am - 8:00 am. Removed all dependence on the AU Filtering framework from the Smile detector, which was causing problems getting ASAP to run outside the development environment.

Total hours so far: 19.5 

Thursday April 30, 2009
	~1.5 hours. Changed the application icon. Removed the 'Choose Source' button. Added the cutoff and Joy/NoJoy to the saved output. Removed an unused checkbox from the open panel. Built a release version.

Saturday May 2, 2009
	12:00 pm - 4:00 pm. Created two more plugins for the new joy related dials. Had to modify the view that holds the output views. Updated the data recorder to include all of the new outputs.
Sunday May 3, 2009
	4:00 pm - 4:30 pm. Added a label to the speedometer view so we can tell the three plugins apart.
Sunday May 10, 2009
	10:30 am - 11:30 am. Fixed a jpeg/png image display size problem.

DONE:
Need to make the gui changes Marni requested. Done, I think.
Once all testing is done, remove the plugins menu and preference menu item.
All plugins need to be turned on by default. Some of these changes should go back to the CERT trunk.
Also need a way to eliminate the need for the data window. Set it up so it will just run automatically and record everything and have the save panel not attached to the data window.

April 21, 2009
	Replace Text title ("Automatic Smile...") with an image.
  DONE:
	No "Live Video" button.
	Analog output: speedometer type or bar
	Digital output
	Slider (plus number) with a cutoff for enjoyment/no enjoyment. Scale will be -1 to +1.
	Put the about box info in the main window.
	Add threshold and joy/no joy to each image output.
	Remove the controls box at the bottom of the main window.

April 29, 2009
I would like for the GUI to have 3 different dials.

In order to get the dials to work, 6 parameters are needed which I'll name here m, s, m1, s1, m2, s2, c

For the current implementation please use
m = -2.2823, s = 1.1947
m1 = -1.3201, s1 = 1.0186
m2 = -2.5127, s2 = 1.1164
c = sqrt(3/pi) = 0.9772
These numbers may change in the future.

Dial 1.
The first one will be called the "Joy Quotient" and it is basically a linear scaling of the current output to have the same metric as an intelligence quotient.

The commands to compute the Joy Quotient are

y = (x - m)/s
y = y*15 + 100

where x is the output of the current prototype and y is the joy quotient. Put the minimum JQ at 45 and max at 160, with the center at 100.

Dial 2.
The second dial is called "Percentile". It shows the people that show smiles with less joy than the one observed

the commands to compute the percentile are as follows

z = ( x -m )/(s*c);
p = 100/(1+exp(-z));

where x is the original output of the system and p is the percentile

The minimum of this dial should be at 0 , the max should be at 100 and the center at 50

Dial 3.
The third dial will provide the Odds for the observed smile to be a Joy smile.

The commands to compute the odds are as follows

if (z > 1) odds = z
if(z <1) odds = - 1/z

where

z = f(x, m1, s1*c)/f(x, m2,s2*c)

x is the output of the current asap prototype, and the function f is defined as follows

f(p1, p2, p3) = numerator/denominator
where
numerator = exp( - ( p1 - p2)/p3)
denominator = ((1+numerator)^2) *p3;

The "Odds" dial should have a min of -5 a max of 5 and the center should be at 1