A very simple approach!
The code is in the featureExtraction.m file.
It includes two steps:
featureExtraction.m
Set
% featureExtraction.m
% the training data is in `morph_small/trainset/`
flag_train = 1;
flag_precalibration == 1Run featureExtraction.m script,
- Set
flag_train = 1;, thenAAM.matfile (AAM model) will be generated in the foldermorph_small/trainset/. After that, setflag_train = 0;. - Set
flag_precalibration == 1;, then the calibration parameters would be computed and saved inmeanscl.matandmeantrans.mat. After that, setflag_precalibration = 0;.
The training/test images are in the folder morph_small/Images_ori/ (total 2500 images).
dataset the morph dataset can be download from this website.
Alternatively, I upload some images here (total 10000 images) and here (total 28533 images) for academic use.
After run featureExtraction.m,
- the piecewirse affine warpped images are generated in the folder
morph_small/Images_normalized/, - the images with extracted features are generated in the folder
morph_small/Images_withfeatures/, - and the extracted batch features in the
.matform are saved in the foldermorph_small/features_mat0/.
append_features.m
If the images dataset is very large, it may take a long time to train.
So you can partition the datasets into multiple parts, and train each part separately. Just remember rename the destination folder, like features_mat0, features_mat1, features_mat2, features_mat3.
Then run the append_features.m script.
This script will collect all features from batch features into a single .mat file, Allfeatures.mat.
main.m
After run featureExtraction.m and append_features.m, the features are generated in Allfeatures.mat.
Then run main.m.
The script main.m train and test a classification model using Allfeatures.mat.
Set is_partition_dataset == 1 when first runs to generate trainset.mat and testset.mat.
Set is_svmtrain == 1 and set svm_type= 0 or 1 or 2 to train a svr model.
Set is_svmtest == 1 to test the model.
test_images.m script predicts the age from images.
REPORT is given: age_estimation_report.pdf
[1] Xin Geng, Zhi-Hua Zhou, and Kate Smith-Miles. Automatic age estimation based on facial aging patterns. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 29(12):2234–2240,2007.
[2] Georgios Tzimiropoulos and Maja Pantic. Optimization problems for fast aam fitting in-thewild. In Computer Vision (ICCV), 2013 IEEE International Conference on, pages 593–600.IEEE, 2013. http://www.mathworks.com/matlabcentral/fileexchange/44651-active-appearance-models--aams-
[3] Khoa Luu, Karl Ricanek, Tien D Bui, and Ching Y Suen. Age estimation using active appearance models and support vector machine regression. In Biometrics: Theory, Applications, and Systems, 2009. BTAS’09. IEEE 3rd International Conference on, pages 1–5.IEEE, 2009.
[4] Ricanek, Karl, and Tamirat Tesafaye. "Morph: A longitudinal image database of normal adult age-progression." Automatic Face and Gesture Recognition, 2006. FGR 2006. 7th International Conference on. IEEE, 2006.
Contact: huajh7@gmail.com
2014/6/19