├── README.md ├── cascade ├── att.xml ├── banana.xml ├── chase.xml ├── chase_new.xml ├── macy.xml ├── mobil.xml ├── subway.xml ├── subway0.xml └── walmart.xml ├── history └── obj_detection_1_0.cpp ├── obj_detect.py ├── support ├── CMakeCache.txt ├── CMakeFiles │ ├── 2.8.12.2 │ │ ├── CMakeCCompiler.cmake │ │ ├── CMakeCXXCompiler.cmake │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ ├── CMakeSystem.cmake │ │ ├── CompilerIdC │ │ │ ├── CMakeCCompilerId.c │ │ │ └── a.out │ │ └── CompilerIdCXX │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ └── a.out │ ├── 3.3.1 │ │ ├── CMakeCCompiler.cmake │ │ ├── CMakeCXXCompiler.cmake │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ ├── CMakeSystem.cmake │ │ ├── CompilerIdC │ │ │ ├── CMakeCCompilerId.c │ │ │ └── a.out │ │ └── CompilerIdCXX │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ └── a.out │ ├── CMakeDirectoryInformation.cmake │ ├── CMakeOutput.log │ ├── Makefile.cmake │ ├── Makefile2 │ ├── TargetDirectories.txt │ ├── cmake.check_cache │ ├── feature_tests.bin │ ├── feature_tests.c │ ├── feature_tests.cxx │ ├── obj_detect.dir │ │ ├── CXX.includecache │ │ ├── DependInfo.cmake │ │ ├── build.make │ │ ├── cmake_clean.cmake │ │ ├── depend.internal │ │ ├── depend.make │ │ ├── flags.make │ │ ├── link.txt │ │ ├── obj_detect.cpp.o │ │ └── progress.make │ └── progress.marks ├── CMakeLists.txt ├── Makefile ├── cmake_install.cmake ├── obj_detect └── obj_detect.cpp ├── test └── result │ ├── chase_res.txt │ ├── mobil_res.txt │ ├── subway_res.txt │ └── walmart_res.txt ├── tool ├── CEDD_comp_res │ └── CEDD_data.txt ├── analyze_threshold │ ├── log │ │ ├── m0 │ │ │ ├── error_log_m_0.txt │ │ │ └── good_log_m_0.txt │ │ ├── m10 │ │ │ ├── error_log_m_10.txt │ │ │ └── good_log_m_10.txt │ │ ├── m15 │ │ │ ├── error_log_m_15.txt │ │ │ └── good_log_m_15.txt │ │ ├── m20 │ │ │ ├── error_log_m_20.txt │ │ │ ├── error_log_m_20m.txt │ │ │ ├── good_log_m_20.txt │ │ │ └── good_log_m_20m.txt │ │ ├── m25 │ │ │ ├── error_log_m_25.txt │ │ │ └── good_log_m_25.txt │ │ └── m5 │ │ │ ├── error_log_m_5.txt │ │ │ └── good_log_m_5.txt │ ├── plot_round_num │ │ ├── margin_0_round.png │ │ ├── margin_10_round.png │ │ ├── margin_15_round.png │ │ ├── margin_20_round.png │ │ └── margin_5_round.png │ ├── thres_analysis_result.txt │ └── threshold_analysis.py └── img_process │ ├── .DS_Store │ ├── img_trim.py │ └── img_trim.py~ └── training ├── README.md ├── bin └── createsamples.pl ├── mergevec ├── negative_images └── .gitkeep ├── positive_images └── .gitkeep ├── samples └── .gitkeep ├── src └── mergevec.cpp └── train.sh /README.md: -------------------------------------------------------------------------------- 1 | # Logo Detection 2 | Version: 2.0 3 | 4 | ## Requirements 5 | **OS:** Linux (Ubuntu 14.04 is recommended) 6 | - OpenCV2 7 | - Python2 8 | 9 | ## Classifier Training 10 | Follow [the link](http://abhishek4273.com/2014/03/16/traincascade-and-car-detection-using-opencv/) to get multiple Haar classifier cascades. 11 | 12 | ## Code Layout 13 | - **obj_detect.py:** The function that you will use 14 | - **support/** The cpp code that supports the function of "obj_detect.py" 15 | - **cascade/** Trained classifiers. Include AT&T, Chase, Macy's, Mobil, Subway, Walmart, and banana (Taco Bell and Starbucks will come soon...). 16 | - **history/** Previous version of logo detection code 17 | - **images/** Images w/ or w/o logos 18 | - **tool/** Includes a script that can help you find the best MARGIN and THRESHOLD to have acceptable FPR and FNR. There is also an analysis result text file generated by me. 19 | - `log/` contains detection analysis log with the margin from 0 to 25 20 | - `plot_round_num/` has the images that show the distribution of round number with different margins 21 | 22 | ## Main function 23 | Given image path and logo name, the "get_result" function in "obj_detect.py" will return the x-coordinate of the detected logo. 24 | 25 | ## How to use 26 | Put "obj_detect.py" in the same path with the "support" folder. Then import "obj_detect.py" into your code and call "get_result" function. 27 | 28 | **Sample:** In python, use: 29 | - $ res = get_result("walmart", "images/walmart/walmart.jpg", 1) 30 | 31 | - Input parameters: 32 | - "walmart" is the name of logo that you want to detect 33 | - "images/walmart/walmart.jpg" is the path of the image to process 34 | - 1 means show the detection result; 0 means do not show the result (Displaying the result will block the get_result function and need PRESS_ANY_KEY to continue) 35 | 36 | - Returned string: 37 | - If the program returns correctly, "res" will be in the format like **"logo_left / logo_right / image_width / min_neighbor / conf_score"**. 38 | - For "logo_left" and "logo_right", -1 means more than one object found; 0 means no object; 39 | - If something goes wrong, "res" will be "ERROR" 40 | 41 | ## Define the confidence score 42 | In object detection, there is a score called "MIN_NEIGHBOR" which represents the similarity between the detected area and sample object. Moreover, I applied recursive image cropping to get the number of "cropping round", which can also be used to know if there is a real logo or not. In most cases, real logo will have higher round number while the false positive has less. 43 | 44 | **Threshold of conf_score** To remove false positive cases, we need to ignore the results with confidence scores smaller than a certain threshold. The relation between the threshold, FPR, and FNR is partially listed below. You can select a threshold according to your application scenario. 45 | * Threshold / FPR(%) / FNR(%) 46 | * 10 / 15.9 / 13.0 47 | * 11 / 15.9 / 14.4 48 | * 12 / 15.9 / 14.4 49 | * 13 / 14.4 / 14.4 50 | * 14 / 13.0 / 14.4 51 | * 15 / 11.5 / 15.9 52 | * 16 / 11.5 / 15.9 53 | * 17 / 10.1 / 18.8 54 | * 18 / 8.6 / 18.8 55 | * 19 / 8.6 / 20.2 56 | * 20 / 5.7 / 21.7 57 | (The data is tested among 64 images in 2015 May, new result will be updated shortly) 58 | 59 | ## Update 60 | - Chase cascade updated (with the trainining set of streetview as background) 61 | 62 | ## Citation 63 | Please cite this paper in your publications if it helps your research 64 | 65 | @inproceedings{Hu:2016:AAL:2971648.2971674, 66 | author = {Hu, Yitao and Liu, Xiaochen and Nath, Suman and Govindan, Ramesh}, 67 | title = {ALPS: Accurate Landmark Positioning at City Scales}, 68 | booktitle = {Proceedings of the 2016 ACM International Joint Conference on Pervasive and Ubiquitous Computing}, 69 | series = {UbiComp '16}, 70 | year = {2016}, 71 | isbn = {978-1-4503-4461-6}, 72 | location = {Heidelberg, Germany}, 73 | pages = {1147--1158}, 74 | numpages = {12}, 75 | url = {http://doi.acm.org/10.1145/2971648.2971674}, 76 | doi = {10.1145/2971648.2971674}, 77 | acmid = {2971674}, 78 | publisher = {ACM}, 79 | address = {New York, NY, USA}, 80 | keywords = {context-aware computing, landmark localization system, machine/deep learning}, 81 | } 82 | 83 | -------------------------------------------------------------------------------- /history/obj_detection_1_0.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Name: Object detection 3 | * Author: Xiaochen 4 | * Time: 04/05/2015 5 | * Version: 1.0 6 | * Function: 7 | 1. Use HAAR features and SVM to find a specific obj in a picture. 8 | 2. Use auto-resizing to decrease the number of detected objects to one 9 | 3. Show the result in a new window 10 | * Usage: 11 | 1. Compile the cpp file, get the executable file 12 | 2. In command: ./[executable_file] --cascade=[cascade_path] [image_path] 13 | * 14 | */ 15 | 16 | #include "opencv2/objdetect/objdetect.hpp" 17 | #include "opencv2/highgui/highgui.hpp" 18 | #include "opencv2/imgproc/imgproc.hpp" 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | using namespace std; 26 | using namespace cv; 27 | 28 | void detectAndDraw( Mat& img, CascadeClassifier& cascade, 29 | CascadeClassifier& nestedCascade, 30 | double scale, bool tryflip ); 31 | 32 | string cascadeName = "../../data/haarcascades/haarcascade_frontalface_alt.xml"; 33 | string nestedCascadeName = "../../data/haarcascades/haarcascade_eye_tree_eyeglasses.xml"; 34 | 35 | int main(int argc, const char** argv) { 36 | CvCapture* capture = 0; 37 | Mat frame, frameCopy, image; 38 | const string scaleOpt = "--scale="; 39 | size_t scaleOptLen = scaleOpt.length(); 40 | const string cascadeOpt = "--cascade="; 41 | size_t cascadeOptLen = cascadeOpt.length(); 42 | const string nestedCascadeOpt = "--nested-cascade"; 43 | size_t nestedCascadeOptLen = nestedCascadeOpt.length(); 44 | const string tryFlipOpt = "--try-flip"; 45 | size_t tryFlipOptLen = tryFlipOpt.length(); 46 | string inputName; 47 | bool tryflip = false; 48 | 49 | CascadeClassifier cascade, nestedCascade; 50 | double scale = 1; 51 | 52 | for( int i = 1; i < argc; i++ ) { // get inputs 53 | cout << "Processing " << i << " " << argv[i] << endl; 54 | if( cascadeOpt.compare( 0, cascadeOptLen, argv[i], cascadeOptLen ) == 0 ) { // read cascade file 55 | cascadeName.assign( argv[i] + cascadeOptLen ); 56 | cout << " from which we have cascadeName= " << cascadeName << endl; 57 | } 58 | else if( scaleOpt.compare( 0, scaleOptLen, argv[i], scaleOptLen ) == 0 ) { // read the scale 59 | if( !sscanf( argv[i] + scaleOpt.length(), "%lf", &scale ) || scale < 1 ) 60 | scale = 1; 61 | cout << " from which we read scale = " << scale << endl; 62 | } 63 | else if( tryFlipOpt.compare( 0, tryFlipOptLen, argv[i], tryFlipOptLen ) == 0 ) { // read whether the image should be flipped 64 | tryflip = true; 65 | cout << " will try to flip image horizontally to detect assymetric objects\n"; 66 | } 67 | else if( argv[i][0] == '-' ) { // wrong input format 68 | cerr << "WARNING: Unknown option %s" << argv[i] << endl; 69 | } 70 | else 71 | inputName.assign( argv[i] ); // image name 72 | } 73 | 74 | if( !cascade.load( cascadeName ) ) { // handle the error cascade 75 | cerr << "ERROR: Could not load classifier cascade" << endl; 76 | return -1; 77 | } 78 | 79 | if( inputName.size() ) { // read in the image 80 | image = imread( inputName, 1 ); 81 | if( image.empty() ) { 82 | cout << "ERRROR: input image is empty!" << endl; 83 | return -1; 84 | } 85 | cout << "SUCCESS: In image read" << endl; 86 | } 87 | else { 88 | cout << "ERROR: Couldn't no input image name" << endl; 89 | return -1; 90 | } 91 | 92 | cvNamedWindow("result", 1); 93 | 94 | detectAndDraw(image, cascade, nestedCascade, scale, tryflip); // detect and draw 95 | 96 | waitKey(0); 97 | cvDestroyWindow("result"); 98 | 99 | return 0; 100 | } 101 | 102 | void detectAndDraw( Mat& img, CascadeClassifier& cascade, 103 | CascadeClassifier& nestedCascade, 104 | double scale, bool tryflip ) 105 | { 106 | const static Scalar colors[] = { CV_RGB(0,0,255), // colors of rectangles 107 | CV_RGB(0,128,255), 108 | CV_RGB(0,255,255), 109 | CV_RGB(0,255,0), 110 | CV_RGB(255,128,0), 111 | CV_RGB(255,255,0), 112 | CV_RGB(255,0,0), 113 | CV_RGB(255,0,255)}; 114 | 115 | 116 | double t = (double)cvGetTickCount(); // count the procesing time 117 | 118 | vector detected_object; // detected object 119 | double temp_scale = scale; 120 | double temp_scale_small = scale; // scale for the loop 121 | 122 | while (true) { 123 | /** iteration to find the best image scale **/ 124 | Mat gray, smallImg(cvRound (img.rows / temp_scale), cvRound(img.cols / temp_scale), CV_8UC1); 125 | 126 | cvtColor( img, gray, CV_BGR2GRAY ); 127 | resize( gray, smallImg, smallImg.size(), 0, 0, INTER_LINEAR ); 128 | equalizeHist( smallImg, smallImg ); 129 | 130 | vector temp_obj, temp_obj2; 131 | cascade.detectMultiScale( smallImg, temp_obj, // object detection 132 | 1.1, 2, 133 | 0 | CV_HAAR_SCALE_IMAGE, 134 | Size(30, 30) ); 135 | 136 | if (tryflip) { // flip the image 137 | flip(smallImg, smallImg, 1); 138 | cascade.detectMultiScale( smallImg, temp_obj2, 139 | 1.1, 2, 140 | 0 | CV_HAAR_SCALE_IMAGE, 141 | Size(30, 30) ); 142 | for( vector::const_iterator r = temp_obj2.begin(); r != temp_obj2.end(); r++ ) { 143 | temp_obj.push_back(Rect(smallImg.cols - r->x - r->width, r->y, r->width, r->height)); 144 | } 145 | } 146 | 147 | printf("Current scale is %f, number of objects is %d\n", temp_scale, (int)temp_obj.size()); 148 | if ((int)temp_obj.size() > 0) { // if can find something.... 149 | if ((int)temp_obj.size() == 1) { // find the only object! [Return] 150 | detected_object = temp_obj; 151 | printf("obj found! The scale is %f\n", temp_scale); 152 | break; 153 | } 154 | else { // more than one obj detected... try larger scale 155 | temp_scale_small = temp_scale; 156 | temp_scale += 2.0; 157 | } 158 | } else { 159 | if (temp_scale == scale) { // cannot detect anything with original image. [Return] 160 | detected_object = temp_obj; 161 | printf("no objects detected!\n"); 162 | break; 163 | } else { // try smaller scale 164 | temp_scale = (temp_scale + temp_scale_small) / 2.0; 165 | } 166 | } 167 | } 168 | 169 | t = (double)cvGetTickCount() - t; 170 | printf("detection time = %g ms\n", t/((double)cvGetTickFrequency()*1000.)); // print processing time 171 | 172 | // show image in a window 173 | int i = 0; 174 | for( vector::const_iterator r = detected_object.begin(); r != detected_object.end(); r++, i++ ) { 175 | Point center; 176 | Scalar color = colors[i%8]; 177 | 178 | rectangle( img, // draw rectangle 179 | cvPoint(cvRound(r->x * temp_scale), 180 | cvRound(r->y * temp_scale)), 181 | cvPoint(cvRound((r->x + r->width-1) * temp_scale), 182 | cvRound((r->y + r->height-1) * temp_scale)), 183 | color, 3, 8, 0); 184 | } 185 | 186 | cv::imshow( "result", img ); // show the image 187 | 188 | } 189 | -------------------------------------------------------------------------------- /obj_detect.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Create: 04/09/2015 3 | Modified: 05/27/2015 4 | Author: Xiaochen Liu 5 | 6 | Function: Given image path and logo name, the "get_result" will return 7 | the x-coordinate of the two boudaries of detected logo and 8 | the image width as well as the threshold and the round # 9 | 10 | Usage: Put this python file in the same path with the "support" folder. 11 | Then import the python file and call "get_result" function 12 | 13 | How to call the function: $ python obj_detect.py [dir_name] [show_img] 14 | NOTE: [dir_name] must have '/' at the end! 15 | NOTE: Only results with conf_score >= 20 are shown! 16 | ''' 17 | 18 | import time, os, copy, sys, random,threading 19 | 20 | RESULT_HEADER = "RESULT: " 21 | ERROR_MSG = "ERROR" 22 | 23 | def get_result(logo_name, image_path, show_img): 24 | cmd = "./support/obj_detect --cascade=cascade/" + logo_name + ".xml" + " --display=" + str(show_img) + " " + image_path 25 | ret_val = os.popen(cmd).read().split('\n') # system call 26 | 27 | found = False 28 | for i in range(len(ret_val)): 29 | print ret_val[i] 30 | if ret_val[i].startswith(RESULT_HEADER): 31 | found = True 32 | return ret_val[i].split(RESULT_HEADER)[-1] 33 | break 34 | 35 | if found == False: 36 | return ERROR_MSG 37 | 38 | # Set the directory you want to start from 39 | def dir_walk(rootDir, indent, show_img): 40 | logo_name = rootDir.split('/')[-2] 41 | out_file = open(logo_name + '_res.txt','w') 42 | right_ans = 0 43 | wrong_ans = 0 44 | for dirName, subdirList, fileList in os.walk(rootDir): 45 | print indent + dirName 46 | for fname in fileList: # file 47 | print indent + '\t'+ fname 48 | if '.jpg' in fname or '.png' in fname or '.JPG' in fname or '.PNG' in fname: 49 | detect_res = get_result(logo_name, rootDir + fname, show_img) 50 | if int(detect_res.split('/')[-1].split('\n')[0]) >= 20: # only show the image above the conf threshold 51 | user_input = raw_input('Is the result correct? [y/n]: ') 52 | if user_input == 'y': 53 | out_file.write('1\t') 54 | right_ans += 1 55 | else: 56 | out_file.write('0\t') 57 | wrong_ans += 1 58 | out_file.write(fname + '\t' + detect_res + '\n') 59 | 60 | out_file.close() 61 | print 'ANSWER: Right:' + `right_ans` + ' Wrong:' + `wrong_ans` 62 | 63 | if __name__ == '__main__': 64 | # should go through all imgs here... 65 | if len(sys.argv) != 3: 66 | sys.exit('ERROR: wrong argc!') 67 | if not os.path.exists(sys.argv[1]): 68 | sys.exit('ERROR: ' + sys.argv[1] + ' was not found!') 69 | 70 | dir_walk(sys.argv[1], '', sys.argv[2]) # walk through 71 | 72 | print "done" 73 | -------------------------------------------------------------------------------- /support/CMakeCache.txt: -------------------------------------------------------------------------------- 1 | # This is the CMakeCache file. 2 | # For build in directory: /home/chris/Lab/LogoDetection/support 3 | # It was generated by CMake: /usr/bin/cmake 4 | # You can edit this file to change values found and used by cmake. 5 | # If you do not want to change any of the values, simply exit the editor. 6 | # If you do want to change a value, simply edit, save, and exit the editor. 7 | # The syntax for the file is as follows: 8 | # KEY:TYPE=VALUE 9 | # KEY is the name of a variable in the cache. 10 | # TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. 11 | # VALUE is the current value for the KEY. 12 | 13 | ######################## 14 | # EXTERNAL cache entries 15 | ######################## 16 | 17 | //Choose the type of build, options are: None(CMAKE_CXX_FLAGS or 18 | // CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. 19 | CMAKE_BUILD_TYPE:STRING= 20 | 21 | //Enable/Disable color output during build. 22 | CMAKE_COLOR_MAKEFILE:BOOL=ON 23 | 24 | //CXX compiler. 25 | CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ 26 | 27 | //Flags used by the compiler during all build types. 28 | CMAKE_CXX_FLAGS:STRING= 29 | 30 | //Flags used by the compiler during debug builds. 31 | CMAKE_CXX_FLAGS_DEBUG:STRING=-g 32 | 33 | //Flags used by the compiler during release minsize builds. 34 | CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG 35 | 36 | //Flags used by the compiler during release builds (/MD /Ob1 /Oi 37 | // /Ot /Oy /Gs will produce slightly less optimized but smaller 38 | // files). 39 | CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 40 | 41 | //Flags used by the compiler during Release with Debug Info builds. 42 | CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG 43 | 44 | //C compiler. 45 | CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc 46 | 47 | //Flags used by the compiler during all build types. 48 | CMAKE_C_FLAGS:STRING= 49 | 50 | //Flags used by the compiler during debug builds. 51 | CMAKE_C_FLAGS_DEBUG:STRING=-g 52 | 53 | //Flags used by the compiler during release minsize builds. 54 | CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG 55 | 56 | //Flags used by the compiler during release builds (/MD /Ob1 /Oi 57 | // /Ot /Oy /Gs will produce slightly less optimized but smaller 58 | // files). 59 | CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 60 | 61 | //Flags used by the compiler during Release with Debug Info builds. 62 | CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG 63 | 64 | //Flags used by the linker. 65 | CMAKE_EXE_LINKER_FLAGS:STRING=' ' 66 | 67 | //Flags used by the linker during debug builds. 68 | CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= 69 | 70 | //Flags used by the linker during release minsize builds. 71 | CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= 72 | 73 | //Flags used by the linker during release builds. 74 | CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= 75 | 76 | //Flags used by the linker during Release with Debug Info builds. 77 | CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= 78 | 79 | //Enable/Disable output of compile commands during generation. 80 | CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF 81 | 82 | //Install path prefix, prepended onto install directories. 83 | CMAKE_INSTALL_PREFIX:PATH=/usr/local 84 | 85 | //Path to a program. 86 | CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make 87 | 88 | //Flags used by the linker during the creation of modules. 89 | CMAKE_MODULE_LINKER_FLAGS:STRING=' ' 90 | 91 | //Flags used by the linker during debug builds. 92 | CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= 93 | 94 | //Flags used by the linker during release minsize builds. 95 | CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= 96 | 97 | //Flags used by the linker during release builds. 98 | CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= 99 | 100 | //Flags used by the linker during Release with Debug Info builds. 101 | CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= 102 | 103 | //Value Computed by CMake 104 | CMAKE_PROJECT_NAME:STATIC=obj_detect 105 | 106 | //Flags used by the linker during the creation of dll's. 107 | CMAKE_SHARED_LINKER_FLAGS:STRING=' ' 108 | 109 | //Flags used by the linker during debug builds. 110 | CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= 111 | 112 | //Flags used by the linker during release minsize builds. 113 | CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= 114 | 115 | //Flags used by the linker during release builds. 116 | CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= 117 | 118 | //Flags used by the linker during Release with Debug Info builds. 119 | CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= 120 | 121 | //If set, runtime paths are not added when installing shared libraries, 122 | // but are added when building. 123 | CMAKE_SKIP_INSTALL_RPATH:BOOL=NO 124 | 125 | //If set, runtime paths are not added when using shared libraries. 126 | CMAKE_SKIP_RPATH:BOOL=NO 127 | 128 | //Flags used by the linker during the creation of static libraries. 129 | CMAKE_STATIC_LINKER_FLAGS:STRING= 130 | 131 | //Flags used by the linker during debug builds. 132 | CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= 133 | 134 | //Flags used by the linker during release minsize builds. 135 | CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= 136 | 137 | //Flags used by the linker during release builds. 138 | CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= 139 | 140 | //Flags used by the linker during Release with Debug Info builds. 141 | CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= 142 | 143 | //If true, cmake will use relative paths in makefiles and projects. 144 | CMAKE_USE_RELATIVE_PATHS:BOOL=OFF 145 | 146 | //If this value is on, makefiles will be generated without the 147 | // .SILENT directive, and all commands will be echoed to the console 148 | // during the make. This is useful for debugging only. With Visual 149 | // Studio IDE projects all commands are done without /nologo. 150 | CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE 151 | 152 | //Path where debug 3rdpaty OpenCV dependencies are located 153 | OpenCV_3RDPARTY_LIB_DIR_DBG:PATH= 154 | 155 | //Path where release 3rdpaty OpenCV dependencies are located 156 | OpenCV_3RDPARTY_LIB_DIR_OPT:PATH= 157 | 158 | OpenCV_CONFIG_PATH:FILEPATH=/usr/local/share/OpenCV 159 | 160 | //The directory containing a CMake configuration file for OpenCV. 161 | OpenCV_DIR:PATH=/usr/local/share/OpenCV 162 | 163 | //Path where debug OpenCV libraries are located 164 | OpenCV_LIB_DIR_DBG:PATH= 165 | 166 | //Path where release OpenCV libraries are located 167 | OpenCV_LIB_DIR_OPT:PATH= 168 | 169 | //Value Computed by CMake 170 | obj_detect_BINARY_DIR:STATIC=/home/chris/Lab/LogoDetection/support 171 | 172 | //Value Computed by CMake 173 | obj_detect_SOURCE_DIR:STATIC=/home/chris/Lab/LogoDetection/support 174 | 175 | 176 | ######################## 177 | # INTERNAL cache entries 178 | ######################## 179 | 180 | //ADVANCED property for variable: CMAKE_BUILD_TOOL 181 | CMAKE_BUILD_TOOL-ADVANCED:INTERNAL=1 182 | //What is the target build tool cmake is generating for. 183 | CMAKE_BUILD_TOOL:INTERNAL=/usr/bin/make 184 | //This is the directory where this CMakeCache.txt was created 185 | CMAKE_CACHEFILE_DIR:INTERNAL=/home/chris/Lab/LogoDetection/support 186 | //Major version of cmake used to create the current loaded cache 187 | CMAKE_CACHE_MAJOR_VERSION:INTERNAL=2 188 | //Minor version of cmake used to create the current loaded cache 189 | CMAKE_CACHE_MINOR_VERSION:INTERNAL=8 190 | //Patch version of cmake used to create the current loaded cache 191 | CMAKE_CACHE_PATCH_VERSION:INTERNAL=12 192 | //ADVANCED property for variable: CMAKE_COLOR_MAKEFILE 193 | CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 194 | //Path to CMake executable. 195 | CMAKE_COMMAND:INTERNAL=/usr/bin/cmake 196 | //Path to cpack program executable. 197 | CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack 198 | //Path to ctest program executable. 199 | CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest 200 | //ADVANCED property for variable: CMAKE_CXX_FLAGS 201 | CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 202 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG 203 | CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 204 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL 205 | CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 206 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE 207 | CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 208 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO 209 | CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 210 | //ADVANCED property for variable: CMAKE_C_FLAGS 211 | CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 212 | //ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG 213 | CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 214 | //ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL 215 | CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 216 | //ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE 217 | CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 218 | //ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO 219 | CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 220 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS 221 | CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 222 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG 223 | CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 224 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL 225 | CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 226 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE 227 | CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 228 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO 229 | CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 230 | //ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS 231 | CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 232 | //Name of generator. 233 | CMAKE_GENERATOR:INTERNAL=Unix Makefiles 234 | //Name of generator toolset. 235 | CMAKE_GENERATOR_TOOLSET:INTERNAL= 236 | //Start directory with the top level CMakeLists.txt file for this 237 | // project 238 | CMAKE_HOME_DIRECTORY:INTERNAL=/home/chris/Lab/LogoDetection/support 239 | //Install .so files without execute permission. 240 | CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 241 | //ADVANCED property for variable: CMAKE_MAKE_PROGRAM 242 | CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 243 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS 244 | CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 245 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG 246 | CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 247 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL 248 | CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 249 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE 250 | CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 251 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO 252 | CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 253 | //number of local generators 254 | CMAKE_NUMBER_OF_LOCAL_GENERATORS:INTERNAL=1 255 | //Path to CMake installation. 256 | CMAKE_ROOT:INTERNAL=/usr/share/cmake-2.8 257 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS 258 | CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 259 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG 260 | CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 261 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL 262 | CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 263 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE 264 | CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 265 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO 266 | CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 267 | //ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH 268 | CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 269 | //ADVANCED property for variable: CMAKE_SKIP_RPATH 270 | CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 271 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS 272 | CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 273 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG 274 | CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 275 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL 276 | CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 277 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE 278 | CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 279 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO 280 | CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 281 | //ADVANCED property for variable: CMAKE_USE_RELATIVE_PATHS 282 | CMAKE_USE_RELATIVE_PATHS-ADVANCED:INTERNAL=1 283 | //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE 284 | CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 285 | //ADVANCED property for variable: OpenCV_3RDPARTY_LIB_DIR_DBG 286 | OpenCV_3RDPARTY_LIB_DIR_DBG-ADVANCED:INTERNAL=1 287 | //ADVANCED property for variable: OpenCV_3RDPARTY_LIB_DIR_OPT 288 | OpenCV_3RDPARTY_LIB_DIR_OPT-ADVANCED:INTERNAL=1 289 | //ADVANCED property for variable: OpenCV_CONFIG_PATH 290 | OpenCV_CONFIG_PATH-ADVANCED:INTERNAL=1 291 | //ADVANCED property for variable: OpenCV_LIB_DIR_DBG 292 | OpenCV_LIB_DIR_DBG-ADVANCED:INTERNAL=1 293 | //ADVANCED property for variable: OpenCV_LIB_DIR_OPT 294 | OpenCV_LIB_DIR_OPT-ADVANCED:INTERNAL=1 295 | 296 | -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "/usr/bin/cc") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "GNU") 4 | set(CMAKE_C_COMPILER_VERSION "4.8.2") 5 | set(CMAKE_C_PLATFORM_ID "Linux") 6 | 7 | set(CMAKE_AR "/usr/bin/ar") 8 | set(CMAKE_RANLIB "/usr/bin/ranlib") 9 | set(CMAKE_LINKER "/usr/bin/ld") 10 | set(CMAKE_COMPILER_IS_GNUCC 1) 11 | set(CMAKE_C_COMPILER_LOADED 1) 12 | set(CMAKE_C_COMPILER_WORKS TRUE) 13 | set(CMAKE_C_ABI_COMPILED TRUE) 14 | set(CMAKE_COMPILER_IS_MINGW ) 15 | set(CMAKE_COMPILER_IS_CYGWIN ) 16 | if(CMAKE_COMPILER_IS_CYGWIN) 17 | set(CYGWIN 1) 18 | set(UNIX 1) 19 | endif() 20 | 21 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 22 | 23 | if(CMAKE_COMPILER_IS_MINGW) 24 | set(MINGW 1) 25 | endif() 26 | set(CMAKE_C_COMPILER_ID_RUN 1) 27 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c) 28 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 29 | set(CMAKE_C_LINKER_PREFERENCE 10) 30 | 31 | # Save compiler ABI information. 32 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 33 | set(CMAKE_C_COMPILER_ABI "ELF") 34 | set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 35 | 36 | if(CMAKE_C_SIZEOF_DATA_PTR) 37 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 38 | endif() 39 | 40 | if(CMAKE_C_COMPILER_ABI) 41 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 42 | endif() 43 | 44 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 45 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 46 | endif() 47 | 48 | 49 | 50 | 51 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c") 52 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 53 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_CXX_COMPILER "/usr/bin/c++") 2 | set(CMAKE_CXX_COMPILER_ARG1 "") 3 | set(CMAKE_CXX_COMPILER_ID "GNU") 4 | set(CMAKE_CXX_COMPILER_VERSION "4.8.2") 5 | set(CMAKE_CXX_PLATFORM_ID "Linux") 6 | 7 | set(CMAKE_AR "/usr/bin/ar") 8 | set(CMAKE_RANLIB "/usr/bin/ranlib") 9 | set(CMAKE_LINKER "/usr/bin/ld") 10 | set(CMAKE_COMPILER_IS_GNUCXX 1) 11 | set(CMAKE_CXX_COMPILER_LOADED 1) 12 | set(CMAKE_CXX_COMPILER_WORKS TRUE) 13 | set(CMAKE_CXX_ABI_COMPILED TRUE) 14 | set(CMAKE_COMPILER_IS_MINGW ) 15 | set(CMAKE_COMPILER_IS_CYGWIN ) 16 | if(CMAKE_COMPILER_IS_CYGWIN) 17 | set(CYGWIN 1) 18 | set(UNIX 1) 19 | endif() 20 | 21 | set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") 22 | 23 | if(CMAKE_COMPILER_IS_MINGW) 24 | set(MINGW 1) 25 | endif() 26 | set(CMAKE_CXX_COMPILER_ID_RUN 1) 27 | set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) 28 | set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) 29 | set(CMAKE_CXX_LINKER_PREFERENCE 30) 30 | set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) 31 | 32 | # Save compiler ABI information. 33 | set(CMAKE_CXX_SIZEOF_DATA_PTR "8") 34 | set(CMAKE_CXX_COMPILER_ABI "ELF") 35 | set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 36 | 37 | if(CMAKE_CXX_SIZEOF_DATA_PTR) 38 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") 39 | endif() 40 | 41 | if(CMAKE_CXX_COMPILER_ABI) 42 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") 43 | endif() 44 | 45 | if(CMAKE_CXX_LIBRARY_ARCHITECTURE) 46 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 47 | endif() 48 | 49 | 50 | 51 | 52 | set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c") 53 | set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 54 | set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Linux-3.16.0-38-generic") 2 | set(CMAKE_HOST_SYSTEM_NAME "Linux") 3 | set(CMAKE_HOST_SYSTEM_VERSION "3.16.0-38-generic") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Linux-3.16.0-38-generic") 9 | set(CMAKE_SYSTEM_NAME "Linux") 10 | set(CMAKE_SYSTEM_VERSION "3.16.0-38-generic") 11 | set(CMAKE_SYSTEM_PROCESSOR "x86_64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c: -------------------------------------------------------------------------------- 1 | #ifdef __cplusplus 2 | # error "A C++ compiler has been selected for C." 3 | #endif 4 | 5 | /* Version number components: V=Version, R=Revision, P=Patch 6 | Version date components: YYYY=Year, MM=Month, DD=Day */ 7 | 8 | #if defined(__18CXX) 9 | # define ID_VOID_MAIN 10 | #endif 11 | 12 | #if defined(__INTEL_COMPILER) || defined(__ICC) 13 | # define COMPILER_ID "Intel" 14 | /* __INTEL_COMPILER = VRP */ 15 | # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) 16 | # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) 17 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) 18 | # if defined(__INTEL_COMPILER_BUILD_DATE) 19 | /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ 20 | # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) 21 | # endif 22 | 23 | #elif defined(__PATHCC__) 24 | # define COMPILER_ID "PathScale" 25 | # define COMPILER_VERSION_MAJOR DEC(__PATHCC__) 26 | # define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) 27 | # if defined(__PATHCC_PATCHLEVEL__) 28 | # define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) 29 | # endif 30 | 31 | #elif defined(__clang__) 32 | # define COMPILER_ID "Clang" 33 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 34 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 35 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 36 | 37 | #elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) 38 | # define COMPILER_ID "Embarcadero" 39 | # define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) 40 | # define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) 41 | # define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) 42 | 43 | #elif defined(__BORLANDC__) 44 | # define COMPILER_ID "Borland" 45 | /* __BORLANDC__ = 0xVRR */ 46 | # define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) 47 | # define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) 48 | 49 | #elif defined(__WATCOMC__) 50 | # define COMPILER_ID "Watcom" 51 | /* __WATCOMC__ = VVRR */ 52 | # define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) 53 | # define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100) 54 | 55 | #elif defined(__SUNPRO_C) 56 | # define COMPILER_ID "SunPro" 57 | # if __SUNPRO_C >= 0x5100 58 | /* __SUNPRO_C = 0xVRRP */ 59 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) 60 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) 61 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) 62 | # else 63 | /* __SUNPRO_C = 0xVRP */ 64 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) 65 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) 66 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) 67 | # endif 68 | 69 | #elif defined(__HP_cc) 70 | # define COMPILER_ID "HP" 71 | /* __HP_cc = VVRRPP */ 72 | # define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) 73 | # define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) 74 | # define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) 75 | 76 | #elif defined(__DECC) 77 | # define COMPILER_ID "Compaq" 78 | /* __DECC_VER = VVRRTPPPP */ 79 | # define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) 80 | # define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) 81 | # define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) 82 | 83 | #elif defined(__IBMC__) 84 | # if defined(__COMPILER_VER__) 85 | # define COMPILER_ID "zOS" 86 | # else 87 | # if __IBMC__ >= 800 88 | # define COMPILER_ID "XL" 89 | # else 90 | # define COMPILER_ID "VisualAge" 91 | # endif 92 | /* __IBMC__ = VRP */ 93 | # define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) 94 | # define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) 95 | # define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) 96 | # endif 97 | 98 | #elif defined(__PGI) 99 | # define COMPILER_ID "PGI" 100 | # define COMPILER_VERSION_MAJOR DEC(__PGIC__) 101 | # define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) 102 | # if defined(__PGIC_PATCHLEVEL__) 103 | # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) 104 | # endif 105 | 106 | #elif defined(_CRAYC) 107 | # define COMPILER_ID "Cray" 108 | # define COMPILER_VERSION_MAJOR DEC(_RELEASE) 109 | # define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) 110 | 111 | #elif defined(__TI_COMPILER_VERSION__) 112 | # define COMPILER_ID "TI" 113 | /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ 114 | # define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) 115 | # define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) 116 | # define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) 117 | 118 | #elif defined(__TINYC__) 119 | # define COMPILER_ID "TinyCC" 120 | 121 | #elif defined(__SCO_VERSION__) 122 | # define COMPILER_ID "SCO" 123 | 124 | #elif defined(__GNUC__) 125 | # define COMPILER_ID "GNU" 126 | # define COMPILER_VERSION_MAJOR DEC(__GNUC__) 127 | # define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) 128 | # if defined(__GNUC_PATCHLEVEL__) 129 | # define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) 130 | # endif 131 | 132 | #elif defined(_MSC_VER) 133 | # define COMPILER_ID "MSVC" 134 | /* _MSC_VER = VVRR */ 135 | # define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) 136 | # define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) 137 | # if defined(_MSC_FULL_VER) 138 | # if _MSC_VER >= 1400 139 | /* _MSC_FULL_VER = VVRRPPPPP */ 140 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) 141 | # else 142 | /* _MSC_FULL_VER = VVRRPPPP */ 143 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) 144 | # endif 145 | # endif 146 | # if defined(_MSC_BUILD) 147 | # define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) 148 | # endif 149 | 150 | /* Analog VisualDSP++ >= 4.5.6 */ 151 | #elif defined(__VISUALDSPVERSION__) 152 | # define COMPILER_ID "ADSP" 153 | /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ 154 | # define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) 155 | # define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) 156 | # define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) 157 | 158 | /* Analog VisualDSP++ < 4.5.6 */ 159 | #elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) 160 | # define COMPILER_ID "ADSP" 161 | 162 | /* IAR Systems compiler for embedded systems. 163 | http://www.iar.com */ 164 | #elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) 165 | # define COMPILER_ID "IAR" 166 | 167 | /* sdcc, the small devices C compiler for embedded systems, 168 | http://sdcc.sourceforge.net */ 169 | #elif defined(SDCC) 170 | # define COMPILER_ID "SDCC" 171 | /* SDCC = VRP */ 172 | # define COMPILER_VERSION_MAJOR DEC(SDCC/100) 173 | # define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) 174 | # define COMPILER_VERSION_PATCH DEC(SDCC % 10) 175 | 176 | #elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) 177 | # define COMPILER_ID "MIPSpro" 178 | # if defined(_SGI_COMPILER_VERSION) 179 | /* _SGI_COMPILER_VERSION = VRP */ 180 | # define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) 181 | # define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) 182 | # define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) 183 | # else 184 | /* _COMPILER_VERSION = VRP */ 185 | # define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) 186 | # define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) 187 | # define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) 188 | # endif 189 | 190 | /* This compiler is either not known or is too old to define an 191 | identification macro. Try to identify the platform and guess that 192 | it is the native compiler. */ 193 | #elif defined(__sgi) 194 | # define COMPILER_ID "MIPSpro" 195 | 196 | #elif defined(__hpux) || defined(__hpua) 197 | # define COMPILER_ID "HP" 198 | 199 | #else /* unknown compiler */ 200 | # define COMPILER_ID "" 201 | 202 | #endif 203 | 204 | /* Construct the string literal in pieces to prevent the source from 205 | getting matched. Store it in a pointer rather than an array 206 | because some compilers will just produce instructions to fill the 207 | array rather than assigning a pointer to a static array. */ 208 | char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; 209 | 210 | /* Identify known platforms by name. */ 211 | #if defined(__linux) || defined(__linux__) || defined(linux) 212 | # define PLATFORM_ID "Linux" 213 | 214 | #elif defined(__CYGWIN__) 215 | # define PLATFORM_ID "Cygwin" 216 | 217 | #elif defined(__MINGW32__) 218 | # define PLATFORM_ID "MinGW" 219 | 220 | #elif defined(__APPLE__) 221 | # define PLATFORM_ID "Darwin" 222 | 223 | #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) 224 | # define PLATFORM_ID "Windows" 225 | 226 | #elif defined(__FreeBSD__) || defined(__FreeBSD) 227 | # define PLATFORM_ID "FreeBSD" 228 | 229 | #elif defined(__NetBSD__) || defined(__NetBSD) 230 | # define PLATFORM_ID "NetBSD" 231 | 232 | #elif defined(__OpenBSD__) || defined(__OPENBSD) 233 | # define PLATFORM_ID "OpenBSD" 234 | 235 | #elif defined(__sun) || defined(sun) 236 | # define PLATFORM_ID "SunOS" 237 | 238 | #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) 239 | # define PLATFORM_ID "AIX" 240 | 241 | #elif defined(__sgi) || defined(__sgi__) || defined(_SGI) 242 | # define PLATFORM_ID "IRIX" 243 | 244 | #elif defined(__hpux) || defined(__hpux__) 245 | # define PLATFORM_ID "HP-UX" 246 | 247 | #elif defined(__HAIKU__) 248 | # define PLATFORM_ID "Haiku" 249 | 250 | #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) 251 | # define PLATFORM_ID "BeOS" 252 | 253 | #elif defined(__QNX__) || defined(__QNXNTO__) 254 | # define PLATFORM_ID "QNX" 255 | 256 | #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) 257 | # define PLATFORM_ID "Tru64" 258 | 259 | #elif defined(__riscos) || defined(__riscos__) 260 | # define PLATFORM_ID "RISCos" 261 | 262 | #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) 263 | # define PLATFORM_ID "SINIX" 264 | 265 | #elif defined(__UNIX_SV__) 266 | # define PLATFORM_ID "UNIX_SV" 267 | 268 | #elif defined(__bsdos__) 269 | # define PLATFORM_ID "BSDOS" 270 | 271 | #elif defined(_MPRAS) || defined(MPRAS) 272 | # define PLATFORM_ID "MP-RAS" 273 | 274 | #elif defined(__osf) || defined(__osf__) 275 | # define PLATFORM_ID "OSF1" 276 | 277 | #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) 278 | # define PLATFORM_ID "SCO_SV" 279 | 280 | #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) 281 | # define PLATFORM_ID "ULTRIX" 282 | 283 | #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) 284 | # define PLATFORM_ID "Xenix" 285 | 286 | #else /* unknown platform */ 287 | # define PLATFORM_ID "" 288 | 289 | #endif 290 | 291 | /* For windows compilers MSVC and Intel we can determine 292 | the architecture of the compiler being used. This is because 293 | the compilers do not have flags that can change the architecture, 294 | but rather depend on which compiler is being used 295 | */ 296 | #if defined(_WIN32) && defined(_MSC_VER) 297 | # if defined(_M_IA64) 298 | # define ARCHITECTURE_ID "IA64" 299 | 300 | # elif defined(_M_X64) || defined(_M_AMD64) 301 | # define ARCHITECTURE_ID "x64" 302 | 303 | # elif defined(_M_IX86) 304 | # define ARCHITECTURE_ID "X86" 305 | 306 | # elif defined(_M_ARM) 307 | # define ARCHITECTURE_ID "ARM" 308 | 309 | # elif defined(_M_MIPS) 310 | # define ARCHITECTURE_ID "MIPS" 311 | 312 | # elif defined(_M_SH) 313 | # define ARCHITECTURE_ID "SHx" 314 | 315 | # else /* unknown architecture */ 316 | # define ARCHITECTURE_ID "" 317 | # endif 318 | 319 | #else 320 | # define ARCHITECTURE_ID "" 321 | #endif 322 | 323 | /* Convert integer to decimal digit literals. */ 324 | #define DEC(n) \ 325 | ('0' + (((n) / 10000000)%10)), \ 326 | ('0' + (((n) / 1000000)%10)), \ 327 | ('0' + (((n) / 100000)%10)), \ 328 | ('0' + (((n) / 10000)%10)), \ 329 | ('0' + (((n) / 1000)%10)), \ 330 | ('0' + (((n) / 100)%10)), \ 331 | ('0' + (((n) / 10)%10)), \ 332 | ('0' + ((n) % 10)) 333 | 334 | /* Convert integer to hex digit literals. */ 335 | #define HEX(n) \ 336 | ('0' + ((n)>>28 & 0xF)), \ 337 | ('0' + ((n)>>24 & 0xF)), \ 338 | ('0' + ((n)>>20 & 0xF)), \ 339 | ('0' + ((n)>>16 & 0xF)), \ 340 | ('0' + ((n)>>12 & 0xF)), \ 341 | ('0' + ((n)>>8 & 0xF)), \ 342 | ('0' + ((n)>>4 & 0xF)), \ 343 | ('0' + ((n) & 0xF)) 344 | 345 | /* Construct a string literal encoding the version number components. */ 346 | #ifdef COMPILER_VERSION_MAJOR 347 | char const info_version[] = { 348 | 'I', 'N', 'F', 'O', ':', 349 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', 350 | COMPILER_VERSION_MAJOR, 351 | # ifdef COMPILER_VERSION_MINOR 352 | '.', COMPILER_VERSION_MINOR, 353 | # ifdef COMPILER_VERSION_PATCH 354 | '.', COMPILER_VERSION_PATCH, 355 | # ifdef COMPILER_VERSION_TWEAK 356 | '.', COMPILER_VERSION_TWEAK, 357 | # endif 358 | # endif 359 | # endif 360 | ']','\0'}; 361 | #endif 362 | 363 | /* Construct the string literal in pieces to prevent the source from 364 | getting matched. Store it in a pointer rather than an array 365 | because some compilers will just produce instructions to fill the 366 | array rather than assigning a pointer to a static array. */ 367 | char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; 368 | char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; 369 | 370 | 371 | 372 | /*--------------------------------------------------------------------------*/ 373 | 374 | #ifdef ID_VOID_MAIN 375 | void main() {} 376 | #else 377 | int main(int argc, char* argv[]) 378 | { 379 | int require = 0; 380 | require += info_compiler[argc]; 381 | require += info_platform[argc]; 382 | require += info_arch[argc]; 383 | #ifdef COMPILER_VERSION_MAJOR 384 | require += info_version[argc]; 385 | #endif 386 | (void)argv; 387 | return require; 388 | } 389 | #endif 390 | -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CompilerIdC/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/2.8.12.2/CompilerIdC/a.out -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp: -------------------------------------------------------------------------------- 1 | /* This source file must have a .cpp extension so that all C++ compilers 2 | recognize the extension without flags. Borland does not know .cxx for 3 | example. */ 4 | #ifndef __cplusplus 5 | # error "A C compiler has been selected for C++." 6 | #endif 7 | 8 | /* Version number components: V=Version, R=Revision, P=Patch 9 | Version date components: YYYY=Year, MM=Month, DD=Day */ 10 | 11 | #if defined(__COMO__) 12 | # define COMPILER_ID "Comeau" 13 | /* __COMO_VERSION__ = VRR */ 14 | # define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) 15 | # define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) 16 | 17 | #elif defined(__INTEL_COMPILER) || defined(__ICC) 18 | # define COMPILER_ID "Intel" 19 | /* __INTEL_COMPILER = VRP */ 20 | # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) 21 | # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) 22 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) 23 | # if defined(__INTEL_COMPILER_BUILD_DATE) 24 | /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ 25 | # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) 26 | # endif 27 | 28 | #elif defined(__PATHCC__) 29 | # define COMPILER_ID "PathScale" 30 | # define COMPILER_VERSION_MAJOR DEC(__PATHCC__) 31 | # define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) 32 | # if defined(__PATHCC_PATCHLEVEL__) 33 | # define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) 34 | # endif 35 | 36 | #elif defined(__clang__) 37 | # define COMPILER_ID "Clang" 38 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 39 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 40 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 41 | 42 | #elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) 43 | # define COMPILER_ID "Embarcadero" 44 | # define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) 45 | # define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) 46 | # define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) 47 | 48 | #elif defined(__BORLANDC__) 49 | # define COMPILER_ID "Borland" 50 | /* __BORLANDC__ = 0xVRR */ 51 | # define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) 52 | # define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) 53 | 54 | #elif defined(__WATCOMC__) 55 | # define COMPILER_ID "Watcom" 56 | /* __WATCOMC__ = VVRR */ 57 | # define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) 58 | # define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100) 59 | 60 | #elif defined(__SUNPRO_CC) 61 | # define COMPILER_ID "SunPro" 62 | # if __SUNPRO_CC >= 0x5100 63 | /* __SUNPRO_CC = 0xVRRP */ 64 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) 65 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) 66 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) 67 | # else 68 | /* __SUNPRO_CC = 0xVRP */ 69 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) 70 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) 71 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) 72 | # endif 73 | 74 | #elif defined(__HP_aCC) 75 | # define COMPILER_ID "HP" 76 | /* __HP_aCC = VVRRPP */ 77 | # define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) 78 | # define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) 79 | # define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) 80 | 81 | #elif defined(__DECCXX) 82 | # define COMPILER_ID "Compaq" 83 | /* __DECCXX_VER = VVRRTPPPP */ 84 | # define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) 85 | # define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) 86 | # define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) 87 | 88 | #elif defined(__IBMCPP__) 89 | # if defined(__COMPILER_VER__) 90 | # define COMPILER_ID "zOS" 91 | # else 92 | # if __IBMCPP__ >= 800 93 | # define COMPILER_ID "XL" 94 | # else 95 | # define COMPILER_ID "VisualAge" 96 | # endif 97 | /* __IBMCPP__ = VRP */ 98 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 99 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 100 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 101 | # endif 102 | 103 | #elif defined(__PGI) 104 | # define COMPILER_ID "PGI" 105 | # define COMPILER_VERSION_MAJOR DEC(__PGIC__) 106 | # define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) 107 | # if defined(__PGIC_PATCHLEVEL__) 108 | # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) 109 | # endif 110 | 111 | #elif defined(_CRAYC) 112 | # define COMPILER_ID "Cray" 113 | # define COMPILER_VERSION_MAJOR DEC(_RELEASE) 114 | # define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) 115 | 116 | #elif defined(__TI_COMPILER_VERSION__) 117 | # define COMPILER_ID "TI" 118 | /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ 119 | # define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) 120 | # define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) 121 | # define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) 122 | 123 | #elif defined(__SCO_VERSION__) 124 | # define COMPILER_ID "SCO" 125 | 126 | #elif defined(__GNUC__) 127 | # define COMPILER_ID "GNU" 128 | # define COMPILER_VERSION_MAJOR DEC(__GNUC__) 129 | # define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) 130 | # if defined(__GNUC_PATCHLEVEL__) 131 | # define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) 132 | # endif 133 | 134 | #elif defined(_MSC_VER) 135 | # define COMPILER_ID "MSVC" 136 | /* _MSC_VER = VVRR */ 137 | # define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) 138 | # define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) 139 | # if defined(_MSC_FULL_VER) 140 | # if _MSC_VER >= 1400 141 | /* _MSC_FULL_VER = VVRRPPPPP */ 142 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) 143 | # else 144 | /* _MSC_FULL_VER = VVRRPPPP */ 145 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) 146 | # endif 147 | # endif 148 | # if defined(_MSC_BUILD) 149 | # define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) 150 | # endif 151 | 152 | /* Analog VisualDSP++ >= 4.5.6 */ 153 | #elif defined(__VISUALDSPVERSION__) 154 | # define COMPILER_ID "ADSP" 155 | /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ 156 | # define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) 157 | # define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) 158 | # define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) 159 | 160 | /* Analog VisualDSP++ < 4.5.6 */ 161 | #elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) 162 | # define COMPILER_ID "ADSP" 163 | 164 | /* IAR Systems compiler for embedded systems. 165 | http://www.iar.com */ 166 | #elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) 167 | # define COMPILER_ID "IAR" 168 | 169 | #elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) 170 | # define COMPILER_ID "MIPSpro" 171 | # if defined(_SGI_COMPILER_VERSION) 172 | /* _SGI_COMPILER_VERSION = VRP */ 173 | # define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) 174 | # define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) 175 | # define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) 176 | # else 177 | /* _COMPILER_VERSION = VRP */ 178 | # define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) 179 | # define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) 180 | # define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) 181 | # endif 182 | 183 | /* This compiler is either not known or is too old to define an 184 | identification macro. Try to identify the platform and guess that 185 | it is the native compiler. */ 186 | #elif defined(__sgi) 187 | # define COMPILER_ID "MIPSpro" 188 | 189 | #elif defined(__hpux) || defined(__hpua) 190 | # define COMPILER_ID "HP" 191 | 192 | #else /* unknown compiler */ 193 | # define COMPILER_ID "" 194 | 195 | #endif 196 | 197 | /* Construct the string literal in pieces to prevent the source from 198 | getting matched. Store it in a pointer rather than an array 199 | because some compilers will just produce instructions to fill the 200 | array rather than assigning a pointer to a static array. */ 201 | char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; 202 | 203 | /* Identify known platforms by name. */ 204 | #if defined(__linux) || defined(__linux__) || defined(linux) 205 | # define PLATFORM_ID "Linux" 206 | 207 | #elif defined(__CYGWIN__) 208 | # define PLATFORM_ID "Cygwin" 209 | 210 | #elif defined(__MINGW32__) 211 | # define PLATFORM_ID "MinGW" 212 | 213 | #elif defined(__APPLE__) 214 | # define PLATFORM_ID "Darwin" 215 | 216 | #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) 217 | # define PLATFORM_ID "Windows" 218 | 219 | #elif defined(__FreeBSD__) || defined(__FreeBSD) 220 | # define PLATFORM_ID "FreeBSD" 221 | 222 | #elif defined(__NetBSD__) || defined(__NetBSD) 223 | # define PLATFORM_ID "NetBSD" 224 | 225 | #elif defined(__OpenBSD__) || defined(__OPENBSD) 226 | # define PLATFORM_ID "OpenBSD" 227 | 228 | #elif defined(__sun) || defined(sun) 229 | # define PLATFORM_ID "SunOS" 230 | 231 | #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) 232 | # define PLATFORM_ID "AIX" 233 | 234 | #elif defined(__sgi) || defined(__sgi__) || defined(_SGI) 235 | # define PLATFORM_ID "IRIX" 236 | 237 | #elif defined(__hpux) || defined(__hpux__) 238 | # define PLATFORM_ID "HP-UX" 239 | 240 | #elif defined(__HAIKU__) 241 | # define PLATFORM_ID "Haiku" 242 | 243 | #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) 244 | # define PLATFORM_ID "BeOS" 245 | 246 | #elif defined(__QNX__) || defined(__QNXNTO__) 247 | # define PLATFORM_ID "QNX" 248 | 249 | #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) 250 | # define PLATFORM_ID "Tru64" 251 | 252 | #elif defined(__riscos) || defined(__riscos__) 253 | # define PLATFORM_ID "RISCos" 254 | 255 | #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) 256 | # define PLATFORM_ID "SINIX" 257 | 258 | #elif defined(__UNIX_SV__) 259 | # define PLATFORM_ID "UNIX_SV" 260 | 261 | #elif defined(__bsdos__) 262 | # define PLATFORM_ID "BSDOS" 263 | 264 | #elif defined(_MPRAS) || defined(MPRAS) 265 | # define PLATFORM_ID "MP-RAS" 266 | 267 | #elif defined(__osf) || defined(__osf__) 268 | # define PLATFORM_ID "OSF1" 269 | 270 | #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) 271 | # define PLATFORM_ID "SCO_SV" 272 | 273 | #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) 274 | # define PLATFORM_ID "ULTRIX" 275 | 276 | #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) 277 | # define PLATFORM_ID "Xenix" 278 | 279 | #else /* unknown platform */ 280 | # define PLATFORM_ID "" 281 | 282 | #endif 283 | 284 | /* For windows compilers MSVC and Intel we can determine 285 | the architecture of the compiler being used. This is because 286 | the compilers do not have flags that can change the architecture, 287 | but rather depend on which compiler is being used 288 | */ 289 | #if defined(_WIN32) && defined(_MSC_VER) 290 | # if defined(_M_IA64) 291 | # define ARCHITECTURE_ID "IA64" 292 | 293 | # elif defined(_M_X64) || defined(_M_AMD64) 294 | # define ARCHITECTURE_ID "x64" 295 | 296 | # elif defined(_M_IX86) 297 | # define ARCHITECTURE_ID "X86" 298 | 299 | # elif defined(_M_ARM) 300 | # define ARCHITECTURE_ID "ARM" 301 | 302 | # elif defined(_M_MIPS) 303 | # define ARCHITECTURE_ID "MIPS" 304 | 305 | # elif defined(_M_SH) 306 | # define ARCHITECTURE_ID "SHx" 307 | 308 | # else /* unknown architecture */ 309 | # define ARCHITECTURE_ID "" 310 | # endif 311 | 312 | #else 313 | # define ARCHITECTURE_ID "" 314 | #endif 315 | 316 | /* Convert integer to decimal digit literals. */ 317 | #define DEC(n) \ 318 | ('0' + (((n) / 10000000)%10)), \ 319 | ('0' + (((n) / 1000000)%10)), \ 320 | ('0' + (((n) / 100000)%10)), \ 321 | ('0' + (((n) / 10000)%10)), \ 322 | ('0' + (((n) / 1000)%10)), \ 323 | ('0' + (((n) / 100)%10)), \ 324 | ('0' + (((n) / 10)%10)), \ 325 | ('0' + ((n) % 10)) 326 | 327 | /* Convert integer to hex digit literals. */ 328 | #define HEX(n) \ 329 | ('0' + ((n)>>28 & 0xF)), \ 330 | ('0' + ((n)>>24 & 0xF)), \ 331 | ('0' + ((n)>>20 & 0xF)), \ 332 | ('0' + ((n)>>16 & 0xF)), \ 333 | ('0' + ((n)>>12 & 0xF)), \ 334 | ('0' + ((n)>>8 & 0xF)), \ 335 | ('0' + ((n)>>4 & 0xF)), \ 336 | ('0' + ((n) & 0xF)) 337 | 338 | /* Construct a string literal encoding the version number components. */ 339 | #ifdef COMPILER_VERSION_MAJOR 340 | char const info_version[] = { 341 | 'I', 'N', 'F', 'O', ':', 342 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', 343 | COMPILER_VERSION_MAJOR, 344 | # ifdef COMPILER_VERSION_MINOR 345 | '.', COMPILER_VERSION_MINOR, 346 | # ifdef COMPILER_VERSION_PATCH 347 | '.', COMPILER_VERSION_PATCH, 348 | # ifdef COMPILER_VERSION_TWEAK 349 | '.', COMPILER_VERSION_TWEAK, 350 | # endif 351 | # endif 352 | # endif 353 | ']','\0'}; 354 | #endif 355 | 356 | /* Construct the string literal in pieces to prevent the source from 357 | getting matched. Store it in a pointer rather than an array 358 | because some compilers will just produce instructions to fill the 359 | array rather than assigning a pointer to a static array. */ 360 | char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; 361 | char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; 362 | 363 | 364 | 365 | /*--------------------------------------------------------------------------*/ 366 | 367 | int main(int argc, char* argv[]) 368 | { 369 | int require = 0; 370 | require += info_compiler[argc]; 371 | require += info_platform[argc]; 372 | #ifdef COMPILER_VERSION_MAJOR 373 | require += info_version[argc]; 374 | #endif 375 | (void)argv; 376 | return require; 377 | } 378 | -------------------------------------------------------------------------------- /support/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out -------------------------------------------------------------------------------- /support/CMakeFiles/3.3.1/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "AppleClang") 4 | set(CMAKE_C_COMPILER_VERSION "6.1.0.6020053") 5 | set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") 6 | set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") 7 | set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") 8 | set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") 9 | 10 | set(CMAKE_C_PLATFORM_ID "Darwin") 11 | set(CMAKE_C_SIMULATE_ID "") 12 | set(CMAKE_C_SIMULATE_VERSION "") 13 | 14 | set(CMAKE_AR "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar") 15 | set(CMAKE_RANLIB "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib") 16 | set(CMAKE_LINKER "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld") 17 | set(CMAKE_COMPILER_IS_GNUCC ) 18 | set(CMAKE_C_COMPILER_LOADED 1) 19 | set(CMAKE_C_COMPILER_WORKS TRUE) 20 | set(CMAKE_C_ABI_COMPILED TRUE) 21 | set(CMAKE_COMPILER_IS_MINGW ) 22 | set(CMAKE_COMPILER_IS_CYGWIN ) 23 | if(CMAKE_COMPILER_IS_CYGWIN) 24 | set(CYGWIN 1) 25 | set(UNIX 1) 26 | endif() 27 | 28 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 29 | 30 | if(CMAKE_COMPILER_IS_MINGW) 31 | set(MINGW 1) 32 | endif() 33 | set(CMAKE_C_COMPILER_ID_RUN 1) 34 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) 35 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 36 | set(CMAKE_C_LINKER_PREFERENCE 10) 37 | 38 | # Save compiler ABI information. 39 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 40 | set(CMAKE_C_COMPILER_ABI "") 41 | set(CMAKE_C_LIBRARY_ARCHITECTURE "") 42 | 43 | if(CMAKE_C_SIZEOF_DATA_PTR) 44 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 45 | endif() 46 | 47 | if(CMAKE_C_COMPILER_ABI) 48 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 49 | endif() 50 | 51 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 52 | set(CMAKE_LIBRARY_ARCHITECTURE "") 53 | endif() 54 | 55 | 56 | 57 | 58 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.1.0/lib/darwin/libclang_rt.osx.a") 59 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib;/usr/local/lib") 60 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "/Library/Frameworks;/System/Library/Frameworks") 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /support/CMakeFiles/3.3.1/CMakeCXXCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_CXX_COMPILER "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++") 2 | set(CMAKE_CXX_COMPILER_ARG1 "") 3 | set(CMAKE_CXX_COMPILER_ID "AppleClang") 4 | set(CMAKE_CXX_COMPILER_VERSION "6.1.0.6020053") 5 | set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") 6 | set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") 7 | set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") 8 | set(CMAKE_CXX14_COMPILE_FEATURES "cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") 9 | 10 | set(CMAKE_CXX_PLATFORM_ID "Darwin") 11 | set(CMAKE_CXX_SIMULATE_ID "") 12 | set(CMAKE_CXX_SIMULATE_VERSION "") 13 | 14 | set(CMAKE_AR "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar") 15 | set(CMAKE_RANLIB "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib") 16 | set(CMAKE_LINKER "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld") 17 | set(CMAKE_COMPILER_IS_GNUCXX ) 18 | set(CMAKE_CXX_COMPILER_LOADED 1) 19 | set(CMAKE_CXX_COMPILER_WORKS TRUE) 20 | set(CMAKE_CXX_ABI_COMPILED TRUE) 21 | set(CMAKE_COMPILER_IS_MINGW ) 22 | set(CMAKE_COMPILER_IS_CYGWIN ) 23 | if(CMAKE_COMPILER_IS_CYGWIN) 24 | set(CYGWIN 1) 25 | set(UNIX 1) 26 | endif() 27 | 28 | set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") 29 | 30 | if(CMAKE_COMPILER_IS_MINGW) 31 | set(MINGW 1) 32 | endif() 33 | set(CMAKE_CXX_COMPILER_ID_RUN 1) 34 | set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) 35 | set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) 36 | set(CMAKE_CXX_LINKER_PREFERENCE 30) 37 | set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) 38 | 39 | # Save compiler ABI information. 40 | set(CMAKE_CXX_SIZEOF_DATA_PTR "8") 41 | set(CMAKE_CXX_COMPILER_ABI "") 42 | set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") 43 | 44 | if(CMAKE_CXX_SIZEOF_DATA_PTR) 45 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") 46 | endif() 47 | 48 | if(CMAKE_CXX_COMPILER_ABI) 49 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") 50 | endif() 51 | 52 | if(CMAKE_CXX_LIBRARY_ARCHITECTURE) 53 | set(CMAKE_LIBRARY_ARCHITECTURE "") 54 | endif() 55 | 56 | 57 | 58 | 59 | set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.1.0/lib/darwin/libclang_rt.osx.a") 60 | set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib;/usr/local/lib") 61 | set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "/Library/Frameworks;/System/Library/Frameworks") 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /support/CMakeFiles/3.3.1/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/3.3.1/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /support/CMakeFiles/3.3.1/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/3.3.1/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /support/CMakeFiles/3.3.1/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Darwin-14.4.0") 2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin") 3 | set(CMAKE_HOST_SYSTEM_VERSION "14.4.0") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Darwin-14.4.0") 9 | set(CMAKE_SYSTEM_NAME "Darwin") 10 | set(CMAKE_SYSTEM_VERSION "14.4.0") 11 | set(CMAKE_SYSTEM_PROCESSOR "x86_64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /support/CMakeFiles/3.3.1/CompilerIdC/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/3.3.1/CompilerIdC/a.out -------------------------------------------------------------------------------- /support/CMakeFiles/3.3.1/CompilerIdCXX/CMakeCXXCompilerId.cpp: -------------------------------------------------------------------------------- 1 | /* This source file must have a .cpp extension so that all C++ compilers 2 | recognize the extension without flags. Borland does not know .cxx for 3 | example. */ 4 | #ifndef __cplusplus 5 | # error "A C compiler has been selected for C++." 6 | #endif 7 | 8 | 9 | /* Version number components: V=Version, R=Revision, P=Patch 10 | Version date components: YYYY=Year, MM=Month, DD=Day */ 11 | 12 | #if defined(__COMO__) 13 | # define COMPILER_ID "Comeau" 14 | /* __COMO_VERSION__ = VRR */ 15 | # define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) 16 | # define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) 17 | 18 | #elif defined(__INTEL_COMPILER) || defined(__ICC) 19 | # define COMPILER_ID "Intel" 20 | # if defined(_MSC_VER) 21 | # define SIMULATE_ID "MSVC" 22 | # endif 23 | /* __INTEL_COMPILER = VRP */ 24 | # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) 25 | # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) 26 | # if defined(__INTEL_COMPILER_UPDATE) 27 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) 28 | # else 29 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) 30 | # endif 31 | # if defined(__INTEL_COMPILER_BUILD_DATE) 32 | /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ 33 | # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) 34 | # endif 35 | # if defined(_MSC_VER) 36 | /* _MSC_VER = VVRR */ 37 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 38 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 39 | # endif 40 | 41 | #elif defined(__PATHCC__) 42 | # define COMPILER_ID "PathScale" 43 | # define COMPILER_VERSION_MAJOR DEC(__PATHCC__) 44 | # define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) 45 | # if defined(__PATHCC_PATCHLEVEL__) 46 | # define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) 47 | # endif 48 | 49 | #elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) 50 | # define COMPILER_ID "Embarcadero" 51 | # define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) 52 | # define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) 53 | # define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) 54 | 55 | #elif defined(__BORLANDC__) 56 | # define COMPILER_ID "Borland" 57 | /* __BORLANDC__ = 0xVRR */ 58 | # define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) 59 | # define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) 60 | 61 | #elif defined(__WATCOMC__) && __WATCOMC__ < 1200 62 | # define COMPILER_ID "Watcom" 63 | /* __WATCOMC__ = VVRR */ 64 | # define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) 65 | # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) 66 | # if (__WATCOMC__ % 10) > 0 67 | # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) 68 | # endif 69 | 70 | #elif defined(__WATCOMC__) 71 | # define COMPILER_ID "OpenWatcom" 72 | /* __WATCOMC__ = VVRP + 1100 */ 73 | # define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) 74 | # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) 75 | # if (__WATCOMC__ % 10) > 0 76 | # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) 77 | # endif 78 | 79 | #elif defined(__SUNPRO_CC) 80 | # define COMPILER_ID "SunPro" 81 | # if __SUNPRO_CC >= 0x5100 82 | /* __SUNPRO_CC = 0xVRRP */ 83 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) 84 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) 85 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) 86 | # else 87 | /* __SUNPRO_CC = 0xVRP */ 88 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) 89 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) 90 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) 91 | # endif 92 | 93 | #elif defined(__HP_aCC) 94 | # define COMPILER_ID "HP" 95 | /* __HP_aCC = VVRRPP */ 96 | # define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) 97 | # define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) 98 | # define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) 99 | 100 | #elif defined(__DECCXX) 101 | # define COMPILER_ID "Compaq" 102 | /* __DECCXX_VER = VVRRTPPPP */ 103 | # define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) 104 | # define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) 105 | # define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) 106 | 107 | #elif defined(__IBMCPP__) && defined(__COMPILER_VER__) 108 | # define COMPILER_ID "zOS" 109 | /* __IBMCPP__ = VRP */ 110 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 111 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 112 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 113 | 114 | #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 115 | # define COMPILER_ID "XL" 116 | /* __IBMCPP__ = VRP */ 117 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 118 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 119 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 120 | 121 | #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 122 | # define COMPILER_ID "VisualAge" 123 | /* __IBMCPP__ = VRP */ 124 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 125 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 126 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 127 | 128 | #elif defined(__PGI) 129 | # define COMPILER_ID "PGI" 130 | # define COMPILER_VERSION_MAJOR DEC(__PGIC__) 131 | # define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) 132 | # if defined(__PGIC_PATCHLEVEL__) 133 | # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) 134 | # endif 135 | 136 | #elif defined(_CRAYC) 137 | # define COMPILER_ID "Cray" 138 | # define COMPILER_VERSION_MAJOR DEC(_RELEASE) 139 | # define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) 140 | 141 | #elif defined(__TI_COMPILER_VERSION__) 142 | # define COMPILER_ID "TI" 143 | /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ 144 | # define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) 145 | # define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) 146 | # define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) 147 | 148 | #elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) 149 | # define COMPILER_ID "Fujitsu" 150 | 151 | #elif defined(__SCO_VERSION__) 152 | # define COMPILER_ID "SCO" 153 | 154 | #elif defined(__clang__) && defined(__apple_build_version__) 155 | # define COMPILER_ID "AppleClang" 156 | # if defined(_MSC_VER) 157 | # define SIMULATE_ID "MSVC" 158 | # endif 159 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 160 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 161 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 162 | # if defined(_MSC_VER) 163 | /* _MSC_VER = VVRR */ 164 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 165 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 166 | # endif 167 | # define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) 168 | 169 | #elif defined(__clang__) 170 | # define COMPILER_ID "Clang" 171 | # if defined(_MSC_VER) 172 | # define SIMULATE_ID "MSVC" 173 | # endif 174 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 175 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 176 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 177 | # if defined(_MSC_VER) 178 | /* _MSC_VER = VVRR */ 179 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 180 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 181 | # endif 182 | 183 | #elif defined(__GNUC__) 184 | # define COMPILER_ID "GNU" 185 | # define COMPILER_VERSION_MAJOR DEC(__GNUC__) 186 | # define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) 187 | # if defined(__GNUC_PATCHLEVEL__) 188 | # define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) 189 | # endif 190 | 191 | #elif defined(_MSC_VER) 192 | # define COMPILER_ID "MSVC" 193 | /* _MSC_VER = VVRR */ 194 | # define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) 195 | # define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) 196 | # if defined(_MSC_FULL_VER) 197 | # if _MSC_VER >= 1400 198 | /* _MSC_FULL_VER = VVRRPPPPP */ 199 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) 200 | # else 201 | /* _MSC_FULL_VER = VVRRPPPP */ 202 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) 203 | # endif 204 | # endif 205 | # if defined(_MSC_BUILD) 206 | # define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) 207 | # endif 208 | 209 | #elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) 210 | # define COMPILER_ID "ADSP" 211 | #if defined(__VISUALDSPVERSION__) 212 | /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ 213 | # define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) 214 | # define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) 215 | # define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) 216 | #endif 217 | 218 | #elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) 219 | # define COMPILER_ID "IAR" 220 | 221 | #elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) 222 | # define COMPILER_ID "MIPSpro" 223 | # if defined(_SGI_COMPILER_VERSION) 224 | /* _SGI_COMPILER_VERSION = VRP */ 225 | # define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) 226 | # define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) 227 | # define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) 228 | # else 229 | /* _COMPILER_VERSION = VRP */ 230 | # define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) 231 | # define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) 232 | # define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) 233 | # endif 234 | 235 | 236 | /* These compilers are either not known or too old to define an 237 | identification macro. Try to identify the platform and guess that 238 | it is the native compiler. */ 239 | #elif defined(__sgi) 240 | # define COMPILER_ID "MIPSpro" 241 | 242 | #elif defined(__hpux) || defined(__hpua) 243 | # define COMPILER_ID "HP" 244 | 245 | #else /* unknown compiler */ 246 | # define COMPILER_ID "" 247 | #endif 248 | 249 | /* Construct the string literal in pieces to prevent the source from 250 | getting matched. Store it in a pointer rather than an array 251 | because some compilers will just produce instructions to fill the 252 | array rather than assigning a pointer to a static array. */ 253 | char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; 254 | #ifdef SIMULATE_ID 255 | char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; 256 | #endif 257 | 258 | #ifdef __QNXNTO__ 259 | char const* qnxnto = "INFO" ":" "qnxnto[]"; 260 | #endif 261 | 262 | #define STRINGIFY_HELPER(X) #X 263 | #define STRINGIFY(X) STRINGIFY_HELPER(X) 264 | 265 | /* Identify known platforms by name. */ 266 | #if defined(__linux) || defined(__linux__) || defined(linux) 267 | # define PLATFORM_ID "Linux" 268 | 269 | #elif defined(__CYGWIN__) 270 | # define PLATFORM_ID "Cygwin" 271 | 272 | #elif defined(__MINGW32__) 273 | # define PLATFORM_ID "MinGW" 274 | 275 | #elif defined(__APPLE__) 276 | # define PLATFORM_ID "Darwin" 277 | 278 | #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) 279 | # define PLATFORM_ID "Windows" 280 | 281 | #elif defined(__FreeBSD__) || defined(__FreeBSD) 282 | # define PLATFORM_ID "FreeBSD" 283 | 284 | #elif defined(__NetBSD__) || defined(__NetBSD) 285 | # define PLATFORM_ID "NetBSD" 286 | 287 | #elif defined(__OpenBSD__) || defined(__OPENBSD) 288 | # define PLATFORM_ID "OpenBSD" 289 | 290 | #elif defined(__sun) || defined(sun) 291 | # define PLATFORM_ID "SunOS" 292 | 293 | #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) 294 | # define PLATFORM_ID "AIX" 295 | 296 | #elif defined(__sgi) || defined(__sgi__) || defined(_SGI) 297 | # define PLATFORM_ID "IRIX" 298 | 299 | #elif defined(__hpux) || defined(__hpux__) 300 | # define PLATFORM_ID "HP-UX" 301 | 302 | #elif defined(__HAIKU__) 303 | # define PLATFORM_ID "Haiku" 304 | 305 | #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) 306 | # define PLATFORM_ID "BeOS" 307 | 308 | #elif defined(__QNX__) || defined(__QNXNTO__) 309 | # define PLATFORM_ID "QNX" 310 | 311 | #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) 312 | # define PLATFORM_ID "Tru64" 313 | 314 | #elif defined(__riscos) || defined(__riscos__) 315 | # define PLATFORM_ID "RISCos" 316 | 317 | #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) 318 | # define PLATFORM_ID "SINIX" 319 | 320 | #elif defined(__UNIX_SV__) 321 | # define PLATFORM_ID "UNIX_SV" 322 | 323 | #elif defined(__bsdos__) 324 | # define PLATFORM_ID "BSDOS" 325 | 326 | #elif defined(_MPRAS) || defined(MPRAS) 327 | # define PLATFORM_ID "MP-RAS" 328 | 329 | #elif defined(__osf) || defined(__osf__) 330 | # define PLATFORM_ID "OSF1" 331 | 332 | #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) 333 | # define PLATFORM_ID "SCO_SV" 334 | 335 | #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) 336 | # define PLATFORM_ID "ULTRIX" 337 | 338 | #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) 339 | # define PLATFORM_ID "Xenix" 340 | 341 | #elif defined(__WATCOMC__) 342 | # if defined(__LINUX__) 343 | # define PLATFORM_ID "Linux" 344 | 345 | # elif defined(__DOS__) 346 | # define PLATFORM_ID "DOS" 347 | 348 | # elif defined(__OS2__) 349 | # define PLATFORM_ID "OS2" 350 | 351 | # elif defined(__WINDOWS__) 352 | # define PLATFORM_ID "Windows3x" 353 | 354 | # else /* unknown platform */ 355 | # define PLATFORM_ID "" 356 | # endif 357 | 358 | #else /* unknown platform */ 359 | # define PLATFORM_ID "" 360 | 361 | #endif 362 | 363 | /* For windows compilers MSVC and Intel we can determine 364 | the architecture of the compiler being used. This is because 365 | the compilers do not have flags that can change the architecture, 366 | but rather depend on which compiler is being used 367 | */ 368 | #if defined(_WIN32) && defined(_MSC_VER) 369 | # if defined(_M_IA64) 370 | # define ARCHITECTURE_ID "IA64" 371 | 372 | # elif defined(_M_X64) || defined(_M_AMD64) 373 | # define ARCHITECTURE_ID "x64" 374 | 375 | # elif defined(_M_IX86) 376 | # define ARCHITECTURE_ID "X86" 377 | 378 | # elif defined(_M_ARM) 379 | # if _M_ARM == 4 380 | # define ARCHITECTURE_ID "ARMV4I" 381 | # elif _M_ARM == 5 382 | # define ARCHITECTURE_ID "ARMV5I" 383 | # else 384 | # define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) 385 | # endif 386 | 387 | # elif defined(_M_MIPS) 388 | # define ARCHITECTURE_ID "MIPS" 389 | 390 | # elif defined(_M_SH) 391 | # define ARCHITECTURE_ID "SHx" 392 | 393 | # else /* unknown architecture */ 394 | # define ARCHITECTURE_ID "" 395 | # endif 396 | 397 | #elif defined(__WATCOMC__) 398 | # if defined(_M_I86) 399 | # define ARCHITECTURE_ID "I86" 400 | 401 | # elif defined(_M_IX86) 402 | # define ARCHITECTURE_ID "X86" 403 | 404 | # else /* unknown architecture */ 405 | # define ARCHITECTURE_ID "" 406 | # endif 407 | 408 | #else 409 | # define ARCHITECTURE_ID "" 410 | #endif 411 | 412 | /* Convert integer to decimal digit literals. */ 413 | #define DEC(n) \ 414 | ('0' + (((n) / 10000000)%10)), \ 415 | ('0' + (((n) / 1000000)%10)), \ 416 | ('0' + (((n) / 100000)%10)), \ 417 | ('0' + (((n) / 10000)%10)), \ 418 | ('0' + (((n) / 1000)%10)), \ 419 | ('0' + (((n) / 100)%10)), \ 420 | ('0' + (((n) / 10)%10)), \ 421 | ('0' + ((n) % 10)) 422 | 423 | /* Convert integer to hex digit literals. */ 424 | #define HEX(n) \ 425 | ('0' + ((n)>>28 & 0xF)), \ 426 | ('0' + ((n)>>24 & 0xF)), \ 427 | ('0' + ((n)>>20 & 0xF)), \ 428 | ('0' + ((n)>>16 & 0xF)), \ 429 | ('0' + ((n)>>12 & 0xF)), \ 430 | ('0' + ((n)>>8 & 0xF)), \ 431 | ('0' + ((n)>>4 & 0xF)), \ 432 | ('0' + ((n) & 0xF)) 433 | 434 | /* Construct a string literal encoding the version number components. */ 435 | #ifdef COMPILER_VERSION_MAJOR 436 | char const info_version[] = { 437 | 'I', 'N', 'F', 'O', ':', 438 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', 439 | COMPILER_VERSION_MAJOR, 440 | # ifdef COMPILER_VERSION_MINOR 441 | '.', COMPILER_VERSION_MINOR, 442 | # ifdef COMPILER_VERSION_PATCH 443 | '.', COMPILER_VERSION_PATCH, 444 | # ifdef COMPILER_VERSION_TWEAK 445 | '.', COMPILER_VERSION_TWEAK, 446 | # endif 447 | # endif 448 | # endif 449 | ']','\0'}; 450 | #endif 451 | 452 | /* Construct a string literal encoding the version number components. */ 453 | #ifdef SIMULATE_VERSION_MAJOR 454 | char const info_simulate_version[] = { 455 | 'I', 'N', 'F', 'O', ':', 456 | 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', 457 | SIMULATE_VERSION_MAJOR, 458 | # ifdef SIMULATE_VERSION_MINOR 459 | '.', SIMULATE_VERSION_MINOR, 460 | # ifdef SIMULATE_VERSION_PATCH 461 | '.', SIMULATE_VERSION_PATCH, 462 | # ifdef SIMULATE_VERSION_TWEAK 463 | '.', SIMULATE_VERSION_TWEAK, 464 | # endif 465 | # endif 466 | # endif 467 | ']','\0'}; 468 | #endif 469 | 470 | /* Construct the string literal in pieces to prevent the source from 471 | getting matched. Store it in a pointer rather than an array 472 | because some compilers will just produce instructions to fill the 473 | array rather than assigning a pointer to a static array. */ 474 | char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; 475 | char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; 476 | 477 | 478 | 479 | 480 | /*--------------------------------------------------------------------------*/ 481 | 482 | int main(int argc, char* argv[]) 483 | { 484 | int require = 0; 485 | require += info_compiler[argc]; 486 | require += info_platform[argc]; 487 | #ifdef COMPILER_VERSION_MAJOR 488 | require += info_version[argc]; 489 | #endif 490 | #ifdef SIMULATE_ID 491 | require += info_simulate[argc]; 492 | #endif 493 | #ifdef SIMULATE_VERSION_MAJOR 494 | require += info_simulate_version[argc]; 495 | #endif 496 | (void)argv; 497 | return require; 498 | } 499 | -------------------------------------------------------------------------------- /support/CMakeFiles/3.3.1/CompilerIdCXX/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/3.3.1/CompilerIdCXX/a.out -------------------------------------------------------------------------------- /support/CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 2.8 3 | 4 | # Relative path conversion top directories. 5 | SET(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/chris/Lab/LogoDetection/support") 6 | SET(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/chris/Lab/LogoDetection/support") 7 | 8 | # Force unix paths in dependencies. 9 | SET(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | SET(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | SET(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | SET(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | SET(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /support/CMakeFiles/Makefile.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 2.8 3 | 4 | # The generator used is: 5 | SET(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") 6 | 7 | # The top level Makefile was generated from the following files: 8 | SET(CMAKE_MAKEFILE_DEPENDS 9 | "CMakeCache.txt" 10 | "CMakeFiles/2.8.12.2/CMakeCCompiler.cmake" 11 | "CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake" 12 | "CMakeFiles/2.8.12.2/CMakeSystem.cmake" 13 | "CMakeLists.txt" 14 | "/usr/local/share/OpenCV/OpenCVConfig-version.cmake" 15 | "/usr/local/share/OpenCV/OpenCVConfig.cmake" 16 | "/usr/local/share/OpenCV/OpenCVModules-release.cmake" 17 | "/usr/local/share/OpenCV/OpenCVModules.cmake" 18 | "/usr/share/cmake-2.8/Modules/CMakeCInformation.cmake" 19 | "/usr/share/cmake-2.8/Modules/CMakeCXXInformation.cmake" 20 | "/usr/share/cmake-2.8/Modules/CMakeCommonLanguageInclude.cmake" 21 | "/usr/share/cmake-2.8/Modules/CMakeGenericSystem.cmake" 22 | "/usr/share/cmake-2.8/Modules/CMakeSystemSpecificInformation.cmake" 23 | "/usr/share/cmake-2.8/Modules/Compiler/GNU-C.cmake" 24 | "/usr/share/cmake-2.8/Modules/Compiler/GNU-CXX.cmake" 25 | "/usr/share/cmake-2.8/Modules/Compiler/GNU.cmake" 26 | "/usr/share/cmake-2.8/Modules/Platform/Linux-GNU-C.cmake" 27 | "/usr/share/cmake-2.8/Modules/Platform/Linux-GNU-CXX.cmake" 28 | "/usr/share/cmake-2.8/Modules/Platform/Linux-GNU.cmake" 29 | "/usr/share/cmake-2.8/Modules/Platform/Linux.cmake" 30 | "/usr/share/cmake-2.8/Modules/Platform/UnixPaths.cmake" 31 | ) 32 | 33 | # The corresponding makefile is: 34 | SET(CMAKE_MAKEFILE_OUTPUTS 35 | "Makefile" 36 | "CMakeFiles/cmake.check_cache" 37 | ) 38 | 39 | # Byproducts of CMake generate step: 40 | SET(CMAKE_MAKEFILE_PRODUCTS 41 | "CMakeFiles/CMakeDirectoryInformation.cmake" 42 | ) 43 | 44 | # Dependency information for all targets: 45 | SET(CMAKE_DEPEND_INFO_FILES 46 | "CMakeFiles/obj_detect.dir/DependInfo.cmake" 47 | ) 48 | -------------------------------------------------------------------------------- /support/CMakeFiles/Makefile2: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 2.8 3 | 4 | # Default target executed when no arguments are given to make. 5 | default_target: all 6 | .PHONY : default_target 7 | 8 | # The main recursive all target 9 | all: 10 | .PHONY : all 11 | 12 | # The main recursive preinstall target 13 | preinstall: 14 | .PHONY : preinstall 15 | 16 | #============================================================================= 17 | # Special targets provided by cmake. 18 | 19 | # Disable implicit rules so canonical targets will work. 20 | .SUFFIXES: 21 | 22 | # Remove some rules from gmake that .SUFFIXES does not remove. 23 | SUFFIXES = 24 | 25 | .SUFFIXES: .hpux_make_needs_suffix_list 26 | 27 | # Suppress display of executed commands. 28 | $(VERBOSE).SILENT: 29 | 30 | # A target that is always out of date. 31 | cmake_force: 32 | .PHONY : cmake_force 33 | 34 | #============================================================================= 35 | # Set environment variables for the build. 36 | 37 | # The shell in which to execute make rules. 38 | SHELL = /bin/sh 39 | 40 | # The CMake executable. 41 | CMAKE_COMMAND = /usr/bin/cmake 42 | 43 | # The command to remove a file. 44 | RM = /usr/bin/cmake -E remove -f 45 | 46 | # Escaping for special characters. 47 | EQUALS = = 48 | 49 | # The top-level source directory on which CMake was run. 50 | CMAKE_SOURCE_DIR = /home/chris/Lab/LogoDetection/support 51 | 52 | # The top-level build directory on which CMake was run. 53 | CMAKE_BINARY_DIR = /home/chris/Lab/LogoDetection/support 54 | 55 | #============================================================================= 56 | # Target rules for target CMakeFiles/obj_detect.dir 57 | 58 | # All Build rule for target. 59 | CMakeFiles/obj_detect.dir/all: 60 | $(MAKE) -f CMakeFiles/obj_detect.dir/build.make CMakeFiles/obj_detect.dir/depend 61 | $(MAKE) -f CMakeFiles/obj_detect.dir/build.make CMakeFiles/obj_detect.dir/build 62 | $(CMAKE_COMMAND) -E cmake_progress_report /home/chris/Lab/LogoDetection/support/CMakeFiles 1 63 | @echo "Built target obj_detect" 64 | .PHONY : CMakeFiles/obj_detect.dir/all 65 | 66 | # Include target in all. 67 | all: CMakeFiles/obj_detect.dir/all 68 | .PHONY : all 69 | 70 | # Build rule for subdir invocation for target. 71 | CMakeFiles/obj_detect.dir/rule: cmake_check_build_system 72 | $(CMAKE_COMMAND) -E cmake_progress_start /home/chris/Lab/LogoDetection/support/CMakeFiles 1 73 | $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/obj_detect.dir/all 74 | $(CMAKE_COMMAND) -E cmake_progress_start /home/chris/Lab/LogoDetection/support/CMakeFiles 0 75 | .PHONY : CMakeFiles/obj_detect.dir/rule 76 | 77 | # Convenience name for target. 78 | obj_detect: CMakeFiles/obj_detect.dir/rule 79 | .PHONY : obj_detect 80 | 81 | # clean rule for target. 82 | CMakeFiles/obj_detect.dir/clean: 83 | $(MAKE) -f CMakeFiles/obj_detect.dir/build.make CMakeFiles/obj_detect.dir/clean 84 | .PHONY : CMakeFiles/obj_detect.dir/clean 85 | 86 | # clean rule for target. 87 | clean: CMakeFiles/obj_detect.dir/clean 88 | .PHONY : clean 89 | 90 | #============================================================================= 91 | # Special targets to cleanup operation of make. 92 | 93 | # Special rule to run CMake to check the build system integrity. 94 | # No rule that depends on this can have commands that come from listfiles 95 | # because they might be regenerated. 96 | cmake_check_build_system: 97 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 98 | .PHONY : cmake_check_build_system 99 | 100 | -------------------------------------------------------------------------------- /support/CMakeFiles/TargetDirectories.txt: -------------------------------------------------------------------------------- 1 | /home/chris/Lab/LogoDetection/support/CMakeFiles/obj_detect.dir 2 | -------------------------------------------------------------------------------- /support/CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /support/CMakeFiles/feature_tests.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/feature_tests.bin -------------------------------------------------------------------------------- /support/CMakeFiles/feature_tests.c: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"" 3 | "C_FEATURE:" 4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "c_function_prototypes\n" 10 | "C_FEATURE:" 11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "c_restrict\n" 17 | "C_FEATURE:" 18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "c_static_assert\n" 24 | "C_FEATURE:" 25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "c_variadic_macros\n" 31 | 32 | }; 33 | 34 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 35 | -------------------------------------------------------------------------------- /support/CMakeFiles/feature_tests.cxx: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"" 3 | "CXX_FEATURE:" 4 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_aggregate_nsdmi) 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "cxx_aggregate_default_initializers\n" 10 | "CXX_FEATURE:" 11 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_alias_templates) 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "cxx_alias_templates\n" 17 | "CXX_FEATURE:" 18 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_alignas) 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "cxx_alignas\n" 24 | "CXX_FEATURE:" 25 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_alignas) 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "cxx_alignof\n" 31 | "CXX_FEATURE:" 32 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_attributes) 33 | "1" 34 | #else 35 | "0" 36 | #endif 37 | "cxx_attributes\n" 38 | "CXX_FEATURE:" 39 | #if ((__clang_major__ * 100) + __clang_minor__) >= 501 && __cplusplus > 201103L 40 | "1" 41 | #else 42 | "0" 43 | #endif 44 | "cxx_attribute_deprecated\n" 45 | "CXX_FEATURE:" 46 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_auto_type) 47 | "1" 48 | #else 49 | "0" 50 | #endif 51 | "cxx_auto_type\n" 52 | "CXX_FEATURE:" 53 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_binary_literals) 54 | "1" 55 | #else 56 | "0" 57 | #endif 58 | "cxx_binary_literals\n" 59 | "CXX_FEATURE:" 60 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_constexpr) 61 | "1" 62 | #else 63 | "0" 64 | #endif 65 | "cxx_constexpr\n" 66 | "CXX_FEATURE:" 67 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_contextual_conversions) 68 | "1" 69 | #else 70 | "0" 71 | #endif 72 | "cxx_contextual_conversions\n" 73 | "CXX_FEATURE:" 74 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_decltype) 75 | "1" 76 | #else 77 | "0" 78 | #endif 79 | "cxx_decltype\n" 80 | "CXX_FEATURE:" 81 | #if ((__clang_major__ * 100) + __clang_minor__) >= 501 && __cplusplus > 201103L 82 | "1" 83 | #else 84 | "0" 85 | #endif 86 | "cxx_decltype_auto\n" 87 | "CXX_FEATURE:" 88 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_decltype_incomplete_return_types) 89 | "1" 90 | #else 91 | "0" 92 | #endif 93 | "cxx_decltype_incomplete_return_types\n" 94 | "CXX_FEATURE:" 95 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_default_function_template_args) 96 | "1" 97 | #else 98 | "0" 99 | #endif 100 | "cxx_default_function_template_args\n" 101 | "CXX_FEATURE:" 102 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_defaulted_functions) 103 | "1" 104 | #else 105 | "0" 106 | #endif 107 | "cxx_defaulted_functions\n" 108 | "CXX_FEATURE:" 109 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_defaulted_functions) 110 | "1" 111 | #else 112 | "0" 113 | #endif 114 | "cxx_defaulted_move_initializers\n" 115 | "CXX_FEATURE:" 116 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_delegating_constructors) 117 | "1" 118 | #else 119 | "0" 120 | #endif 121 | "cxx_delegating_constructors\n" 122 | "CXX_FEATURE:" 123 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_deleted_functions) 124 | "1" 125 | #else 126 | "0" 127 | #endif 128 | "cxx_deleted_functions\n" 129 | "CXX_FEATURE:" 130 | #if ((__clang_major__ * 100) + __clang_minor__) >= 501 && __cplusplus > 201103L 131 | "1" 132 | #else 133 | "0" 134 | #endif 135 | "cxx_digit_separators\n" 136 | "CXX_FEATURE:" 137 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 138 | "1" 139 | #else 140 | "0" 141 | #endif 142 | "cxx_enum_forward_declarations\n" 143 | "CXX_FEATURE:" 144 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_explicit_conversions) 145 | "1" 146 | #else 147 | "0" 148 | #endif 149 | "cxx_explicit_conversions\n" 150 | "CXX_FEATURE:" 151 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 152 | "1" 153 | #else 154 | "0" 155 | #endif 156 | "cxx_extended_friend_declarations\n" 157 | "CXX_FEATURE:" 158 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 159 | "1" 160 | #else 161 | "0" 162 | #endif 163 | "cxx_extern_templates\n" 164 | "CXX_FEATURE:" 165 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_override_control) 166 | "1" 167 | #else 168 | "0" 169 | #endif 170 | "cxx_final\n" 171 | "CXX_FEATURE:" 172 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 173 | "1" 174 | #else 175 | "0" 176 | #endif 177 | "cxx_func_identifier\n" 178 | "CXX_FEATURE:" 179 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_generalized_initializers) 180 | "1" 181 | #else 182 | "0" 183 | #endif 184 | "cxx_generalized_initializers\n" 185 | "CXX_FEATURE:" 186 | #if ((__clang_major__ * 100) + __clang_minor__) >= 501 && __cplusplus > 201103L 187 | "1" 188 | #else 189 | "0" 190 | #endif 191 | "cxx_generic_lambdas\n" 192 | "CXX_FEATURE:" 193 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_inheriting_constructors) 194 | "1" 195 | #else 196 | "0" 197 | #endif 198 | "cxx_inheriting_constructors\n" 199 | "CXX_FEATURE:" 200 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 201 | "1" 202 | #else 203 | "0" 204 | #endif 205 | "cxx_inline_namespaces\n" 206 | "CXX_FEATURE:" 207 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_lambdas) 208 | "1" 209 | #else 210 | "0" 211 | #endif 212 | "cxx_lambdas\n" 213 | "CXX_FEATURE:" 214 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_init_captures) 215 | "1" 216 | #else 217 | "0" 218 | #endif 219 | "cxx_lambda_init_captures\n" 220 | "CXX_FEATURE:" 221 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_local_type_template_args) 222 | "1" 223 | #else 224 | "0" 225 | #endif 226 | "cxx_local_type_template_args\n" 227 | "CXX_FEATURE:" 228 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 229 | "1" 230 | #else 231 | "0" 232 | #endif 233 | "cxx_long_long_type\n" 234 | "CXX_FEATURE:" 235 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_noexcept) 236 | "1" 237 | #else 238 | "0" 239 | #endif 240 | "cxx_noexcept\n" 241 | "CXX_FEATURE:" 242 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_nonstatic_member_init) 243 | "1" 244 | #else 245 | "0" 246 | #endif 247 | "cxx_nonstatic_member_init\n" 248 | "CXX_FEATURE:" 249 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_nullptr) 250 | "1" 251 | #else 252 | "0" 253 | #endif 254 | "cxx_nullptr\n" 255 | "CXX_FEATURE:" 256 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_override_control) 257 | "1" 258 | #else 259 | "0" 260 | #endif 261 | "cxx_override\n" 262 | "CXX_FEATURE:" 263 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_range_for) 264 | "1" 265 | #else 266 | "0" 267 | #endif 268 | "cxx_range_for\n" 269 | "CXX_FEATURE:" 270 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_raw_string_literals) 271 | "1" 272 | #else 273 | "0" 274 | #endif 275 | "cxx_raw_string_literals\n" 276 | "CXX_FEATURE:" 277 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_reference_qualified_functions) 278 | "1" 279 | #else 280 | "0" 281 | #endif 282 | "cxx_reference_qualified_functions\n" 283 | "CXX_FEATURE:" 284 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_relaxed_constexpr) 285 | "1" 286 | #else 287 | "0" 288 | #endif 289 | "cxx_relaxed_constexpr\n" 290 | "CXX_FEATURE:" 291 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_return_type_deduction) 292 | "1" 293 | #else 294 | "0" 295 | #endif 296 | "cxx_return_type_deduction\n" 297 | "CXX_FEATURE:" 298 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 299 | "1" 300 | #else 301 | "0" 302 | #endif 303 | "cxx_right_angle_brackets\n" 304 | "CXX_FEATURE:" 305 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_rvalue_references) 306 | "1" 307 | #else 308 | "0" 309 | #endif 310 | "cxx_rvalue_references\n" 311 | "CXX_FEATURE:" 312 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 313 | "1" 314 | #else 315 | "0" 316 | #endif 317 | "cxx_sizeof_member\n" 318 | "CXX_FEATURE:" 319 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_static_assert) 320 | "1" 321 | #else 322 | "0" 323 | #endif 324 | "cxx_static_assert\n" 325 | "CXX_FEATURE:" 326 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_strong_enums) 327 | "1" 328 | #else 329 | "0" 330 | #endif 331 | "cxx_strong_enums\n" 332 | "CXX_FEATURE:" 333 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 199711L 334 | "1" 335 | #else 336 | "0" 337 | #endif 338 | "cxx_template_template_parameters\n" 339 | "CXX_FEATURE:" 340 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_thread_local) 341 | "1" 342 | #else 343 | "0" 344 | #endif 345 | "cxx_thread_local\n" 346 | "CXX_FEATURE:" 347 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_trailing_return) 348 | "1" 349 | #else 350 | "0" 351 | #endif 352 | "cxx_trailing_return_types\n" 353 | "CXX_FEATURE:" 354 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_unicode_literals) 355 | "1" 356 | #else 357 | "0" 358 | #endif 359 | "cxx_unicode_literals\n" 360 | "CXX_FEATURE:" 361 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_generalized_initializers) 362 | "1" 363 | #else 364 | "0" 365 | #endif 366 | "cxx_uniform_initialization\n" 367 | "CXX_FEATURE:" 368 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_unrestricted_unions) 369 | "1" 370 | #else 371 | "0" 372 | #endif 373 | "cxx_unrestricted_unions\n" 374 | "CXX_FEATURE:" 375 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_user_literals) 376 | "1" 377 | #else 378 | "0" 379 | #endif 380 | "cxx_user_literals\n" 381 | "CXX_FEATURE:" 382 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_variable_templates) 383 | "1" 384 | #else 385 | "0" 386 | #endif 387 | "cxx_variable_templates\n" 388 | "CXX_FEATURE:" 389 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L 390 | "1" 391 | #else 392 | "0" 393 | #endif 394 | "cxx_variadic_macros\n" 395 | "CXX_FEATURE:" 396 | #if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_variadic_templates) 397 | "1" 398 | #else 399 | "0" 400 | #endif 401 | "cxx_variadic_templates\n" 402 | 403 | }; 404 | 405 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 406 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/CXX.includecache: -------------------------------------------------------------------------------- 1 | #IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) 2 | 3 | #IncludeRegexScan: ^.*$ 4 | 5 | #IncludeRegexComplain: ^$ 6 | 7 | #IncludeRegexTransform: 8 | 9 | /home/chris/Lab/LogoDetection/support/obj_detect.cpp 10 | opencv2/objdetect/objdetect.hpp 11 | /home/chris/Lab/LogoDetection/support/opencv2/objdetect/objdetect.hpp 12 | opencv2/highgui/highgui.hpp 13 | /home/chris/Lab/LogoDetection/support/opencv2/highgui/highgui.hpp 14 | opencv2/imgproc/imgproc.hpp 15 | /home/chris/Lab/LogoDetection/support/opencv2/imgproc/imgproc.hpp 16 | cctype 17 | - 18 | iostream 19 | - 20 | iterator 21 | - 22 | stdio.h 23 | - 24 | string 25 | - 26 | stdlib.h 27 | - 28 | 29 | /usr/local/include/opencv2/core/core.hpp 30 | opencv2/core/types_c.h 31 | /usr/local/include/opencv2/core/opencv2/core/types_c.h 32 | opencv2/core/version.hpp 33 | /usr/local/include/opencv2/core/opencv2/core/version.hpp 34 | limits.h 35 | - 36 | algorithm 37 | - 38 | cmath 39 | - 40 | cstddef 41 | - 42 | complex 43 | - 44 | map 45 | - 46 | new 47 | - 48 | string 49 | - 50 | vector 51 | - 52 | sstream 53 | - 54 | opencv2/core/operations.hpp 55 | /usr/local/include/opencv2/core/opencv2/core/operations.hpp 56 | opencv2/core/mat.hpp 57 | /usr/local/include/opencv2/core/opencv2/core/mat.hpp 58 | 59 | /usr/local/include/opencv2/core/core_c.h 60 | opencv2/core/types_c.h 61 | /usr/local/include/opencv2/core/opencv2/core/types_c.h 62 | 63 | /usr/local/include/opencv2/core/mat.hpp 64 | limits.h 65 | - 66 | string.h 67 | - 68 | 69 | /usr/local/include/opencv2/core/operations.hpp 70 | string.h 71 | - 72 | limits.h 73 | - 74 | ext/atomicity.h 75 | - 76 | bits/atomicity.h 77 | - 78 | limits 79 | - 80 | 81 | /usr/local/include/opencv2/core/types_c.h 82 | assert.h 83 | - 84 | stdlib.h 85 | - 86 | string.h 87 | - 88 | float.h 89 | - 90 | stdint.h 91 | - 92 | intrin.h 93 | - 94 | emmintrin.h 95 | - 96 | fastmath.h 97 | - 98 | math.h 99 | - 100 | ipl.h 101 | - 102 | ipl/ipl.h 103 | - 104 | tegra_round.hpp 105 | /usr/local/include/opencv2/core/tegra_round.hpp 106 | emmintrin.h 107 | /usr/local/include/opencv2/core/emmintrin.h 108 | 109 | /usr/local/include/opencv2/core/version.hpp 110 | 111 | /usr/local/include/opencv2/highgui/highgui.hpp 112 | opencv2/core/core.hpp 113 | /usr/local/include/opencv2/highgui/opencv2/core/core.hpp 114 | opencv2/highgui/highgui_c.h 115 | /usr/local/include/opencv2/highgui/opencv2/highgui/highgui_c.h 116 | 117 | /usr/local/include/opencv2/highgui/highgui_c.h 118 | opencv2/core/core_c.h 119 | /usr/local/include/opencv2/highgui/opencv2/core/core_c.h 120 | 121 | /usr/local/include/opencv2/imgproc/imgproc.hpp 122 | opencv2/core/core.hpp 123 | /usr/local/include/opencv2/imgproc/opencv2/core/core.hpp 124 | opencv2/imgproc/types_c.h 125 | /usr/local/include/opencv2/imgproc/opencv2/imgproc/types_c.h 126 | 127 | /usr/local/include/opencv2/imgproc/types_c.h 128 | opencv2/core/core_c.h 129 | /usr/local/include/opencv2/imgproc/opencv2/core/core_c.h 130 | 131 | /usr/local/include/opencv2/objdetect/objdetect.hpp 132 | opencv2/core/core.hpp 133 | /usr/local/include/opencv2/objdetect/opencv2/core/core.hpp 134 | map 135 | - 136 | deque 137 | - 138 | 139 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | SET(CMAKE_DEPENDS_LANGUAGES 3 | "CXX" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | SET(CMAKE_DEPENDS_CHECK_CXX 7 | "/home/chris/Lab/LogoDetection/support/obj_detect.cpp" "/home/chris/Lab/LogoDetection/support/CMakeFiles/obj_detect.dir/obj_detect.cpp.o" 8 | ) 9 | SET(CMAKE_CXX_COMPILER_ID "GNU") 10 | 11 | # Targets to which this target links. 12 | SET(CMAKE_TARGET_LINKED_INFO_FILES 13 | ) 14 | 15 | # The include file search paths: 16 | SET(CMAKE_C_TARGET_INCLUDE_PATH 17 | "/usr/local/include/opencv" 18 | "/usr/local/include" 19 | ) 20 | SET(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) 21 | SET(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) 22 | SET(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) 23 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/build.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 2.8 3 | 4 | #============================================================================= 5 | # Special targets provided by cmake. 6 | 7 | # Disable implicit rules so canonical targets will work. 8 | .SUFFIXES: 9 | 10 | # Remove some rules from gmake that .SUFFIXES does not remove. 11 | SUFFIXES = 12 | 13 | .SUFFIXES: .hpux_make_needs_suffix_list 14 | 15 | # Suppress display of executed commands. 16 | $(VERBOSE).SILENT: 17 | 18 | # A target that is always out of date. 19 | cmake_force: 20 | .PHONY : cmake_force 21 | 22 | #============================================================================= 23 | # Set environment variables for the build. 24 | 25 | # The shell in which to execute make rules. 26 | SHELL = /bin/sh 27 | 28 | # The CMake executable. 29 | CMAKE_COMMAND = /usr/bin/cmake 30 | 31 | # The command to remove a file. 32 | RM = /usr/bin/cmake -E remove -f 33 | 34 | # Escaping for special characters. 35 | EQUALS = = 36 | 37 | # The top-level source directory on which CMake was run. 38 | CMAKE_SOURCE_DIR = /home/chris/Lab/LogoDetection/support 39 | 40 | # The top-level build directory on which CMake was run. 41 | CMAKE_BINARY_DIR = /home/chris/Lab/LogoDetection/support 42 | 43 | # Include any dependencies generated for this target. 44 | include CMakeFiles/obj_detect.dir/depend.make 45 | 46 | # Include the progress variables for this target. 47 | include CMakeFiles/obj_detect.dir/progress.make 48 | 49 | # Include the compile flags for this target's objects. 50 | include CMakeFiles/obj_detect.dir/flags.make 51 | 52 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: CMakeFiles/obj_detect.dir/flags.make 53 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: obj_detect.cpp 54 | $(CMAKE_COMMAND) -E cmake_progress_report /home/chris/Lab/LogoDetection/support/CMakeFiles $(CMAKE_PROGRESS_1) 55 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/obj_detect.dir/obj_detect.cpp.o" 56 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/obj_detect.dir/obj_detect.cpp.o -c /home/chris/Lab/LogoDetection/support/obj_detect.cpp 57 | 58 | CMakeFiles/obj_detect.dir/obj_detect.cpp.i: cmake_force 59 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/obj_detect.dir/obj_detect.cpp.i" 60 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/chris/Lab/LogoDetection/support/obj_detect.cpp > CMakeFiles/obj_detect.dir/obj_detect.cpp.i 61 | 62 | CMakeFiles/obj_detect.dir/obj_detect.cpp.s: cmake_force 63 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/obj_detect.dir/obj_detect.cpp.s" 64 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/chris/Lab/LogoDetection/support/obj_detect.cpp -o CMakeFiles/obj_detect.dir/obj_detect.cpp.s 65 | 66 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o.requires: 67 | .PHONY : CMakeFiles/obj_detect.dir/obj_detect.cpp.o.requires 68 | 69 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o.provides: CMakeFiles/obj_detect.dir/obj_detect.cpp.o.requires 70 | $(MAKE) -f CMakeFiles/obj_detect.dir/build.make CMakeFiles/obj_detect.dir/obj_detect.cpp.o.provides.build 71 | .PHONY : CMakeFiles/obj_detect.dir/obj_detect.cpp.o.provides 72 | 73 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o.provides.build: CMakeFiles/obj_detect.dir/obj_detect.cpp.o 74 | 75 | # Object files for target obj_detect 76 | obj_detect_OBJECTS = \ 77 | "CMakeFiles/obj_detect.dir/obj_detect.cpp.o" 78 | 79 | # External object files for target obj_detect 80 | obj_detect_EXTERNAL_OBJECTS = 81 | 82 | obj_detect: CMakeFiles/obj_detect.dir/obj_detect.cpp.o 83 | obj_detect: CMakeFiles/obj_detect.dir/build.make 84 | obj_detect: /usr/local/lib/libopencv_videostab.so.2.4.10 85 | obj_detect: /usr/local/lib/libopencv_video.so.2.4.10 86 | obj_detect: /usr/local/lib/libopencv_ts.a 87 | obj_detect: /usr/local/lib/libopencv_superres.so.2.4.10 88 | obj_detect: /usr/local/lib/libopencv_stitching.so.2.4.10 89 | obj_detect: /usr/local/lib/libopencv_photo.so.2.4.10 90 | obj_detect: /usr/local/lib/libopencv_ocl.so.2.4.10 91 | obj_detect: /usr/local/lib/libopencv_objdetect.so.2.4.10 92 | obj_detect: /usr/local/lib/libopencv_nonfree.so.2.4.10 93 | obj_detect: /usr/local/lib/libopencv_ml.so.2.4.10 94 | obj_detect: /usr/local/lib/libopencv_legacy.so.2.4.10 95 | obj_detect: /usr/local/lib/libopencv_imgproc.so.2.4.10 96 | obj_detect: /usr/local/lib/libopencv_highgui.so.2.4.10 97 | obj_detect: /usr/local/lib/libopencv_gpu.so.2.4.10 98 | obj_detect: /usr/local/lib/libopencv_flann.so.2.4.10 99 | obj_detect: /usr/local/lib/libopencv_features2d.so.2.4.10 100 | obj_detect: /usr/local/lib/libopencv_core.so.2.4.10 101 | obj_detect: /usr/local/lib/libopencv_contrib.so.2.4.10 102 | obj_detect: /usr/local/lib/libopencv_calib3d.so.2.4.10 103 | obj_detect: /usr/lib/x86_64-linux-gnu/libGLU.so 104 | obj_detect: /usr/lib/x86_64-linux-gnu/libGL.so 105 | obj_detect: /usr/lib/x86_64-linux-gnu/libSM.so 106 | obj_detect: /usr/lib/x86_64-linux-gnu/libICE.so 107 | obj_detect: /usr/lib/x86_64-linux-gnu/libX11.so 108 | obj_detect: /usr/lib/x86_64-linux-gnu/libXext.so 109 | obj_detect: /usr/local/lib/libopencv_nonfree.so.2.4.10 110 | obj_detect: /usr/local/lib/libopencv_ocl.so.2.4.10 111 | obj_detect: /usr/local/lib/libopencv_gpu.so.2.4.10 112 | obj_detect: /usr/local/lib/libopencv_photo.so.2.4.10 113 | obj_detect: /usr/local/lib/libopencv_objdetect.so.2.4.10 114 | obj_detect: /usr/local/lib/libopencv_legacy.so.2.4.10 115 | obj_detect: /usr/local/lib/libopencv_video.so.2.4.10 116 | obj_detect: /usr/local/lib/libopencv_ml.so.2.4.10 117 | obj_detect: /usr/local/lib/libopencv_calib3d.so.2.4.10 118 | obj_detect: /usr/local/lib/libopencv_features2d.so.2.4.10 119 | obj_detect: /usr/local/lib/libopencv_highgui.so.2.4.10 120 | obj_detect: /usr/local/lib/libopencv_imgproc.so.2.4.10 121 | obj_detect: /usr/local/lib/libopencv_flann.so.2.4.10 122 | obj_detect: /usr/local/lib/libopencv_core.so.2.4.10 123 | obj_detect: CMakeFiles/obj_detect.dir/link.txt 124 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking CXX executable obj_detect" 125 | $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/obj_detect.dir/link.txt --verbose=$(VERBOSE) 126 | 127 | # Rule to build all files generated by this target. 128 | CMakeFiles/obj_detect.dir/build: obj_detect 129 | .PHONY : CMakeFiles/obj_detect.dir/build 130 | 131 | CMakeFiles/obj_detect.dir/requires: CMakeFiles/obj_detect.dir/obj_detect.cpp.o.requires 132 | .PHONY : CMakeFiles/obj_detect.dir/requires 133 | 134 | CMakeFiles/obj_detect.dir/clean: 135 | $(CMAKE_COMMAND) -P CMakeFiles/obj_detect.dir/cmake_clean.cmake 136 | .PHONY : CMakeFiles/obj_detect.dir/clean 137 | 138 | CMakeFiles/obj_detect.dir/depend: 139 | cd /home/chris/Lab/LogoDetection/support && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/chris/Lab/LogoDetection/support /home/chris/Lab/LogoDetection/support /home/chris/Lab/LogoDetection/support /home/chris/Lab/LogoDetection/support /home/chris/Lab/LogoDetection/support/CMakeFiles/obj_detect.dir/DependInfo.cmake --color=$(COLOR) 140 | .PHONY : CMakeFiles/obj_detect.dir/depend 141 | 142 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | FILE(REMOVE_RECURSE 2 | "CMakeFiles/obj_detect.dir/obj_detect.cpp.o" 3 | "obj_detect.pdb" 4 | "obj_detect" 5 | ) 6 | 7 | # Per-language clean rules from dependency scanning. 8 | FOREACH(lang CXX) 9 | INCLUDE(CMakeFiles/obj_detect.dir/cmake_clean_${lang}.cmake OPTIONAL) 10 | ENDFOREACH(lang) 11 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/depend.internal: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 2.8 3 | 4 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o 5 | /home/chris/Lab/LogoDetection/support/obj_detect.cpp 6 | /usr/local/include/opencv2/core/core.hpp 7 | /usr/local/include/opencv2/core/core_c.h 8 | /usr/local/include/opencv2/core/mat.hpp 9 | /usr/local/include/opencv2/core/operations.hpp 10 | /usr/local/include/opencv2/core/types_c.h 11 | /usr/local/include/opencv2/core/version.hpp 12 | /usr/local/include/opencv2/highgui/highgui.hpp 13 | /usr/local/include/opencv2/highgui/highgui_c.h 14 | /usr/local/include/opencv2/imgproc/imgproc.hpp 15 | /usr/local/include/opencv2/imgproc/types_c.h 16 | /usr/local/include/opencv2/objdetect/objdetect.hpp 17 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/depend.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 2.8 3 | 4 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: obj_detect.cpp 5 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/core/core.hpp 6 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/core/core_c.h 7 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/core/mat.hpp 8 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/core/operations.hpp 9 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/core/types_c.h 10 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/core/version.hpp 11 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/highgui/highgui.hpp 12 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/highgui/highgui_c.h 13 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/imgproc/imgproc.hpp 14 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/imgproc/types_c.h 15 | CMakeFiles/obj_detect.dir/obj_detect.cpp.o: /usr/local/include/opencv2/objdetect/objdetect.hpp 16 | 17 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 2.8 3 | 4 | # compile CXX with /usr/bin/c++ 5 | CXX_FLAGS = -I/usr/local/include/opencv -I/usr/local/include 6 | 7 | CXX_DEFINES = 8 | 9 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/c++ CMakeFiles/obj_detect.dir/obj_detect.cpp.o -o obj_detect -rdynamic /usr/local/lib/libopencv_videostab.so.2.4.10 /usr/local/lib/libopencv_video.so.2.4.10 /usr/local/lib/libopencv_ts.a /usr/local/lib/libopencv_superres.so.2.4.10 /usr/local/lib/libopencv_stitching.so.2.4.10 /usr/local/lib/libopencv_photo.so.2.4.10 /usr/local/lib/libopencv_ocl.so.2.4.10 /usr/local/lib/libopencv_objdetect.so.2.4.10 /usr/local/lib/libopencv_nonfree.so.2.4.10 /usr/local/lib/libopencv_ml.so.2.4.10 /usr/local/lib/libopencv_legacy.so.2.4.10 /usr/local/lib/libopencv_imgproc.so.2.4.10 /usr/local/lib/libopencv_highgui.so.2.4.10 /usr/local/lib/libopencv_gpu.so.2.4.10 /usr/local/lib/libopencv_flann.so.2.4.10 /usr/local/lib/libopencv_features2d.so.2.4.10 /usr/local/lib/libopencv_core.so.2.4.10 /usr/local/lib/libopencv_contrib.so.2.4.10 /usr/local/lib/libopencv_calib3d.so.2.4.10 -ldl -lm -lpthread -lrt -lGLU -lGL -lSM -lICE -lX11 -lXext -ltbb /usr/local/lib/libopencv_nonfree.so.2.4.10 /usr/local/lib/libopencv_ocl.so.2.4.10 /usr/local/lib/libopencv_gpu.so.2.4.10 /usr/local/lib/libopencv_photo.so.2.4.10 /usr/local/lib/libopencv_objdetect.so.2.4.10 /usr/local/lib/libopencv_legacy.so.2.4.10 /usr/local/lib/libopencv_video.so.2.4.10 /usr/local/lib/libopencv_ml.so.2.4.10 /usr/local/lib/libopencv_calib3d.so.2.4.10 /usr/local/lib/libopencv_features2d.so.2.4.10 /usr/local/lib/libopencv_highgui.so.2.4.10 /usr/local/lib/libopencv_imgproc.so.2.4.10 /usr/local/lib/libopencv_flann.so.2.4.10 /usr/local/lib/libopencv_core.so.2.4.10 -Wl,-rpath,/usr/local/lib 2 | -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/obj_detect.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/CMakeFiles/obj_detect.dir/obj_detect.cpp.o -------------------------------------------------------------------------------- /support/CMakeFiles/obj_detect.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 1 2 | 3 | -------------------------------------------------------------------------------- /support/CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /support/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | project( obj_detect ) 3 | find_package( OpenCV REQUIRED ) 4 | include_directories( ${OpenCV_INCLUDE_DIRS} ) 5 | add_executable( obj_detect obj_detect.cpp ) 6 | target_link_libraries( obj_detect ${OpenCV_LIBS} ) 7 | -------------------------------------------------------------------------------- /support/Makefile: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 2.8 3 | 4 | # Default target executed when no arguments are given to make. 5 | default_target: all 6 | .PHONY : default_target 7 | 8 | #============================================================================= 9 | # Special targets provided by cmake. 10 | 11 | # Disable implicit rules so canonical targets will work. 12 | .SUFFIXES: 13 | 14 | # Remove some rules from gmake that .SUFFIXES does not remove. 15 | SUFFIXES = 16 | 17 | .SUFFIXES: .hpux_make_needs_suffix_list 18 | 19 | # Suppress display of executed commands. 20 | $(VERBOSE).SILENT: 21 | 22 | # A target that is always out of date. 23 | cmake_force: 24 | .PHONY : cmake_force 25 | 26 | #============================================================================= 27 | # Set environment variables for the build. 28 | 29 | # The shell in which to execute make rules. 30 | SHELL = /bin/sh 31 | 32 | # The CMake executable. 33 | CMAKE_COMMAND = /usr/bin/cmake 34 | 35 | # The command to remove a file. 36 | RM = /usr/bin/cmake -E remove -f 37 | 38 | # Escaping for special characters. 39 | EQUALS = = 40 | 41 | # The top-level source directory on which CMake was run. 42 | CMAKE_SOURCE_DIR = /home/chris/Lab/LogoDetection/support 43 | 44 | # The top-level build directory on which CMake was run. 45 | CMAKE_BINARY_DIR = /home/chris/Lab/LogoDetection/support 46 | 47 | #============================================================================= 48 | # Targets provided globally by CMake. 49 | 50 | # Special rule for the target edit_cache 51 | edit_cache: 52 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running interactive CMake command-line interface..." 53 | /usr/bin/cmake -i . 54 | .PHONY : edit_cache 55 | 56 | # Special rule for the target edit_cache 57 | edit_cache/fast: edit_cache 58 | .PHONY : edit_cache/fast 59 | 60 | # Special rule for the target rebuild_cache 61 | rebuild_cache: 62 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." 63 | /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) 64 | .PHONY : rebuild_cache 65 | 66 | # Special rule for the target rebuild_cache 67 | rebuild_cache/fast: rebuild_cache 68 | .PHONY : rebuild_cache/fast 69 | 70 | # The main all target 71 | all: cmake_check_build_system 72 | $(CMAKE_COMMAND) -E cmake_progress_start /home/chris/Lab/LogoDetection/support/CMakeFiles /home/chris/Lab/LogoDetection/support/CMakeFiles/progress.marks 73 | $(MAKE) -f CMakeFiles/Makefile2 all 74 | $(CMAKE_COMMAND) -E cmake_progress_start /home/chris/Lab/LogoDetection/support/CMakeFiles 0 75 | .PHONY : all 76 | 77 | # The main clean target 78 | clean: 79 | $(MAKE) -f CMakeFiles/Makefile2 clean 80 | .PHONY : clean 81 | 82 | # The main clean target 83 | clean/fast: clean 84 | .PHONY : clean/fast 85 | 86 | # Prepare targets for installation. 87 | preinstall: all 88 | $(MAKE) -f CMakeFiles/Makefile2 preinstall 89 | .PHONY : preinstall 90 | 91 | # Prepare targets for installation. 92 | preinstall/fast: 93 | $(MAKE) -f CMakeFiles/Makefile2 preinstall 94 | .PHONY : preinstall/fast 95 | 96 | # clear depends 97 | depend: 98 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 99 | .PHONY : depend 100 | 101 | #============================================================================= 102 | # Target rules for targets named obj_detect 103 | 104 | # Build rule for target. 105 | obj_detect: cmake_check_build_system 106 | $(MAKE) -f CMakeFiles/Makefile2 obj_detect 107 | .PHONY : obj_detect 108 | 109 | # fast build rule for target. 110 | obj_detect/fast: 111 | $(MAKE) -f CMakeFiles/obj_detect.dir/build.make CMakeFiles/obj_detect.dir/build 112 | .PHONY : obj_detect/fast 113 | 114 | obj_detect.o: obj_detect.cpp.o 115 | .PHONY : obj_detect.o 116 | 117 | # target to build an object file 118 | obj_detect.cpp.o: 119 | $(MAKE) -f CMakeFiles/obj_detect.dir/build.make CMakeFiles/obj_detect.dir/obj_detect.cpp.o 120 | .PHONY : obj_detect.cpp.o 121 | 122 | obj_detect.i: obj_detect.cpp.i 123 | .PHONY : obj_detect.i 124 | 125 | # target to preprocess a source file 126 | obj_detect.cpp.i: 127 | $(MAKE) -f CMakeFiles/obj_detect.dir/build.make CMakeFiles/obj_detect.dir/obj_detect.cpp.i 128 | .PHONY : obj_detect.cpp.i 129 | 130 | obj_detect.s: obj_detect.cpp.s 131 | .PHONY : obj_detect.s 132 | 133 | # target to generate assembly for a file 134 | obj_detect.cpp.s: 135 | $(MAKE) -f CMakeFiles/obj_detect.dir/build.make CMakeFiles/obj_detect.dir/obj_detect.cpp.s 136 | .PHONY : obj_detect.cpp.s 137 | 138 | # Help Target 139 | help: 140 | @echo "The following are some of the valid targets for this Makefile:" 141 | @echo "... all (the default if no target is provided)" 142 | @echo "... clean" 143 | @echo "... depend" 144 | @echo "... edit_cache" 145 | @echo "... obj_detect" 146 | @echo "... rebuild_cache" 147 | @echo "... obj_detect.o" 148 | @echo "... obj_detect.i" 149 | @echo "... obj_detect.s" 150 | .PHONY : help 151 | 152 | 153 | 154 | #============================================================================= 155 | # Special targets to cleanup operation of make. 156 | 157 | # Special rule to run CMake to check the build system integrity. 158 | # No rule that depends on this can have commands that come from listfiles 159 | # because they might be regenerated. 160 | cmake_check_build_system: 161 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 162 | .PHONY : cmake_check_build_system 163 | 164 | -------------------------------------------------------------------------------- /support/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: /home/chris/Lab/LogoDetection/support 2 | 3 | # Set the install prefix 4 | IF(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | SET(CMAKE_INSTALL_PREFIX "/usr/local") 6 | ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX) 7 | STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | IF(BUILD_TYPE) 12 | STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | ELSE(BUILD_TYPE) 15 | SET(CMAKE_INSTALL_CONFIG_NAME "") 16 | ENDIF(BUILD_TYPE) 17 | MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 19 | 20 | # Set the component getting installed. 21 | IF(NOT CMAKE_INSTALL_COMPONENT) 22 | IF(COMPONENT) 23 | MESSAGE(STATUS "Install component: \"${COMPONENT}\"") 24 | SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | ELSE(COMPONENT) 26 | SET(CMAKE_INSTALL_COMPONENT) 27 | ENDIF(COMPONENT) 28 | ENDIF(NOT CMAKE_INSTALL_COMPONENT) 29 | 30 | # Install shared libraries without execute permission? 31 | IF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) 32 | SET(CMAKE_INSTALL_SO_NO_EXE "1") 33 | ENDIF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) 34 | 35 | IF(CMAKE_INSTALL_COMPONENT) 36 | SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") 37 | ELSE(CMAKE_INSTALL_COMPONENT) 38 | SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt") 39 | ENDIF(CMAKE_INSTALL_COMPONENT) 40 | 41 | FILE(WRITE "/home/chris/Lab/LogoDetection/support/${CMAKE_INSTALL_MANIFEST}" "") 42 | FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES}) 43 | FILE(APPEND "/home/chris/Lab/LogoDetection/support/${CMAKE_INSTALL_MANIFEST}" "${file}\n") 44 | ENDFOREACH(file) 45 | -------------------------------------------------------------------------------- /support/obj_detect: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/support/obj_detect -------------------------------------------------------------------------------- /support/obj_detect.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Name: Object detection 3 | * Author: Xiaochen 4 | * Time: 05/27/2015 5 | * Version: 2.0 6 | * Function: 7 | 1. Use HAAR features and SVM to find a specific obj in a picture. 8 | 2. [Update] Automatically increase the threshold to decrease the number of detected objects to one 9 | 3. Return the position of detected object in the image 10 | * Usage: 11 | 1. Compile the cpp file, get the executable file 12 | 2. Then use python code (in the root dir) to call the function 13 | * 14 | */ 15 | 16 | #include "opencv2/objdetect/objdetect.hpp" 17 | #include "opencv2/highgui/highgui.hpp" 18 | #include "opencv2/imgproc/imgproc.hpp" 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | using namespace std; 28 | using namespace cv; 29 | 30 | #define ERROR -1 31 | #define SPLITTER '/' 32 | #define RESULT_HEADER "RESULT: " 33 | #define ERROR_HEADER "ERROR: " 34 | #define MARGIN 20 // this margin works best 35 | #define MAX_SIZE 1440.0 36 | // #define THRES 37 | 38 | string cascadeName = "../cascade/subway.xml"; 39 | 40 | struct coordinate { 41 | int x_left; 42 | int x_right; 43 | int thres; 44 | int conf; 45 | }; 46 | 47 | coordinate detectObj(Mat& img, CascadeClassifier& cascade, double scale, int display); 48 | void showImage(Mat& img, vector detected_object, double scale, int display); 49 | int calConfScore(Mat& img, CascadeClassifier& cascade, vector detected_object); 50 | cv::Rect getCroppingRec (Mat& img, int x, int y, int width, int height); 51 | 52 | int main(int argc, const char** argv) { 53 | const string scaleOpt = "--scale="; 54 | size_t scaleOptLen = scaleOpt.length(); 55 | const string cascadeOpt = "--cascade="; 56 | size_t cascadeOptLen = cascadeOpt.length(); 57 | const string displayOpt = "--display="; 58 | size_t displayOptLen = cascadeOpt.length(); 59 | 60 | Mat image; 61 | string inputName; 62 | CascadeClassifier cascade; 63 | double scale = 1; 64 | int display = 0; 65 | 66 | for( int i = 1; i < argc; i++ ) { // get inputs 67 | cout << "Processing " << i << " " << argv[i] << endl; 68 | if( cascadeOpt.compare( 0, cascadeOptLen, argv[i], cascadeOptLen ) == 0 ) { // read cascade file 69 | cascadeName.assign( argv[i] + cascadeOptLen ); 70 | cout << " from which we have cascadeName= " << cascadeName << endl; 71 | } 72 | else if( scaleOpt.compare( 0, scaleOptLen, argv[i], scaleOptLen ) == 0 ) { // read the scale 73 | if( !sscanf( argv[i] + scaleOpt.length(), "%lf", &scale ) || scale < 1 ) 74 | scale = 1; 75 | cout << " from which we read scale = " << scale << endl; 76 | } 77 | else if( displayOpt.compare( 0, displayOptLen, argv[i], displayOptLen ) == 0 ) { // read the Display_or_not option 78 | if( !sscanf( argv[i] + displayOpt.length(), "%d", &display ) || !(display == 0 || display == 1)) 79 | display = 0; 80 | cout << " from which we read display = " << display << endl; 81 | } 82 | else if( argv[i][0] == '-' ) { // wrong input format 83 | cerr << "WARNING: Unknown option %s" << argv[i] << endl; 84 | } 85 | else 86 | inputName.assign( argv[i] ); // image name 87 | } 88 | 89 | if( !cascade.load( cascadeName ) ) { // handle the error cascade 90 | cerr << ERROR_HEADER << "Could not load classifier cascade" << endl; 91 | return -1; 92 | } 93 | 94 | if( inputName.size() ) { // read in the image 95 | image = imread( inputName, 1 ); 96 | if( image.empty() ) { 97 | cout << ERROR_HEADER << "input image is empty!" << endl; 98 | return -1; 99 | } 100 | cout << "SUCCESS: In image read" << endl; 101 | } 102 | else { 103 | cout << ERROR_HEADER << "\n ERROR: Couldn't no input image name" << endl; 104 | return -1; 105 | } 106 | 107 | coordinate ret_val = detectObj(image, cascade, scale, display); // detect the object 108 | 109 | // print the result 110 | cout << RESULT_HEADER << ret_val.x_left << SPLITTER << ret_val.x_right << SPLITTER << image.cols << SPLITTER << ret_val.thres << SPLITTER << ret_val.conf << endl; 111 | 112 | return 0; 113 | } 114 | 115 | /* Detect the object */ 116 | coordinate detectObj (Mat& img, CascadeClassifier& cascade, double scale, int display) { 117 | double t = (double)cvGetTickCount(); // count the procesing time 118 | 119 | vector detected_object; // detected object 120 | if (img.cols > MAX_SIZE || img.rows > MAX_SIZE) // resize if the image is too big 121 | scale = (img.cols/MAX_SIZE > img.rows/MAX_SIZE) ? (img.cols/MAX_SIZE) : (img.rows/MAX_SIZE); 122 | Mat gray, smallImg(cvRound (img.rows / scale), cvRound(img.cols / scale), CV_8UC1); 123 | 124 | cvtColor(img, gray, CV_BGR2GRAY); // change the image to grayscale 125 | resize(gray, smallImg, smallImg.size(), 0, 0, INTER_LINEAR); 126 | equalizeHist( smallImg, smallImg ); 127 | 128 | int min_neighbors = 1; 129 | bool over_estimated = false; 130 | 131 | /** iteration to find the best image threshold **/ 132 | while (true) { 133 | vector temp_obj; 134 | cascade.detectMultiScale( smallImg, temp_obj, // object detection 135 | 1.1, min_neighbors, 136 | 0 | CV_HAAR_SCALE_IMAGE, 137 | Size(30, 30) ); 138 | 139 | printf("Current min_neighbors is %d, number of objects is %d\n", min_neighbors, (int)temp_obj.size()); 140 | if ((int)temp_obj.size() > 0) { // if can find something.... 141 | if ((int)temp_obj.size() == 1 || over_estimated) { // find the only object! [Return] 142 | detected_object = temp_obj; 143 | printf("obj found! The min_neighbors is %d\n", min_neighbors); 144 | if (over_estimated) 145 | printf("More than one object is detected!"); 146 | break; 147 | } 148 | else // more than one obj detected... try higher threshold 149 | min_neighbors++; 150 | } else { // no obj found with this min_neighbors 151 | if (min_neighbors == 1) { 152 | detected_object = temp_obj; 153 | printf("no objects detected!\n"); 154 | break; 155 | } else { 156 | min_neighbors--; 157 | over_estimated = true; 158 | } 159 | } 160 | } 161 | 162 | t = (double)cvGetTickCount() - t; 163 | printf("detection time = %g ms\n", t/((double)cvGetTickFrequency()*1000.)); // print processing time 164 | 165 | coordinate ret_val = {0, 0, 0, 0}; 166 | if ((int)detected_object.size() == 1) { // 1 return 167 | vector::const_iterator r = detected_object.begin(); 168 | ret_val.x_left = (int)(r->x * scale); 169 | ret_val.x_right = (int)((r->x + r->width - 1) * scale); 170 | ret_val.thres = min_neighbors; 171 | ret_val.conf = calConfScore(smallImg, cascade, detected_object); // calculate conf score 172 | } 173 | else if ((int)detected_object.size() > 1) { // error (more than one detected) 174 | ret_val.x_left = ERROR; 175 | ret_val.x_right = ERROR; 176 | } 177 | 178 | if (ret_val.conf >= 20) // display the detection result 179 | showImage(img, detected_object, scale, display); 180 | 181 | return ret_val; 182 | } 183 | 184 | /* Display the image with the detection result */ 185 | void showImage (Mat& img, vector detected_object, double scale, int display) { 186 | if (display != 1) { 187 | return; 188 | } 189 | 190 | const static Scalar colors[] = { CV_RGB(0,0,255), // colors of rectangles 191 | CV_RGB(0,128,255), 192 | CV_RGB(0,255,255), 193 | CV_RGB(0,255,0), 194 | CV_RGB(255,128,0), 195 | CV_RGB(255,255,0), 196 | CV_RGB(255,0,0), 197 | CV_RGB(255,0,255)}; 198 | 199 | int i = 0; 200 | for( vector::const_iterator r = detected_object.begin(); r != detected_object.end(); r++, i++ ) { 201 | Point center; 202 | Scalar color = colors[i%8]; 203 | 204 | rectangle( img, // draw rectangle 205 | cvPoint(cvRound(r->x * scale), 206 | cvRound(r->y * scale)), 207 | cvPoint(cvRound((r->x + r->width - 1) * scale), 208 | cvRound((r->y + r->height - 1) * scale)), color, 3, 8, 0); 209 | } 210 | 211 | cvNamedWindow("result", 1); 212 | Mat smallImg(cvRound (img.rows / scale), cvRound(img.cols / scale), CV_8UC1); 213 | resize(img, smallImg, smallImg.size(), 0, 0, INTER_LINEAR); 214 | cv::imshow("result", smallImg); // show the image 215 | 216 | waitKey(0); 217 | cvDestroyWindow("result"); // return 218 | 219 | return; 220 | } 221 | 222 | /* Calculate the confindence score */ 223 | /* currently I just use round # as conf_score */ 224 | int calConfScore(Mat& img, CascadeClassifier& cascade, vector detected_object) { 225 | cout << "Calculating conf score..." << endl; 226 | 227 | if (detected_object.size() != 1) // no object or more than one object 228 | return 0; 229 | 230 | // First round cropping 231 | vector::const_iterator r = detected_object.begin(); 232 | cv::Rect croppingRec = getCroppingRec(img, (int)r->x, (int)r->y, (int)r->width, (int)r->height); // Setup a rectangle (x, y, width, height) 233 | cv::Mat temp_img = img(croppingRec); // get the cropped image 234 | 235 | int round = 1; 236 | int min_neighbors = 1; 237 | while(true) { 238 | vector temp_obj; 239 | cascade.detectMultiScale( temp_img, temp_obj, // object detection 240 | 1.1, min_neighbors, 241 | 0 | CV_HAAR_SCALE_IMAGE, 242 | Size(30, 30) ); 243 | 244 | if (temp_obj.size() < 1) // exit if no object is found 245 | break; 246 | else if (temp_obj.size() > 1) { 247 | min_neighbors++; 248 | } 249 | else { // crop the image 250 | round++; 251 | // cout << "Round " << round << " min_neighbors " << min_neighbors << endl; // for debugging .... 252 | r = temp_obj.begin(); 253 | cv::Rect temp_croppingRec = getCroppingRec(temp_img, (int)r->x, (int)r->y, (int)r->width, (int)r->height); // Setup a rectangle (x, y, width, height) 254 | temp_img = temp_img(temp_croppingRec); // get the cropped image 255 | } 256 | } 257 | return round; 258 | } 259 | 260 | cv::Rect getCroppingRec (Mat& img, int x, int y, int width, int height) { 261 | int x_res = (x - MARGIN < 0) ? 0: (x - MARGIN); // 262 | int y_res = (y - MARGIN < 0) ? 0: (y - MARGIN); // 263 | int width_res = (x + width + MARGIN > img.cols) ? (img.cols - x_res - 1) : (x + width + MARGIN - x_res - 1); // 264 | int height_res = (y + height + MARGIN > img.rows) ? (img.rows - y_res - 1) : (y + height + MARGIN - y_res - 1); // 265 | // cout << "[Rec] x:" << x_res << " y:" << y_res << " width_res:" << width_res << " height_res:" << height_res << endl; // for debugging... 266 | // cout << "[Img] cols:" << img.cols << " rows:" << img.rows << endl; // for debugging... 267 | return Rect(x_res, y_res, width_res, height_res); 268 | } 269 | -------------------------------------------------------------------------------- /test/result/chase_res.txt: -------------------------------------------------------------------------------- 1 | 49/27 2 | 3 | 4 | 1 045_ChIJ9bxkiX-4woARTe5YctiLNz0_google_caddr.jpg 403/488/640/3/22 5 | 0 044_ChIJ947NjSPIwoARiua0D1A_sCw_google_paddr.jpg 101/233/640/15/22 6 | 1 081_ChIJdzgL0EK2woAR7WnJvoL2ZTY_google_paddr.jpg 197/291/640/4/23 7 | 1 084_ChIJd4Rqpim_woAReZChIVYRZag_google_paddr.jpg 23/176/640/2/21 8 | 0 099_ChIJOw_PToi3woAR6FVhM-CaYwE_google_caddr.jpg 438/608/640/3/20 9 | 1 033_4bad2513f964a5205a323be3_foursquare_paddr.jpg 157/257/640/4/23 10 | 0 070_5228c739fcf629660ea03971_foursquare_paddr.jpg 438/531/640/11/23 11 | 0 038_4eebaa19a69dd7c5b52fb312_foursquare_caddr.jpg 49/246/640/28/28 12 | 0 092_ChIJuZM0JbHHwoARgRYyzX826wo_google_caddr.jpg 69/262/640/4/20 13 | 1 019_ChIJ9TnFrTO5woARLEiZo9C4lVs_google_caddr.jpg 448/576/640/9/27 14 | 1 045_5057ae42e4b0dd7607edefe4_foursquare_paddr.jpg 433/518/640/2/22 15 | 1 019_ChIJ9TnFrTO5woARLEiZo9C4lVs_google_paddr.jpg 408/536/640/6/28 16 | 0 044_4fb5337e7beb65c72e11d89d_foursquare_paddr.jpg 71/212/640/10/30 17 | 1 028_ChIJF1lE0NvJwoARbnMDnufu0g0_google_paddr.jpg 91/281/640/6/35 18 | 1 064_4ca1f06303133704f96987d5_foursquare_caddr.jpg 147/332/640/5/36 19 | 0 049_4fb5337e7beb65c72e11d89d_foursquare_paddr.jpg 71/212/640/10/30 20 | 1 020_4b6cbec0f964a52022512ce3_foursquare_paddr.jpg 49/146/640/27/27 21 | 0 057_4a6dfe30f964a5208ad31fe3_foursquare_paddr.jpg 261/358/640/11/21 22 | 0 024_ChIJdx2BPSHJwoARGOyJ97D12fY_google_caddr.jpg 218/385/640/4/23 23 | 0 023_4f343aade4b00c3266d21369_foursquare_caddr.jpg 156/272/640/13/22 24 | 1 040_ChIJ2aQe_KW-woARaIz92JsgdP4_google_caddr.jpg 95/306/640/2/22 25 | 1 028_ChIJF1lE0NvJwoARbnMDnufu0g0_google_caddr.jpg 147/332/640/5/36 26 | 1 063_536ad77c11d28e8a762b4f09_foursquare_caddr.jpg 11/198/640/2/25 27 | 0 053_4b491723f964a520746526e3_foursquare_paddr.jpg 332/551/640/6/25 28 | 0 047_ChIJze1T37PHwoAReV6CSeoyyu4_google_paddr.jpg 63/193/640/7/27 29 | 1 031_ChIJ5VZLrym_woARH5sSizq1cUY_google_caddr.jpg 41/201/640/3/32 30 | 1 018_4b673433f964a5203c412be3_foursquare_paddr.jpg 57/241/640/4/30 31 | 1 050_5057ae42e4b0dd7607edefe4_foursquare_paddr.jpg 433/518/640/2/22 32 | 1 084_4fb5337e7beb65c72e11d89b_foursquare_caddr.jpg 40/201/640/2/29 33 | 0 078_4eebaa19a69dd7c5b52fb312_foursquare_caddr.jpg 49/246/640/28/28 34 | 0 047_4f343aade4b00c3266d21369_foursquare_caddr.jpg 156/272/640/13/22 35 | 1 064_ChIJF1lE0NvJwoARIQqiQSVHQTA_google_paddr.jpg 147/331/640/6/37 36 | 1 064_4ca1f06303133704f96987d5_foursquare_paddr.jpg 152/340/640/4/33 37 | 1 033_ChIJJTtF2EK2woART_N_OaqWqTY_google_paddr.jpg 95/190/640/4/22 38 | 1 020_ChIJNfnyMsC-woARzrsImaeqzRU_google_paddr.jpg 73/170/640/2/27 39 | 0 102_ChIJX-BKdkvEwoARghYm6zdbzu4_google_paddr.jpg 28/130/640/2/22 40 | 0 021_ChIJe7hHkCPIwoARuDX-G8CJjlA_google_paddr.jpg 313/506/640/7/22 41 | 1 083_ChIJ9TnFrTO5woARqPZ-Lmv6vrU_google_paddr.jpg 427/558/640/6/28 42 | 0 103_4b491723f964a520746526e3_foursquare_paddr.jpg 332/551/640/6/25 43 | 1 076_ChIJYc7-LTm5woARYdFNfW2SRBo_google_caddr.jpg 377/468/640/1/21 44 | 1 031_ChIJ5VZLrym_woARH5sSizq1cUY_google_paddr.jpg 31/189/640/2/23 45 | 1 078_ChIJF9QXelC_woARBFbTgYSYPpQ_google_caddr.jpg 129/370/640/24/31 46 | 1 080_ChIJ6VEmNb_OwoARBg3VqvMKqHs_google_paddr.jpg 284/443/640/3/20 47 | 0 083_4bd143bc462cb713f207da07_foursquare_paddr.jpg 442/535/640/8/22 48 | 0 104_ChIJh8PKwPm4woAR5dujV_F7Lv4_google_paddr.jpg 194/287/640/4/22 49 | 1 008_ChIJVYG0mj7JwoARmZsCY6COkN4_google_paddr.jpg 397/617/640/2/22 50 | 0 019_4bd143bc462cb713f207da07_foursquare_paddr.jpg 442/535/640/8/22 51 | 1 054_536ad77c11d28e8a762b4f09_foursquare_caddr.jpg 11/198/640/2/25 52 | 1 028_4ca1f06303133704f96987d5_foursquare_paddr.jpg 152/340/640/4/33 53 | 1 068_4beefdf8c80dc9286b5227e3_foursquare_caddr.jpg 273/469/640/15/24 54 | 1 084_ChIJd4Rqpim_woAReZChIVYRZag_google_caddr.jpg 39/200/640/2/32 55 | 0 070_ChIJ59qgrvm4woARbuBcHyCrxHk_google_paddr.jpg 194/287/640/4/22 56 | 1 020_4b6cbec0f964a52022512ce3_foursquare_caddr.jpg 432/511/640/3/20 57 | 1 082_ChIJtVcLqUG3woARtaSEOupb2XM_google_caddr.jpg 50/163/640/6/28 58 | 1 084_4fb5337e7beb65c72e11d89b_foursquare_paddr.jpg 42/196/640/3/30 59 | 1 039_ChIJ90gPEwbGwoARnoUvXq-7dqw_google_caddr.jpg 242/428/640/3/24 60 | 1 081_4bad2513f964a5205a323be3_foursquare_caddr.jpg 178/282/640/3/25 61 | 1 008_4beefdf8c80dc9286b5227e3_foursquare_caddr.jpg 273/469/640/15/24 62 | 0 013_4fb5337e7beb65c72e11d89d_foursquare_paddr.jpg 71/212/640/10/30 63 | 0 007_4b491723f964a520746526e3_foursquare_paddr.jpg 332/551/640/6/25 64 | 1 100_ChIJUeO0M8C-woARU5xxuwzKBHs_google_paddr.jpg 73/170/640/2/27 65 | 0 021_4fb5337e7beb65c72e11d89d_foursquare_paddr.jpg 71/212/640/10/30 66 | 1 063_ChIJ4wma2kfGwoARUfwTiSrq_3k_google_caddr.jpg 197/335/640/9/22 67 | 1 100_4b6cbec0f964a52022512ce3_foursquare_paddr.jpg 49/146/640/27/27 68 | 0 089_ChIJA5LTuky5woARxcs3_HG99DY_google_caddr.jpg 422/609/640/15/22 69 | 1 034_ChIJyxwlSr_OwoARlUoOc2uPQuc_google_paddr.jpg 284/440/640/6/26 70 | 0 023_ChIJZ1x7ObPHwoARf0CFYqEKzHc_google_paddr.jpg 179/288/640/7/22 71 | 1 031_4fb5337e7beb65c72e11d89b_foursquare_caddr.jpg 40/201/640/2/29 72 | 1 100_4b6cbec0f964a52022512ce3_foursquare_caddr.jpg 432/511/640/3/20 73 | 1 028_4ca1f06303133704f96987d5_foursquare_caddr.jpg 147/332/640/5/36 74 | 1 031_4fb5337e7beb65c72e11d89b_foursquare_paddr.jpg 42/196/640/3/30 75 | 1 038_ChIJH0BLZlC_woAR9jeMGbYSdzg_google_caddr.jpg 129/370/640/24/31 76 | 1 081_4bad2513f964a5205a323be3_foursquare_paddr.jpg 157/257/640/4/23 77 | 1 054_ChIJ5a1jd0jGwoARKq2v0fYN-bE_google_paddr.jpg 311/502/640/22/33 78 | 1 033_4bad2513f964a5205a323be3_foursquare_caddr.jpg 178/282/640/3/25 79 | 0 104_5228c739fcf629660ea03971_foursquare_paddr.jpg 438/531/640/11/23 80 | -------------------------------------------------------------------------------- /test/result/mobil_res.txt: -------------------------------------------------------------------------------- 1 | 19/3 2 | 3 | 1 035_4b57c0baf964a520573f28e3_foursquare_paddr.jpg 422/504/640/1/21 4 | 0 053_4c59e5c2ec2520a1de335012_foursquare_paddr.jpg 432/525/640/13/26 5 | 1 003_ChIJN4zo2hLHwoAREIGIs_ZV_OY_google_paddr.jpg 87/170/640/1/21 6 | 1 034_4dcf31cd22718eed7a4ce470_foursquare_caddr.jpg 333/418/640/1/22 7 | 1 029_516239eae4b0f064335ddd79_foursquare_caddr.jpg 232/328/640/2/24 8 | 1 037_4bcb3e020687ef3b2744ddcc_foursquare_paddr.jpg 277/398/640/5/31 9 | 1 023_ChIJ19Uid0-5woARpKLLGk6ygso_google_paddr.jpg 425/528/640/1/29 10 | 1 051_4c18065f1436a5936cbd8c75_foursquare_paddr.jpg 413/495/640/5/20 11 | 1 020_4ba7e081f964a52035bb39e3_foursquare_paddr.jpg 1/83/640/6/22 12 | 0 062_ChIJW8ZvEUG3woARmIE5PhW_SCk_google_caddr.jpg 256/352/640/3/20 13 | 1 022_ChIJcXMl2Ei_woARIVCuDLwmg9Q_google_paddr.jpg 66/160/640/7/26 14 | 1 027_ChIJQ3E4dDHJwoARfXGwak3FBxg_google_paddr.jpg 487/614/640/2/26 15 | 1 011_ChIJ1847voe4woARSY_s2LKYE5U_google_paddr.jpg 2/84/640/1/22 16 | 1 001_4dcf31cd22718eed7a4ce470_foursquare_caddr.jpg 333/418/640/1/22 17 | 1 002_4bcb3e020687ef3b2744ddcc_foursquare_paddr.jpg 277/398/640/5/31 18 | 1 018_ChIJwdhbmeHFwoAR91zOInQDgAE_google_paddr.jpg 24/138/640/2/25 19 | 1 012_ChIJbfn3nJ-5woAR7KCBC136wAc_google_paddr.jpg 104/222/640/2/30 20 | 1 020_4ba7e081f964a52035bb39e3_foursquare_caddr.jpg 64/146/640/1/21 21 | 1 014_4b57c0baf964a520573f28e3_foursquare_paddr.jpg 422/504/640/1/21 22 | 1 061_4b5193faf964a520f24f27e3_foursquare_paddr.jpg 18/130/640/15/29 23 | 0 019_4c59e5c2ec2520a1de335012_foursquare_paddr.jpg 432/525/640/13/26 24 | 1 027_4b8f2b47f964a5200b4c33e3_foursquare_paddr.jpg 336/467/640/3/30 25 | -------------------------------------------------------------------------------- /test/result/subway_res.txt: -------------------------------------------------------------------------------- 1 | 54/5 2 | 3 | 1 102ChIJqUDLH7u-woAR2Ow8ckaOaAs.jpg 123/306/640/2/21 4 | 1 008ChIJOaZZcqLHwoAR1zdH-1Kb4jo.jpg 244/328/640/1/21 5 | 1 096ChIJm0WnvsW-woARsp7ZUC4pC6M.jpg 437/528/640/3/24 6 | 1 107ChIJOaZZcqLHwoARfxDt4j2Mnbs.jpg 43/291/640/1/29 7 | 1 035ChIJsbE27UvGwoARKKHwz4QX7GI.jpg 227/388/640/132/30 8 | 1 139ChIJ-300paO-woARRJMN6pJg3nE.jpg 359/468/640/7/26 9 | 1 0000.jpg 835/946/1009/5/27 10 | 1 097ChIJNb0jGE6_woAR47QRL5uK6Rc.jpg 123/228/640/4/27 11 | 1 049ChIJCdoAnUe_woARVYq76G5m9xw.jpg 127/236/640/2/27 12 | 1 126ChIJkfUhAkrGwoARLr4-5TSQ6d4.jpg 290/404/640/4/27 13 | 1 1.jpg 710/833/863/11/29 14 | 1 022ChIJG8FbRr7HwoARRbcMPVJGBSM.jpg 107/377/640/2/20 15 | 1 090ChIJm_r1hkfHwoARNFUUHKQzUWo.jpg 101/204/640/5/25 16 | 1 051ChIJ9dBp1kTGwoAR8OiUeTmPLys.jpg 347/442/640/2/21 17 | 1 e2o.jpg 38/166/528/12/29 18 | 1 t.jpg 224/315/745/9/24 19 | 1 034ChIJEyiV87HJwoAR7QNf0QV7tNc.jpg 354/451/640/1/23 20 | 0 018ChIJZ1x7ObPHwoARf0CFYqEKzHc.jpg 188/375/640/2/23 21 | 1 077ChIJc_VrdT7JwoARNE-X3KyQ0Kk.jpg 203/317/640/1/23 22 | 1 081ChIJDx_VTdPAwoAR9k8JonLzNyA.jpg 139/231/640/1/23 23 | 1 001ChIJ7-59DTjGwoAR_BBnZQt9A7g.jpg 131/349/640/1/31 24 | 1 000ChIJVwcybwnIwoAR8y-bT8MtX4w.jpg 249/439/640/5/33 25 | 1 091ChIJuSprNHa5woARrY_YajLKgww.jpg 442/529/640/1/24 26 | 1 109ChIJB2ggJ0O2woARlfjP7mEhBS0.jpg 294/416/640/1/25 27 | 1 kc.jpg 181/270/669/1/24 28 | 1 09.jpg 580/672/850/2/21 29 | 1 062ChIJ92VhkBy3woAR67PCOZWyzHE.jpg 259/346/640/7/21 30 | 0 008ChIJaT3J2LPHwoAR58Oo8wHj-o0.jpg 61/174/640/4/24 31 | 1 030ChIJh2jhWk-4woARtgsdd4lMT3A.jpg 300/406/640/2/24 32 | 0 078ChIJLcN8O_24woARGEGnDTP5Iuw.jpg 327/416/640/6/24 33 | 1 027ChIJdSTZZyHJwoAR79UxAPLDEio.jpg 266/433/640/1/31 34 | 1 083ChIJ5-MpBAzHwoARA_9vInpA0K4.jpg 74/199/640/4/30 35 | 1 h.jpg 155/260/957/4/28 36 | 1 045ChIJmfeCa1HHwoARbPQGXWFFZZM.jpg 356/495/640/6/28 37 | 1 gg.jpg 56/155/1008/5/26 38 | 1 8.jpg 506/592/757/3/21 39 | 1 042ChIJh7FIUrTHwoARp_VawUlSQAY.jpg 500/616/640/2/25 40 | 1 113ChIJibi-4zTGwoARuEVzqYKLubI.jpg 214/344/640/1/26 41 | 1 456.jpg 106/187/909/2/20 42 | 1 093ChIJq31NgdW3woARuuFoWSXmwi8.jpg 147/246/640/3/24 43 | 1 085ChIJr0NtHt22woAR2i0UZkWNZow.jpg 305/466/640/2/31 44 | 1 025ChIJn1F9OWTHwoARmTAbjXA22JU.jpg 127/236/640/1/26 45 | 1 3456.jpg 40/136/909/2/28 46 | 1 059ChIJ1yOhZ6C4woARcXAG1MN3MQw.jpg 208/322/640/1/28 47 | 1 048ChIJO6KlsMu4woARgb3ZA_TCOYk.jpg 253/352/640/1/28 48 | 1 streetview.jpg 412/516/640/10/25 49 | 1 5.jpg 343/433/580/15/24 50 | 1 0.jpg 27/163/888/2/28 51 | 1 044ChIJJX5Mz7e5woARtiyqNpXiASU.jpg 224/314/640/1/23 52 | 1 037ChIJhx-PG6O4woARh-4X-iHZEjA.jpg 263/354/640/5/22 53 | 1 038ChIJmyx6O0vGwoARdUynsl7BK18.jpg 318/422/640/3/29 54 | 1 15.jpg 409/509/640/1/26 55 | 1 ss.jpg 285/370/895/5/23 56 | 0 087ChIJR5pEdoTHwoARt5a2U5-FwMI.jpg 376/475/640/5/21 57 | 1 125ChIJiX1fHlfIwoARmwX6NbZGvis.jpg 363/451/640/1/21 58 | 1 44.jpg 449/555/640/17/26 59 | 1 057ChIJc6sQSzm5woARVpucRuRhgwE.jpg 230/314/640/1/20 60 | 0 082ChIJEf8Ojmm5woAR1hhGkMNDixg.jpg 314/491/640/11/27 61 | 1 066ChIJeSv0F_jLwoARIwQeyoLcCf8.jpg 328/418/640/1/24 62 | -------------------------------------------------------------------------------- /test/result/walmart_res.txt: -------------------------------------------------------------------------------- 1 | 5/3 2 | 3 | 1 005_ChIJaU1LH1HGwoARr-aQDXZxtNQ_google_caddr.jpg 449/620/640/6/26 4 | 1 005_ChIJaU1LH1HGwoARr-aQDXZxtNQ_google_paddr.jpg 432/576/640/4/29 5 | 1 001_ChIJ39mf4lDGwoARkS_DfwJN01w_google_paddr.jpg 395/555/640/3/31 6 | 0 000_4b777d5cf964a520ab9d2ee3_foursquare_caddr.jpg 418/615/640/13/20 7 | 0 004_ChIJn-qmvB7MwoARxRin-62lRRk_google_caddr.jpg 345/424/640/1/20 8 | 1 001_ChIJ39mf4lDGwoARkS_DfwJN01w_google_caddr.jpg 459/617/640/6/24 9 | 0 000_ChIJHc0qzSi4woARHPOdS_yGaKQ_google_caddr.jpg 319/514/640/33/24 10 | 1 000_4b777d5cf964a520ab9d2ee3_foursquare_paddr.jpg 118/306/640/121/24 11 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m0/error_log_m_0.txt: -------------------------------------------------------------------------------- 1 | 000ChIJPTizN-HHwoARZAXgelmZEio.jpg 2 1 2 | 001ChIJpbaYbMrHwoARIpFOljWAr0k.jpg 6 1 3 | 003ChIJpYDm0YS4woARfyKUw1sJA74.jpg 1 1 4 | 004ChIJcVHLhVLGwoARfy5ZhYboW_Y.jpg 1 1 5 | 004ChIJFx6AdgHJwoARTPgILEh0adE.jpg 1 2 6 | 005ChIJp_uPn8zHwoARVm3zdCT-E1Q.jpg 1 1 7 | 005ChIJVYG0mj7JwoARmZsCY6COkN4.jpg 1 1 8 | 006ChIJpV-OzXvHwoARCfUQZLTzt1k.jpg 2 1 9 | 006ChIJWQ59CZnHwoARJgo-MvO0DZs.jpg 2 1 10 | 008ChIJaT3J2LPHwoAR58Oo8wHj-o0.jpg 4 2 11 | 009ChIJmSULw7bHwoARCPYQkbIrDaE.jpg 1 1 12 | 009ChIJnzzjM5O4woARjDmCq9q-v6Y.jpg 2 1 13 | 010ChIJ9dL0V6zAwoARERmRKMFRfgE.jpg 1 1 14 | 010ChIJJSOuYrTHwoARksxD_YMwY60.jpg 2 1 15 | 011ChIJ0xSI2Dm_woARhkaFSuaEVvY.jpg 1 1 16 | 011ChIJjZr7P6XHwoARpmt_Y-7n5u8.jpg 9 1 17 | 012ChIJWeuzWQ7MwoARaLFBTtMnXXY.jpg 2 1 18 | 014ChIJOw_PToi3woARwWuKwx5DVxo.jpg 3 1 19 | 016ChIJe7hHkCPIwoARuDX-G8CJjlA.jpg 1 1 20 | 016ChIJWfrr2KXIwoARTe-VX2YwzTM.jpg 6 1 21 | 017ChIJLcMN80W5woARoPH2_b-6iTA.jpg 2 1 22 | 018ChIJLYFYSNXHwoAR_oHI1OO3uHs.jpg 1 1 23 | 018ChIJZ1x7ObPHwoARf0CFYqEKzHc.jpg 2 3 24 | 019ChIJw2QeaCTIwoARk9mIy-qY5WA.jpg 2 2 25 | 020ChIJ8Wg5anzHwoAR33zUeVZhO-4.jpg 24 1 26 | 021ChIJIQG2CaXIwoARWBkMAOmJOgk.jpg 1 2 27 | 022ChIJ_Vft5SG5woARqjMaA_WBppM.jpg 7 2 28 | 023ChIJITq6HgbJwoARWQwFlOK3MjQ.jpg 6 1 29 | 026ChIJdxKRLnXGwoARjI8UNikSHLI.jpg 7 2 30 | 032ChIJ_X3CRLLHwoARRsxwPP4-MII.jpg 3 1 31 | 036ChIJlUWhbE7PwoARI6krxdXqqZ0.jpg 1 2 32 | 039ChIJa11iIsnHwoAROguBFABgyZ4.jpg 14 2 33 | 050ChIJ9dBp1kTGwoARQnas9tdpABU.jpg 2 1 34 | 052ChIJ4WFsSdbLwoARkeggGHbfIRA.jpg 1 1 35 | 053ChIJX5qZ0rHAwoARW4QO1e3939I.jpg 2 1 36 | 054ChIJqczfmi6_woARSEfPCl1ehhM.jpg 2 1 37 | 060ChIJ6_jAEma3woARt-R6xCLH2Pw.jpg 2 1 38 | 063ChIJf6brxg3GwoARRKeUHte0UzU.jpg 1 1 39 | 064ChIJj2qdPuHHwoAR7YhpFcHmKX8.jpg 2 1 40 | 065ChIJGygYPyW_woARvP1i9-4--_U.jpg 1 1 41 | 067ChIJTTL_4ia_woARS9ulIRdx0jY.jpg 1 1 42 | 068ChIJKZVBMcXHwoARlt3QYk5FHiA.jpg 3 1 43 | 071ChIJvaYTTTK5woARjkP0esESHqU.jpg 1 2 44 | 072ChIJaTj1ViS3woAR7Cnqsk1PsNo.jpg 1 1 45 | 074ChIJU6M9UZa5woAR_hnMXw1pHEo.jpg 1 1 46 | 082ChIJEf8Ojmm5woAR1hhGkMNDixg.jpg 11 3 47 | 087ChIJR5pEdoTHwoARt5a2U5-FwMI.jpg 5 2 48 | 088ChIJozY4Ca24woARdMmbj5qzN_w.jpg 3 1 49 | 092ChIJMUXJ7kW5woARqu-RJ8OBTnY.jpg 1 1 50 | 094ChIJRXOT2PC2woARoyey1xdkzvY.jpg 5 1 51 | 098ChIJDfK9oMPOwoARnMD0hmDj6j0.jpg 3 1 52 | 099ChIJD0REzcG-woARRr-3vCo0CiY.jpg 2 1 53 | 103ChIJB9Ct5sDJwoARq-BmepLlKE8.jpg 3 1 54 | 104ChIJvfkge0PJwoARUCkhygtz3o8.jpg 2 2 55 | 108ChIJ08ZfoIS4woARk-I3Y9112UU.jpg 1 1 56 | 112ChIJnzJjiky5woARuHYwBKt0Rfg.jpg 1 1 57 | 116ChIJvfEKBcPOwoARA8hH6xXurjE.jpg 2 1 58 | 119ChIJPZqNvJ_GwoARXR8sFFFRGnc.jpg 1 1 59 | 120ChIJZ59RnYzLwoARQ0C5zmSo1zc.jpg 1 1 60 | 122ChIJa1akcpHHwoARW1jn-V70s0Q.jpg 3 1 61 | 123ChIJNyr-zbfHwoARE0hkknhfNIk.jpg 1 1 62 | 128ChIJISMgJqzHwoAROXwESie16jI.jpg 2 1 63 | 129ChIJvSTdgFLGwoARYb8evIiy_N4.jpg 1 1 64 | 130ChIJM56bVADJwoARz5oZ34AKaLA.jpg 4 1 65 | 132ChIJh8kCLHrHwoARpgxpUKaLFxg.jpg 1 1 66 | 134ChIJ1bJpAp_JwoAR4usalkpiiEI.jpg 3 1 67 | 135ChIJa6FMmju_woARo4nz-cfhrFE.jpg 5 1 68 | f.jpg 1 1 69 | kkp.jpg 1 1 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m0/good_log_m_0.txt: -------------------------------------------------------------------------------- 1 | 0.jpg 2 2 2 | 0000.jpg 5 3 3 | 000ChIJVwcybwnIwoAR8y-bT8MtX4w.jpg 5 3 4 | 001ChIJ7-59DTjGwoAR_BBnZQt9A7g.jpg 1 3 5 | 003ChIJbYs1LOHHwoAREWg_SczZ3Fg.jpg 2 1 6 | 008ChIJOaZZcqLHwoAR1zdH-1Kb4jo.jpg 1 1 7 | 021ChIJ9fitaNrJwoARB1mBW0RPmgQ.jpg 4 1 8 | 022ChIJG8FbRr7HwoARRbcMPVJGBSM.jpg 2 2 9 | 025ChIJn1F9OWTHwoARmTAbjXA22JU.jpg 1 2 10 | 027ChIJdSTZZyHJwoAR79UxAPLDEio.jpg 1 3 11 | 029ChIJqdY5vLXJwoARBOjJBEJ8tT8.jpg 1 1 12 | 030ChIJh2jhWk-4woARtgsdd4lMT3A.jpg 2 2 13 | 034ChIJEyiV87HJwoAR7QNf0QV7tNc.jpg 1 2 14 | 035ChIJsbE27UvGwoARKKHwz4QX7GI.jpg 132 3 15 | 037ChIJhx-PG6O4woARh-4X-iHZEjA.jpg 5 2 16 | 038ChIJmyx6O0vGwoARdUynsl7BK18.jpg 3 2 17 | 042ChIJh7FIUrTHwoARp_VawUlSQAY.jpg 2 2 18 | 044ChIJJX5Mz7e5woARtiyqNpXiASU.jpg 1 2 19 | 045ChIJmfeCa1HHwoARbPQGXWFFZZM.jpg 6 3 20 | 048ChIJO6KlsMu4woARgb3ZA_TCOYk.jpg 1 2 21 | 049ChIJCdoAnUe_woARVYq76G5m9xw.jpg 2 2 22 | 051ChIJ9dBp1kTGwoAR8OiUeTmPLys.jpg 2 2 23 | 057ChIJc6sQSzm5woARVpucRuRhgwE.jpg 1 1 24 | 059ChIJ1yOhZ6C4woARcXAG1MN3MQw.jpg 1 3 25 | 062ChIJ92VhkBy3woAR67PCOZWyzHE.jpg 7 2 26 | 066ChIJeSv0F_jLwoARIwQeyoLcCf8.jpg 1 2 27 | 077ChIJc_VrdT7JwoARNE-X3KyQ0Kk.jpg 1 2 28 | 081ChIJDx_VTdPAwoAR9k8JonLzNyA.jpg 1 2 29 | 083ChIJ5-MpBAzHwoARA_9vInpA0K4.jpg 4 3 30 | 085ChIJr0NtHt22woAR2i0UZkWNZow.jpg 2 3 31 | 09.jpg 2 1 32 | 090ChIJm_r1hkfHwoARNFUUHKQzUWo.jpg 5 2 33 | 091ChIJuSprNHa5woARrY_YajLKgww.jpg 1 2 34 | 093ChIJq31NgdW3woARuuFoWSXmwi8.jpg 3 2 35 | 095ChIJZZsgOTy_woARlm3LojBYUNw.jpg 1 2 36 | 096ChIJm0WnvsW-woARsp7ZUC4pC6M.jpg 3 2 37 | 097ChIJNb0jGE6_woAR47QRL5uK6Rc.jpg 4 3 38 | 1.jpg 11 3 39 | 10.jpg 1 1 40 | 101ChIJ5b7mJVa_woAR7zoHmSoFn68.jpg 2 2 41 | 102ChIJqUDLH7u-woAR2Ow8ckaOaAs.jpg 2 2 42 | 107ChIJOaZZcqLHwoARfxDt4j2Mnbs.jpg 1 3 43 | 109ChIJB2ggJ0O2woARlfjP7mEhBS0.jpg 1 2 44 | 111ChIJ5yvPD-C4woAReQEkDjKqjQE.jpg 2 2 45 | 113ChIJibi-4zTGwoARuEVzqYKLubI.jpg 1 3 46 | 114ChIJlzW3Sxq5woARVYYzeHuMbBk.jpg 2 2 47 | 115ChIJj0Ms6K25woARyTO--9B6Co4.jpg 1 2 48 | 124ChIJPXyj0C7GwoARVlzs8rKqdZg.jpg 2 1 49 | 125ChIJiX1fHlfIwoARmwX6NbZGvis.jpg 1 1 50 | 126ChIJkfUhAkrGwoARLr4-5TSQ6d4.jpg 4 3 51 | 131ChIJR-JszWO4woAR9HJq_9vW5I4.jpg 2 2 52 | 133ChIJqQf5j7nIwoARgDlVi-YsAoQ.jpg 1 1 53 | 137ChIJv-hJDV25woARFNoRBT-5I2E.jpg 2 1 54 | 139ChIJ-300paO-woARRJMN6pJg3nE.jpg 7 2 55 | 15.jpg 1 2 56 | 3456.jpg 2 2 57 | 4.jpg 1 1 58 | 44.jpg 17 2 59 | 456.jpg 2 1 60 | 5.jpg 15 1 61 | 77777.jpg 3 1 62 | 8.jpg 3 1 63 | e2o.jpg 12 3 64 | gg.jpg 5 2 65 | h.jpg 4 3 66 | kc.jpg 1 1 67 | ss.jpg 5 2 68 | streetview.jpg 10 2 69 | t.jpg 9 2 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m10/error_log_m_10.txt: -------------------------------------------------------------------------------- 1 | 000ChIJPTizN-HHwoARZAXgelmZEio.jpg 2 1 2 | 001ChIJpbaYbMrHwoARIpFOljWAr0k.jpg 6 5 3 | 003ChIJpYDm0YS4woARfyKUw1sJA74.jpg 1 3 4 | 004ChIJcVHLhVLGwoARfy5ZhYboW_Y.jpg 1 1 5 | 004ChIJFx6AdgHJwoARTPgILEh0adE.jpg 1 1 6 | 005ChIJp_uPn8zHwoARVm3zdCT-E1Q.jpg 1 2 7 | 005ChIJVYG0mj7JwoARmZsCY6COkN4.jpg 1 1 8 | 006ChIJpV-OzXvHwoARCfUQZLTzt1k.jpg 2 1 9 | 006ChIJWQ59CZnHwoARJgo-MvO0DZs.jpg 2 2 10 | 008ChIJaT3J2LPHwoAR58Oo8wHj-o0.jpg 4 7 11 | 009ChIJmSULw7bHwoARCPYQkbIrDaE.jpg 1 1 12 | 009ChIJnzzjM5O4woARjDmCq9q-v6Y.jpg 2 1 13 | 010ChIJ9dL0V6zAwoARERmRKMFRfgE.jpg 1 1 14 | 010ChIJJSOuYrTHwoARksxD_YMwY60.jpg 2 3 15 | 011ChIJ0xSI2Dm_woARhkaFSuaEVvY.jpg 1 1 16 | 011ChIJjZr7P6XHwoARpmt_Y-7n5u8.jpg 9 6 17 | 012ChIJWeuzWQ7MwoARaLFBTtMnXXY.jpg 2 1 18 | 014ChIJOw_PToi3woARwWuKwx5DVxo.jpg 3 1 19 | 016ChIJe7hHkCPIwoARuDX-G8CJjlA.jpg 1 1 20 | 016ChIJWfrr2KXIwoARTe-VX2YwzTM.jpg 6 1 21 | 017ChIJLcMN80W5woARoPH2_b-6iTA.jpg 2 2 22 | 018ChIJLYFYSNXHwoAR_oHI1OO3uHs.jpg 1 1 23 | 018ChIJZ1x7ObPHwoARf0CFYqEKzHc.jpg 2 9 24 | 019ChIJw2QeaCTIwoARk9mIy-qY5WA.jpg 2 3 25 | 020ChIJ8Wg5anzHwoAR33zUeVZhO-4.jpg 24 3 26 | 021ChIJIQG2CaXIwoARWBkMAOmJOgk.jpg 1 3 27 | 022ChIJ_Vft5SG5woARqjMaA_WBppM.jpg 7 3 28 | 023ChIJITq6HgbJwoARWQwFlOK3MjQ.jpg 6 3 29 | 026ChIJdxKRLnXGwoARjI8UNikSHLI.jpg 7 10 30 | 032ChIJ_X3CRLLHwoARRsxwPP4-MII.jpg 3 1 31 | 036ChIJlUWhbE7PwoARI6krxdXqqZ0.jpg 1 2 32 | 039ChIJa11iIsnHwoAROguBFABgyZ4.jpg 14 3 33 | 050ChIJ9dBp1kTGwoARQnas9tdpABU.jpg 2 3 34 | 052ChIJ4WFsSdbLwoARkeggGHbfIRA.jpg 1 1 35 | 053ChIJX5qZ0rHAwoARW4QO1e3939I.jpg 2 2 36 | 054ChIJqczfmi6_woARSEfPCl1ehhM.jpg 2 3 37 | 060ChIJ6_jAEma3woARt-R6xCLH2Pw.jpg 2 2 38 | 063ChIJf6brxg3GwoARRKeUHte0UzU.jpg 1 4 39 | 064ChIJj2qdPuHHwoAR7YhpFcHmKX8.jpg 2 1 40 | 065ChIJGygYPyW_woARvP1i9-4--_U.jpg 1 1 41 | 067ChIJTTL_4ia_woARS9ulIRdx0jY.jpg 1 1 42 | 068ChIJKZVBMcXHwoARlt3QYk5FHiA.jpg 3 2 43 | 071ChIJvaYTTTK5woARjkP0esESHqU.jpg 1 3 44 | 072ChIJaTj1ViS3woAR7Cnqsk1PsNo.jpg 1 1 45 | 074ChIJU6M9UZa5woAR_hnMXw1pHEo.jpg 1 2 46 | 082ChIJEf8Ojmm5woAR1hhGkMNDixg.jpg 11 11 47 | 087ChIJR5pEdoTHwoARt5a2U5-FwMI.jpg 5 3 48 | 088ChIJozY4Ca24woARdMmbj5qzN_w.jpg 3 3 49 | 092ChIJMUXJ7kW5woARqu-RJ8OBTnY.jpg 1 1 50 | 094ChIJRXOT2PC2woARoyey1xdkzvY.jpg 5 3 51 | 098ChIJDfK9oMPOwoARnMD0hmDj6j0.jpg 3 1 52 | 099ChIJD0REzcG-woARRr-3vCo0CiY.jpg 2 6 53 | 103ChIJB9Ct5sDJwoARq-BmepLlKE8.jpg 3 2 54 | 104ChIJvfkge0PJwoARUCkhygtz3o8.jpg 2 1 55 | 108ChIJ08ZfoIS4woARk-I3Y9112UU.jpg 1 1 56 | 112ChIJnzJjiky5woARuHYwBKt0Rfg.jpg 1 2 57 | 116ChIJvfEKBcPOwoARA8hH6xXurjE.jpg 2 3 58 | 119ChIJPZqNvJ_GwoARXR8sFFFRGnc.jpg 1 1 59 | 120ChIJZ59RnYzLwoARQ0C5zmSo1zc.jpg 1 1 60 | 122ChIJa1akcpHHwoARW1jn-V70s0Q.jpg 3 1 61 | 123ChIJNyr-zbfHwoARE0hkknhfNIk.jpg 1 1 62 | 128ChIJISMgJqzHwoAROXwESie16jI.jpg 2 2 63 | 129ChIJvSTdgFLGwoARYb8evIiy_N4.jpg 1 1 64 | 130ChIJM56bVADJwoARz5oZ34AKaLA.jpg 4 1 65 | 132ChIJh8kCLHrHwoARpgxpUKaLFxg.jpg 1 1 66 | 134ChIJ1bJpAp_JwoAR4usalkpiiEI.jpg 3 7 67 | 135ChIJa6FMmju_woARo4nz-cfhrFE.jpg 5 2 68 | f.jpg 1 2 69 | kkp.jpg 1 1 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m10/good_log_m_10.txt: -------------------------------------------------------------------------------- 1 | 0.jpg 2 17 2 | 0000.jpg 5 13 3 | 000ChIJVwcybwnIwoAR8y-bT8MtX4w.jpg 5 14 4 | 001ChIJ7-59DTjGwoAR_BBnZQt9A7g.jpg 1 16 5 | 003ChIJbYs1LOHHwoAREWg_SczZ3Fg.jpg 2 1 6 | 008ChIJOaZZcqLHwoAR1zdH-1Kb4jo.jpg 1 11 7 | 021ChIJ9fitaNrJwoARB1mBW0RPmgQ.jpg 4 3 8 | 022ChIJG8FbRr7HwoARRbcMPVJGBSM.jpg 2 11 9 | 025ChIJn1F9OWTHwoARmTAbjXA22JU.jpg 1 13 10 | 027ChIJdSTZZyHJwoAR79UxAPLDEio.jpg 1 7 11 | 029ChIJqdY5vLXJwoARBOjJBEJ8tT8.jpg 1 1 12 | 030ChIJh2jhWk-4woARtgsdd4lMT3A.jpg 2 14 13 | 034ChIJEyiV87HJwoAR7QNf0QV7tNc.jpg 1 9 14 | 035ChIJsbE27UvGwoARKKHwz4QX7GI.jpg 132 15 15 | 037ChIJhx-PG6O4woARh-4X-iHZEjA.jpg 5 12 16 | 038ChIJmyx6O0vGwoARdUynsl7BK18.jpg 3 17 17 | 042ChIJh7FIUrTHwoARp_VawUlSQAY.jpg 2 17 18 | 044ChIJJX5Mz7e5woARtiyqNpXiASU.jpg 1 12 19 | 045ChIJmfeCa1HHwoARbPQGXWFFZZM.jpg 6 13 20 | 048ChIJO6KlsMu4woARgb3ZA_TCOYk.jpg 1 14 21 | 049ChIJCdoAnUe_woARVYq76G5m9xw.jpg 2 15 22 | 051ChIJ9dBp1kTGwoAR8OiUeTmPLys.jpg 2 9 23 | 057ChIJc6sQSzm5woARVpucRuRhgwE.jpg 1 12 24 | 059ChIJ1yOhZ6C4woARcXAG1MN3MQw.jpg 1 13 25 | 062ChIJ92VhkBy3woAR67PCOZWyzHE.jpg 7 12 26 | 066ChIJeSv0F_jLwoARIwQeyoLcCf8.jpg 1 13 27 | 077ChIJc_VrdT7JwoARNE-X3KyQ0Kk.jpg 1 7 28 | 081ChIJDx_VTdPAwoAR9k8JonLzNyA.jpg 1 11 29 | 083ChIJ5-MpBAzHwoARA_9vInpA0K4.jpg 4 19 30 | 085ChIJr0NtHt22woAR2i0UZkWNZow.jpg 2 17 31 | 09.jpg 2 9 32 | 090ChIJm_r1hkfHwoARNFUUHKQzUWo.jpg 5 2 33 | 091ChIJuSprNHa5woARrY_YajLKgww.jpg 1 14 34 | 093ChIJq31NgdW3woARuuFoWSXmwi8.jpg 3 13 35 | 095ChIJZZsgOTy_woARlm3LojBYUNw.jpg 1 5 36 | 096ChIJm0WnvsW-woARsp7ZUC4pC6M.jpg 3 14 37 | 097ChIJNb0jGE6_woAR47QRL5uK6Rc.jpg 4 12 38 | 1.jpg 11 17 39 | 10.jpg 1 5 40 | 101ChIJ5b7mJVa_woAR7zoHmSoFn68.jpg 2 7 41 | 102ChIJqUDLH7u-woAR2Ow8ckaOaAs.jpg 2 4 42 | 107ChIJOaZZcqLHwoARfxDt4j2Mnbs.jpg 1 12 43 | 109ChIJB2ggJ0O2woARlfjP7mEhBS0.jpg 1 14 44 | 111ChIJ5yvPD-C4woAReQEkDjKqjQE.jpg 2 4 45 | 113ChIJibi-4zTGwoARuEVzqYKLubI.jpg 1 15 46 | 114ChIJlzW3Sxq5woARVYYzeHuMbBk.jpg 2 4 47 | 115ChIJj0Ms6K25woARyTO--9B6Co4.jpg 1 7 48 | 124ChIJPXyj0C7GwoARVlzs8rKqdZg.jpg 2 1 49 | 125ChIJiX1fHlfIwoARmwX6NbZGvis.jpg 1 11 50 | 126ChIJkfUhAkrGwoARLr4-5TSQ6d4.jpg 4 15 51 | 131ChIJR-JszWO4woAR9HJq_9vW5I4.jpg 2 2 52 | 133ChIJqQf5j7nIwoARgDlVi-YsAoQ.jpg 1 2 53 | 137ChIJv-hJDV25woARFNoRBT-5I2E.jpg 2 2 54 | 139ChIJ-300paO-woARRJMN6pJg3nE.jpg 7 14 55 | 15.jpg 1 12 56 | 3456.jpg 2 16 57 | 4.jpg 1 4 58 | 44.jpg 17 14 59 | 456.jpg 2 1 60 | 5.jpg 15 12 61 | 77777.jpg 3 1 62 | 8.jpg 3 11 63 | e2o.jpg 12 14 64 | gg.jpg 5 14 65 | h.jpg 4 17 66 | kc.jpg 1 13 67 | ss.jpg 5 12 68 | streetview.jpg 10 12 69 | t.jpg 9 13 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m15/error_log_m_15.txt: -------------------------------------------------------------------------------- 1 | 000ChIJPTizN-HHwoARZAXgelmZEio.jpg 2 1 2 | 001ChIJpbaYbMrHwoARIpFOljWAr0k.jpg 6 9 3 | 003ChIJpYDm0YS4woARfyKUw1sJA74.jpg 1 15 4 | 004ChIJcVHLhVLGwoARfy5ZhYboW_Y.jpg 1 2 5 | 004ChIJFx6AdgHJwoARTPgILEh0adE.jpg 1 3 6 | 005ChIJp_uPn8zHwoARVm3zdCT-E1Q.jpg 1 2 7 | 005ChIJVYG0mj7JwoARmZsCY6COkN4.jpg 1 2 8 | 006ChIJpV-OzXvHwoARCfUQZLTzt1k.jpg 2 2 9 | 006ChIJWQ59CZnHwoARJgo-MvO0DZs.jpg 2 1 10 | 008ChIJaT3J2LPHwoAR58Oo8wHj-o0.jpg 4 14 11 | 009ChIJmSULw7bHwoARCPYQkbIrDaE.jpg 1 2 12 | 009ChIJnzzjM5O4woARjDmCq9q-v6Y.jpg 2 2 13 | 010ChIJ9dL0V6zAwoARERmRKMFRfgE.jpg 1 1 14 | 010ChIJJSOuYrTHwoARksxD_YMwY60.jpg 2 1 15 | 011ChIJ0xSI2Dm_woARhkaFSuaEVvY.jpg 1 1 16 | 011ChIJjZr7P6XHwoARpmt_Y-7n5u8.jpg 9 7 17 | 012ChIJWeuzWQ7MwoARaLFBTtMnXXY.jpg 2 1 18 | 014ChIJOw_PToi3woARwWuKwx5DVxo.jpg 3 5 19 | 016ChIJe7hHkCPIwoARuDX-G8CJjlA.jpg 1 1 20 | 016ChIJWfrr2KXIwoARTe-VX2YwzTM.jpg 6 1 21 | 017ChIJLcMN80W5woARoPH2_b-6iTA.jpg 2 2 22 | 018ChIJLYFYSNXHwoAR_oHI1OO3uHs.jpg 1 2 23 | 018ChIJZ1x7ObPHwoARf0CFYqEKzHc.jpg 2 12 24 | 019ChIJw2QeaCTIwoARk9mIy-qY5WA.jpg 2 2 25 | 020ChIJ8Wg5anzHwoAR33zUeVZhO-4.jpg 24 8 26 | 021ChIJIQG2CaXIwoARWBkMAOmJOgk.jpg 1 1 27 | 022ChIJ_Vft5SG5woARqjMaA_WBppM.jpg 7 6 28 | 023ChIJITq6HgbJwoARWQwFlOK3MjQ.jpg 6 2 29 | 026ChIJdxKRLnXGwoARjI8UNikSHLI.jpg 7 17 30 | 032ChIJ_X3CRLLHwoARRsxwPP4-MII.jpg 3 4 31 | 036ChIJlUWhbE7PwoARI6krxdXqqZ0.jpg 1 2 32 | 039ChIJa11iIsnHwoAROguBFABgyZ4.jpg 14 7 33 | 050ChIJ9dBp1kTGwoARQnas9tdpABU.jpg 2 1 34 | 052ChIJ4WFsSdbLwoARkeggGHbfIRA.jpg 1 1 35 | 053ChIJX5qZ0rHAwoARW4QO1e3939I.jpg 2 1 36 | 054ChIJqczfmi6_woARSEfPCl1ehhM.jpg 2 1 37 | 060ChIJ6_jAEma3woARt-R6xCLH2Pw.jpg 2 2 38 | 063ChIJf6brxg3GwoARRKeUHte0UzU.jpg 1 1 39 | 064ChIJj2qdPuHHwoAR7YhpFcHmKX8.jpg 2 2 40 | 065ChIJGygYPyW_woARvP1i9-4--_U.jpg 1 1 41 | 067ChIJTTL_4ia_woARS9ulIRdx0jY.jpg 1 1 42 | 068ChIJKZVBMcXHwoARlt3QYk5FHiA.jpg 3 1 43 | 071ChIJvaYTTTK5woARjkP0esESHqU.jpg 1 4 44 | 072ChIJaTj1ViS3woAR7Cnqsk1PsNo.jpg 1 1 45 | 074ChIJU6M9UZa5woAR_hnMXw1pHEo.jpg 1 15 46 | 082ChIJEf8Ojmm5woAR1hhGkMNDixg.jpg 11 19 47 | 087ChIJR5pEdoTHwoARt5a2U5-FwMI.jpg 5 2 48 | 088ChIJozY4Ca24woARdMmbj5qzN_w.jpg 3 1 49 | 092ChIJMUXJ7kW5woARqu-RJ8OBTnY.jpg 1 3 50 | 094ChIJRXOT2PC2woARoyey1xdkzvY.jpg 5 9 51 | 098ChIJDfK9oMPOwoARnMD0hmDj6j0.jpg 3 1 52 | 099ChIJD0REzcG-woARRr-3vCo0CiY.jpg 2 10 53 | 103ChIJB9Ct5sDJwoARq-BmepLlKE8.jpg 3 2 54 | 104ChIJvfkge0PJwoARUCkhygtz3o8.jpg 2 2 55 | 108ChIJ08ZfoIS4woARk-I3Y9112UU.jpg 1 3 56 | 112ChIJnzJjiky5woARuHYwBKt0Rfg.jpg 1 8 57 | 116ChIJvfEKBcPOwoARA8hH6xXurjE.jpg 2 2 58 | 119ChIJPZqNvJ_GwoARXR8sFFFRGnc.jpg 1 1 59 | 120ChIJZ59RnYzLwoARQ0C5zmSo1zc.jpg 1 1 60 | 122ChIJa1akcpHHwoARW1jn-V70s0Q.jpg 3 1 61 | 123ChIJNyr-zbfHwoARE0hkknhfNIk.jpg 1 1 62 | 128ChIJISMgJqzHwoAROXwESie16jI.jpg 2 3 63 | 129ChIJvSTdgFLGwoARYb8evIiy_N4.jpg 1 1 64 | 130ChIJM56bVADJwoARz5oZ34AKaLA.jpg 4 6 65 | 132ChIJh8kCLHrHwoARpgxpUKaLFxg.jpg 1 1 66 | 134ChIJ1bJpAp_JwoAR4usalkpiiEI.jpg 3 14 67 | 135ChIJa6FMmju_woARo4nz-cfhrFE.jpg 5 3 68 | f.jpg 1 7 69 | kkp.jpg 1 1 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m15/good_log_m_15.txt: -------------------------------------------------------------------------------- 1 | 0.jpg 2 21 2 | 0000.jpg 5 20 3 | 000ChIJVwcybwnIwoAR8y-bT8MtX4w.jpg 5 25 4 | 001ChIJ7-59DTjGwoAR_BBnZQt9A7g.jpg 1 24 5 | 003ChIJbYs1LOHHwoAREWg_SczZ3Fg.jpg 2 1 6 | 008ChIJOaZZcqLHwoAR1zdH-1Kb4jo.jpg 1 17 7 | 021ChIJ9fitaNrJwoARB1mBW0RPmgQ.jpg 4 6 8 | 022ChIJG8FbRr7HwoARRbcMPVJGBSM.jpg 2 10 9 | 025ChIJn1F9OWTHwoARmTAbjXA22JU.jpg 1 20 10 | 027ChIJdSTZZyHJwoAR79UxAPLDEio.jpg 1 19 11 | 029ChIJqdY5vLXJwoARBOjJBEJ8tT8.jpg 1 11 12 | 030ChIJh2jhWk-4woARtgsdd4lMT3A.jpg 2 18 13 | 034ChIJEyiV87HJwoAR7QNf0QV7tNc.jpg 1 17 14 | 035ChIJsbE27UvGwoARKKHwz4QX7GI.jpg 132 23 15 | 037ChIJhx-PG6O4woARh-4X-iHZEjA.jpg 5 14 16 | 038ChIJmyx6O0vGwoARdUynsl7BK18.jpg 3 24 17 | 042ChIJh7FIUrTHwoARp_VawUlSQAY.jpg 2 17 18 | 044ChIJJX5Mz7e5woARtiyqNpXiASU.jpg 1 18 19 | 045ChIJmfeCa1HHwoARbPQGXWFFZZM.jpg 6 22 20 | 048ChIJO6KlsMu4woARgb3ZA_TCOYk.jpg 1 21 21 | 049ChIJCdoAnUe_woARVYq76G5m9xw.jpg 2 20 22 | 051ChIJ9dBp1kTGwoAR8OiUeTmPLys.jpg 2 15 23 | 057ChIJc6sQSzm5woARVpucRuRhgwE.jpg 1 16 24 | 059ChIJ1yOhZ6C4woARcXAG1MN3MQw.jpg 1 23 25 | 062ChIJ92VhkBy3woAR67PCOZWyzHE.jpg 7 17 26 | 066ChIJeSv0F_jLwoARIwQeyoLcCf8.jpg 1 19 27 | 077ChIJc_VrdT7JwoARNE-X3KyQ0Kk.jpg 1 5 28 | 081ChIJDx_VTdPAwoAR9k8JonLzNyA.jpg 1 19 29 | 083ChIJ5-MpBAzHwoARA_9vInpA0K4.jpg 4 21 30 | 085ChIJr0NtHt22woAR2i0UZkWNZow.jpg 2 23 31 | 09.jpg 2 14 32 | 090ChIJm_r1hkfHwoARNFUUHKQzUWo.jpg 5 14 33 | 091ChIJuSprNHa5woARrY_YajLKgww.jpg 1 19 34 | 093ChIJq31NgdW3woARuuFoWSXmwi8.jpg 3 21 35 | 095ChIJZZsgOTy_woARlm3LojBYUNw.jpg 1 8 36 | 096ChIJm0WnvsW-woARsp7ZUC4pC6M.jpg 3 19 37 | 097ChIJNb0jGE6_woAR47QRL5uK6Rc.jpg 4 20 38 | 1.jpg 11 20 39 | 10.jpg 1 14 40 | 101ChIJ5b7mJVa_woAR7zoHmSoFn68.jpg 2 13 41 | 102ChIJqUDLH7u-woAR2Ow8ckaOaAs.jpg 2 14 42 | 107ChIJOaZZcqLHwoARfxDt4j2Mnbs.jpg 1 22 43 | 109ChIJB2ggJ0O2woARlfjP7mEhBS0.jpg 1 21 44 | 111ChIJ5yvPD-C4woAReQEkDjKqjQE.jpg 2 2 45 | 113ChIJibi-4zTGwoARuEVzqYKLubI.jpg 1 22 46 | 114ChIJlzW3Sxq5woARVYYzeHuMbBk.jpg 2 1 47 | 115ChIJj0Ms6K25woARyTO--9B6Co4.jpg 1 14 48 | 124ChIJPXyj0C7GwoARVlzs8rKqdZg.jpg 2 1 49 | 125ChIJiX1fHlfIwoARmwX6NbZGvis.jpg 1 18 50 | 126ChIJkfUhAkrGwoARLr4-5TSQ6d4.jpg 4 23 51 | 131ChIJR-JszWO4woAR9HJq_9vW5I4.jpg 2 2 52 | 133ChIJqQf5j7nIwoARgDlVi-YsAoQ.jpg 1 2 53 | 137ChIJv-hJDV25woARFNoRBT-5I2E.jpg 2 5 54 | 139ChIJ-300paO-woARRJMN6pJg3nE.jpg 7 16 55 | 15.jpg 1 21 56 | 3456.jpg 2 22 57 | 4.jpg 1 16 58 | 44.jpg 17 21 59 | 456.jpg 2 10 60 | 5.jpg 15 17 61 | 77777.jpg 3 1 62 | 8.jpg 3 14 63 | e2o.jpg 12 21 64 | gg.jpg 5 20 65 | h.jpg 4 22 66 | kc.jpg 1 19 67 | ss.jpg 5 18 68 | streetview.jpg 10 19 69 | t.jpg 9 19 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m20/error_log_m_20.txt: -------------------------------------------------------------------------------- 1 | 000ChIJPTizN-HHwoARZAXgelmZEio.jpg 2 3 2 | 001ChIJpbaYbMrHwoARIpFOljWAr0k.jpg 6 7 3 | 003ChIJpYDm0YS4woARfyKUw1sJA74.jpg 1 1 4 | 004ChIJcVHLhVLGwoARfy5ZhYboW_Y.jpg 1 1 5 | 004ChIJFx6AdgHJwoARTPgILEh0adE.jpg 1 2 6 | 005ChIJp_uPn8zHwoARVm3zdCT-E1Q.jpg 1 1 7 | 005ChIJVYG0mj7JwoARmZsCY6COkN4.jpg 1 2 8 | 006ChIJpV-OzXvHwoARCfUQZLTzt1k.jpg 2 2 9 | 006ChIJWQ59CZnHwoARJgo-MvO0DZs.jpg 2 1 10 | 008ChIJaT3J2LPHwoAR58Oo8wHj-o0.jpg 4 24 11 | 009ChIJmSULw7bHwoARCPYQkbIrDaE.jpg 1 1 12 | 009ChIJnzzjM5O4woARjDmCq9q-v6Y.jpg 2 1 13 | 010ChIJ9dL0V6zAwoARERmRKMFRfgE.jpg 1 1 14 | 010ChIJJSOuYrTHwoARksxD_YMwY60.jpg 2 1 15 | 011ChIJ0xSI2Dm_woARhkaFSuaEVvY.jpg 1 2 16 | 011ChIJjZr7P6XHwoARpmt_Y-7n5u8.jpg 9 7 17 | 012ChIJWeuzWQ7MwoARaLFBTtMnXXY.jpg 2 1 18 | 014ChIJOw_PToi3woARwWuKwx5DVxo.jpg 3 14 19 | 016ChIJe7hHkCPIwoARuDX-G8CJjlA.jpg 1 2 20 | 016ChIJWfrr2KXIwoARTe-VX2YwzTM.jpg 6 4 21 | 017ChIJLcMN80W5woARoPH2_b-6iTA.jpg 2 3 22 | 018ChIJLYFYSNXHwoAR_oHI1OO3uHs.jpg 1 1 23 | 018ChIJZ1x7ObPHwoARf0CFYqEKzHc.jpg 2 23 24 | 019ChIJw2QeaCTIwoARk9mIy-qY5WA.jpg 2 5 25 | 020ChIJ8Wg5anzHwoAR33zUeVZhO-4.jpg 24 13 26 | 021ChIJIQG2CaXIwoARWBkMAOmJOgk.jpg 1 17 27 | 022ChIJ_Vft5SG5woARqjMaA_WBppM.jpg 7 6 28 | 023ChIJITq6HgbJwoARWQwFlOK3MjQ.jpg 6 5 29 | 026ChIJdxKRLnXGwoARjI8UNikSHLI.jpg 7 19 30 | 032ChIJ_X3CRLLHwoARRsxwPP4-MII.jpg 3 4 31 | 036ChIJlUWhbE7PwoARI6krxdXqqZ0.jpg 1 4 32 | 039ChIJa11iIsnHwoAROguBFABgyZ4.jpg 14 12 33 | 050ChIJ9dBp1kTGwoARQnas9tdpABU.jpg 2 16 34 | 052ChIJ4WFsSdbLwoARkeggGHbfIRA.jpg 1 1 35 | 053ChIJX5qZ0rHAwoARW4QO1e3939I.jpg 2 1 36 | 054ChIJqczfmi6_woARSEfPCl1ehhM.jpg 2 3 37 | 060ChIJ6_jAEma3woARt-R6xCLH2Pw.jpg 2 1 38 | 063ChIJf6brxg3GwoARRKeUHte0UzU.jpg 1 4 39 | 064ChIJj2qdPuHHwoAR7YhpFcHmKX8.jpg 2 4 40 | 065ChIJGygYPyW_woARvP1i9-4--_U.jpg 1 1 41 | 067ChIJTTL_4ia_woARS9ulIRdx0jY.jpg 1 1 42 | 068ChIJKZVBMcXHwoARlt3QYk5FHiA.jpg 3 2 43 | 071ChIJvaYTTTK5woARjkP0esESHqU.jpg 1 2 44 | 072ChIJaTj1ViS3woAR7Cnqsk1PsNo.jpg 1 1 45 | 074ChIJU6M9UZa5woAR_hnMXw1pHEo.jpg 1 3 46 | 082ChIJEf8Ojmm5woAR1hhGkMNDixg.jpg 11 27 47 | 087ChIJR5pEdoTHwoARt5a2U5-FwMI.jpg 5 21 48 | 088ChIJozY4Ca24woARdMmbj5qzN_w.jpg 3 2 49 | 092ChIJMUXJ7kW5woARqu-RJ8OBTnY.jpg 1 1 50 | 094ChIJRXOT2PC2woARoyey1xdkzvY.jpg 5 4 51 | 098ChIJDfK9oMPOwoARnMD0hmDj6j0.jpg 3 1 52 | 099ChIJD0REzcG-woARRr-3vCo0CiY.jpg 2 19 53 | 103ChIJB9Ct5sDJwoARq-BmepLlKE8.jpg 3 1 54 | 104ChIJvfkge0PJwoARUCkhygtz3o8.jpg 2 1 55 | 108ChIJ08ZfoIS4woARk-I3Y9112UU.jpg 1 1 56 | 112ChIJnzJjiky5woARuHYwBKt0Rfg.jpg 1 3 57 | 116ChIJvfEKBcPOwoARA8hH6xXurjE.jpg 2 1 58 | 119ChIJPZqNvJ_GwoARXR8sFFFRGnc.jpg 1 1 59 | 120ChIJZ59RnYzLwoARQ0C5zmSo1zc.jpg 1 1 60 | 122ChIJa1akcpHHwoARW1jn-V70s0Q.jpg 3 1 61 | 123ChIJNyr-zbfHwoARE0hkknhfNIk.jpg 1 1 62 | 128ChIJISMgJqzHwoAROXwESie16jI.jpg 2 1 63 | 129ChIJvSTdgFLGwoARYb8evIiy_N4.jpg 1 1 64 | 130ChIJM56bVADJwoARz5oZ34AKaLA.jpg 4 3 65 | 132ChIJh8kCLHrHwoARpgxpUKaLFxg.jpg 1 1 66 | 134ChIJ1bJpAp_JwoAR4usalkpiiEI.jpg 3 9 67 | 135ChIJa6FMmju_woARo4nz-cfhrFE.jpg 5 2 68 | f.jpg 1 1 69 | kkp.jpg 1 1 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m20/error_log_m_20m.txt: -------------------------------------------------------------------------------- 1 | 000ChIJPTizN-HHwoARZAXgelmZEio.jpg 2 3 2 | 001ChIJpbaYbMrHwoARIpFOljWAr0k.jpg 6 5 3 | 003ChIJpYDm0YS4woARfyKUw1sJA74.jpg 1 1 4 | 004ChIJcVHLhVLGwoARfy5ZhYboW_Y.jpg 1 1 5 | 004ChIJFx6AdgHJwoARTPgILEh0adE.jpg 1 2 6 | 005ChIJp_uPn8zHwoARVm3zdCT-E1Q.jpg 1 1 7 | 005ChIJVYG0mj7JwoARmZsCY6COkN4.jpg 1 2 8 | 006ChIJpV-OzXvHwoARCfUQZLTzt1k.jpg 2 2 9 | 006ChIJWQ59CZnHwoARJgo-MvO0DZs.jpg 2 1 10 | 008ChIJaT3J2LPHwoAR58Oo8wHj-o0.jpg 4 5 11 | 009ChIJmSULw7bHwoARCPYQkbIrDaE.jpg 1 1 12 | 009ChIJnzzjM5O4woARjDmCq9q-v6Y.jpg 2 1 13 | 010ChIJ9dL0V6zAwoARERmRKMFRfgE.jpg 1 1 14 | 010ChIJJSOuYrTHwoARksxD_YMwY60.jpg 2 1 15 | 011ChIJ0xSI2Dm_woARhkaFSuaEVvY.jpg 1 2 16 | 011ChIJjZr7P6XHwoARpmt_Y-7n5u8.jpg 9 3 17 | 012ChIJWeuzWQ7MwoARaLFBTtMnXXY.jpg 2 1 18 | 014ChIJOw_PToi3woARwWuKwx5DVxo.jpg 3 5 19 | 016ChIJe7hHkCPIwoARuDX-G8CJjlA.jpg 1 2 20 | 016ChIJWfrr2KXIwoARTe-VX2YwzTM.jpg 6 4 21 | 017ChIJLcMN80W5woARoPH2_b-6iTA.jpg 2 2 22 | 018ChIJLYFYSNXHwoAR_oHI1OO3uHs.jpg 1 1 23 | 018ChIJZ1x7ObPHwoARf0CFYqEKzHc.jpg 2 6 24 | 019ChIJw2QeaCTIwoARk9mIy-qY5WA.jpg 2 3 25 | 020ChIJ8Wg5anzHwoAR33zUeVZhO-4.jpg 24 5 26 | 021ChIJIQG2CaXIwoARWBkMAOmJOgk.jpg 1 3 27 | 022ChIJ_Vft5SG5woARqjMaA_WBppM.jpg 7 3 28 | 023ChIJITq6HgbJwoARWQwFlOK3MjQ.jpg 6 5 29 | 026ChIJdxKRLnXGwoARjI8UNikSHLI.jpg 7 5 30 | 032ChIJ_X3CRLLHwoARRsxwPP4-MII.jpg 3 2 31 | 036ChIJlUWhbE7PwoARI6krxdXqqZ0.jpg 1 4 32 | 039ChIJa11iIsnHwoAROguBFABgyZ4.jpg 14 5 33 | 050ChIJ9dBp1kTGwoARQnas9tdpABU.jpg 2 3 34 | 052ChIJ4WFsSdbLwoARkeggGHbfIRA.jpg 1 1 35 | 053ChIJX5qZ0rHAwoARW4QO1e3939I.jpg 2 1 36 | 054ChIJqczfmi6_woARSEfPCl1ehhM.jpg 2 2 37 | 060ChIJ6_jAEma3woARt-R6xCLH2Pw.jpg 2 1 38 | 063ChIJf6brxg3GwoARRKeUHte0UzU.jpg 1 4 39 | 064ChIJj2qdPuHHwoAR7YhpFcHmKX8.jpg 2 3 40 | 065ChIJGygYPyW_woARvP1i9-4--_U.jpg 1 1 41 | 067ChIJTTL_4ia_woARS9ulIRdx0jY.jpg 1 1 42 | 068ChIJKZVBMcXHwoARlt3QYk5FHiA.jpg 3 1 43 | 071ChIJvaYTTTK5woARjkP0esESHqU.jpg 1 2 44 | 072ChIJaTj1ViS3woAR7Cnqsk1PsNo.jpg 1 1 45 | 074ChIJU6M9UZa5woAR_hnMXw1pHEo.jpg 1 5 46 | 082ChIJEf8Ojmm5woAR1hhGkMNDixg.jpg 11 7 47 | 087ChIJR5pEdoTHwoARt5a2U5-FwMI.jpg 5 6 48 | 088ChIJozY4Ca24woARdMmbj5qzN_w.jpg 3 2 49 | 092ChIJMUXJ7kW5woARqu-RJ8OBTnY.jpg 1 1 50 | 094ChIJRXOT2PC2woARoyey1xdkzvY.jpg 5 2 51 | 098ChIJDfK9oMPOwoARnMD0hmDj6j0.jpg 3 1 52 | 099ChIJD0REzcG-woARRr-3vCo0CiY.jpg 2 5 53 | 103ChIJB9Ct5sDJwoARq-BmepLlKE8.jpg 3 1 54 | 104ChIJvfkge0PJwoARUCkhygtz3o8.jpg 2 1 55 | 108ChIJ08ZfoIS4woARk-I3Y9112UU.jpg 1 1 56 | 112ChIJnzJjiky5woARuHYwBKt0Rfg.jpg 1 2 57 | 116ChIJvfEKBcPOwoARA8hH6xXurjE.jpg 2 1 58 | 119ChIJPZqNvJ_GwoARXR8sFFFRGnc.jpg 1 1 59 | 120ChIJZ59RnYzLwoARQ0C5zmSo1zc.jpg 1 1 60 | 122ChIJa1akcpHHwoARW1jn-V70s0Q.jpg 3 1 61 | 123ChIJNyr-zbfHwoARE0hkknhfNIk.jpg 1 1 62 | 128ChIJISMgJqzHwoAROXwESie16jI.jpg 2 1 63 | 129ChIJvSTdgFLGwoARYb8evIiy_N4.jpg 1 1 64 | 130ChIJM56bVADJwoARz5oZ34AKaLA.jpg 4 5 65 | 132ChIJh8kCLHrHwoARpgxpUKaLFxg.jpg 1 1 66 | 134ChIJ1bJpAp_JwoAR4usalkpiiEI.jpg 3 2 67 | 135ChIJa6FMmju_woARo4nz-cfhrFE.jpg 5 2 68 | f.jpg 1 1 69 | kkp.jpg 1 1 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m20/good_log_m_20.txt: -------------------------------------------------------------------------------- 1 | 0.jpg 2 28 2 | 0000.jpg 5 27 3 | 000ChIJVwcybwnIwoAR8y-bT8MtX4w.jpg 5 33 4 | 001ChIJ7-59DTjGwoAR_BBnZQt9A7g.jpg 1 31 5 | 003ChIJbYs1LOHHwoAREWg_SczZ3Fg.jpg 2 1 6 | 008ChIJOaZZcqLHwoAR1zdH-1Kb4jo.jpg 1 21 7 | 021ChIJ9fitaNrJwoARB1mBW0RPmgQ.jpg 4 5 8 | 022ChIJG8FbRr7HwoARRbcMPVJGBSM.jpg 2 20 9 | 025ChIJn1F9OWTHwoARmTAbjXA22JU.jpg 1 26 10 | 027ChIJdSTZZyHJwoAR79UxAPLDEio.jpg 1 31 11 | 029ChIJqdY5vLXJwoARBOjJBEJ8tT8.jpg 1 2 12 | 030ChIJh2jhWk-4woARtgsdd4lMT3A.jpg 2 24 13 | 034ChIJEyiV87HJwoAR7QNf0QV7tNc.jpg 1 23 14 | 035ChIJsbE27UvGwoARKKHwz4QX7GI.jpg 132 30 15 | 037ChIJhx-PG6O4woARh-4X-iHZEjA.jpg 5 22 16 | 038ChIJmyx6O0vGwoARdUynsl7BK18.jpg 3 29 17 | 042ChIJh7FIUrTHwoARp_VawUlSQAY.jpg 2 25 18 | 044ChIJJX5Mz7e5woARtiyqNpXiASU.jpg 1 23 19 | 045ChIJmfeCa1HHwoARbPQGXWFFZZM.jpg 6 28 20 | 048ChIJO6KlsMu4woARgb3ZA_TCOYk.jpg 1 28 21 | 049ChIJCdoAnUe_woARVYq76G5m9xw.jpg 2 27 22 | 051ChIJ9dBp1kTGwoAR8OiUeTmPLys.jpg 2 21 23 | 057ChIJc6sQSzm5woARVpucRuRhgwE.jpg 1 20 24 | 059ChIJ1yOhZ6C4woARcXAG1MN3MQw.jpg 1 28 25 | 062ChIJ92VhkBy3woAR67PCOZWyzHE.jpg 7 21 26 | 066ChIJeSv0F_jLwoARIwQeyoLcCf8.jpg 1 24 27 | 077ChIJc_VrdT7JwoARNE-X3KyQ0Kk.jpg 1 23 28 | 081ChIJDx_VTdPAwoAR9k8JonLzNyA.jpg 1 23 29 | 083ChIJ5-MpBAzHwoARA_9vInpA0K4.jpg 4 30 30 | 085ChIJr0NtHt22woAR2i0UZkWNZow.jpg 2 31 31 | 09.jpg 2 21 32 | 090ChIJm_r1hkfHwoARNFUUHKQzUWo.jpg 5 25 33 | 091ChIJuSprNHa5woARrY_YajLKgww.jpg 1 24 34 | 093ChIJq31NgdW3woARuuFoWSXmwi8.jpg 3 24 35 | 095ChIJZZsgOTy_woARlm3LojBYUNw.jpg 1 16 36 | 096ChIJm0WnvsW-woARsp7ZUC4pC6M.jpg 3 24 37 | 097ChIJNb0jGE6_woAR47QRL5uK6Rc.jpg 4 27 38 | 1.jpg 11 29 39 | 10.jpg 1 18 40 | 101ChIJ5b7mJVa_woAR7zoHmSoFn68.jpg 2 4 41 | 102ChIJqUDLH7u-woAR2Ow8ckaOaAs.jpg 2 21 42 | 107ChIJOaZZcqLHwoARfxDt4j2Mnbs.jpg 1 29 43 | 109ChIJB2ggJ0O2woARlfjP7mEhBS0.jpg 1 25 44 | 111ChIJ5yvPD-C4woAReQEkDjKqjQE.jpg 2 1 45 | 113ChIJibi-4zTGwoARuEVzqYKLubI.jpg 1 26 46 | 114ChIJlzW3Sxq5woARVYYzeHuMbBk.jpg 2 19 47 | 115ChIJj0Ms6K25woARyTO--9B6Co4.jpg 1 16 48 | 124ChIJPXyj0C7GwoARVlzs8rKqdZg.jpg 2 1 49 | 125ChIJiX1fHlfIwoARmwX6NbZGvis.jpg 1 21 50 | 126ChIJkfUhAkrGwoARLr4-5TSQ6d4.jpg 4 27 51 | 131ChIJR-JszWO4woAR9HJq_9vW5I4.jpg 2 6 52 | 133ChIJqQf5j7nIwoARgDlVi-YsAoQ.jpg 1 3 53 | 137ChIJv-hJDV25woARFNoRBT-5I2E.jpg 2 10 54 | 139ChIJ-300paO-woARRJMN6pJg3nE.jpg 7 26 55 | 15.jpg 1 26 56 | 3456.jpg 2 28 57 | 4.jpg 1 5 58 | 44.jpg 17 26 59 | 456.jpg 2 20 60 | 5.jpg 15 24 61 | 77777.jpg 3 14 62 | 8.jpg 3 21 63 | e2o.jpg 12 29 64 | gg.jpg 5 26 65 | h.jpg 4 28 66 | kc.jpg 1 24 67 | ss.jpg 5 23 68 | streetview.jpg 10 25 69 | t.jpg 9 24 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m20/good_log_m_20m.txt: -------------------------------------------------------------------------------- 1 | 0.jpg 2 8 2 | 0000.jpg 5 7 3 | 000ChIJVwcybwnIwoAR8y-bT8MtX4w.jpg 5 9 4 | 001ChIJ7-59DTjGwoAR_BBnZQt9A7g.jpg 1 9 5 | 003ChIJbYs1LOHHwoAREWg_SczZ3Fg.jpg 2 1 6 | 008ChIJOaZZcqLHwoAR1zdH-1Kb4jo.jpg 1 5 7 | 021ChIJ9fitaNrJwoARB1mBW0RPmgQ.jpg 4 5 8 | 022ChIJG8FbRr7HwoARRbcMPVJGBSM.jpg 2 6 9 | 025ChIJn1F9OWTHwoARmTAbjXA22JU.jpg 1 6 10 | 027ChIJdSTZZyHJwoAR79UxAPLDEio.jpg 1 7 11 | 029ChIJqdY5vLXJwoARBOjJBEJ8tT8.jpg 1 2 12 | 030ChIJh2jhWk-4woARtgsdd4lMT3A.jpg 2 6 13 | 034ChIJEyiV87HJwoAR7QNf0QV7tNc.jpg 1 6 14 | 035ChIJsbE27UvGwoARKKHwz4QX7GI.jpg 132 10 15 | 037ChIJhx-PG6O4woARh-4X-iHZEjA.jpg 5 6 16 | 038ChIJmyx6O0vGwoARdUynsl7BK18.jpg 3 6 17 | 042ChIJh7FIUrTHwoARp_VawUlSQAY.jpg 2 7 18 | 044ChIJJX5Mz7e5woARtiyqNpXiASU.jpg 1 6 19 | 045ChIJmfeCa1HHwoARbPQGXWFFZZM.jpg 6 7 20 | 048ChIJO6KlsMu4woARgb3ZA_TCOYk.jpg 1 7 21 | 049ChIJCdoAnUe_woARVYq76G5m9xw.jpg 2 6 22 | 051ChIJ9dBp1kTGwoAR8OiUeTmPLys.jpg 2 5 23 | 057ChIJc6sQSzm5woARVpucRuRhgwE.jpg 1 5 24 | 059ChIJ1yOhZ6C4woARcXAG1MN3MQw.jpg 1 7 25 | 062ChIJ92VhkBy3woAR67PCOZWyzHE.jpg 7 5 26 | 066ChIJeSv0F_jLwoARIwQeyoLcCf8.jpg 1 6 27 | 077ChIJc_VrdT7JwoARNE-X3KyQ0Kk.jpg 1 6 28 | 081ChIJDx_VTdPAwoAR9k8JonLzNyA.jpg 1 6 29 | 083ChIJ5-MpBAzHwoARA_9vInpA0K4.jpg 4 7 30 | 085ChIJr0NtHt22woAR2i0UZkWNZow.jpg 2 9 31 | 09.jpg 2 4 32 | 090ChIJm_r1hkfHwoARNFUUHKQzUWo.jpg 5 5 33 | 091ChIJuSprNHa5woARrY_YajLKgww.jpg 1 6 34 | 093ChIJq31NgdW3woARuuFoWSXmwi8.jpg 3 6 35 | 095ChIJZZsgOTy_woARlm3LojBYUNw.jpg 1 5 36 | 096ChIJm0WnvsW-woARsp7ZUC4pC6M.jpg 3 6 37 | 097ChIJNb0jGE6_woAR47QRL5uK6Rc.jpg 4 6 38 | 1.jpg 11 7 39 | 10.jpg 1 3 40 | 101ChIJ5b7mJVa_woAR7zoHmSoFn68.jpg 2 4 41 | 102ChIJqUDLH7u-woAR2Ow8ckaOaAs.jpg 2 7 42 | 107ChIJOaZZcqLHwoARfxDt4j2Mnbs.jpg 1 9 43 | 109ChIJB2ggJ0O2woARlfjP7mEhBS0.jpg 1 6 44 | 111ChIJ5yvPD-C4woAReQEkDjKqjQE.jpg 2 1 45 | 113ChIJibi-4zTGwoARuEVzqYKLubI.jpg 1 7 46 | 114ChIJlzW3Sxq5woARVYYzeHuMbBk.jpg 2 4 47 | 115ChIJj0Ms6K25woARyTO--9B6Co4.jpg 1 2 48 | 124ChIJPXyj0C7GwoARVlzs8rKqdZg.jpg 2 1 49 | 125ChIJiX1fHlfIwoARmwX6NbZGvis.jpg 1 4 50 | 126ChIJkfUhAkrGwoARLr4-5TSQ6d4.jpg 4 7 51 | 131ChIJR-JszWO4woAR9HJq_9vW5I4.jpg 2 5 52 | 133ChIJqQf5j7nIwoARgDlVi-YsAoQ.jpg 1 3 53 | 137ChIJv-hJDV25woARFNoRBT-5I2E.jpg 2 2 54 | 139ChIJ-300paO-woARRJMN6pJg3nE.jpg 7 6 55 | 15.jpg 1 6 56 | 3456.jpg 2 6 57 | 4.jpg 1 2 58 | 44.jpg 17 6 59 | 456.jpg 2 3 60 | 5.jpg 15 5 61 | 77777.jpg 3 5 62 | 8.jpg 3 5 63 | e2o.jpg 12 7 64 | gg.jpg 5 6 65 | h.jpg 4 8 66 | kc.jpg 1 5 67 | ss.jpg 5 5 68 | streetview.jpg 10 4 69 | t.jpg 9 6 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m25/error_log_m_25.txt: -------------------------------------------------------------------------------- 1 | 000ChIJPTizN-HHwoARZAXgelmZEio.jpg 2 1 2 | 001ChIJpbaYbMrHwoARIpFOljWAr0k.jpg 6 20 3 | 003ChIJpYDm0YS4woARfyKUw1sJA74.jpg 1 26 4 | 004ChIJcVHLhVLGwoARfy5ZhYboW_Y.jpg 1 1 5 | 004ChIJFx6AdgHJwoARTPgILEh0adE.jpg 1 1 6 | 005ChIJp_uPn8zHwoARVm3zdCT-E1Q.jpg 1 1 7 | 005ChIJVYG0mj7JwoARmZsCY6COkN4.jpg 1 2 8 | 006ChIJpV-OzXvHwoARCfUQZLTzt1k.jpg 2 2 9 | 006ChIJWQ59CZnHwoARJgo-MvO0DZs.jpg 2 1 10 | 008ChIJaT3J2LPHwoAR58Oo8wHj-o0.jpg 4 24 11 | 009ChIJmSULw7bHwoARCPYQkbIrDaE.jpg 1 1 12 | 009ChIJnzzjM5O4woARjDmCq9q-v6Y.jpg 2 1 13 | 010ChIJ9dL0V6zAwoARERmRKMFRfgE.jpg 1 1 14 | 010ChIJJSOuYrTHwoARksxD_YMwY60.jpg 2 2 15 | 011ChIJ0xSI2Dm_woARhkaFSuaEVvY.jpg 1 4 16 | 011ChIJjZr7P6XHwoARpmt_Y-7n5u8.jpg 9 7 17 | 012ChIJWeuzWQ7MwoARaLFBTtMnXXY.jpg 2 1 18 | 014ChIJOw_PToi3woARwWuKwx5DVxo.jpg 3 20 19 | 016ChIJe7hHkCPIwoARuDX-G8CJjlA.jpg 1 1 20 | 016ChIJWfrr2KXIwoARTe-VX2YwzTM.jpg 6 8 21 | 017ChIJLcMN80W5woARoPH2_b-6iTA.jpg 2 12 22 | 018ChIJLYFYSNXHwoAR_oHI1OO3uHs.jpg 1 1 23 | 018ChIJZ1x7ObPHwoARf0CFYqEKzHc.jpg 2 24 24 | 019ChIJw2QeaCTIwoARk9mIy-qY5WA.jpg 2 4 25 | 020ChIJ8Wg5anzHwoAR33zUeVZhO-4.jpg 24 16 26 | 021ChIJIQG2CaXIwoARWBkMAOmJOgk.jpg 1 1 27 | 022ChIJ_Vft5SG5woARqjMaA_WBppM.jpg 7 6 28 | 023ChIJITq6HgbJwoARWQwFlOK3MjQ.jpg 6 6 29 | 026ChIJdxKRLnXGwoARjI8UNikSHLI.jpg 7 8 30 | 032ChIJ_X3CRLLHwoARRsxwPP4-MII.jpg 3 9 31 | 036ChIJlUWhbE7PwoARI6krxdXqqZ0.jpg 1 1 32 | 039ChIJa11iIsnHwoAROguBFABgyZ4.jpg 14 29 33 | 050ChIJ9dBp1kTGwoARQnas9tdpABU.jpg 2 1 34 | 052ChIJ4WFsSdbLwoARkeggGHbfIRA.jpg 1 1 35 | 053ChIJX5qZ0rHAwoARW4QO1e3939I.jpg 2 2 36 | 054ChIJqczfmi6_woARSEfPCl1ehhM.jpg 2 3 37 | 060ChIJ6_jAEma3woARt-R6xCLH2Pw.jpg 2 3 38 | 063ChIJf6brxg3GwoARRKeUHte0UzU.jpg 1 23 39 | 064ChIJj2qdPuHHwoAR7YhpFcHmKX8.jpg 2 6 40 | 065ChIJGygYPyW_woARvP1i9-4--_U.jpg 1 1 41 | 067ChIJTTL_4ia_woARS9ulIRdx0jY.jpg 1 1 42 | 068ChIJKZVBMcXHwoARlt3QYk5FHiA.jpg 3 1 43 | 071ChIJvaYTTTK5woARjkP0esESHqU.jpg 1 4 44 | 072ChIJaTj1ViS3woAR7Cnqsk1PsNo.jpg 1 1 45 | 074ChIJU6M9UZa5woAR_hnMXw1pHEo.jpg 1 25 46 | 082ChIJEf8Ojmm5woAR1hhGkMNDixg.jpg 11 35 47 | 087ChIJR5pEdoTHwoARt5a2U5-FwMI.jpg 5 4 48 | 088ChIJozY4Ca24woARdMmbj5qzN_w.jpg 3 2 49 | 092ChIJMUXJ7kW5woARqu-RJ8OBTnY.jpg 1 3 50 | 094ChIJRXOT2PC2woARoyey1xdkzvY.jpg 5 6 51 | 098ChIJDfK9oMPOwoARnMD0hmDj6j0.jpg 3 1 52 | 099ChIJD0REzcG-woARRr-3vCo0CiY.jpg 2 24 53 | 103ChIJB9Ct5sDJwoARq-BmepLlKE8.jpg 3 3 54 | 104ChIJvfkge0PJwoARUCkhygtz3o8.jpg 2 3 55 | 108ChIJ08ZfoIS4woARk-I3Y9112UU.jpg 1 1 56 | 112ChIJnzJjiky5woARuHYwBKt0Rfg.jpg 1 1 57 | 116ChIJvfEKBcPOwoARA8hH6xXurjE.jpg 2 4 58 | 119ChIJPZqNvJ_GwoARXR8sFFFRGnc.jpg 1 1 59 | 120ChIJZ59RnYzLwoARQ0C5zmSo1zc.jpg 1 1 60 | 122ChIJa1akcpHHwoARW1jn-V70s0Q.jpg 3 1 61 | 123ChIJNyr-zbfHwoARE0hkknhfNIk.jpg 1 1 62 | 128ChIJISMgJqzHwoAROXwESie16jI.jpg 2 5 63 | 129ChIJvSTdgFLGwoARYb8evIiy_N4.jpg 1 1 64 | 130ChIJM56bVADJwoARz5oZ34AKaLA.jpg 4 25 65 | 132ChIJh8kCLHrHwoARpgxpUKaLFxg.jpg 1 1 66 | 134ChIJ1bJpAp_JwoAR4usalkpiiEI.jpg 3 12 67 | 135ChIJa6FMmju_woARo4nz-cfhrFE.jpg 5 5 68 | f.jpg 1 1 69 | kkp.jpg 1 1 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m25/good_log_m_25.txt: -------------------------------------------------------------------------------- 1 | 0.jpg 2 34 2 | 0000.jpg 5 30 3 | 000ChIJVwcybwnIwoAR8y-bT8MtX4w.jpg 5 41 4 | 001ChIJ7-59DTjGwoAR_BBnZQt9A7g.jpg 1 38 5 | 003ChIJbYs1LOHHwoAREWg_SczZ3Fg.jpg 2 1 6 | 008ChIJOaZZcqLHwoAR1zdH-1Kb4jo.jpg 1 27 7 | 021ChIJ9fitaNrJwoARB1mBW0RPmgQ.jpg 4 27 8 | 022ChIJG8FbRr7HwoARRbcMPVJGBSM.jpg 2 34 9 | 025ChIJn1F9OWTHwoARmTAbjXA22JU.jpg 1 30 10 | 027ChIJdSTZZyHJwoAR79UxAPLDEio.jpg 1 37 11 | 029ChIJqdY5vLXJwoARBOjJBEJ8tT8.jpg 1 8 12 | 030ChIJh2jhWk-4woARtgsdd4lMT3A.jpg 2 28 13 | 034ChIJEyiV87HJwoAR7QNf0QV7tNc.jpg 1 28 14 | 035ChIJsbE27UvGwoARKKHwz4QX7GI.jpg 132 39 15 | 037ChIJhx-PG6O4woARh-4X-iHZEjA.jpg 5 28 16 | 038ChIJmyx6O0vGwoARdUynsl7BK18.jpg 3 32 17 | 042ChIJh7FIUrTHwoARp_VawUlSQAY.jpg 2 29 18 | 044ChIJJX5Mz7e5woARtiyqNpXiASU.jpg 1 28 19 | 045ChIJmfeCa1HHwoARbPQGXWFFZZM.jpg 6 33 20 | 048ChIJO6KlsMu4woARgb3ZA_TCOYk.jpg 1 32 21 | 049ChIJCdoAnUe_woARVYq76G5m9xw.jpg 2 29 22 | 051ChIJ9dBp1kTGwoAR8OiUeTmPLys.jpg 2 26 23 | 057ChIJc6sQSzm5woARVpucRuRhgwE.jpg 1 26 24 | 059ChIJ1yOhZ6C4woARcXAG1MN3MQw.jpg 1 33 25 | 062ChIJ92VhkBy3woAR67PCOZWyzHE.jpg 7 28 26 | 066ChIJeSv0F_jLwoARIwQeyoLcCf8.jpg 1 29 27 | 077ChIJc_VrdT7JwoARNE-X3KyQ0Kk.jpg 1 28 28 | 081ChIJDx_VTdPAwoAR9k8JonLzNyA.jpg 1 30 29 | 083ChIJ5-MpBAzHwoARA_9vInpA0K4.jpg 4 33 30 | 085ChIJr0NtHt22woAR2i0UZkWNZow.jpg 2 38 31 | 09.jpg 2 22 32 | 090ChIJm_r1hkfHwoARNFUUHKQzUWo.jpg 5 3 33 | 091ChIJuSprNHa5woARrY_YajLKgww.jpg 1 29 34 | 093ChIJq31NgdW3woARuuFoWSXmwi8.jpg 3 31 35 | 095ChIJZZsgOTy_woARlm3LojBYUNw.jpg 1 19 36 | 096ChIJm0WnvsW-woARsp7ZUC4pC6M.jpg 3 29 37 | 097ChIJNb0jGE6_woAR47QRL5uK6Rc.jpg 4 31 38 | 1.jpg 11 35 39 | 10.jpg 1 25 40 | 101ChIJ5b7mJVa_woAR7zoHmSoFn68.jpg 2 23 41 | 102ChIJqUDLH7u-woAR2Ow8ckaOaAs.jpg 2 30 42 | 107ChIJOaZZcqLHwoARfxDt4j2Mnbs.jpg 1 42 43 | 109ChIJB2ggJ0O2woARlfjP7mEhBS0.jpg 1 32 44 | 111ChIJ5yvPD-C4woAReQEkDjKqjQE.jpg 2 4 45 | 113ChIJibi-4zTGwoARuEVzqYKLubI.jpg 1 30 46 | 114ChIJlzW3Sxq5woARVYYzeHuMbBk.jpg 2 6 47 | 115ChIJj0Ms6K25woARyTO--9B6Co4.jpg 1 13 48 | 124ChIJPXyj0C7GwoARVlzs8rKqdZg.jpg 2 2 49 | 125ChIJiX1fHlfIwoARmwX6NbZGvis.jpg 1 25 50 | 126ChIJkfUhAkrGwoARLr4-5TSQ6d4.jpg 4 32 51 | 131ChIJR-JszWO4woAR9HJq_9vW5I4.jpg 2 4 52 | 133ChIJqQf5j7nIwoARgDlVi-YsAoQ.jpg 1 2 53 | 137ChIJv-hJDV25woARFNoRBT-5I2E.jpg 2 13 54 | 139ChIJ-300paO-woARRJMN6pJg3nE.jpg 7 29 55 | 15.jpg 1 30 56 | 3456.jpg 2 33 57 | 4.jpg 1 2 58 | 44.jpg 17 30 59 | 456.jpg 2 2 60 | 5.jpg 15 26 61 | 77777.jpg 3 3 62 | 8.jpg 3 25 63 | e2o.jpg 12 31 64 | gg.jpg 5 30 65 | h.jpg 4 31 66 | kc.jpg 1 29 67 | ss.jpg 5 26 68 | streetview.jpg 10 30 69 | t.jpg 9 27 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m5/error_log_m_5.txt: -------------------------------------------------------------------------------- 1 | 000ChIJPTizN-HHwoARZAXgelmZEio.jpg 2 1 2 | 001ChIJpbaYbMrHwoARIpFOljWAr0k.jpg 6 2 3 | 003ChIJpYDm0YS4woARfyKUw1sJA74.jpg 1 4 4 | 004ChIJcVHLhVLGwoARfy5ZhYboW_Y.jpg 1 1 5 | 004ChIJFx6AdgHJwoARTPgILEh0adE.jpg 1 2 6 | 005ChIJp_uPn8zHwoARVm3zdCT-E1Q.jpg 1 1 7 | 005ChIJVYG0mj7JwoARmZsCY6COkN4.jpg 1 1 8 | 006ChIJpV-OzXvHwoARCfUQZLTzt1k.jpg 2 1 9 | 006ChIJWQ59CZnHwoARJgo-MvO0DZs.jpg 2 1 10 | 008ChIJaT3J2LPHwoAR58Oo8wHj-o0.jpg 4 2 11 | 009ChIJmSULw7bHwoARCPYQkbIrDaE.jpg 1 1 12 | 009ChIJnzzjM5O4woARjDmCq9q-v6Y.jpg 2 1 13 | 010ChIJ9dL0V6zAwoARERmRKMFRfgE.jpg 1 1 14 | 010ChIJJSOuYrTHwoARksxD_YMwY60.jpg 2 2 15 | 011ChIJ0xSI2Dm_woARhkaFSuaEVvY.jpg 1 1 16 | 011ChIJjZr7P6XHwoARpmt_Y-7n5u8.jpg 9 2 17 | 012ChIJWeuzWQ7MwoARaLFBTtMnXXY.jpg 2 1 18 | 014ChIJOw_PToi3woARwWuKwx5DVxo.jpg 3 1 19 | 016ChIJe7hHkCPIwoARuDX-G8CJjlA.jpg 1 2 20 | 016ChIJWfrr2KXIwoARTe-VX2YwzTM.jpg 6 2 21 | 017ChIJLcMN80W5woARoPH2_b-6iTA.jpg 2 1 22 | 018ChIJLYFYSNXHwoAR_oHI1OO3uHs.jpg 1 1 23 | 018ChIJZ1x7ObPHwoARf0CFYqEKzHc.jpg 2 2 24 | 019ChIJw2QeaCTIwoARk9mIy-qY5WA.jpg 2 2 25 | 020ChIJ8Wg5anzHwoAR33zUeVZhO-4.jpg 24 2 26 | 021ChIJIQG2CaXIwoARWBkMAOmJOgk.jpg 1 1 27 | 022ChIJ_Vft5SG5woARqjMaA_WBppM.jpg 7 2 28 | 023ChIJITq6HgbJwoARWQwFlOK3MjQ.jpg 6 1 29 | 026ChIJdxKRLnXGwoARjI8UNikSHLI.jpg 7 3 30 | 032ChIJ_X3CRLLHwoARRsxwPP4-MII.jpg 3 2 31 | 036ChIJlUWhbE7PwoARI6krxdXqqZ0.jpg 1 2 32 | 039ChIJa11iIsnHwoAROguBFABgyZ4.jpg 14 3 33 | 050ChIJ9dBp1kTGwoARQnas9tdpABU.jpg 2 1 34 | 052ChIJ4WFsSdbLwoARkeggGHbfIRA.jpg 1 1 35 | 053ChIJX5qZ0rHAwoARW4QO1e3939I.jpg 2 1 36 | 054ChIJqczfmi6_woARSEfPCl1ehhM.jpg 2 1 37 | 060ChIJ6_jAEma3woARt-R6xCLH2Pw.jpg 2 4 38 | 063ChIJf6brxg3GwoARRKeUHte0UzU.jpg 1 3 39 | 064ChIJj2qdPuHHwoAR7YhpFcHmKX8.jpg 2 1 40 | 065ChIJGygYPyW_woARvP1i9-4--_U.jpg 1 1 41 | 067ChIJTTL_4ia_woARS9ulIRdx0jY.jpg 1 1 42 | 068ChIJKZVBMcXHwoARlt3QYk5FHiA.jpg 3 1 43 | 071ChIJvaYTTTK5woARjkP0esESHqU.jpg 1 1 44 | 072ChIJaTj1ViS3woAR7Cnqsk1PsNo.jpg 1 1 45 | 074ChIJU6M9UZa5woAR_hnMXw1pHEo.jpg 1 5 46 | 082ChIJEf8Ojmm5woAR1hhGkMNDixg.jpg 11 2 47 | 087ChIJR5pEdoTHwoARt5a2U5-FwMI.jpg 5 3 48 | 088ChIJozY4Ca24woARdMmbj5qzN_w.jpg 3 3 49 | 092ChIJMUXJ7kW5woARqu-RJ8OBTnY.jpg 1 1 50 | 094ChIJRXOT2PC2woARoyey1xdkzvY.jpg 5 1 51 | 098ChIJDfK9oMPOwoARnMD0hmDj6j0.jpg 3 1 52 | 099ChIJD0REzcG-woARRr-3vCo0CiY.jpg 2 4 53 | 103ChIJB9Ct5sDJwoARq-BmepLlKE8.jpg 3 2 54 | 104ChIJvfkge0PJwoARUCkhygtz3o8.jpg 2 2 55 | 108ChIJ08ZfoIS4woARk-I3Y9112UU.jpg 1 1 56 | 112ChIJnzJjiky5woARuHYwBKt0Rfg.jpg 1 1 57 | 116ChIJvfEKBcPOwoARA8hH6xXurjE.jpg 2 2 58 | 119ChIJPZqNvJ_GwoARXR8sFFFRGnc.jpg 1 1 59 | 120ChIJZ59RnYzLwoARQ0C5zmSo1zc.jpg 1 1 60 | 122ChIJa1akcpHHwoARW1jn-V70s0Q.jpg 3 1 61 | 123ChIJNyr-zbfHwoARE0hkknhfNIk.jpg 1 1 62 | 128ChIJISMgJqzHwoAROXwESie16jI.jpg 2 2 63 | 129ChIJvSTdgFLGwoARYb8evIiy_N4.jpg 1 1 64 | 130ChIJM56bVADJwoARz5oZ34AKaLA.jpg 4 1 65 | 132ChIJh8kCLHrHwoARpgxpUKaLFxg.jpg 1 1 66 | 134ChIJ1bJpAp_JwoAR4usalkpiiEI.jpg 3 1 67 | 135ChIJa6FMmju_woARo4nz-cfhrFE.jpg 5 2 68 | f.jpg 1 1 69 | kkp.jpg 1 1 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/log/m5/good_log_m_5.txt: -------------------------------------------------------------------------------- 1 | 0.jpg 2 6 2 | 0000.jpg 5 6 3 | 000ChIJVwcybwnIwoAR8y-bT8MtX4w.jpg 5 6 4 | 001ChIJ7-59DTjGwoAR_BBnZQt9A7g.jpg 1 5 5 | 003ChIJbYs1LOHHwoAREWg_SczZ3Fg.jpg 2 1 6 | 008ChIJOaZZcqLHwoAR1zdH-1Kb4jo.jpg 1 7 7 | 021ChIJ9fitaNrJwoARB1mBW0RPmgQ.jpg 4 1 8 | 022ChIJG8FbRr7HwoARRbcMPVJGBSM.jpg 2 3 9 | 025ChIJn1F9OWTHwoARmTAbjXA22JU.jpg 1 6 10 | 027ChIJdSTZZyHJwoAR79UxAPLDEio.jpg 1 4 11 | 029ChIJqdY5vLXJwoARBOjJBEJ8tT8.jpg 1 1 12 | 030ChIJh2jhWk-4woARtgsdd4lMT3A.jpg 2 8 13 | 034ChIJEyiV87HJwoAR7QNf0QV7tNc.jpg 1 7 14 | 035ChIJsbE27UvGwoARKKHwz4QX7GI.jpg 132 8 15 | 037ChIJhx-PG6O4woARh-4X-iHZEjA.jpg 5 2 16 | 038ChIJmyx6O0vGwoARdUynsl7BK18.jpg 3 9 17 | 042ChIJh7FIUrTHwoARp_VawUlSQAY.jpg 2 3 18 | 044ChIJJX5Mz7e5woARtiyqNpXiASU.jpg 1 8 19 | 045ChIJmfeCa1HHwoARbPQGXWFFZZM.jpg 6 6 20 | 048ChIJO6KlsMu4woARgb3ZA_TCOYk.jpg 1 7 21 | 049ChIJCdoAnUe_woARVYq76G5m9xw.jpg 2 4 22 | 051ChIJ9dBp1kTGwoAR8OiUeTmPLys.jpg 2 4 23 | 057ChIJc6sQSzm5woARVpucRuRhgwE.jpg 1 6 24 | 059ChIJ1yOhZ6C4woARcXAG1MN3MQw.jpg 1 5 25 | 062ChIJ92VhkBy3woAR67PCOZWyzHE.jpg 7 4 26 | 066ChIJeSv0F_jLwoARIwQeyoLcCf8.jpg 1 7 27 | 077ChIJc_VrdT7JwoARNE-X3KyQ0Kk.jpg 1 3 28 | 081ChIJDx_VTdPAwoAR9k8JonLzNyA.jpg 1 5 29 | 083ChIJ5-MpBAzHwoARA_9vInpA0K4.jpg 4 5 30 | 085ChIJr0NtHt22woAR2i0UZkWNZow.jpg 2 5 31 | 09.jpg 2 5 32 | 090ChIJm_r1hkfHwoARNFUUHKQzUWo.jpg 5 5 33 | 091ChIJuSprNHa5woARrY_YajLKgww.jpg 1 7 34 | 093ChIJq31NgdW3woARuuFoWSXmwi8.jpg 3 8 35 | 095ChIJZZsgOTy_woARlm3LojBYUNw.jpg 1 3 36 | 096ChIJm0WnvsW-woARsp7ZUC4pC6M.jpg 3 6 37 | 097ChIJNb0jGE6_woAR47QRL5uK6Rc.jpg 4 8 38 | 1.jpg 11 8 39 | 10.jpg 1 3 40 | 101ChIJ5b7mJVa_woAR7zoHmSoFn68.jpg 2 4 41 | 102ChIJqUDLH7u-woAR2Ow8ckaOaAs.jpg 2 3 42 | 107ChIJOaZZcqLHwoARfxDt4j2Mnbs.jpg 1 4 43 | 109ChIJB2ggJ0O2woARlfjP7mEhBS0.jpg 1 3 44 | 111ChIJ5yvPD-C4woAReQEkDjKqjQE.jpg 2 2 45 | 113ChIJibi-4zTGwoARuEVzqYKLubI.jpg 1 5 46 | 114ChIJlzW3Sxq5woARVYYzeHuMbBk.jpg 2 3 47 | 115ChIJj0Ms6K25woARyTO--9B6Co4.jpg 1 2 48 | 124ChIJPXyj0C7GwoARVlzs8rKqdZg.jpg 2 1 49 | 125ChIJiX1fHlfIwoARmwX6NbZGvis.jpg 1 5 50 | 126ChIJkfUhAkrGwoARLr4-5TSQ6d4.jpg 4 7 51 | 131ChIJR-JszWO4woAR9HJq_9vW5I4.jpg 2 2 52 | 133ChIJqQf5j7nIwoARgDlVi-YsAoQ.jpg 1 1 53 | 137ChIJv-hJDV25woARFNoRBT-5I2E.jpg 2 1 54 | 139ChIJ-300paO-woARRJMN6pJg3nE.jpg 7 2 55 | 15.jpg 1 10 56 | 3456.jpg 2 10 57 | 4.jpg 1 1 58 | 44.jpg 17 4 59 | 456.jpg 2 2 60 | 5.jpg 15 6 61 | 77777.jpg 3 1 62 | 8.jpg 3 6 63 | e2o.jpg 12 8 64 | gg.jpg 5 9 65 | h.jpg 4 7 66 | kc.jpg 1 6 67 | ss.jpg 5 6 68 | streetview.jpg 10 9 69 | t.jpg 9 5 70 | -------------------------------------------------------------------------------- /tool/analyze_threshold/plot_round_num/margin_0_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/tool/analyze_threshold/plot_round_num/margin_0_round.png -------------------------------------------------------------------------------- /tool/analyze_threshold/plot_round_num/margin_10_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/tool/analyze_threshold/plot_round_num/margin_10_round.png -------------------------------------------------------------------------------- /tool/analyze_threshold/plot_round_num/margin_15_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/tool/analyze_threshold/plot_round_num/margin_15_round.png -------------------------------------------------------------------------------- /tool/analyze_threshold/plot_round_num/margin_20_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/tool/analyze_threshold/plot_round_num/margin_20_round.png -------------------------------------------------------------------------------- /tool/analyze_threshold/plot_round_num/margin_5_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/tool/analyze_threshold/plot_round_num/margin_5_round.png -------------------------------------------------------------------------------- /tool/analyze_threshold/thres_analysis_result.txt: -------------------------------------------------------------------------------- 1 | MARGIN = 5 --------------------------------------------- 2 | Threshold FPR FNR 3 | 1 99.9 0.0 4 | 2 40.5 11.5 5 | 3 13.0 20.2 6 | 4 5.7 31.8 7 | 5 1.4 42.0 8 | 6 0.0 56.5 9 | 7 0.0 72.4 10 | 8 0.0 82.6 11 | 9 0.0 92.7 12 | 10 0.0 97.1 13 | 11 0.0 99.9 14 | 12 0.0 99.9 15 | 13 0.0 99.9 16 | 14 0.0 99.9 17 | 15 0.0 99.9 18 | 16 0.0 99.9 19 | 17 0.0 99.9 20 | 18 0.0 99.9 21 | 19 0.0 99.9 22 | 23 | 24 | MARGIN = 10 --------------------------------------------- 25 | Threshold FPR FNR 26 | 1 99.9 0.0 27 | 2 53.6 7.2 28 | 3 34.7 13.0 29 | 4 13.0 14.4 30 | 5 11.5 20.2 31 | 6 10.1 23.1 32 | 7 7.2 23.1 33 | 8 4.3 28.9 34 | 9 4.3 28.9 35 | 10 2.8 33.3 36 | 11 1.4 33.3 37 | 12 0.0 40.5 38 | 13 0.0 55.0 39 | 14 0.0 66.6 40 | 15 0.0 81.1 41 | 16 0.0 86.9 42 | 17 0.0 89.8 43 | 18 0.0 98.5 44 | 19 0.0 98.5 45 | 46 | MARGIN = 15 --------------------------------------------- 47 | Threshold FPR FNR 48 | 1 99.9 0.0 49 | 2 60.8 5.7 50 | 3 36.2 10.1 51 | 4 28.9 10.1 52 | 5 26.0 10.1 53 | 6 24.6 13.0 54 | 7 21.7 14.4 55 | 8 17.3 14.4 56 | 9 14.4 15.9 57 | 10 11.5 15.9 58 | 11 10.1 18.8 59 | 12 10.1 20.2 60 | 13 8.6 20.2 61 | 14 8.6 21.7 62 | 15 5.7 31.8 63 | 16 2.8 33.3 64 | 17 2.8 37.6 65 | 18 1.4 44.9 66 | 19 1.4 50.7 67 | 20 0.0 62.3 68 | 21 0.0 71.0 69 | 22 0.0 82.6 70 | 23 0.0 89.8 71 | 24 0.0 95.6 72 | 73 | MARGIN = 20 --------------------------------------------- 74 | Threshold FPR FNR 75 | 1 99.9 0.0 76 | 2 55.0 4.3 77 | 3 42.0 5.7 78 | 4 33.3 7.2 79 | 5 24.6 8.6 80 | 6 21.7 11.5 81 | 7 20.2 13.0 82 | 8 17.3 13.0 83 | 9 17.3 13.0 84 | 10 15.9 13.0 85 | 11 15.9 14.4 86 | 12 15.9 14.4 87 | 13 14.4 14.4 88 | 14 13.0 14.4 89 | 15 11.5 15.9 90 | 16 11.5 15.9 91 | 17 10.1 18.8 92 | 18 8.6 18.8 93 | 19 8.6 20.2 94 | 20 5.7 21.7 95 | 21 5.7 26.0 96 | 22 4.3 36.2 97 | 23 4.3 37.6 98 | 24 2.8 44.9 99 | 100 | MARGIN = 20 (mod with half-scale) ----------------------- 101 | Threshold FPR FNR 102 | 1 99.9 0.0 103 | 2 53.6 4.3 104 | 3 33.3 10.1 105 | 4 23.1 14.4 106 | 5 18.8 21.7 107 | 6 4.3 40.5 108 | 7 1.4 72.4 109 | 8 0.0 89.8 110 | 9 0.0 92.7 111 | 10 0.0 98.5 112 | 11 0.0 99.9 113 | 12 0.0 99.9 114 | 13 0.0 99.9 115 | 14 0.0 99.9 116 | 15 0.0 99.9 117 | 16 0.0 99.9 118 | 17 0.0 99.9 119 | 18 0.0 99.9 120 | 19 0.0 99.9 121 | 20 0.0 99.9 122 | 123 | MARGIN = 25 --------------------------------------------- 124 | Threshold FPR FNR 125 | 1 99.9 0.0 126 | 2 56.5 1.4 127 | 3 49.2 7.2 128 | 4 42.0 10.1 129 | 5 34.7 13.0 130 | 6 31.8 13.0 131 | 7 26.0 14.4 132 | 8 24.6 14.4 133 | 9 21.7 15.9 134 | 10 20.2 15.9 135 | 11 20.2 15.9 136 | 12 20.2 15.9 137 | 13 17.3 15.9 138 | 14 17.3 18.8 139 | 15 17.3 18.8 140 | 16 17.3 18.8 141 | 17 15.9 18.8 142 | 18 15.9 18.8 143 | 19 15.9 18.8 144 | 20 15.9 20.2 145 | 21 13.0 20.2 146 | 22 13.0 20.2 147 | 23 13.0 21.7 148 | 24 11.5 23.1 149 | 25 7.2 23.1 150 | 26 4.3 27.5 151 | 27 2.8 33.3 152 | 28 2.8 37.6 153 | 29 2.8 46.3 154 | -------------------------------------------------------------------------------- /tool/analyze_threshold/threshold_analysis.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Create: 05/28/2015 3 | Modified: 05/29/2015 4 | Author: Xiaochen Liu 5 | 6 | Function: The code is used to automatically run the obj_detect.get_result to generate the detection log. It can also analyze the log file by plotting the histogram of round #. 7 | 8 | Usage: Put this file in the same dir with "obj_detect.py" for running. Read the description of each function to decide which you should use 9 | ''' 10 | 11 | import time, os, copy, sys, random,threading 12 | import obj_detect # obj_detect 13 | import numpy as np 14 | import pylab as pl 15 | 16 | # dir that stores images 17 | GOOD_DIR = "/home/chris/Desktop/Share/LogoDetection/images/subway/good/" 18 | ERROR_DIR = "/home/chris/Desktop/Share/LogoDetection/images/subway/error/" 19 | 20 | # path where log file is stored 21 | GOOD_LOG = "/home/chris/Desktop/Share/LogoDetection/log/m20/good_log_m_20m.txt" 22 | ERROR_LOG = "/home/chris/Desktop/Share/LogoDetection/log/m20/error_log_m_20m.txt" 23 | 24 | SHOW_IMAGE = 0 # 1 means show the detection result for each image 25 | 26 | MAX_ROUND = 27 # round number larger than this will be recorded as MAX_ROUND 27 | MAX_X = 29 # max value of x-axis 28 | 29 | DATA_SIZE = 69 # size of good/error log dataset 30 | 31 | THRES_MIN = 1 # set the set range of threshold 32 | THRES_MAX = 20 33 | 34 | # generate log with min_neighbor and round_num, return the list of round_num 35 | def generate_log (logo_name, image_dir, show_image, max_round): 36 | log_fd = open(image_dir.split("/")[-2] + "_log.txt", 'w') 37 | round_log = [] 38 | for root, dirs, files in os.walk(image_dir): # walk the dir 39 | for file_name in files: 40 | print "---------------------" + file_name 41 | res = obj_detect.get_result(logo_name, image_dir + file_name, show_image).split('/') 42 | log_fd.write(file_name + "\t" + res[-2] + "\t" + res[-1] + '\n') # image name, min_neighbor, round number 43 | round_num = int(res[-1]) 44 | if round_num > max_round: 45 | round_num = max_round 46 | round_log.append(round_num) 47 | log_fd.close() 48 | return round_log 49 | 50 | # plot the histogram of a log file (with two lists) 51 | def plot_histogram (title, x_label, y_label, data_1, data_2, label_1, label_2, color_1, color_2, transparency, min_x, max_x, step): 52 | bins = np.arange(min_x, max_x, step) 53 | pl.hist(data_1, bins, histtype='stepfilled', alpha=transparency, label=label_1, color=color_1) 54 | pl.hist(data_2, bins, histtype='stepfilled', alpha=transparency, label=label_2, color=color_2) 55 | # make plot labels 56 | pl.title(title) 57 | pl.xlabel(x_label) 58 | pl.ylabel(y_label) 59 | pl.legend(loc='upper right') 60 | pl.show() 61 | return 62 | 63 | # calculate the False Positive Rate (FPR) and False Negative Rate (FNR) 64 | def cal_rate (good_log_path, error_log_path, thres_start, thres_end): 65 | good_data = [] 66 | error_data = [] 67 | 68 | # read file 69 | line = '' 70 | file_reader = open(good_log_path, 'r') # read good log 71 | while True: 72 | line = file_reader.readline() 73 | if len(line) < 2: 74 | break 75 | good_data.append(int(line.split('\t')[-1].split('\n')[0])) 76 | file_reader.close() 77 | file_reader = open(error_log_path, 'r') # read error log 78 | while True: 79 | line = file_reader.readline() 80 | if len(line) < 2: 81 | break 82 | error_data.append(int(line.split('\t')[-1].split('\n')[0])) 83 | file_reader.close() 84 | 85 | # test the size of dataset 86 | if len(good_data) != DATA_SIZE or len(error_data) != DATA_SIZE: 87 | print "[ERROR] Data size error!" 88 | print "good data size: " + str(len(good_data)) + "----------------" 89 | print good_data 90 | print "error_data size: " + str(len(error_data)) + "---------------" 91 | print error_data 92 | return 93 | 94 | # calculate FPR and FNR 95 | print "Threshold\tFPR\t\tFNR" 96 | for thres in range(thres_start, thres_end): 97 | FP_num = 0 98 | FN_num = 0 99 | for i in range(0, DATA_SIZE): 100 | if good_data[i] < thres: 101 | FN_num += 1 102 | if error_data[i] >= thres: 103 | FP_num += 1 104 | fpr = 100.0 * float(FP_num)/float(DATA_SIZE) 105 | fnr = 100.0 * float(FN_num)/float(DATA_SIZE) 106 | print str(thres) + "\t\t" + str(fpr - fpr % 0.1) + "\t\t" + str(fnr - fnr % 0.1) 107 | 108 | return 109 | 110 | if __name__ == '__main__': 111 | # generate logs 112 | # good_round = generate_log("subway", GOOD_DIR, SHOW_IMAGE, MAX_ROUND) 113 | # error_round = generate_log("subway", ERROR_DIR, SHOW_IMAGE, MAX_ROUND) 114 | 115 | # show histogram 116 | # plot_histogram("Distribution of Round Number", "Round number", "# of images", good_round, error_round, "good", "error", "green", "red", 0.5, 0, MAX_X, 1) 117 | 118 | # calculate FNR and FPR 119 | cal_rate(GOOD_LOG, ERROR_LOG, 1, 30) 120 | 121 | print "done" 122 | -------------------------------------------------------------------------------- /tool/img_process/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/tool/img_process/.DS_Store -------------------------------------------------------------------------------- /tool/img_process/img_trim.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import os 4 | from PIL import Image 5 | import sys 6 | from random import randint 7 | import time 8 | 9 | # How to use: $ python trim_img.py [srcDir] [dstDir] 10 | 11 | WIDTH = 200 12 | HEIGHT = 150 13 | PIECE = 4 # how many images each street view generates 14 | 15 | def trim_img(img_path, width, height, piece, dstDir): 16 | try: 17 | f = Image.open(img_path) 18 | except: 19 | print 'ERROR: cannot open: ' + img_path 20 | return 21 | else: 22 | xsize, ysize = f.size 23 | for i in range(piece): 24 | xstart = randint(0, xsize - width) 25 | ystart = randint(0, ysize - height) 26 | box = (xstart, ystart, xstart + width, ystart + height) 27 | f.crop(box).save(dstDir + '/' + `int(round(time.time() * 10000))` + '.jpg') 28 | 29 | # Set the directory you want to start from 30 | def dir_walk(rootDir, indent, dstDir): 31 | for dirName, subdirList, fileList in os.walk(rootDir): 32 | print indent + dirName 33 | img_num = 0 34 | for fname in fileList: # file 35 | if '.jpg' in fname or '.JPG' in fname: 36 | img_num += 1 37 | trim_img(dirName + '/' + fname, WIDTH, HEIGHT, PIECE, dstDir) 38 | print 'Image number: ' + `img_num` 39 | 40 | if __name__ == '__main__': 41 | # should go through all imgs here... 42 | if len(sys.argv) != 3: 43 | sys.exit('ERROR: wrong argc!') 44 | if not os.path.exists(sys.argv[1]): 45 | sys.exit('ERROR: ' + sys.argv[1] + ' was not found!') 46 | 47 | rootDir = sys.argv[1] 48 | dstDir = sys.argv[2] 49 | # create dest dir 50 | if not os.path.exists(dstDir): 51 | os.makedirs(dstDir) 52 | 53 | dir_walk(sys.argv[1], '', sys.argv[2]) # walk through 54 | 55 | print "done" 56 | -------------------------------------------------------------------------------- /tool/img_process/img_trim.py~: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import os 4 | from PIL import Image 5 | import sys 6 | from random import randint 7 | import time 8 | 9 | # How to use: $ python trim_img.py [srcDir] [dstDir] 10 | 11 | WIDTH = 200 12 | HEIGHT = 150 13 | PIECE = 4 # how many images each street view generates 14 | 15 | def trim_img(img_path, width, height, piece, dstDir): 16 | try: 17 | f = Image.open(img_path) 18 | except: 19 | print 'ERROR: cannot open: ' + img_path 20 | return 21 | else: 22 | xsize, ysize = f.size 23 | for i in range(piece): 24 | xstart = randint(0, xsize - width) 25 | ystart = randint(0, ysize - height) 26 | box = (xstart, ystart, xstart + width, ystart + height) 27 | f.crop(box).save(dstDir + '/' + `int(round(time.time() * 10000))` + '.jpg') 28 | 29 | # Set the directory you want to start from 30 | def dir_walk(rootDir, indent, dstDir): 31 | for dirName, subdirList, fileList in os.walk(rootDir): 32 | print indent + dirName 33 | img_num = 0 34 | for fname in fileList: # file 35 | if '.jpg' in fname or '.JPG' in fname: 36 | img_num += 1 37 | trim_img(dirName + fname, WIDTH, HEIGHT, PIECE, dstDir) 38 | print 'Image number: ' + `img_num` 39 | 40 | if __name__ == '__main__': 41 | # should go through all imgs here... 42 | if len(sys.argv) != 3: 43 | sys.exit('ERROR: wrong argc!') 44 | if not os.path.exists(sys.argv[1]): 45 | sys.exit('ERROR: ' + sys.argv[1] + ' was not found!') 46 | 47 | rootDir = sys.argv[1] 48 | dstDir = sys.argv[2] 49 | # create dest dir 50 | if not os.path.exists(dstDir): 51 | os.makedirs(dstDir) 52 | 53 | dir_walk(sys.argv[1], '', sys.argv[2]) # walk through 54 | 55 | print "done" 56 | -------------------------------------------------------------------------------- /training/README.md: -------------------------------------------------------------------------------- 1 | # Train your own OpenCV Haar classifier 2 | 3 | This repository aims to provide tools and information on training your own 4 | OpenCV Haar classifier. Use it in conjunction with this blog post: [Train your own OpenCV Haar 5 | classifier](http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html). 6 | - The README comes from https://github.com/mrnugget/opencv-haar-classifier-training 7 | 8 | ## Instructions 9 | 10 | 1. Install OpenCV & get OpenCV source 11 | 12 | 2. Copy this repository to somewhere else 13 | 14 | 3. Put your positive images (60+) in the `./positive_images` folder and create a list 15 | of them : 16 | 17 | find ./positive_images -iname "*.jpg" > positives.txt 18 | 19 | 4. Put the negative images (600+) in the `./negative_images` folder and create a list of them: 20 | 21 | find ./negative_images -iname "*.jpg" > negatives.txt 22 | 23 | 5. Create positive samples with the `bin/createsamples.pl` script and save them 24 | to the `./samples` folder (change the width and height): 25 | 26 | perl bin/createsamples.pl positives.txt negatives.txt samples 1500\ 27 | "opencv_createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1.1\ 28 | -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w 80 -h 40" 29 | 30 | 6. Use the compiled executable `mergevec` to merge the samples in `./samples` 31 | into one file: 32 | 33 | find ./samples -name '*.vec' > samples.txt 34 | ./mergevec samples.txt samples.vec 35 | 36 | 7. Start training the classifier with `opencv_traincascade`, which comes with 37 | OpenCV, and save the results to `./classifier` (change wid, hei, numPos, numNeg): 38 | 39 | opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt\ 40 | -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000\ 41 | -numNeg 600 -w 80 -h 40 -mode ALL -precalcValBufSize 1024\ 42 | -precalcIdxBufSize 1024 43 | 44 | 9. Wait until the process is finished (which takes a long time — a couple of 45 | days probably, depending on the computer you have and how big your images are). 46 | 47 | 10. Use your finished classifier! 48 | 49 | cd ~/opencv-2.4.9/samples/c 50 | chmod +x build_all.sh 51 | ./build_all.sh 52 | ./facedetect --cascade="~/finished_classifier.xml" 53 | 54 | 55 | ## Acknowledgements 56 | 57 | A huge thanks goes to Naotoshi Seo, who wrote the `mergevec.cpp` and 58 | `createsamples.cpp` tools and released them under the MIT licencse. His notes 59 | on OpenCV Haar training were a huge help. Thank you, Naotoshi! 60 | 61 | ## References & Links: 62 | 63 | - [Naotoshi Seo - Tutorial: OpenCV haartraining (Rapid Object Detection With A Cascade of Boosted Classifiers Based on Haar-like Features)](http://note.sonots.com/SciSoftware/haartraining.html) 64 | - [Material for Naotoshi Seo's tutorial](https://code.google.com/p/tutorial-haartraining/) 65 | - [OpenCV Documentation - Cascade Classifier Training](http://docs.opencv.org/doc/user_guide/ug_traincascade.html) 66 | -------------------------------------------------------------------------------- /training/bin/createsamples.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | use File::Basename; 3 | use strict; 4 | ########################################################################## 5 | # Create samples from an image applying distortions repeatedly 6 | # (create many many samples from many images applying distortions) 7 | # 8 | # perl createtrainsamples.pl 9 | # [] [] 10 | # ex) perl createtrainsamples.pl positives.dat negatives.dat samples 11 | # 12 | # Author: Naotoshi Seo 13 | # Date : 09/12/2008 Add and options 14 | # Date : 06/02/2007 15 | # Date : 03/12/2006 16 | ######################################################################### 17 | my $cmd = './createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1.1 -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w 20 -h 20'; 18 | my $totalnum = 7000; 19 | my $tmpfile = 'tmp'; 20 | 21 | if ($#ARGV < 2) { 22 | print "Usage: perl createtrainsamples.pl\n"; 23 | print " \n"; 24 | print " \n"; 25 | print " \n"; 26 | print " []\n"; 27 | print " []\n"; 28 | exit; 29 | } 30 | my $positive = $ARGV[0]; 31 | my $negative = $ARGV[1]; 32 | my $outputdir = $ARGV[2]; 33 | $totalnum = $ARGV[3] if ($#ARGV > 2); 34 | $cmd = $ARGV[4] if ($#ARGV > 3); 35 | 36 | open(POSITIVE, "< $positive"); 37 | my @positives = ; 38 | close(POSITIVE); 39 | 40 | open(NEGATIVE, "< $negative"); 41 | my @negatives = ; 42 | close(NEGATIVE); 43 | 44 | # number of generated images from one image so that total will be $totalnum 45 | my $numfloor = int($totalnum / $#positives); 46 | my $numremain = $totalnum - $numfloor * $#positives; 47 | 48 | # Get the directory name of positives 49 | my $first = $positives[0]; 50 | my $last = $positives[$#positives]; 51 | while ($first ne $last) { 52 | $first = dirname($first); 53 | $last = dirname($last); 54 | if ( $first eq "" ) { last; } 55 | } 56 | my $imgdir = $first; 57 | my $imgdirlen = length($first); 58 | 59 | for (my $k = 0; $k < $#positives; $k++ ) { 60 | my $img = $positives[$k]; 61 | my $num = ($k < $numremain) ? $numfloor + 1 : $numfloor; 62 | 63 | # Pick up negative images randomly 64 | my @localnegatives = (); 65 | for (my $i = 0; $i < $num; $i++) { 66 | my $ind = int(rand($#negatives)); 67 | push(@localnegatives, $negatives[$ind]); 68 | } 69 | open(TMP, "> $tmpfile"); 70 | print TMP @localnegatives; 71 | close(TMP); 72 | #system("cat $tmpfile"); 73 | 74 | !chomp($img); 75 | my $vec = $outputdir . substr($img, $imgdirlen) . ".vec" ; 76 | print "$cmd -img $img -bg $tmpfile -vec $vec -num $num" . "\n"; 77 | system("$cmd -img $img -bg $tmpfile -vec $vec -num $num"); 78 | } 79 | unlink($tmpfile); 80 | -------------------------------------------------------------------------------- /training/mergevec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/training/mergevec -------------------------------------------------------------------------------- /training/negative_images/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/training/negative_images/.gitkeep -------------------------------------------------------------------------------- /training/positive_images/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/training/positive_images/.gitkeep -------------------------------------------------------------------------------- /training/samples/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperchris/HaarLogoDetection/df95f2bd5330682ac8eea819c98f5740505548fe/training/samples/.gitkeep -------------------------------------------------------------------------------- /training/src/mergevec.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | #include <_cvhaartraining.h> // Load CvVecFile 9 | // Write a vec header into the vec file (located at cvsamples.cpp) 10 | void icvWriteVecHeader( FILE* file, int count, int width, int height ); 11 | // Write a sample image into file in the vec format (located at cvsamples.cpp) 12 | void icvWriteVecSample( FILE* file, CvArr* sample ); 13 | // Append the body of the input vec to the ouput vec 14 | void icvAppendVec( CvVecFile &in, CvVecFile &out, int *showsamples, int winwidth, int winheight ); 15 | // Merge vec files 16 | void icvMergeVecs( char* infoname, const char* outvecname, int showsamples, int width, int height ); 17 | 18 | // Append the body of the input vec to the ouput vec 19 | void icvAppendVec( CvVecFile &in, CvVecFile &out, int *showsamples, int winwidth, int winheight ) 20 | { 21 | CvMat* sample; 22 | 23 | if( *showsamples ) 24 | { 25 | cvNamedWindow( "Sample", CV_WINDOW_AUTOSIZE ); 26 | } 27 | if( !feof( in.input ) ) 28 | { 29 | in.last = 0; 30 | in.vector = (short*) cvAlloc( sizeof( *in.vector ) * in.vecsize ); 31 | if ( *showsamples ) 32 | { 33 | if ( in.vecsize != winheight * winwidth ) 34 | { 35 | fprintf( stderr, "ERROR: -show: the size of images inside of vec files does not match with %d x %d, but %d\n", winheight, winwidth, in.vecsize ); 36 | exit(1); 37 | } 38 | sample = cvCreateMat( winheight, winwidth, CV_8UC1 ); 39 | } 40 | else 41 | { 42 | sample = cvCreateMat( in.vecsize, 1, CV_8UC1 ); 43 | } 44 | for( int i = 0; i < in.count; i++ ) 45 | { 46 | icvGetHaarTraininDataFromVecCallback( sample, &in ); 47 | icvWriteVecSample ( out.input, sample ); 48 | if( *showsamples ) 49 | { 50 | cvShowImage( "Sample", sample ); 51 | if( cvWaitKey( 0 ) == 27 ) 52 | { 53 | *showsamples = 0; 54 | } 55 | } 56 | } 57 | cvReleaseMat( &sample ); 58 | cvFree( (void**) &in.vector ); 59 | } 60 | } 61 | 62 | void icvMergeVecs( char* infoname, const char* outvecname, int showsamples, int width, int height ) 63 | { 64 | char onevecname[PATH_MAX]; 65 | int i = 0; 66 | int filenum = 0; 67 | short tmp; 68 | FILE *info; 69 | CvVecFile outvec; 70 | CvVecFile invec; 71 | int prev_vecsize; 72 | 73 | // fopen input and output file 74 | info = fopen( infoname, "r" ); 75 | if ( info == NULL ) 76 | { 77 | fprintf( stderr, "ERROR: Input file %s does not exist or not readable.\n", infoname ); 78 | exit(1); 79 | } 80 | outvec.input = fopen( outvecname, "wb" ); 81 | if ( outvec.input == NULL ) 82 | { 83 | fprintf( stderr, "ERROR: Output file %s is not writable.\n", outvecname ); 84 | exit(1); 85 | } 86 | 87 | // Header 88 | rewind( info ); 89 | outvec.count = 0; 90 | for ( filenum = 0; ; filenum++ ) 91 | { 92 | if ( fscanf( info, "%s", onevecname ) == EOF ) 93 | { 94 | break; 95 | } 96 | invec.input = fopen( onevecname, "rb" ); 97 | if ( invec.input == NULL ) 98 | { 99 | fprintf( stderr, "ERROR: Input file %s does not exist or not readable.\n", onevecname ); 100 | exit(1); 101 | } 102 | fread( &invec.count, sizeof( invec.count ) , 1, invec.input ); 103 | fread( &invec.vecsize, sizeof( invec.vecsize ), 1, invec.input ); 104 | fread( &tmp, sizeof( tmp ), 1, invec.input ); 105 | fread( &tmp, sizeof( tmp ), 1, invec.input ); 106 | 107 | outvec.count += invec.count; 108 | if( i > 0 && invec.vecsize != prev_vecsize ) 109 | { 110 | fprintf( stderr, "ERROR: The size of images in %s(%d) is different with the previous vec file(%d).\n", onevecname, invec.vecsize, prev_vecsize ); 111 | exit(1); 112 | } 113 | prev_vecsize = invec.vecsize; 114 | fclose( invec.input ); 115 | } 116 | outvec.vecsize = invec.vecsize; 117 | icvWriteVecHeader( outvec.input, outvec.count, outvec.vecsize, 1); 118 | 119 | // Contents 120 | rewind( info ); 121 | outvec.count = 0; 122 | for ( i = 0; i < filenum ; i++ ) 123 | { 124 | if (fscanf( info, "%s", onevecname ) == EOF) { 125 | break; 126 | } 127 | invec.input = fopen( onevecname, "rb" ); 128 | fread( &invec.count, sizeof( invec.count ) , 1, invec.input ); 129 | fread( &invec.vecsize, sizeof( invec.vecsize ), 1, invec.input ); 130 | fread( &tmp, sizeof( tmp ), 1, invec.input ); 131 | fread( &tmp, sizeof( tmp ), 1, invec.input ); 132 | 133 | icvAppendVec( invec, outvec, &showsamples, width, height ); 134 | fclose( invec.input ); 135 | } 136 | fclose( outvec.input ); 137 | } 138 | 139 | int main( int argc, char **argv ) 140 | { 141 | int i; 142 | char *infoname = NULL; 143 | char *outvecname = NULL; 144 | int showsamples = 0; 145 | int width = 24; 146 | int height = 24; 147 | 148 | if( argc == 1 ) 149 | { 150 | printf( "Usage: %s\n \n" 151 | " \n" 152 | " [-show] [-w ] [-h ]\n", 153 | argv[0], width, height ); 154 | return 0; 155 | } 156 | for( i = 1; i < argc; ++i ) 157 | { 158 | if( !strcmp( argv[i], "-show" ) ) 159 | { 160 | showsamples = 1; 161 | // width = atoi( argv[++i] ); // obsolete -show width height 162 | // height = atoi( argv[++i] ); 163 | } 164 | else if( !strcmp( argv[i], "-w" ) ) 165 | { 166 | width = atoi( argv[++i] ); 167 | } 168 | else if( !strcmp( argv[i], "-h" ) ) 169 | { 170 | height = atoi( argv[++i] ); 171 | } 172 | else if( argv[i][0] == '-' ) 173 | { 174 | fprintf( stderr, "ERROR: The option %s does not exist. n", argv[i] ); 175 | exit(1); 176 | } 177 | else if( infoname == NULL ) 178 | { 179 | infoname = argv[i]; 180 | } 181 | else if( outvecname == NULL ) 182 | { 183 | outvecname = argv[i]; 184 | } 185 | } 186 | if( infoname == NULL ) 187 | { 188 | fprintf( stderr, "ERROR: No input file\n" ); 189 | exit(1); 190 | } 191 | if( outvecname == NULL ) 192 | { 193 | fprintf( stderr, "ERROR: No output file\n" ); 194 | exit(1); 195 | } 196 | icvMergeVecs( infoname, outvecname, showsamples, width, height ); 197 | return 0; 198 | } 199 | -------------------------------------------------------------------------------- /training/train.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # [width] [height] [numPos] [numNeg] [numPosSample] 3 | 4 | echo 'start' 5 | find ./positive_images -iname "*.jpg" > positives.txt 6 | find ./negative_images -iname "*.jpg" > negatives.txt 7 | echo 'image list created' 8 | perl bin/createsamples.pl positives.txt negatives.txt samples $5\ 9 | "opencv_createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1.1\ 10 | -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w $1 -h $2" 11 | echo 'sample generated' 12 | find ./samples -name '*.vec' > samples.txt 13 | ./mergevec samples.txt samples.vec 14 | echo 'prepare for training...' 15 | opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt\ 16 | -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos $3\ 17 | -numNeg $4 -w $1 -h $2 -mode ALL -precalcValBufSize 1024\ 18 | -precalcIdxBufSize 1024 19 | echo 'done' 20 | --------------------------------------------------------------------------------