01 资源
OpenCV自带的人脸识别分类demo。这个demo在opencv_contrib中;opencv_contrib\modules\face\samples\facerec_demo.cpp。facerec_demo.cpp对给定的人脸图像和标签进行训练,得到模型,并使用一个图像做测试。
这个测试用例需要下载资源图片,并且自己编辑label对应的csv文件。
图片文件(http://www.cl.cam.ac.uk/Research/DTG/attarchive/pub/data/att_faces.zip)。
把att_faces.zip解压到face-example-facerec_demo.exe相同目录下。
opencv\build\v3.3.0\x64\bin\Debug\att_faces
opencv\build\v3.3.0\x64\bin\Debug\att_faces\s1
opencv\build\v3.3.0\x64\bin\Debug\att_faces\s2
...
opencv\build\v3.3.0\x64\bin\Debug\att_faces\s39
opencv\build\v3.3.0\x64\bin\Debug\att_faces\s40
opencv\build\v3.3.0\x64\bin\Debug\att_faces\README
image和label对应关系的csv文件如下:
opencv\build\v3.3.0\x64\bin\Debug\att_faces\att_faces.csv
att_faces.csv具体内容:
att_faces/s1/1.pgm;0;第一张脸
att_faces/s1/2.pgm;0;第一张脸
att_faces/s1/3.pgm;0;第一张脸
att_faces/s1/4.pgm;0;第一张脸
att_faces/s1/5.pgm;0;第一张脸
att_faces/s1/6.pgm;0;第一张脸
att_faces/s1/7.pgm;0;第一张脸
att_faces/s1/8.pgm;0;第一张脸
att_faces/s1/9.pgm;0;第一张脸
att_faces/s1/10.pgm;0;第一张脸
att_faces/s2/1.pgm;1;第二张脸
att_faces/s2/2.pgm;1;第二张脸
att_faces/s2/3.pgm;1;第二张脸
att_faces/s2/4.pgm;1;第二张脸
att_faces/s2/5.pgm;1;第二张脸
att_faces/s2/6.pgm;1;第二张脸
att_faces/s2/7.pgm;1;第二张脸
att_faces/s2/8.pgm;1;第二张脸
att_faces/s2/9.pgm;1;第二张脸
att_faces/s2/10.pgm;1;第二张脸
att_faces/s3/1.pgm;2;第三张脸
att_faces/s3/2.pgm;2;第三张脸
att_faces/s3/3.pgm;2;第三张脸
att_faces/s3/4.pgm;2;第三张脸
att_faces/s3/5.pgm;2;第三张脸
att_faces/s3/6.pgm;2;第三张脸
att_faces/s3/7.pgm;2;第三张脸
att_faces/s3/8.pgm;2;第三张脸
att_faces/s3/9.pgm;2;第三张脸
att_faces/s3/10.pgm;2;第三张脸
att_faces/s4/1.pgm;3;第4张脸
att_faces/s4/2.pgm;3;第4张脸
att_faces/s4/3.pgm;3;第4张脸
att_faces/s4/4.pgm;3;第4张脸
att_faces/s4/5.pgm;3;第4张脸
att_faces/s4/6.pgm;3;第4张脸
att_faces/s4/7.pgm;3;第4张脸
att_faces/s4/8.pgm;3;第4张脸
att_faces/s4/9.pgm;3;第4张脸
att_faces/s4/10.pgm;3;第4张脸
att_faces/s5/1.pgm;4;第5张脸
att_faces/s5/2.pgm;4;第5张脸
att_faces/s5/3.pgm;4;第5张脸
att_faces/s5/4.pgm;4;第5张脸
att_faces/s5/5.pgm;4;第5张脸
att_faces/s5/6.pgm;4;第5张脸
att_faces/s5/7.pgm;4;第5张脸
att_faces/s5/8.pgm;4;第5张脸
att_faces/s5/9.pgm;4;第5张脸
att_faces/s5/10.pgm;4;第5张脸
att_faces/s6/1.pgm;5;第6张脸
att_faces/s6/2.pgm;5;第6张脸
att_faces/s6/3.pgm;5;第6张脸
att_faces/s6/4.pgm;5;第6张脸
att_faces/s6/5.pgm;5;第6张脸
att_faces/s6/6.pgm;5;第6张脸
att_faces/s6/7.pgm;5;第6张脸
att_faces/s6/8.pgm;5;第6张脸
att_faces/s6/9.pgm;5;第6张脸
att_faces/s6/10.pgm;5;第6张脸
att_faces/s7/1.pgm;6;第7张脸
att_faces/s7/2.pgm;6;第7张脸
att_faces/s7/3.pgm;6;第7张脸
att_faces/s7/4.pgm;6;第7张脸
att_faces/s7/5.pgm;6;第7张脸
att_faces/s7/6.pgm;6;第7张脸
att_faces/s7/7.pgm;6;第7张脸
att_faces/s7/8.pgm;6;第7张脸
att_faces/s7/9.pgm;6;第7张脸
att_faces/s7/10.pgm;6;第7张脸
att_faces/s8/1.pgm;7;第8张脸
att_faces/s8/2.pgm;7;第8张脸
att_faces/s8/3.pgm;7;第8张脸
att_faces/s8/4.pgm;7;第8张脸
att_faces/s8/5.pgm;7;第8张脸
att_faces/s8/6.pgm;7;第8张脸
att_faces/s8/7.pgm;7;第8张脸
att_faces/s8/8.pgm;7;第8张脸
att_faces/s8/9.pgm;7;第8张脸
att_faces/s8/10.pgm;7;第8张脸
att_faces/s9/1.pgm;8;第9张脸
att_faces/s9/2.pgm;8;第9张脸
att_faces/s9/3.pgm;8;第9张脸
att_faces/s9/4.pgm;8;第9张脸
att_faces/s9/5.pgm;8;第9张脸
att_faces/s9/6.pgm;8;第9张脸
att_faces/s9/7.pgm;8;第9张脸
att_faces/s9/8.pgm;8;第9张脸
att_faces/s9/9.pgm;8;第9张脸
att_faces/s9/10.pgm;8;第9张脸
att_faces/s10/1.pgm;9;第10张脸
att_faces/s10/2.pgm;9;第10张脸
att_faces/s10/3.pgm;9;第10张脸
att_faces/s10/4.pgm;9;第10张脸
att_faces/s10/5.pgm;9;第10张脸
att_faces/s10/6.pgm;9;第10张脸
att_faces/s10/7.pgm;9;第10张脸
att_faces/s10/8.pgm;9;第10张脸
att_faces/s10/9.pgm;9;第10张脸
att_faces/s10/10.pgm;9;第10张脸
att_faces/s11/1.pgm;10;第11张脸
att_faces/s11/2.pgm;10;第11张脸
att_faces/s11/3.pgm;10;第11张脸
att_faces/s11/4.pgm;10;第11张脸
att_faces/s11/5.pgm;10;第11张脸
att_faces/s11/6.pgm;10;第11张脸
att_faces/s11/7.pgm;10;第11张脸
att_faces/s11/8.pgm;10;第11张脸
att_faces/s11/9.pgm;10;第11张脸
att_faces/s11/10.pgm;10;第11张脸
att_faces/s12/1.pgm;11;第12张脸
att_faces/s12/2.pgm;11;第12张脸
att_faces/s12/3.pgm;11;第12张脸
att_faces/s12/4.pgm;11;第12张脸
att_faces/s12/5.pgm;11;第12张脸
att_faces/s12/6.pgm;11;第12张脸
att_faces/s12/7.pgm;11;第12张脸
att_faces/s12/8.pgm;11;第12张脸
att_faces/s12/9.pgm;11;第12张脸
att_faces/s12/10.pgm;11;第12张脸
att_faces/s13/1.pgm;12;第13张脸
att_faces/s13/2.pgm;12;第13张脸
att_faces/s13/3.pgm;12;第13张脸
att_faces/s13/4.pgm;12;第13张脸
att_faces/s13/5.pgm;12;第13张脸
att_faces/s13/6.pgm;12;第13张脸
att_faces/s13/7.pgm;12;第13张脸
att_faces/s13/8.pgm;12;第13张脸
att_faces/s13/9.pgm;12;第13张脸
att_faces/s13/10.pgm;12;第13张脸
att_faces/s14/1.pgm;13;第14张脸
att_faces/s14/2.pgm;13;第14张脸
att_faces/s14/3.pgm;13;第14张脸
att_faces/s14/4.pgm;13;第14张脸
att_faces/s14/5.pgm;13;第14张脸
att_faces/s14/6.pgm;13;第14张脸
att_faces/s14/7.pgm;13;第14张脸
att_faces/s14/8.pgm;13;第14张脸
att_faces/s14/9.pgm;13;第14张脸
att_faces/s14/10.pgm;13;第14张脸
att_faces/s15/1.pgm;14;第15张脸
att_faces/s15/2.pgm;14;第15张脸
att_faces/s15/3.pgm;14;第15张脸
att_faces/s15/4.pgm;14;第15张脸
att_faces/s15/5.pgm;14;第15张脸
att_faces/s15/6.pgm;14;第15张脸
att_faces/s15/7.pgm;14;第15张脸
att_faces/s15/8.pgm;14;第15张脸
att_faces/s15/9.pgm;14;第15张脸
att_faces/s15/10.pgm;14;第15张脸
att_faces/s16/1.pgm;15;第16张脸
att_faces/s16/2.pgm;15;第16张脸
att_faces/s16/3.pgm;15;第16张脸
att_faces/s16/4.pgm;15;第16张脸
att_faces/s16/5.pgm;15;第16张脸
att_faces/s16/6.pgm;15;第16张脸
att_faces/s16/7.pgm;15;第16张脸
att_faces/s16/8.pgm;15;第16张脸
att_faces/s16/9.pgm;15;第16张脸
att_faces/s16/10.pgm;15;第16张脸
att_faces/s17/1.pgm;16;第17张脸
att_faces/s17/2.pgm;16;第17张脸
att_faces/s17/3.pgm;16;第17张脸
att_faces/s17/4.pgm;16;第17张脸
att_faces/s17/5.pgm;16;第17张脸
att_faces/s17/6.pgm;16;第17张脸
att_faces/s17/7.pgm;16;第17张脸
att_faces/s17/8.pgm;16;第17张脸
att_faces/s17/9.pgm;16;第17张脸
att_faces/s17/10.pgm;16;第17张脸
att_faces/s18/1.pgm;17;第18张脸
att_faces/s18/2.pgm;17;第18张脸
att_faces/s18/3.pgm;17;第18张脸
att_faces/s18/4.pgm;17;第18张脸
att_faces/s18/5.pgm;17;第18张脸
att_faces/s18/6.pgm;17;第18张脸
att_faces/s18/7.pgm;17;第18张脸
att_faces/s18/8.pgm;17;第18张脸
att_faces/s18/9.pgm;17;第18张脸
att_faces/s18/10.pgm;17;第18张脸
att_faces/s19/1.pgm;18;第19张脸
att_faces/s19/2.pgm;18;第19张脸
att_faces/s19/3.pgm;18;第19张脸
att_faces/s19/4.pgm;18;第19张脸
att_faces/s19/5.pgm;18;第19张脸
att_faces/s19/6.pgm;18;第19张脸
att_faces/s19/7.pgm;18;第19张脸
att_faces/s19/8.pgm;18;第19张脸
att_faces/s19/9.pgm;18;第19张脸
att_faces/s19/10.pgm;18;第19张脸
att_faces/s20/1.pgm;19;第20张脸
att_faces/s20/2.pgm;19;第20张脸
att_faces/s20/3.pgm;19;第20张脸
att_faces/s20/4.pgm;19;第20张脸
att_faces/s20/5.pgm;19;第20张脸
att_faces/s20/6.pgm;19;第20张脸
att_faces/s20/7.pgm;19;第20张脸
att_faces/s20/8.pgm;19;第20张脸
att_faces/s20/9.pgm;19;第20张脸
att_faces/s20/10.pgm;19;第20张脸
att_faces/s21/1.pgm;20;第21张脸
att_faces/s21/2.pgm;20;第21张脸
att_faces/s21/3.pgm;20;第21张脸
att_faces/s21/4.pgm;20;第21张脸
att_faces/s21/5.pgm;20;第21张脸
att_faces/s21/6.pgm;20;第21张脸
att_faces/s21/7.pgm;20;第21张脸
att_faces/s21/8.pgm;20;第21张脸
att_faces/s21/9.pgm;20;第21张脸
att_faces/s21/10.pgm;20;第21张脸
att_faces/s22/1.pgm;21;第22张脸
att_faces/s22/2.pgm;21;第22张脸
att_faces/s22/3.pgm;21;第22张脸
att_faces/s22/4.pgm;21;第22张脸
att_faces/s22/5.pgm;21;第22张脸
att_faces/s22/6.pgm;21;第22张脸
att_faces/s22/7.pgm;21;第22张脸
att_faces/s22/8.pgm;21;第22张脸
att_faces/s22/9.pgm;21;第22张脸
att_faces/s22/10.pgm;21;第22张脸
att_faces/s23/1.pgm;22;第23张脸
att_faces/s23/2.pgm;22;第23张脸
att_faces/s23/3.pgm;22;第23张脸
att_faces/s23/4.pgm;22;第23张脸
att_faces/s23/5.pgm;22;第23张脸
att_faces/s23/6.pgm;22;第23张脸
att_faces/s23/7.pgm;22;第23张脸
att_faces/s23/8.pgm;22;第23张脸
att_faces/s23/9.pgm;22;第23张脸
att_faces/s23/10.pgm;22;第23张脸
att_faces/s24/1.pgm;23;第24张脸
att_faces/s24/2.pgm;23;第24张脸
att_faces/s24/3.pgm;23;第24张脸
att_faces/s24/4.pgm;23;第24张脸
att_faces/s24/5.pgm;23;第24张脸
att_faces/s24/6.pgm;23;第24张脸
att_faces/s24/7.pgm;23;第24张脸
att_faces/s24/8.pgm;23;第24张脸
att_faces/s24/9.pgm;23;第24张脸
att_faces/s24/10.pgm;23;第24张脸
att_faces/s25/1.pgm;24;第25张脸
att_faces/s25/2.pgm;24;第25张脸
att_faces/s25/3.pgm;24;第25张脸
att_faces/s25/4.pgm;24;第25张脸
att_faces/s25/5.pgm;24;第25张脸
att_faces/s25/6.pgm;24;第25张脸
att_faces/s25/7.pgm;24;第25张脸
att_faces/s25/8.pgm;24;第25张脸
att_faces/s25/9.pgm;24;第25张脸
att_faces/s25/10.pgm;24;第25张脸
att_faces/s26/1.pgm;25;第26张脸
att_faces/s26/2.pgm;25;第26张脸
att_faces/s26/3.pgm;25;第26张脸
att_faces/s26/4.pgm;25;第26张脸
att_faces/s26/5.pgm;25;第26张脸
att_faces/s26/6.pgm;25;第26张脸
att_faces/s26/7.pgm;25;第26张脸
att_faces/s26/8.pgm;25;第26张脸
att_faces/s26/9.pgm;25;第26张脸
att_faces/s26/10.pgm;25;第26张脸
att_faces/s27/1.pgm;26;第27张脸
att_faces/s27/2.pgm;26;第27张脸
att_faces/s27/3.pgm;26;第27张脸
att_faces/s27/4.pgm;26;第27张脸
att_faces/s27/5.pgm;26;第27张脸
att_faces/s27/6.pgm;26;第27张脸
att_faces/s27/7.pgm;26;第27张脸
att_faces/s27/8.pgm;26;第27张脸
att_faces/s27/9.pgm;26;第27张脸
att_faces/s27/10.pgm;26;第27张脸
att_faces/s28/1.pgm;27;第28张脸
att_faces/s28/2.pgm;27;第28张脸
att_faces/s28/3.pgm;27;第28张脸
att_faces/s28/4.pgm;27;第28张脸
att_faces/s28/5.pgm;27;第28张脸
att_faces/s28/6.pgm;27;第28张脸
att_faces/s28/7.pgm;27;第28张脸
att_faces/s28/8.pgm;27;第28张脸
att_faces/s28/9.pgm;27;第28张脸
att_faces/s28/10.pgm;27;第28张脸
att_faces/s29/1.pgm;28;第29张脸
att_faces/s29/2.pgm;28;第29张脸
att_faces/s29/3.pgm;28;第29张脸
att_faces/s29/4.pgm;28;第29张脸
att_faces/s29/5.pgm;28;第29张脸
att_faces/s29/6.pgm;28;第29张脸
att_faces/s29/7.pgm;28;第29张脸
att_faces/s29/8.pgm;28;第29张脸
att_faces/s29/9.pgm;28;第29张脸
att_faces/s29/10.pgm;28;第29张脸
att_faces/s30/1.pgm;29;第30张脸
att_faces/s30/2.pgm;29;第30张脸
att_faces/s30/3.pgm;29;第30张脸
att_faces/s30/4.pgm;29;第30张脸
att_faces/s30/5.pgm;29;第30张脸
att_faces/s30/6.pgm;29;第30张脸
att_faces/s30/7.pgm;29;第30张脸
att_faces/s30/8.pgm;29;第30张脸
att_faces/s30/9.pgm;29;第30张脸
att_faces/s30/10.pgm;29;第30张脸
att_faces/s31/1.pgm;30;第31张脸
att_faces/s31/2.pgm;30;第31张脸
att_faces/s31/3.pgm;30;第31张脸
att_faces/s31/4.pgm;30;第31张脸
att_faces/s31/5.pgm;30;第31张脸
att_faces/s31/6.pgm;30;第31张脸
att_faces/s31/7.pgm;30;第31张脸
att_faces/s31/8.pgm;30;第31张脸
att_faces/s31/9.pgm;30;第31张脸
att_faces/s31/10.pgm;30;第31张脸
att_faces/s32/1.pgm;31;第32张脸
att_faces/s32/2.pgm;31;第32张脸
att_faces/s32/3.pgm;31;第32张脸
att_faces/s32/4.pgm;31;第32张脸
att_faces/s32/5.pgm;31;第32张脸
att_faces/s32/6.pgm;31;第32张脸
att_faces/s32/7.pgm;31;第32张脸
att_faces/s32/8.pgm;31;第32张脸
att_faces/s32/9.pgm;31;第32张脸
att_faces/s32/10.pgm;31;第32张脸
att_faces/s33/1.pgm;32;第33张脸
att_faces/s33/2.pgm;32;第33张脸
att_faces/s33/3.pgm;32;第33张脸
att_faces/s33/4.pgm;32;第33张脸
att_faces/s33/5.pgm;32;第33张脸
att_faces/s33/6.pgm;32;第33张脸
att_faces/s33/7.pgm;32;第33张脸
att_faces/s33/8.pgm;32;第33张脸
att_faces/s33/9.pgm;32;第33张脸
att_faces/s33/10.pgm;32;第33张脸
att_faces/s34/1.pgm;33;第34张脸
att_faces/s34/2.pgm;33;第34张脸
att_faces/s34/3.pgm;33;第34张脸
att_faces/s34/4.pgm;33;第34张脸
att_faces/s34/5.pgm;33;第34张脸
att_faces/s34/6.pgm;33;第34张脸
att_faces/s34/7.pgm;33;第34张脸
att_faces/s34/8.pgm;33;第34张脸
att_faces/s34/9.pgm;33;第34张脸
att_faces/s34/10.pgm;33;第34张脸
att_faces/s35/1.pgm;34;第35张脸
att_faces/s35/2.pgm;34;第35张脸
att_faces/s35/3.pgm;34;第35张脸
att_faces/s35/4.pgm;34;第35张脸
att_faces/s35/5.pgm;34;第35张脸
att_faces/s35/6.pgm;34;第35张脸
att_faces/s35/7.pgm;34;第35张脸
att_faces/s35/8.pgm;34;第35张脸
att_faces/s35/9.pgm;34;第35张脸
att_faces/s35/10.pgm;34;第35张脸
att_faces/s36/1.pgm;35;第36张脸
att_faces/s36/2.pgm;35;第36张脸
att_faces/s36/3.pgm;35;第36张脸
att_faces/s36/4.pgm;35;第36张脸
att_faces/s36/5.pgm;35;第36张脸
att_faces/s36/6.pgm;35;第36张脸
att_faces/s36/7.pgm;35;第36张脸
att_faces/s36/8.pgm;35;第36张脸
att_faces/s36/9.pgm;35;第36张脸
att_faces/s36/10.pgm;35;第36张脸
att_faces/s37/1.pgm;36;第37张脸
att_faces/s37/2.pgm;36;第37张脸
att_faces/s37/3.pgm;36;第37张脸
att_faces/s37/4.pgm;36;第37张脸
att_faces/s37/5.pgm;36;第37张脸
att_faces/s37/6.pgm;36;第37张脸
att_faces/s37/7.pgm;36;第37张脸
att_faces/s37/8.pgm;36;第37张脸
att_faces/s37/9.pgm;36;第37张脸
att_faces/s37/10.pgm;36;第37张脸
att_faces/s38/1.pgm;37;第38张脸
att_faces/s38/2.pgm;37;第38张脸
att_faces/s38/3.pgm;37;第38张脸
att_faces/s38/4.pgm;37;第38张脸
att_faces/s38/5.pgm;37;第38张脸
att_faces/s38/6.pgm;37;第38张脸
att_faces/s38/7.pgm;37;第38张脸
att_faces/s38/8.pgm;37;第38张脸
att_faces/s38/9.pgm;37;第38张脸
att_faces/s38/10.pgm;37;第38张脸
att_faces/s39/1.pgm;38;第39张脸
att_faces/s39/2.pgm;38;第39张脸
att_faces/s39/3.pgm;38;第39张脸
att_faces/s39/4.pgm;38;第39张脸
att_faces/s39/5.pgm;38;第39张脸
att_faces/s39/6.pgm;38;第39张脸
att_faces/s39/7.pgm;38;第39张脸
att_faces/s39/8.pgm;38;第39张脸
att_faces/s39/9.pgm;38;第39张脸
att_faces/s39/10.pgm;38;第39张脸
att_faces/s40/1.pgm;39;第40张脸
att_faces/s40/2.pgm;39;第40张脸
att_faces/s40/3.pgm;39;第40张脸
att_faces/s40/4.pgm;39;第40张脸
att_faces/s40/5.pgm;39;第40张脸
att_faces/s40/6.pgm;39;第40张脸
att_faces/s40/7.pgm;39;第40张脸
att_faces/s40/8.pgm;39;第40张脸
att_faces/s40/9.pgm;39;第40张脸
att_faces/s40/10.pgm;39;第40张脸
02 编译facerec_demo
参考opencv01 相对完整的编译opencv3.3.0 win版本,编译opencv3.3.0 vs2015版本。
生成文件:D:\git\opencv\build\v3.3.0\x64\bin\Debug\face-example-facerec_demo.exe
03 facerec_demo项目配置
设置facerec_demo项目为启动项。
# 如果路径中有空格,需要使用双引号
配置属性==>调试==>命令参数=att_faces/att_faces.csv
配置属性==>调试==>工作目录=$(OutDir)
04 运行结果
Processing att_faces/s1/1.pgm
att_faces/s1\1.pgm
Processing att_faces/s1/2.pgm
att_faces/s1\2.pgm
...
Processing att_faces/s40/9.pgm
att_faces/s40\9.pgm
Processing att_faces/s40/10.pgm
att_faces/s40\10.pgm
Saving the trained model to face-rec-model.txt
Predicted class = 4 / Actual class = 39.
生成模型文件:D:\git\opencv\build\v3.3.0\x64\bin\Debug\face-rec-model.txt
,125MB+。