Go to the documentation of this file.00001 #include<cob_people_detection/subspace_analysis.h>
00002 #include<opencv/cv.h>
00003 #include<opencv/highgui.h>
00004 #include<iostream>
00005 #include<fstream>
00006
00007 int main(int argc, const char *argv[])
00008 {
00009
00010 std::string file1 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/30.xml";
00011 std::string file2 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/31.xml";
00012 std::string file3 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/32.xml";
00013 std::string file4 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/33.xml";
00014 std::string file5 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/34.xml";
00015 std::string file6 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/35.xml";
00016 std::string file7 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/36.xml";
00017 std::string file8 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/37.xml";
00018 std::string file9 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/38.xml";
00019 std::string file10 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/39.xml";
00020 std::string file11 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/40.xml";
00021 std::string file12 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/41.xml";
00022 std::string file13 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/42.xml";
00023 std::string file14 = "/home/goa-tz/git/care-o-bot/cob_people_perception/cob_people_detection/common/files/training_data/43.xml";
00024
00025 std::vector < std::string > in_vec;
00026 std::vector<int> label_vec;
00027 in_vec.push_back(file1);
00028 label_vec.push_back(0);
00029 in_vec.push_back(file2);
00030 label_vec.push_back(0);
00031 in_vec.push_back(file3);
00032 label_vec.push_back(0);
00033 in_vec.push_back(file4);
00034 label_vec.push_back(0);
00035 in_vec.push_back(file5);
00036 label_vec.push_back(0);
00037 in_vec.push_back(file6);
00038 label_vec.push_back(0);
00039 in_vec.push_back(file7);
00040 label_vec.push_back(0);
00041 in_vec.push_back(file8);
00042 label_vec.push_back(1);
00043 in_vec.push_back(file9);
00044 label_vec.push_back(1);
00045 in_vec.push_back(file10);
00046 label_vec.push_back(1);
00047 in_vec.push_back(file11);
00048 label_vec.push_back(1);
00049 in_vec.push_back(file12);
00050 label_vec.push_back(1);
00051 in_vec.push_back(file13);
00052 label_vec.push_back(1);
00053 in_vec.push_back(file14);
00054 label_vec.push_back(1);
00055
00056 std::vector<cv::Mat> img_vec;
00057
00058 for (int i = 0; i < in_vec.size(); i++)
00059 {
00060 cv::Mat img;
00061 cv::FileStorage fs(in_vec[i], cv::FileStorage::READ);
00062 fs["depthmap"] >> img;
00063
00064
00065
00066
00067 cv::resize(img, img, cv::Size(120, 120));
00068 img.convertTo(img, CV_64FC1);
00069 img_vec.push_back(img);
00070 fs.release();
00071
00072 }
00073
00074 std::vector<cv::Mat> probe_mat_vec;
00075 probe_mat_vec.push_back(img_vec[0]);
00076
00077 std::cout << "Size Training Set= " << img_vec.size() << std::endl;
00078
00079 int ss_dim = 2;
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 SubspaceAnalysis::FishEigFaces EFF;
00097
00098 EFF.init(img_vec, label_vec, ss_dim, SubspaceAnalysis::METH_FISHER, true, true);
00099
00100 for (int i = 0; i < probe_mat_vec.size(); i++)
00101 {
00102 cv::Mat probe = probe_mat_vec[i];
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134 int c_EFF;
00135 cv::Mat coeff_EFF;
00136 double DFFS_EFF;
00137 EFF.projectToSubspace(probe, coeff_EFF, DFFS_EFF);
00138 EFF.classify(coeff_EFF, SubspaceAnalysis::CLASS_SVM, c_EFF);
00139 std::cout << "class EFF SVM= " << c_EFF << std::endl;
00140 EFF.classify(coeff_EFF, SubspaceAnalysis::CLASS_KNN, c_EFF);
00141 std::cout << "class EFF KNN= " << c_EFF << std::endl;
00142 EFF.classify(coeff_EFF, SubspaceAnalysis::CLASS_DIFS, c_EFF);
00143 std::cout << "class EFF DIFFS= " << c_EFF << std::endl;
00144
00145 SubspaceAnalysis::dump_matrix(coeff_EFF, "sampleEFF");
00146 }
00147
00148 return 0;
00149 }