HISTORY.txt for the Stasm package --------------------------------- --Version 4.1.0 Dec 27, 2013 You can now build your own models using Tasm. As a result of small changes to Tasm and the start shape code, this version now gives very slightly different landmark positions from Version 4.0.0. The overall performance is virtually identical. The machine generated model files (.mh files) are now in a single directory stasm/MOD_1/mh. This makes it easier to check ordering and completeness of the files. Touch-ups to Wasm to prevent crashes on corrupt image files. Pacifier digits now have "_" appended so when messages are interspersed with pacifiers it is clearer which text is the pacifiers. Numerous small other changes, mostly to allow users to build new models that don't have 77 points. Also touched up up some comments and messages to the user. --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