HISTORY.txt for the Stasm package
---------------------------------

--Version 4.0.0   May 28, 2013

Initial release of version 4.  Stasm now uses HAT descriptors.


--Version 3.1     Dec 13, 2010

Small modifications to make building under linux easier.


--Version 3.0 Sep 23, 2010

Stasm now gives slightly improved results, especially on faces that
are not fully frontal or have smiling mouths.  The ASM models are now
built from the MUCT data; in previous versions of Stasm the models
were built from the XM2VTS data.  Stasm is slightly slower because it
now uses 2D profiles for more facial features (see nWhich2d in the
tasm-mu_76_2d.conf).  The default ASM files are now mu_68_1d.asm
mu_76_2d.asm; they were model-1d.conf and model-2d.conf in previous
versions. To use the new ASM models with old versions of Stasm, see
the Stasm user manual, downloadable from the Stasm web page.

A DLL is now provided making it easier to use the landmark locater in
your own code.

The following new executables now come with Stasm:

  stasm_opencv_example  OpenCV example using the Stasm DLL
  casm                  Windows front-end to Stasm, webcam based
  iland                 Interactively locate landmarks
  winthatch             Utility for ``Thatcherizing'' faces

When there are multiple faces in the image, Stasm now uses the largest
face (not the most central face as before).

We now use OpenCV Version 2.1 (was OpenCV 1.0 in previous versions of
Stasm).  The new Viola Jones detector can also locate the eyes, but
Stasm doesn't use that facility --- it continues to locate the eyes
the Stasm 2.4 way (by first searching for the face using the OpenCV
Viola Jones detector, then adding the eyes using the neural net from
Rowley's software).  For VC6, we had to create a short modified
version of the OpenCV .h files to be able to compile --- see
stasm/stasm_cv.h for details.

We now support Visual C Version 10 (2010).  The old directory "msoft"
is now called "vc9" and there is a new directory "vc10".  The old
compilers remain fully supported.  The compiler flag /MT is now used
more consistently.  We now provide Microsoft Studio .sln files for
more executables.

Stasm.exe now creates shorter filenames, making it easier to see full
filenames in image thumbnails.  Stasm.exe now has a few more flags for
use with the -t option.  The .tab file format changed slightly to
allow better analysis of results

Support for the PUT face database has been added.

We now support PNG files (Microsoft builds only).

The manual landmarking utility Marki has been streamlined based on our
experience landmarking the MUCT data.

The shape files 68.shape and 84.shape have now been split into
separate files of more manageable size.

The second parameter of the mdiff utility can now be a directory name.

The signs of eigenvectors generated by tasm are now flipped if
necessary so the largest element of each eigenvector is positive.
This gives consistency in eigenvector signs across builds and
machines.

Several minor issues were fixed based on user feedback.  Several
comments in the source code were clarified and other minor
emendations were made



--Version 2.4 Nov 23, 2008

Fixed a bug in marki: marki crashed when paging back over previous images



--Version 2.3 Nov 15, 2008

Added Casm webcam utility



--Version 2.2 Oct 30, 2008

Stasm (with 2D profiles) is now about 14% faster.

Added the config file model-1-vjmethod1d.conf for people who want the
fastest searches at the expense of landmark location accuracy. It uses
nVjMethod=1 (i.e. no global search for eyes). Use it like this:
    stasm -c ../data/model-1-vjmethod1d.conf myfile.jpg
This is about 21% faster than:
    stasm -c ../data/model-1d.conf myfile.jpg
Note that both of the above examples do not use 2D profiles (see
figure 6.2 in the master's thesis to see the benefits of 2D profiles).



--Version 2.1 Sep 31, 2008

Ported to Linux.  This caused some minor code changes as follows.
Lines in text files are now terminated with \n not \r\n. Functions
like _splitpath are now named splitpath and are defined in
util.cpp.  Similarly, _stricmp is now stricmp.  The jpeg code was
tweaked to compile in all environments.  There is no more "cdecl"
in declarations.

Fixed some minor bugs.

"make test" no longer requires the full XM2VTS or BioID sets
(but "make fulltest" does).

The hand-tuned Viola Jones start shape routine now works better
and is now the default in Stasm (CONF_nVjMethod==0 is set in
model-1d.conf and model-2d.conf).  The Viola Jones face detector
now calls the Rowley eye detector.  If one eye is not found by
the Rowley eye detector, we synthesize the missing eye position
from the other eye.  For test results, see
data/compare-2.1-to-2.0.png.

The Rowley eye detector is now better at ignoring false positives
in the eyebrows (see SKIP_WHEN_EYE_FOUND_DIST in find.cpp).

If the Rowley eye detector does not find the eyes, it tries again
at a lower resolution (see CONF_fSearchAgainForEyes).
    Fdet results now:  Found 1338 faces in 1521 files, 2.4% no eyes 10.3% one eye
    and with stasm2.0: Found 1338 faces in 1521 files, 5.5% no eyes 13.3% one eye
Thus the Stasm Rowley results are now better.  However they do not appear
so if you use bioid/B*.jpg (i.e. the whole BioID set) because more
faces are now included (whereas before they were excluded because
the eye detector failed). Note that nShape is bigger below:
    stasm2.0/tests/bioid-row-1d.tab nshapes 1053 med 0.0543 mean 0.0574 min 0.0294 max 0.2343
    bioid-row-1d.tab                nshapes 1146 med 0.0551 mean 0.0599 min 0.0294 max 0.3284




--Version 2.0 Sep 11, 2008

The software has undergone an overhaul.  The underlying
algorithms are the same as previous releases and the fits
are comparable.  Because of minor differences in the code
and statistical fluctuation, the results on your test sets
may be slightly better or slightly worse than before.

A user manual is now available.

Support for Visual C 2008 has been added (the free
Express edition is sufficient).

You can now build Stasm from within the Visual C Integrated
Development Environment.

The mingw build now supports the Viola Jones detector.

Tasm (to build ASMs) is now included in Stasm package.  Tasm
is a cleaned up version of Masm from the old masm package.
It is now easier to build models from datasets other than
the XM2VTS set.

Config files are now used instead of #defines for defining
ASM parameters.

The default face detector is now the Viola Jones detector.
It was the Rowley detector.

Stasm now issues a warning instead of an error if the face detector
was unsuccessful, which means it now processes subsequent images.

The format of ASM files has changed and now includes
the mean Viola Jones and Rowley shapes, based on
an idea by GuoQing Hu.  To convert old format files
to new, use tools/asm0to1.awk.

Eye location in the Rowley detector is now a little better because
we are now better at avoiding false detects on the eyebrows, see
SKIP_WHEN_EYE_FOUND in rowley/find.cpp.

Peripheral tools have been improved (marki, fdet, ...)

An extensive test suite has been included in the makefiles.



--Version 1.5 Jan 2008

Added GPL licensing details.



--Version 1.4

Fixed bug in Sparse_xAx which used last diag element twice
Added -Oa to microsoft build (i.e. assume no pointer aliasing)
Removed unused params and shadowed variables after running "gcc -Wextra -Wshadow"
Added const where appropriate (unfortunately caused a number of text changes)
Fixed some typos



--Version 1.3

I will try and keep the sources stable from now on
Modified start shape generation for viola jones for improved results
Simplified some code especially for landmarks
Changed some unsigned to ints to reduce number of nuisance type coercions
Made naming convention a bit more standard by changed nHeight to height etc.
Code and comment fixups



--Version 1.2

Initial release
