Compact-Fusion Feature Framework for Ethnicity Classification
Abstract
:1. Introduction
- (i)
- A handcrafted-feature solution for ethnicity classification that was tested on two large datasets with five ethnicity classes (White, Black, Asian, Indian, and Others) and four ethnicity classes (White, Black, Asian, and Indian) is implemented;
- (ii)
- The proposed framework utilizes four handcrafted features (multi-local binary pattern (MLBP), histogram of gradient (HOG), color histogram, and speeded-up-robust-features-based (SURF-based)) as the basis for generating a compact-fusion feature with highly discriminant information;
- (iii)
- The proposed framework performs feature reduction only using a single data instance with a simple selection strategy, providing a better understanding of data representation and generation.
2. Related Works
2.1. Ethnicity Classification Based on Handcrafted Features
2.2. Compact Feature Representation
3. Proposed Framework
3.1. Overview of General Process
- The high-dimensional feature is generated from parameter variation in handcrafted features’ extraction, resulting in an effective compact feature process because the feature vector is in the same domain;
- The selection strategy for compact features only utilizes information from single-row feature vectors without involving other rows. It is performed with a simple selection strategy, resulting in a compact feature with a better understanding of data representation and generation;
- The compact feature process is applied before the fusion feature, resulting in a compact feature with the optimum performance used for the fusion;
- The multiple features used represent textures, colors, and pixel patterns that enrich feature vectors for better discriminant capability.
3.2. Handcrafted-Feature Methods
3.2.1. Multi-Local Binary Pattern (MLBP)
3.2.2. Histogram of Gradient (HOG)
3.2.3. Color Histogram (Color HIST)
3.2.4. Speeded-up-Robust-Features-Based (SURF-Based)
3.3. Independent Parameter Tuning
Algorithm 1. Compact-fusion feature framework: independent parameter tuning. |
PROCEDURE Independent_Parameter_Tunning |
(Input: |
GS[1..ns]: array of grid-size |
ITrain [1..nt]: array of image {Training-set} |
IValidation [1..nv]: array of image {Validation-set} |
LTraining [1..nt]: array of label |
LValidation [1..nv]: array of label |
{each ConfigFE contain n number of parameter for Feature Extraction} |
ConfigFE [1..4]: array of struct configuration of Feature Extraction |
Output: |
Opt_Gs[1..4]: array of grid_size |
Train_Opt_MLBP, Val_Opt_MLBP: 2-D array of image feature |
Train_Opt_HOG, Val_HOG_MLBP: 2-D array of image feature |
Train_Opt_Color_HIST, Val_Opt_Color_HIST: 2-D array of image feature |
Train_Opt_SURF_based, Val_Opt_SURF_based: 2-D array of image feature |
) |
DECLARATION |
VR_MLBP, VR_HOG, VR_Color_HIST, VR_SURF_based: array of region feature |
VI_MLBP, VI_HOG, VI_Color_HIST, VI_SURF_based: array of image feature |
Train_VI_MLBP, Val_VI_MLBP: 3-D array of image feature |
Train_VI_HOG, Val_VI_HOG: 3-D array of image feature |
Train_VI_Color_HIST, Val_VI_Color_HIST: 3-D array of image feature |
Train_VI_SURF_based, Val_VI_SURF_based: 3-D array of image feature |
{3-D array of image feature. 1-dimension indicates grid-size index used for feature extraction, 2-dimension indicates row/number of data, 3-dimension indicates kol/feature vectors} |
Acc_MLBP, Acc_HOG, Acc_Color_HIST, Acc_SURF_based: array of accuracy |
Opt_Gs[1..4]: array of selected grid-size for optimum feature |
ImageRegion: array of image {store splitting result} |
Model_1, Model_2, Model_3,Model_4: SVM_Model |
{function/procedure used} |
Split_Image() {function to split an image into sub-images based on grid size} |
MLBP_FE(), HOG_FE(), Color_HIST_FE(), SURF_based_FE() {function to performed feature extraction} |
Concatenate() {function to concatenate array} |
SVM_Train() {function to train SVM Classifier} |
Evaluate() {function to evaluate SVM Model} |
Elbow() {function to generate data for manual elbow analysis} |
ALGORITHM |
For id_Grid ← 1 to ns |
{processing Training-set} |
For j ← 1 to nt |
ImageRegion ← Split_Image(ITrain(j),GS(id_Grid)) |
For x ← 1 to number_element_of(ImageRegion) |
{ Using a predetermined configuration in ConfigFE, apply four independent handcrafted feature extraction methods, namely: MLBP, HOG, Color HIST, and SURF-based, to produce feature vectors on sub-Image named Vector Region (VR)} |
VR_MLBP(x) ← MLBP_FE(ImageRegion(x),ConfigFE(1)); |
VR_HOG(x) ← HOG _FE(ImageRegion(x),ConfigFE(2)); |
VR_Color_HIST(x) ← Color_HIST_FE(ImageRegion(x),ConfigFE(3)); |
VR_SURF_based(x) ← SURF_based_FE(ImageRegion(x),ConfigFE(4)); |
End |
{produce feature in image level by concatenating feature from sub-image} |
VI_MLBP(j) ← concatenate(VR_MLBP) |
VI_HOG(j) ← concatenate(VR_HOG) |
VI_Color_HIST(j) ← concatenate(VR_Color_HIST) |
VI_SURF_based(j) ← concatenate(VR_SURF_based) |
End |
{store feature for training-set in 3-D array, id_Grid indicate the grid-size value used for feature extraction} |
Train_VI_MLBP(id_Grid,:,:) ← VI_MLBP |
Train_VI_HOG(id_Grid,:,:) ← VI_HOG |
Train_VI_Color_HIST(id_Grid,:,:) ← VI_Color_HIST |
Train_VI_SURF_based(id_Grid,:,:) ← VI_SURF_based |
{processing Validation-set } |
For j ← 1 to nv |
ImageRegion ← Split_Image(IValidation(j),GS(id_Grid)) |
For x ← 1 to number_element_of(ImageRegion) |
{ Using a predetermined configuration in ConfigFE, apply four independent handcrafted feature extracton methods, namely: MLBP, HOG, Color HIST, and SURF-based, to produce feature vectors on sub-Image named Vector Region (VR)} |
VR_MLBP(x) ← MLBP_FE(ImageRegion(x),ConfigFE(1)); |
VR_HOG(x) ← HOG _FE(ImageRegion(x),ConfigFE(2)); |
VR_Color_HIST(x) ← Color_HIST_FE(ImageRegion(x),ConfigFE(3)); |
VR_SURF_based(x) ← SURF_based_FE(ImageRegion(x),ConfigFE(4)) |
End |
{produce feature in image level by concatenating feature from sub-image} |
VI_MLBP(j) ← Concatenate(VR_MLBP) |
VI_HOG(j) ← Concatenate(VR_HOG) |
VI_Color_HIST(j) ← Concatenate(VR_Color_HIST) |
VI_SURF_based(j) ← Concatenate(VR_SURF_based) |
End |
{store feature for training-set in 3-D array, id_Grid indicate the grid-size value used for feature extraction} |
Val_VI_MLBP(id_Grid,:,:) ← VI_MLBP |
Val_VI_HOG(id_Grid,:,:) ← VI_HOG |
Val_VI_Color_HIST(id_Grid,:,:) ← VI_Color_HIST |
Val_VI_SURF_based(id_Grid,:,:) ← VI_SURF_based |
{feature vector from Training-set and Validation-set for GS(i) are produced } |
{Train SVM Classifiers for each handcrafted feature } |
Model_1 ← SVM_Train(Train_VI_MLBP(id_Grid,:,:), LTraining) |
Model_2 ← SVM_Train(Train_VI_HOG(id_Grid,:,:), LTraining) |
Model_3 ← SVM_Train(Train_VI_Color_HIST(id_Grid,:,:), LTraining) |
Model_4 ← SVM_Train(Train_VI_SURF_based(id_Grid,:,:), LTraining) |
{Calculate accuracy from Validation-set } |
Acc_MLBP(id_Grid) ← Evaluate(Model_1, Val_VI_MLBP(i), LValidation) |
Acc_HOG(id_Grid) ← Evaluate(Model_2, Val_VI_HOG(i), LValidation) |
Acc_Color_HIST(id_Grid) ← Evaluate(Model_3, Val_VI_Color_HIST(i), LValidation) |
Acc_SURF_based(id_Grid) ← Evaluate(Model_4, Val_VI_SURF_based(i), LValidation) |
End |
{Using accuracy from Validation-set, find the optimum feature for each handcrafted feature extraction method using elbow analysis. The optimum feature is a vector at GS(id_Grid) that provides an optimum condition which indicates an optimization between increasing feature size and accuracy} |
[Train_Opt_MLBP, Val_Opt_MLBP, Opt_Gs(1)] ← Elbow(Acc_MLBP, GS) |
[Train_Opt_HOG, Val_HOG_MLBP, Opt_Gs(2)] ← Elbow(Acc_ HOG, GS) |
[Train_Opt_Color_HIST, Val_Opt_Color_HIST, Opt_Gs(3)] ← Elbow(Acc_Color_HIST, GS) |
[Train_Opt_SURF_based, Val_Opt_SURF_based, Opt_Gs(4)] ← Elbow(Acc_SURF_based, GS) |
3.4. Compact Feature Strategy
Algorithm 2. Compact-fusion feature framework: compact feature strategy. |
PROCEDURE Compact_Feature |
(Input: |
Opt_Gs [1..4]: GS that is considered optimum for each Feature Extraction |
{ 2-D array of image features that are considered optimum features } |
Train_Opt_MLBP, Val_Opt_MLBP: 2-D array of image feature |
Train_Opt_HOG, Val_Opt_HOG: 2-D array of image feature |
Train_Opt_Color_HIST, Val_Opt_Color_HIST: 2-D array of image feature |
Train_Opt_SURF_based, Val_Opt_SURF_based: 2-D array of image feature |
ConfigFE [1..4]: array of struct configuration of Feature Extraction |
GS[1..ns]: array of grid-size |
LTraining [1..nt]: array of label |
LTValidation [1..nv]: array of label |
Output: |
Cmp_S: selected compact strategies |
Train_Cmp_MLBP, Val_Opt_MLBP: 2-D array of image feature |
Train_Cmp_HOG, Val_HOG_MLBP: 2-D array of image feature |
Train_Cmp_Color_HIST, Val_Opt_Color_HIST: 2-D array of image feature |
Train_Cmp_SURF_based, Val_Cmp_SURF_based: 2-D array of image feature |
) |
DECLARATION |
VR_MLBP, VR_HOG, VR_Color_HIST, VR_SURF_based: 2-D array of region feature |
VI_MLBP, VI_HOG, VI_Color_HIST, VI_SURF_based: array of struct image feature |
Train_VI_MLBP, Val_VI_MLBP: 2-D array of image feature |
Train_VI_HOG, Val_VI_HOG: 2-D array of image feature |
Train_VI_Color_HIST, Val_VI_Color_HIST: 2-D array of image feature |
Train_VI_SURF_based, Val_VI_ URF_based: 2-D array of image feature |
Acc_MLBP, Acc_HOG, Acc_Color_HIST, Acc_SURF_based: array of struct for accuracy |
{function/procedure used} |
rearrange() {function to rearrange optimum feature to 2-D array} |
selectMax() {function to calculate maximum in column-based 2-D array} |
selectAverage() {function to calculate mean in column-based 2-D array} |
SVM_Train() {function to train SVM Classifier} |
Evaluate() {function to evaluate SVM Model} |
Analyse() {function for accuracy analysis} |
ALGORITHM |
{Extract Compact Feature from Optimum Feature on Training-set} |
For j ← 1 to nt |
{rearrange the Optimum feature into a 2-D array based on the optimum grid size and configuration of Feature Extraction. The illustration can be seen inFigure 7, continued by applying two strategies: maximum selecting method and averaging value method for each data} |
VR_MLBP(j) ← rearrange(Train_Opt_MLBP(j),GS(Opt_Gs(1)), ConfigFE(1)) |
VI_MLBP(j).Max ← selectMax(VR_MLBP(j)) |
VI_MLBP(j).Mean ← selectAverage(VR_MLBP(j)) |
VR_HOG(j) ← rearrange (Train_Opt_HOG(j),GS(Opt_Gs(2)), ConfigFE(2)) |
VI_HOG(j).Max ← selectMax(VR_HOG (j)) |
VI_HOG(j).Mean ← selectAverage(VR_HOG(j)) |
VR_Color_HIST(j) ← rearrange (Train_Opt_Color_HIST(j),GS(Opt_Gs(3)),ConfigFE(3)) |
VI_Color_HIST (j).Max ← selectMax(VR_Color_HIST (j)) |
VI_ Color_HIST (j).Mean ← selectAverage(VR_Color_HIST (j)) |
VR_SURF_based(j) ← rearrange(Train_Opt_SURF_based(j),GS(Opt_Gs(4)), ConfigFE(4)) |
VI_SURF_based(j).Max ← selectMax(VR_SURF_based(j)) |
VI_SURF_based (j).Mean ← selectAverage(VR_SURF_based(j)) |
End |
{store feature for training-set in variable} |
Train_VI_MLBP ← VI_MLBP |
Train_VI_HOG ← VI_HOG |
Train_VI_Color_HIST ← VI_Color_HIST |
Train_VI_SURF_based ← VI_SURF_based |
{Extract Compact Feature from Optimum Feature on Training-set} |
For j ← 1 to nv |
{rearrange the Optimum feature into a 2-D array based on the optimum grid size and configuration of Feature Extraction. The illustration can be seen inFigure 7, continued by applying two strategies: maximum selecting method and averaging value method for each data} |
VR_MLBP(j) ← rearrange(Val_Opt_MLBP(j),GS(Opt_Gs(1)), ConfigFE(1)) |
VI_MLBP(j).Max ← selectMax(VR_MLBP(j)) |
VI_MLBP(j).Mean ← selectAverage(VR_MLBP(j)) |
VR_HOG(j) ← rearrange (Val_Opt_HOG(j),GS(Opt_Gs(2)), ConfigFE(2)) |
VI_HOG (j).Max ← selectMax(VR_HOG (j)) |
VI_HOG (j).Mean ← selectAverage(VR_HOG (j)) |
VR_Color_HIST(j) ← rearrange (Val_Opt_Color_HIST(j),GS(Opt_Gs(3)),ConfigFE(3)) |
VI_Color_HIST (j).Max ← selectMax(VR_Color_HIST(j)) |
VI_Color_HIST (j).Mean ← selectAverage(VR_Color_HIST(j)) |
VR_SURF_based(j) ← rearrange (Val_Opt_SURF_based(j),GS(Opt_Gs(4)), ConfigFE(4)) |
VI_SURF_based(j).Max ← selectMax(VR_SURF_based (j)) |
VI_SURF_based(j).Mean ← selectAverage(VR_SURF_based (j)) |
End |
{store compact feature for validation-set in variable} |
Val_VI_MLBP ← VI_MLBP |
Val_VI_HOG ← VI_HOG |
Val_VI_Color_HIST ← VI_Color_HIST |
Val_VI_SURF_based ← VI_SURF_based |
{Train SVM Classifiers with the compact feature from maximum method} |
Model_1 ← SVM_Train(Train_VI_MLBP.Max, LTraining) |
Model_2 ← SVM_Train(Train_VI_HOG.Max, LTraining) |
Model_3 ← SVM_Train(Train_VI_Color_HIST(i).Max, LTraining) |
Model_4 ← SVM_Train(Train_VI_SURF_based(i).Max, LTraining) |
{Calculate accuracy from Validation-set} |
Acc_MLBP.Max ← evaluate(Model_1, Val_VI_MLBP.Max) |
Acc_HOG.Max ← evaluate(Model_2, Val_VI_HOG.Max) |
Acc_Color_HIST.Max ← evaluate(Model_3, Val_VI_Color_HIST.Max) |
Acc_SURF_based.Max ← evaluate(Model_4, Val_VI_SURF_based.Max) |
{Train SVM Classifiers with the compact feature from averaging method} |
Model_1 ← SVM_Train(Train_VI_MLBP.Mean, LTraining) |
Model_2 ← SVM_Train(Train_VI_HOG.Mean, LTraining) |
Model_3 ← SVM_Train(Train_VI_Color_HIST(i).Mean, LTraining) |
Model_4 ← SVM_Train(Train_VI_SURF_based(i).Mean, LTraining) |
{Calculate accuracy from Validation-set} |
Acc_MLBP.Mean ← Evaluate(Model_1, Val_VI_MLBP.Mean) |
Acc_HOG.Mean ← Evaluate(Model_2, Vali_VI_HOG.Mean) |
Acc_Color_HIST.Mean ← Evaluate(Model_3, Val_VI_Color_HIST.Mean) |
Acc_SURF_based.Mean ← Evaluate(Model_4, Val_VI_SURF_based.Mean) |
{Using accuracy from Validation-set, evaluate the accuracy of candidate compact features compared with optimum features and determine the compact method used } |
[Train_Cmp_MLBP,Val_Cmp_MLBP,Train_Cmp_HOG,Val_Cmp_HOG_MLBP, Train_Cmp_Color_HIST,Val_Cmp_Color_HIST,Train_Cmp_SURF_based, |
Val_Cmp_SURF_based,Cmp_S]←Analyse(Acc_MLBP, Acc_HOG,Acc_Color_HIST,Acc_Color_HIST) |
3.5. Fusion at The Feature Level
Algorithm 3. Compact-fusion feature framework: feature fusion at the feature level. |
PROCEDURE Feature_Fusion |
(Input: |
Cmp_S: selected compact strategies |
{2-D array of image features that are considered compact features } |
Train_Cmp_MLBP, Val_Cmp_MLBP: 2-D array of image feature |
Train_Cmp_HOG, Val_Cmp_HOG: 2-D array of image feature |
Train_Cmp_Color_HIST, Val_Cmp_Color_HIST: 2-D array of image feature |
Train_Cmp_SURF_based, Val_Cmp_SURF_based: 2-D array of image feature |
LTraining [1..nt]: array of label |
LTValidation [1..nv]: array of label |
{from independent parameter tunning } |
Opt_Gs [1..4]: GS that consider optimum for each Feature Extraction |
ConfigFE [1..4]: array of struct configuration of Feature Extraction |
Opt_Gs [1..4]: GS that is considered optimum for each Feature Extraction |
Output: |
Config_CF: struct of compact feature configuration |
Model_CF: SVM Model {best SVM Model} |
) |
DECLARATION |
Train_CF, Val_CF: 2-D array of image feature |
Acc_CF: variable to save the accuracy |
Config_CF: struct of compact feature configuration |
{function/procedure used} |
Concatenate() {function to concatenate array} |
SVM_Train() {function to train SVM Classifier} |
Evaluate() {function to evaluate SVM Model} |
Analyse() {function for accuracy analysis} |
ALGORITHM |
{Concatenate Compact Feature of Training-set} |
For j ← 1 to nt |
{concatenate four optimum compact features MLBP, HOG, Color_HIST, SURF_based} |
Train_CF (j) ← Concatenate(Train_Cmp_MLBP(j), Train_Cmp_HOG(j), |
Train_Cmp_Color_HIST(j), Train_Cmp_SURF_based(j)) |
End |
{Concatenate Compact Feature of Validation-set} |
For j ← 1 to nv |
{ concatenate four optimum compact features MLBP, HOG, Color_HIST, SURF_based} |
Val_CF (j) ← Concatenate(Val_Cmp_MLBP(j), Val_Cmp_HOG(j), |
Val_Cmp_Color_HIST(j), Val_Cmp_SURF_based(j)) |
End |
{Train SVM Classifiers with compact-fusion feature} |
Model_1 ← SVM_Train(Train_CF, LTraining) |
{Calculate accuracy from Validation-set to determine the best model in case there were several model build} |
Acc_CF ← evaluate(Model_1, Val_CF) |
{Model from SVM Classifier and best configuration of Compact Fusion to used for the testing dataset} |
[Model_CF, Config_CF] ← Analyse(Acc_CF) |
4. Experiment and Results
4.1. Dataset and Experimental Preparation
4.1.1. Dataset for Initial Experiment
4.1.2. Dataset for Cross-Dataset Experiment
4.1.3. Experimental Preparation and Setup
4.2. Initial Experiment Result and Discussion
4.2.1. Independent Parameter-Tuning Experiment
4.2.2. Compact Feature Strategy Experiment
4.2.3. Fusion-at-the-Feature-Level Experiment
4.2.4. Experiment on Testing Set
4.3. The Ablation Study
4.4. Comparison with Feature-Reduction Method
4.5. Cross-Dataset Experiment
4.6. Classifier Comparison
4.7. Comparison with SOTA
5. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
References
- Becerra-Riera, F.; Llanes, N.M.; Morales-González, A.; Méndez-Vázquez, H.; Tistarelli, M. On Combining Face Local Appearance and Geometrical Features for Race Classification. In Lecture Notes in Computer Science (including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); LNCS; Springer: Cham, Switzerland, 2019; Volume 11401. [Google Scholar]
- Belcar, D.; Grd, P.; Tomičić, I. Automatic Ethnicity Classification from Middle Part of the Face Using Convolutional Neural Networks. Informatics 2022, 9, 18. [Google Scholar] [CrossRef]
- Karkkainen, K.; Joo, J. FairFace: Face Attribute Dataset for Balanced Race, Gender, and Age for Bias Measurement and Mitigation. In Proceedings of the 2021 IEEE Winter Conference on Applications of Computer Vision (WACV), Waikoloa, HI, USA, 3–8 January 2021; pp. 1547–1557. [Google Scholar]
- Ahmed, M.A.; Choudhury, R.D.; Kashyap, K. Race Estimation with Deep Networks. J. King Saud Univ.-Comput. Inf. Sci. 2022, 34, 4579–4591. [Google Scholar] [CrossRef]
- Hamdi, S.; Moussaoui, A. Comparative Study between Machine and Deep Learning Methods for Age, Gender and Ethnicity Identification. In Proceedings of the ISIA 2020—Proceedings, 4th International Symposium on Informatics and Its Applications, M’sila, Algeria, 15–16 December 2020. [Google Scholar]
- Al-Azani, S.; El-Alfy, E.S.M. Ethnicity Recognition under Difficult Scenarios Using HOG. In Proceedings of the IET Conference Publications, Bahrain, Bahrain, 24–26 March 2019; Volume 2019. [Google Scholar]
- Guo, G.; Mu, G. A Study of Large-Scale Ethnicity Estimation with Gender and Age Variations. In Proceedings of the 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition—Workshops, CVPRW 2010, San Francisco, CA, USA, 13–18 June 2010. [Google Scholar]
- Carcagnì, P.; Del Coco, M.; Cazzato, D.; Leo, M.; Distante, C. A Study on Different Experimental Configurations for Age, Race, and Gender Estimation Problems. EURASIP J. Image Video Process 2015, 2015, 37. [Google Scholar] [CrossRef] [Green Version]
- Seidenari, L.; Rozza, A.; Del Bimbo, A. Real-Time Demographic Profiling from Face Imagery with Fisher Vectors. Mach. Vis. Appl. 2019, 30, 359–374. [Google Scholar] [CrossRef]
- Ghalleb, A.E.K.; Boumaiza, S.; Amara, N.E. Ben Demographic Face Profiling Based on Age, Gender and Race. In Proceedings of the 2020 International Conference on Advanced Technologies for Signal and Image Processing, ATSIP 2020, Sousse, Tunisia, 2–5 September 2020. [Google Scholar]
- Mohammad, A.S.; Al-Ani, J.A. Towards Ethnicity Detection Using Learning Based Classifiers. In Proceedings of the 2017 9th Computer Science and Electronic Engineering Conference, CEEC 2017—Proceedings, Colchester, UK, 27–29 September 2017. [Google Scholar]
- Putriany, D.M.; Rachmawati, E.; Sthevanie, F. Indonesian Ethnicity Recognition Based on Face Image Using Gray Level Co-Occurrence Matrix and Color Histogram. IOP Conf. Ser. Mater. Sci. Eng. 2021, 1077, 012040. [Google Scholar] [CrossRef]
- Xie, J.; Sage, M.; Zhao, Y.F. Feature Selection and Feature Learning in Machine Learning Applications for Gas Turbines: A Review. Eng. Appl. Artif. Intell. 2023, 117, 105591. [Google Scholar] [CrossRef]
- Nguyen, D.T.; Cho, S.R.; Park, K.R. Age Estimation-Based Soft Biometrics Considering Optical Blurring Based on Symmetrical Sub-Blocks for MLBP. Symmetry 2015, 7, 1882–1913. [Google Scholar] [CrossRef] [Green Version]
- Zhang, Y.; Wu, J.; Cai, J. Compact Representation of High-Dimensional Feature Vectors for Large-Scale Image Recognition and Retrieval. IEEE Trans. Image Process. 2016, 25, 2407–2419. [Google Scholar] [CrossRef] [PubMed]
- Porebski, A.; Hoang, V.T.; Vandenbroucke, N.; Hamad, D. Multi-Color Space Local Binary Pattern-Based Feature Selection for Texture Classification (Erratum). J. Electron. Imaging 2018, 27, 039801. [Google Scholar] [CrossRef]
- Nguyen-Quoc, H.; Hoang, V.T. A Revisit Histogram of Oriented Descriptor for Facial Color Image Classification Based on Fusion of Color Information. J. Sens. 2021, 2021, 6296505. [Google Scholar] [CrossRef]
- Lu, D.; Wang, D.; Zhang, K.; Zeng, X. Age Estimation from Facial Images Based on Gabor Feature Fusion and the CIASO-SA Algorithm. CAAI Trans. Intell. Technol. 2022; Early View. [Google Scholar] [CrossRef]
- Najmabadi, M.; Moallem, P. Local Symmetric Directional Pattern: A Novel Descriptor for Extracting Compact and Distinctive Features in Face Recognition. Optik 2022, 251, 168331. [Google Scholar] [CrossRef]
- Gupta, S.K.; Yesuf, S.H.; Nain, N. Real-Time Gender Recognition for Juvenile and Adult Faces. Comput. Intell. Neurosci. 2022, 2022, 1503188. [Google Scholar] [CrossRef] [PubMed]
- Ridzuan, S.S.A.; Omar, Z.; Sheikh, U.U. Classifying Ethnicity of the Pedestrian Using Skin Colour Palette; Lecture Notes in Electrical Engineering Book Series; LNEE; Springer: Singapore, 2023; Volume 988, pp. 105–116. [Google Scholar]
- Greco, A.; Percannella, G.; Vento, M.; Vigilante, V. Benchmarking deep network architectures for ethnicity recognition using a new large face dataset. Mach. Vis. Appl. 2020, 31, 67. [Google Scholar] [CrossRef]
- Bay, H.; Ess, A.; Tuytelaars, T.; Van Gool, L. Speeded-Up Robust Features (SURF). Comput. Vis. Image Underst. 2008, 110, 346–359. [Google Scholar] [CrossRef]
- UTKFace Dataset. Available online: https://susanqq.github.io/UTKFace/ (accessed on 29 March 2023).
- Fair Face Dataset. Available online: https://github.com/joojs/fairface/ (accessed on 24 April 2023).
Paper | Year | Handcrafted Feature-Extraction Method | Ethnicity | Feature Reduction | Classifier | Dataset | Accuracy (in %) |
---|---|---|---|---|---|---|---|
[7] | 2010 | BIF (Gabor + Maximum Value) | Asian, Black, Hispanic, White, and Indian | PCA + OLPP | Manifold Learning | MORPH-II with 55,127 images | Mean class 72.73 |
[8] | 2015 | Single Feature: LBP, CLBP, HOG, SWLD | White, Black, Asian, and Hispanic | LDA | SVM | Merging MORPH-II with FERET resulted in 55,195 images | 79.40 using CLBP |
[9] | 2019 | SIFT + Fisher Vector | Asian, Black, Hispanic, and White | PCA | DAG-TIPTAC | MORPH-II with 55,068 images | Mean class 89.61 |
[10] | 2020 | Single Feature: SURF, LBP, HOG, Color Moment | Asian, Black, Hispanic, White, and Indian | PSO | SVM | MORPH-II with 55,127 images | 93.17 using LBP |
[11] | 2017 | Fusion from LBP, HOG | Middle Eastern and Non-Middle Eastern | - | Best using SVM | Part of FERET with 2790 images | 98.5 |
[1] | 2019 | Filterbank, geometrical features, and Combined Feature | African American, Asian, Caucasian, Indian, and Latin | PCA | SVM + Random Forest | EGA dataset with 2345 images | 87.00 |
[12] | 2021 | Gray Level Co-occurrence Matric, Color Histogram, and Combined Feature | Banjar, Bugis, Javanese, Malay, and Sundanese | - | Random Forest | Private with 2290 images | 98.65 |
[6] | 2019 | HOG | Asian, Indian, and Others | - | SVM | UTKFace Part 1 with 4109 images | 69.68 |
[13] | 2023 | Skin Color Palette | Caucasian and Indian | - | SVM | P-DESTRE dataset. Video tracking | 98.00 |
Paper | Year | Task Domain | Compact Feature Strategy/Method |
---|---|---|---|
[14] | 2015 | Age estimation | PCA on the combined features of MLBP and Gabor filter. |
[15] | 2016 | Image recognition and retrieval | Supervised mutual information based on entropy. |
[16] | 2018 | Texture classification | Select local binary pattern (LBP) histograms or bins. |
[17] | 2021 | Face classification | The maximum magnitude selection from HOG. |
[18] | 2022 | Age estimation | The maximum value from the Gabor filter response. |
[19] | 2022 | Face recognition | Select two main edge directions with the highest magnitudes. |
[20] | 2022 | Gender recognition | DWT from mean Gabor response. |
No. | Handcrafted Feature-Extraction Method | Configuration Parameters |
---|---|---|
1 | Multi-Local Binary Pattern (MLBP) | Channel = {grayscale}; N = 8; R = {1,3,5,7}; Uniform Pattern; Feature size for one grid = 59 × 4 = 236 |
2 | Histogram of Gradient (HOG) | Channel = {[R, G, B, grayscale]}; bin = {9,18}; Block-size = {1 × 1}; Non-Overlap; Orientation = {[0, 180], [−180, 180]}; Feature size for one grid = 27 × 2 × 4 =216 |
3 | Color Histogram (Color HIST) | Channel = {[R, G, B, grayscale]}; bin = {32}; Color spatial info = {[6 × 6]}; Feature size for one grid = 32 × 4 + 108 =236 |
4 | Speeded-Up-Robust-Features-based (SURF-based) | Channel = {grayscale}; Point-based = {center of grid}; Scale = {1.6, 3.2, 4.8, 6.4}; Feature size for one grid = 64 × 4 =256 |
Grid Size | MLBP | HOG | Color HIST | SURF-Based | ||||
---|---|---|---|---|---|---|---|---|
Size | Acc. | Size | Acc. | Size | Acc. | Size | Acc. | |
200 × 200 | 236 | 57.09% | 216 | 40.47% | 236 | 65.11% | 256 | 71.28% |
100 × 100 | 944 | 67.43% | 864 | 54.88% | 944 | 73.22% | 1024 | 77.35% |
50 × 50 | 3776 | 76.24% | 3456 | 69.63% | 3776 | 76.85% | 4096 | 78.32% |
40 × 40 | 5900 | 78.28% | 5400 | 72.54% | 5900 | 76.92% | 6400 | 77.96% |
25 × 25 | 15,104 | 80.20% | 13,824 | 77.39% | 15,104 | 77.51% | 16,384 | 77.39% |
Optimum ID | Feature Type | Optimum Feature | Compact Feature | Delta Acc. (%) | Reduction Ratio (%) | ||||
---|---|---|---|---|---|---|---|---|---|
Size [a] | Acc. (%) [b] | Size [c] | Avg. Acc. (%) * [d] | Max Acc. (%) ** [e] | [b]–[d] | [b]–[e] | 1-[c]/[a] | ||
1 | MLBP [50 × 50] | 3776 | 76.24 | 944 | 75.22 | 73.38 | 1.02 | 2.86 | 75.00 |
1 | HOG [40 × 40] | 5400 | 72.54 | 1350 | 68.19 | 70.42 | 4.35 | 2.12 | 75.00 |
1 | Color HIST [50 × 50] | 3776 | 76.85 | 2240 | 78.21 | 77.82 | −1.36 | −0.97 | 40.68 |
1 | SURF-based [100 × 100] | 1024 | 77.35 | 256 | 70.70 | 68.72 | 6.65 | 8.63 | 75.00 |
Average of Optimum-1 group | - | 75.75 | - | 73.08 | 72.59 | 2.67 | 3.16 | 66.42 | |
2 | MLBP [40 × 40] | 5900 | 78.28 | 1475 | 77.44 | 75.95 | 0.84 | 2.33 | 75.00 |
2 | HOG [25 × 25] | 13,824 | 77.39 | 3456 | 72.30 | 76.60 | 5.09 | 0.79 | 75.00 |
2 | Color HIST [40 × 40] | 5900 | 76.92 | 3500 | 79.33 | 78.18 | −2.41 | −1.26 | 40.68 |
2 | SURF-based [50 × 50] | 4096 | 78.32 | 1024 | 77.34 | 74.82 | 0.98 | 3.5 | 75.00 |
Average of Optimum-2 group | 77.54 | 76.60 | 76.39 | 1.13 | 1.34 | 66.42 |
Fusion Schema | Fusion From | Compact Feature Strategy | Feature Size | Ethnicity Accuracy | Delta Acc. |
---|---|---|---|---|---|
Schema-1 | Compact-Optimum-1 | Averaging | 4790 | 81.12% 1 | 0.16% 4–1 |
Schema-1 | Compact-Optimum-1 | Maximum Value | 4790 | 80.89% 2 | 0.39% 4–2 |
Schema-1 | Compact-Optimum-1 | Combine-AMV | 4790 | 80.98% 3 | 0.30% 4–3 |
Avg. 81.00% | Avg. 0.28% | ||||
Fusion-Optimum-1 | 13,976 | 81.28% 4 | - | ||
Schema-2 | Compact-Optimum-2 | Averaging | 9455 | 81.69% 5 | 0.22% 8–4 |
Schema-2 | Compact-Optimum-2 | Maximum Value | 9455 | 80.50% 6 | 1.41% 8–5 |
Schema-2 | Compact-Optimum-2 | Combine-AMV | 9455 | 81.86% 7 | 0.05% 8–7 |
Avg.81.35% | Avg. 0.56% | ||||
Fusion-Optimum-2 | 29,720 | 81.91% 8 | - |
No. | Feature Representation | Feature Size | Validation Acc. | Testing Acc. |
---|---|---|---|---|
1 | Compact-Fusion AVG | 4790 | 81.12% | 82.03% |
2 | MLBP [25 × 25] | 15,104 | 80.20% | 80.96% |
3 | HOG [25 × 25] | 13,824 | 77.39% | 78.79% |
4 | Color HIST [25 × 25] | 15,104 | 77.51% | 78.36% |
5 | SURF-based [50 × 50] | 4049 | 78.32% | 79.20% |
6 | Fusion-Optimum-1 | 13,976 | 81.28% | 82.32% |
7 | Fusion-Optimum-2 | 29,720 | 81.91% | 83.15% |
No. | Ethnicity | Number of Data | Precision | Recall | F1-Score |
---|---|---|---|---|---|
1 | White | 2.414 | 83.93% | 90.43% | 87.06% |
2 | Black | 1.028 | 84.77% | 87.74% | 86.23% |
3 | Asian | 774 | 86.76% | 83.85% | 85.28% |
4 | Indian | 952 | 75.65% | 78.99% | 77.29% |
5 | Others | 409 | 52.35% | 21.76% | 30.74% |
Average | 76.69% | 72.55% | 73.32% |
Trained On | |||||
---|---|---|---|---|---|
Tested on | UTKFace Preprocessing-A | Fair Face Subset-A | |||
UTKFace Preprocessing-A | Model_1 | Model_4 | |||
Accuracy | F1-Score | Accuracy | F1-Score | ||
89.14% | 88.11% | 75.95% | 73.01% | ||
Fair Face Subset-A | Model_3 | Model_2 | |||
Accuracy | F1-Score | Accuracy | F1-Score | ||
55.31% | 53.33% | 73.87% | 73.53% | ||
Average | 72.23%, | 74.91% |
Classifier Tested | Accuracy |
---|---|
SVM-OVO, linear kernel | 78.82% |
SVM-OVO, polynomial kernel order 3 | 81.82% |
SVM-OVO, RBF kernel | 79.74% |
SVM-OVA, linear kernel | 79.68% |
SVM-OVA, polynomial kernel order 3 | 82.19% |
SVM-OVA, RBF kernel | 81.05% |
LDA with linear kernel | 80.11% |
LDA with linear kernel | 71.63% |
RF: Grid search, best at nTree = 100, the number of predictors = 1035 | 70.29% |
Ensemble Tree, Total-Boost, n Learner= 100, maxSplit = 200 | 71.01% |
Paper | Ethnicity | Method | Feature Size | Accuracy |
---|---|---|---|---|
Proposed method | White, Black, Asian, Indian, and Others White, Black, Asian, and Indian | Compact-Fusion + SVM | 4790 | 82.19% 89.14% |
Belcar et al. (2022) [2] | White, Black, Asian, Indian, and Others | CNN Based | 11,520 * | 80.34% ** |
Ahmed et al. (2022) [4] | Caucasian, African, Asian, Indian | R-Net | 3136 * | 77.5% *** |
Hamdi and Moussaoui (2020) [5] | White, Black, Asian, Indian, and Others | CNN Based | 8192 * | 78.88% |
Al-Azani and El-Alfy (2019) [6] | Asian, Indian, and Others | HOG | 5292 * | 69.68% |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Wirayuda, T.A.B.; Munir, R.; Kistijantoro, A.I. Compact-Fusion Feature Framework for Ethnicity Classification. Informatics 2023, 10, 51. https://doi.org/10.3390/informatics10020051
Wirayuda TAB, Munir R, Kistijantoro AI. Compact-Fusion Feature Framework for Ethnicity Classification. Informatics. 2023; 10(2):51. https://doi.org/10.3390/informatics10020051
Chicago/Turabian StyleWirayuda, Tjokorda Agung Budi, Rinaldi Munir, and Achmad Imam Kistijantoro. 2023. "Compact-Fusion Feature Framework for Ethnicity Classification" Informatics 10, no. 2: 51. https://doi.org/10.3390/informatics10020051
APA StyleWirayuda, T. A. B., Munir, R., & Kistijantoro, A. I. (2023). Compact-Fusion Feature Framework for Ethnicity Classification. Informatics, 10(2), 51. https://doi.org/10.3390/informatics10020051