├── README.md ├── opencv_tracker ├── data │ └── pets09s2l1.avi └── dev │ ├── src │ ├── link_opencv.h │ ├── main_opencv_multi_tracking.cpp │ ├── main_opencv_trackeing.cpp │ └── main_simple_opencv_tracking.cpp │ └── vc12 │ ├── opencv3_trackers.v12.suo │ ├── opencv_tracker.sln │ ├── opencv_tracker.v12.suo │ ├── opencv_tracker.vcxproj │ ├── opencv_tracker.vcxproj.filters │ └── opencv_tracker.vcxproj.user └── tracker_benchmark_v1.0 ├── figs └── overall │ ├── ALL │ ├── abrupt_motion_error_TRE_threshold.png │ ├── abrupt_motion_overlap_TRE_AUC.png │ ├── abrupt_motion_overlap_TRE_threshold.png │ ├── background_clutter_error_TRE_threshold.png │ ├── background_clutter_overlap_TRE_AUC.png │ ├── background_clutter_overlap_TRE_threshold.png │ ├── blur_error_TRE_threshold.png │ ├── blur_overlap_TRE_AUC.png │ ├── blur_overlap_TRE_threshold.png │ ├── deformation_error_TRE_threshold.png │ ├── deformation_overlap_TRE_AUC.png │ ├── deformation_overlap_TRE_threshold.png │ ├── illumination_variations_error_TRE_threshold.png │ ├── illumination_variations_overlap_TRE_AUC.png │ ├── illumination_variations_overlap_TRE_threshold.png │ ├── in-plane_rotation_error_TRE_threshold.png │ ├── in-plane_rotation_overlap_TRE_AUC.png │ ├── in-plane_rotation_overlap_TRE_threshold.png │ ├── location_error.png │ ├── low_resolution_error_TRE_threshold.png │ ├── low_resolution_overlap_TRE_AUC.png │ ├── low_resolution_overlap_TRE_threshold.png │ ├── occlusions_error_TRE_threshold.png │ ├── occlusions_overlap_TRE_AUC.png │ ├── occlusions_overlap_TRE_threshold.png │ ├── out-of-plane_rotation_error_TRE_threshold.png │ ├── out-of-plane_rotation_overlap_TRE_AUC.png │ ├── out-of-plane_rotation_overlap_TRE_threshold.png │ ├── out-of-view_error_TRE_threshold.png │ ├── out-of-view_overlap_TRE_AUC.png │ ├── out-of-view_overlap_TRE_threshold.png │ ├── overlap.png │ ├── quality_plot_error_TRE_threshold.png │ ├── quality_plot_overlap_TRE_AUC.png │ ├── quality_plot_overlap_TRE_threshold.png │ ├── scale_variations_error_TRE_threshold.png │ ├── scale_variations_overlap_TRE_AUC.png │ └── scale_variations_overlap_TRE_threshold.png │ ├── OpenCV │ ├── abrupt_motion_error_TRE_threshold.png │ ├── abrupt_motion_overlap_TRE_AUC.png │ ├── abrupt_motion_overlap_TRE_threshold.png │ ├── background_clutter_error_TRE_threshold.png │ ├── background_clutter_overlap_TRE_AUC.png │ ├── background_clutter_overlap_TRE_threshold.png │ ├── blur_error_TRE_threshold.png │ ├── blur_overlap_TRE_AUC.png │ ├── blur_overlap_TRE_threshold.png │ ├── deformation_error_TRE_threshold.png │ ├── deformation_overlap_TRE_AUC.png │ ├── deformation_overlap_TRE_threshold.png │ ├── illumination_variations_error_TRE_threshold.png │ ├── illumination_variations_overlap_TRE_AUC.png │ ├── illumination_variations_overlap_TRE_threshold.png │ ├── in-plane_rotation_error_TRE_threshold.png │ ├── in-plane_rotation_overlap_TRE_AUC.png │ ├── in-plane_rotation_overlap_TRE_threshold.png │ ├── low_resolution_error_TRE_threshold.png │ ├── low_resolution_overlap_TRE_AUC.png │ ├── low_resolution_overlap_TRE_threshold.png │ ├── occlusions_error_TRE_threshold.png │ ├── occlusions_overlap_TRE_AUC.png │ ├── occlusions_overlap_TRE_threshold.png │ ├── out-of-plane_rotation_error_TRE_threshold.png │ ├── out-of-plane_rotation_overlap_TRE_AUC.png │ ├── out-of-plane_rotation_overlap_TRE_threshold.png │ ├── out-of-view_error_TRE_threshold.png │ ├── out-of-view_overlap_TRE_AUC.png │ ├── out-of-view_overlap_TRE_threshold.png │ ├── quality_plot_error_TRE_threshold.png │ ├── quality_plot_overlap_TRE_AUC.png │ ├── quality_plot_overlap_TRE_threshold.png │ ├── scale_variations_error_TRE_threshold.png │ ├── scale_variations_overlap_TRE_AUC.png │ └── scale_variations_overlap_TRE_threshold.png │ └── OpenCVvsOriginal │ ├── occlusions_error_TRE_threshold.png │ ├── occlusions_overlap_TRE_AUC.png │ ├── occlusions_overlap_TRE_threshold.png │ ├── out-of-plane_rotation_error_TRE_threshold.png │ ├── out-of-plane_rotation_overlap_TRE_AUC.png │ ├── out-of-plane_rotation_overlap_TRE_threshold.png │ ├── out-of-view_error_TRE_threshold.png │ ├── out-of-view_overlap_TRE_AUC.png │ ├── out-of-view_overlap_TRE_threshold.png │ ├── quality_plot_error_TRE_threshold.png │ ├── quality_plot_overlap_TRE_AUC.png │ ├── quality_plot_overlap_TRE_threshold.png │ ├── scale_variations_error_TRE_threshold.png │ ├── scale_variations_overlap_TRE_AUC.png │ └── scale_variations_overlap_TRE_threshold.png ├── trackers ├── CVBOOSTING │ └── run_CvBoosting.m ├── CVKCF │ ├── run_CvKCF.asv │ └── run_CvKCF.m ├── CVMEDIANFLOW │ ├── run_CvMedianFlow.asv │ └── run_CvMedianFlow.m ├── CVMIL │ └── run_CvMIL.m └── CVTLD │ ├── run_CvTLD.asv │ └── run_CvTLD.m └── util └── configTrackers.m /README.md: -------------------------------------------------------------------------------- 1 | # OpenCV tracker performance test 2 | 3 | This code is for testing the performance of the Tracking API introduced in OpenCV. 4 | 5 | ## Requirements 6 | - OpenCV 3.0 7 | - Visual C++ 2013 8 | - Windows 9 | - [Visual Tracker Benchmark](http://cvlab.hanyang.ac.kr/tracker_benchmark/benchmark_v10.html ) 10 | - matlab 11 | 12 | ## Results on YouTube 13 | 14 | You can easily understand the performance test results with this code from the video. 15 | 16 | [[YouTube] OpenCV 3.0 Tracking API Results](https://youtu.be/pj-QuE6pdEQ ) 17 | 18 | ## Blog (Japanese) 19 | 20 | I described the performance test in the following blog in more detail. 21 | 22 | [[Blog] About the OpenCV Tracking API (Japanese)](https://irohalog.hatenablog.com/entry/opencv_tracking_api ) 23 | 24 | ## Performance Evaluation 25 | ### Evaluation Method 26 | Evaluation was performed using 51 sequences from [Visual Tracker Benchmark](http://cvlab.hanyang.ac.kr/tracker_benchmark/benchmark_v10.html ). Since tracking results depend on the initial rectangular area, 20 sub-sequences with different tracking start times were generated for each of the 51 sequences according to the evaluation method of the Visual Tracker Benchmark, and 51 x 20 = 1020 sequences were used to track more than 300,000 frames. The tracking was performed for more than 300,000 frames using 51 sequences. 27 | 28 | ### Evaluation Metrics 29 | 30 | 1. Success plot (region overlap) 31 | Define the overlap score as ${S = \frac{|r_t \cap r_a |}{|r_t \cup r_a|} }$, where ${r_t}$ is the bounding box of the tracking result and ${r_a}$ is the correct bounding box. Success plot is a plot of the percentage of tracked results whose overlap score was higher than a certain threshold $S > \theta$ out of the total number of frames in all tested sequences. 32 | 33 | 2. Precision plot (center position error) 34 | It is an evaluation using the region's center position error. It plots the percentage of center position errors between the tracking bounding box and the correct bounding box that are smaller than a threshold value. 35 | 36 | 3. Processing Speed (fps) 37 | Average fps when tracked on a PC with Intel Core i7-5820K CPU (3.30 GHz), 32GB RAM. 38 | 39 | ### OpenCV Tracking API Performance of each algorithm 40 | KCF performs well in terms of both tracking accuracy and processing speed. 41 | 42 | * Success plot (region overlap) 43 | 20151220204437 44 | 45 | * Precision plot (center position error) 46 | 20151220204436p 47 | 48 | * Processing Speed (fps) 49 | 50 | | Boosting | MIL | TLD | MedianFlow | KCF 51 | |:-----------|:------------:|:------------:|:------------:|:------------:| 52 | |27.6763 | 16.8790 | 9.7450 | 134.3183 | 80.5531 53 | 54 | -------------------------------------------------------------------------------- /opencv_tracker/data/pets09s2l1.avi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/opencv_tracker/data/pets09s2l1.avi -------------------------------------------------------------------------------- /opencv_tracker/dev/src/link_opencv.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINK_OPENCV_H__ 2 | #define __LINK_OPENCV_H__ 3 | 4 | #include 5 | 6 | #define OPENCV_VER_STR CVAUX_STR(CV_VERSION_MAJOR) CVAUX_STR(CV_MINOR_VERSION) CVAUX_STR(CV_SUBMINOR_VERSION) 7 | 8 | #ifdef _DEBUG 9 | #define OPENCV_EXT_STR "d.lib" 10 | #else 11 | #define OPENCV_EXT_STR ".lib" 12 | #endif 13 | 14 | #define OPENCV_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) 15 | #define OPENCV_VERSION_CODE OPENCV_VERSION(CV_VERSION_MAJOR, CV_MINOR_VERSION, CV_SUBMINOR_VERSION) 16 | 17 | #if CV_VERSION_MAJOR < 3 18 | //#pragma comment(lib, "opencv_contrib" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_contrib 19 | //#pragma comment(lib, "opencv_legacy" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_legacy 20 | #else 21 | #pragma comment(lib, "opencv_imgcodecs" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_imgcodecs 22 | #pragma comment(lib, "opencv_videoio" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_videoio 23 | #pragma comment(lib, "opencv_tracking" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_tracking 24 | #endif 25 | 26 | //#pragma comment(lib, "opencv_calib3d" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_calib3d 27 | #pragma comment(lib, "opencv_core" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_core 28 | //#pragma comment(lib, "opencv_features2d" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_features2d 29 | //#pragma comment(lib, "opencv_flann" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_flann 30 | //#pragma comment(lib, "opencv_gpu" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_gpu 31 | //#pragma comment(lib, "opencv_haartraining_engine" "" OPENCV_EXT_STR) // opencv_haartraining 32 | #pragma comment(lib, "opencv_highgui" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_highgui 33 | #pragma comment(lib, "opencv_imgproc" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_imgproc 34 | //#pragma comment(lib, "opencv_ml" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_ml 35 | //#pragma comment(lib, "opencv_nonfree" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_nonfree 36 | //#pragma comment(lib, "opencv_objdetect" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_objdetect 37 | //#pragma comment(lib, "opencv_photo" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_photo 38 | //#pragma comment(lib, "opencv_stitching" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_stitching 39 | //#pragma comment(lib, "opencv_ts" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_ts 40 | //#pragma comment(lib, "opencv_video" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_video 41 | //#pragma comment(lib, "opencv_videostab" OPENCV_VER_STR OPENCV_EXT_STR) // opencv_videostab 42 | 43 | #endif /* __LINK_OPENCV_H__ */ -------------------------------------------------------------------------------- /opencv_tracker/dev/src/main_opencv_multi_tracking.cpp: -------------------------------------------------------------------------------- 1 | #include "link_opencv.h" 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | static cv::Mat Image; 13 | static cv::Rect BBox; 14 | static std::string WindowName; 15 | static bool Paused; 16 | static bool SelectObject = false; 17 | static bool StartSelection = false; 18 | 19 | static const char* Keys = 20 | { "{@tracker_algorithm | | tracker algorithm }" 21 | "{@video_name | | video name }" 22 | "{help h usage| |print this message }" 23 | }; 24 | 25 | static void Help() 26 | { 27 | std::cout << "\nThis example shows the functionality of \"Long-term optical tracking API\"" 28 | "-- pause video [p] and draw a bounding box around the target to start the tracker\n" 29 | "Call:\n" 30 | "./tracker \n" 31 | << std::endl; 32 | 33 | std::cout << "\n\nHot Keys: \n" 34 | "\tq - quit the program\n" 35 | "\tp - pause video\n"; 36 | } 37 | 38 | static void OnMouse(int event, int x, int y, int, void*) 39 | { 40 | if (!SelectObject) 41 | { 42 | switch (event) 43 | { 44 | case cv::EVENT_LBUTTONDOWN: 45 | //set origin of the bounding box 46 | StartSelection = true; 47 | BBox.x = x; 48 | BBox.y = y; 49 | break; 50 | case cv::EVENT_LBUTTONUP: 51 | //sei with and height of the bounding box 52 | BBox.width = std::abs(x - BBox.x); 53 | BBox.height = std::abs(y - BBox.y); 54 | Paused = false; 55 | SelectObject = true; 56 | break; 57 | case cv::EVENT_MOUSEMOVE: 58 | if (StartSelection) 59 | { 60 | //draw the bounding box 61 | cv::Mat currentFrame; 62 | Image.copyTo(currentFrame); 63 | cv::rectangle(currentFrame, cv::Point(BBox.x, BBox.y), cv::Point(x, y), cv::Scalar(255, 0, 0), 2, 1); 64 | cv::imshow(WindowName, currentFrame); 65 | } 66 | break; 67 | } 68 | } 69 | } 70 | 71 | bool CheckTrackerAlgType(cv::String& tracker_algorithm) 72 | { 73 | if (tracker_algorithm == "BOOSTING" || 74 | tracker_algorithm == "MIL" || 75 | tracker_algorithm == "TLD" || 76 | tracker_algorithm == "MEDIANFLOW" || 77 | tracker_algorithm == "KCF") 78 | { 79 | std::cout << "Tracker Algorithm Type: " << tracker_algorithm << std::endl; 80 | } 81 | else{ 82 | CV_Error(cv::Error::StsError, "Unsupported algorithm type " + tracker_algorithm + " is specified."); 83 | } 84 | return true; 85 | } 86 | 87 | int main(int argc, char** argv) 88 | { 89 | cv::CommandLineParser parser(argc, argv, Keys); 90 | 91 | cv::String tracker_algorithm = parser.get(0); 92 | cv::String video_name = parser.get(1); 93 | 94 | parser.about("OpenCV MultiTracker API Test"); 95 | if (parser.has("help")) 96 | { 97 | parser.printMessage(); 98 | return 0; 99 | } 100 | 101 | if (tracker_algorithm.empty() || video_name.empty() || !parser.check()) 102 | { 103 | parser.printErrors(); 104 | return -1; 105 | } 106 | 107 | CheckTrackerAlgType(tracker_algorithm); 108 | 109 | // for random colors 110 | std::random_device rnd; 111 | std::mt19937 mt(rnd()); 112 | std::uniform_int_distribution<> rand255(0, 255); 113 | 114 | //open the capture 115 | cv::VideoCapture cap; 116 | cap.open(video_name); 117 | 118 | if (!cap.isOpened()) 119 | { 120 | Help(); 121 | std::cout << "***Could not initialize capturing...***\n"; 122 | std::cout << "Current parameter's value: \n"; 123 | parser.printMessage(); 124 | return -1; 125 | } 126 | 127 | cv::Mat frame; 128 | Paused = true; 129 | WindowName = "Tracking API: " + tracker_algorithm; 130 | cv::namedWindow(WindowName, 0); 131 | cv::setMouseCallback(WindowName, OnMouse, 0); 132 | 133 | //instantiates the specific Tracker 134 | cv::Ptr tracker = new cv::MultiTracker(tracker_algorithm); 135 | if (tracker == NULL) 136 | { 137 | std::cout << "***Error in the instantiation of the tracker...***\n"; 138 | return -1; 139 | } 140 | 141 | std::cout << "Hot Keys: \n" 142 | "\tq - quit the program\n" 143 | "\tp - pause video\n"; 144 | 145 | //get the first frame 146 | cap >> frame; 147 | frame.copyTo(Image); 148 | imshow(WindowName, Image); 149 | std::vector bboxes; 150 | std::vector colors; 151 | char c; 152 | while (true) 153 | { 154 | if (!Paused) 155 | { 156 | cap >> frame; 157 | frame.copyTo(Image); 158 | 159 | if (SelectObject) 160 | { 161 | //initializes the tracker 162 | if (tracker->add(Image, BBox)) 163 | { 164 | bboxes.push_back(BBox); 165 | colors.push_back(cv::Scalar(rand255(mt), rand255(mt), rand255(mt))); 166 | SelectObject = false; 167 | StartSelection = false; 168 | } 169 | } 170 | else if (!bboxes.empty()) 171 | { 172 | //updates the tracker 173 | if (tracker->update(frame, bboxes)) 174 | { 175 | CV_Assert(bboxes.size() == colors.size()); 176 | auto b_it = bboxes.cbegin(); 177 | auto c_it = colors.cbegin(); 178 | while (b_it != bboxes.end() && c_it != colors.end()) 179 | { 180 | cv::rectangle(Image, *b_it, *c_it, 2, 1); 181 | b_it++; 182 | c_it++; 183 | } 184 | } 185 | } 186 | imshow(WindowName, Image); 187 | } 188 | 189 | c = (char)cv::waitKey(2); 190 | if (c == 'q') 191 | break; 192 | if (c == 'p') 193 | Paused = !Paused; 194 | } 195 | 196 | return 0; 197 | } -------------------------------------------------------------------------------- /opencv_tracker/dev/src/main_opencv_trackeing.cpp: -------------------------------------------------------------------------------- 1 | #include "link_opencv.h" 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | #include 12 | 13 | const cv::String Keys = 14 | "{help h usage| |print this message }" 15 | "{@tracker_algorithm| |OpenCV tracker algorithm }" 16 | "{@seq_name| |sequence name }" 17 | "{@seq_path| |sequence path }" 18 | "{@start_frame| |start frame id }" 19 | "{@end_frame| |end frame id }" 20 | "{@digit| |number of digits in image file names }" 21 | "{@ext| |extension of input images }" 22 | "{@initial_x| |left point of the initial bounding box }" 23 | "{@initial_y| |top point of the initial bounding box }" 24 | "{@initial_w| |width of the initial bounding box }" 25 | "{@initial_h| |height of the initial bounding box }" 26 | "{@save|0|flag for saving result images}" 27 | "{@show|0|flag for showing result images}" 28 | "{@tracker_path|./|output directory path of a tracking result file }" 29 | "{@output_image_path|./|output directory path of result images}" 30 | ; 31 | 32 | bool CheckTrackerAlgType(cv::String& tracker_algorithm) 33 | { 34 | if (tracker_algorithm == "BOOSTING" || 35 | tracker_algorithm == "MIL" || 36 | tracker_algorithm == "TLD" || 37 | tracker_algorithm == "MEDIANFLOW" || 38 | tracker_algorithm == "KCF") 39 | { 40 | std::cout << "Tracker Algorithm Type: " << tracker_algorithm << std::endl; 41 | } 42 | else{ 43 | CV_Error(cv::Error::StsError, "Unsupported algorithm type " + tracker_algorithm + " is specified."); 44 | } 45 | return true; 46 | } 47 | 48 | int main(int argc, char** argv) 49 | { 50 | boost::timer::cpu_timer timer; 51 | cv::CommandLineParser parser(argc, argv, Keys); 52 | 53 | parser.about("OpenCV Tracker for tracking benchmark v1.0"); 54 | if (parser.has("help")) 55 | { 56 | parser.printMessage(); 57 | return 0; 58 | } 59 | 60 | cv::String tracker_algorithm = parser.get(0); 61 | std::string seq_name = parser.get(1); 62 | std::string seq_path = parser.get(2); 63 | int start_frame = parser.get(3); 64 | int end_frame = parser.get(4); 65 | int digit = parser.get(5); 66 | std::string ext = parser.get(6); 67 | cv::Rect2d start_bb(parser.get(7), parser.get(8), parser.get(9), parser.get(10)); 68 | bool save = parser.get(11) == 0 ? false : true; 69 | bool show = parser.get(12) == 0 ? false : true; 70 | std::string tracker_path = parser.get(13); 71 | std::string output_image_path = parser.get(14); 72 | 73 | if (!parser.check()) 74 | { 75 | parser.printErrors(); 76 | return -1; 77 | } 78 | 79 | CheckTrackerAlgType(tracker_algorithm); 80 | 81 | //instantiates the specific Tracker 82 | cv::Ptr tracker = cv::Tracker::create(tracker_algorithm); 83 | if (tracker.empty()) 84 | { 85 | std::cerr << "***Error in the instantiation of the tracker...***\n"; 86 | return -1; 87 | } 88 | 89 | cv::Mat frame; 90 | cv::Rect2d bbox = start_bb; 91 | bool initialized = false; 92 | bool finished = false; 93 | int fcnt = 0; 94 | std::string filename; 95 | 96 | // result files 97 | std::ofstream ofs_bbox(tracker_path + seq_name + "_" + tracker_algorithm + ".txt"); 98 | std::ofstream ofs_fps(tracker_path + seq_name + "_" + tracker_algorithm + "_FPS.txt"); 99 | 100 | for (int f_id = start_frame; f_id <= end_frame; ++f_id) 101 | { 102 | std::ostringstream oss; 103 | oss << std::setw(digit) << std::setfill('0') << f_id; 104 | filename = seq_path + oss.str() + "." + ext; 105 | frame = cv::imread(filename); 106 | if (frame.empty()) 107 | { 108 | std::cerr << "***Could not load a image: " + seq_path + "/" + oss.str() + "." + ext + "***\n"; 109 | std::cerr << "Current parameter's value: \n"; 110 | parser.printMessage(); 111 | return -1; 112 | } 113 | if (!initialized) 114 | { 115 | //initializes the tracker 116 | std::cout << "Tracker initialization..."; 117 | timer.start(); 118 | if (!tracker->init(frame, bbox)) 119 | { 120 | std::cerr << "***Could not initialize tracker...***\n"; 121 | return -1; 122 | } 123 | else 124 | { 125 | timer.stop(); 126 | std::cout << "Success." << std::endl; 127 | fcnt++; 128 | ofs_bbox << bbox.x << "," << bbox.y << "," << bbox.width << "," << bbox.height << std::endl;; 129 | initialized = true; 130 | } 131 | } 132 | else if (finished) 133 | { 134 | ofs_bbox << "0,0,0,0" << std::endl; 135 | } 136 | else 137 | { 138 | timer.resume(); 139 | //updates the tracker 140 | tracker->update(frame, bbox); 141 | timer.stop(); 142 | if ((bbox.x < 0) || (bbox.y < 0) 143 | || (frame.cols < bbox.x+bbox.width) || (frame.rows < bbox.y+bbox.height) ) 144 | { 145 | // the target is out of sight 146 | finished = true; 147 | ofs_bbox << "0,0,0,0" << std::endl; 148 | continue; 149 | } 150 | std::cout << "Process: " << filename << std::endl; 151 | fcnt++; 152 | ofs_bbox << bbox.x << "," << bbox.y << "," << bbox.width << "," << bbox.height << std::endl; 153 | if (save || show) 154 | { 155 | cv::rectangle(frame, bbox, cv::Scalar(255, 0, 0), 2, 1); 156 | } 157 | if (show) 158 | { 159 | cv::imshow("Tracking API: " + tracker_algorithm, frame); 160 | char c = (char)cv::waitKey(2); 161 | if (c == 'q') 162 | break; 163 | } 164 | if (save) 165 | { 166 | cv::imwrite(output_image_path + oss.str() + "." + ext, frame); 167 | } 168 | } 169 | } 170 | 171 | std::cout << "Fin." << std::endl; 172 | double fps = static_cast(fcnt) / (timer.elapsed().wall / 1000000000.); 173 | ofs_fps << fps << std::endl; 174 | std::cout << "total frames: " << fcnt << std::endl; 175 | std::cout << "FPS: " << fps << std::endl; 176 | 177 | ofs_bbox.close(); 178 | ofs_fps.close(); 179 | 180 | return 0; 181 | } 182 | -------------------------------------------------------------------------------- /opencv_tracker/dev/src/main_simple_opencv_tracking.cpp: -------------------------------------------------------------------------------- 1 | #include "link_opencv.h" 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | static cv::Mat Image; 8 | static cv::Rect2d BBox; 9 | static std::string WindowName; 10 | static bool Paused; 11 | static bool SelectObject = false; 12 | static bool StartSelection = false; 13 | 14 | static const char* Keys = 15 | { "{@tracker_algorithm | | tracker algorithm }" 16 | "{@video_name | | video name }" 17 | "{help h usage| |print this message }" 18 | }; 19 | 20 | static void Help(void) 21 | { 22 | std::cout << "\nThis example shows the functionality of \"Long-term optical tracking API\"" 23 | "-- pause video [p] and draw a bounding box around the target to start the tracker\n" 24 | "Call:\n" 25 | "./tracker \n" 26 | << std::endl; 27 | 28 | std::cout << "\n\nHot Keys: \n" 29 | "\tq - quit the program\n" 30 | "\tp - pause video\n"; 31 | } 32 | 33 | static void OnMouse(int event, int x, int y, int, void*) 34 | { 35 | if (!SelectObject) 36 | { 37 | switch (event) 38 | { 39 | case cv::EVENT_LBUTTONDOWN: 40 | //set origin of the bounding box 41 | StartSelection = true; 42 | BBox.x = x; 43 | BBox.y = y; 44 | break; 45 | case cv::EVENT_LBUTTONUP: 46 | //sei with and height of the bounding box 47 | BBox.width = std::abs(x - BBox.x); 48 | BBox.height = std::abs(y - BBox.y); 49 | Paused = false; 50 | SelectObject = true; 51 | break; 52 | case cv::EVENT_MOUSEMOVE: 53 | if (StartSelection) 54 | { 55 | //draw the bounding box 56 | cv::Mat currentFrame; 57 | Image.copyTo(currentFrame); 58 | cv::rectangle(currentFrame, cv::Point(BBox.x, BBox.y), cv::Point(x, y), cv::Scalar(255, 0, 0), 2, 1); 59 | cv::imshow(WindowName, currentFrame); 60 | } 61 | break; 62 | } 63 | } 64 | } 65 | 66 | bool CheckTrackerAlgType(cv::String& tracker_algorithm) 67 | { 68 | if (tracker_algorithm == "BOOSTING" || 69 | tracker_algorithm == "MIL" || 70 | tracker_algorithm == "TLD" || 71 | tracker_algorithm == "MEDIANFLOW" || 72 | tracker_algorithm == "KCF") 73 | { 74 | std::cout << "Tracker Algorithm Type: " << tracker_algorithm << std::endl; 75 | } 76 | else{ 77 | CV_Error(cv::Error::StsError, "Unsupported algorithm type " + tracker_algorithm + " is specified."); 78 | } 79 | return true; 80 | } 81 | 82 | int main(int argc, char** argv) 83 | { 84 | cv::CommandLineParser parser(argc, argv, Keys); 85 | 86 | cv::String tracker_algorithm = parser.get(0); 87 | cv::String video_name = parser.get(1); 88 | 89 | parser.about("OpenCV Tracker API Test"); 90 | if (parser.has("help")) 91 | { 92 | parser.printMessage(); 93 | return 0; 94 | } 95 | 96 | if (tracker_algorithm.empty() || video_name.empty() || !parser.check()) 97 | { 98 | parser.printErrors(); 99 | return -1; 100 | } 101 | 102 | CheckTrackerAlgType(tracker_algorithm); 103 | 104 | //open the capture 105 | cv::VideoCapture cap; 106 | cap.open(video_name); 107 | 108 | if (!cap.isOpened()) 109 | { 110 | Help(); 111 | std::cout << "***Could not initialize capturing...***\n"; 112 | std::cout << "Current parameter's value: \n"; 113 | parser.printMessage(); 114 | return -1; 115 | } 116 | 117 | cv::Mat frame; 118 | Paused = true; 119 | WindowName = "Tracking API: " + tracker_algorithm; 120 | cv::namedWindow(WindowName, 0); 121 | cv::setMouseCallback(WindowName, OnMouse, 0); 122 | 123 | //instantiates the specific Tracker 124 | cv::Ptr tracker = cv::Tracker::create(tracker_algorithm); 125 | if (tracker == NULL) 126 | { 127 | std::cout << "***Error in the instantiation of the tracker...***\n"; 128 | return -1; 129 | } 130 | 131 | std::cout << "\n\nHot Keys: \n" 132 | "\tq - quit the program\n" 133 | "\tp - pause video\n"; 134 | 135 | //get the first frame 136 | cap >> frame; 137 | frame.copyTo(Image); 138 | cv::imshow(WindowName, Image); 139 | bool initialized = false; 140 | while (true) 141 | { 142 | if (!Paused) 143 | { 144 | cap >> frame; 145 | frame.copyTo(Image); 146 | 147 | if (SelectObject && !initialized) 148 | { 149 | //initializes the tracker 150 | if (tracker->init(Image, BBox)) 151 | { 152 | initialized = true; 153 | } 154 | } 155 | else if (initialized) 156 | { 157 | //updates the tracker 158 | if (tracker->update(frame, BBox)) 159 | { 160 | cv::rectangle(Image, BBox, cv::Scalar(0, 0, 255), 2, 1); 161 | } 162 | else{ 163 | SelectObject = initialized = false; 164 | } 165 | } 166 | imshow(WindowName, Image); 167 | } 168 | char c = static_cast(cv::waitKey(2)); 169 | if (c == 'q') 170 | break; 171 | if (c == 'p') 172 | Paused = !Paused; 173 | } 174 | 175 | return 0; 176 | } -------------------------------------------------------------------------------- /opencv_tracker/dev/vc12/opencv3_trackers.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/opencv_tracker/dev/vc12/opencv3_trackers.v12.suo -------------------------------------------------------------------------------- /opencv_tracker/dev/vc12/opencv_tracker.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.21005.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencv_tracker", "opencv_tracker.vcxproj", "{798BB610-A9F4-43F4-9FCB-507040BE3EED}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_tracker", "simple_tracker\simple_tracker.vcxproj", "{063D1B8E-AFEB-497E-B033-9D8325EBBE7C}" 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencv_multi_traker", "opencv_multi_traker\opencv_multi_traker.vcxproj", "{59625234-2624-48E0-BC5C-B74EE832B934}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug|Win32 = Debug|Win32 15 | Debug|x64 = Debug|x64 16 | Release|Win32 = Release|Win32 17 | Release|x64 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {798BB610-A9F4-43F4-9FCB-507040BE3EED}.Debug|Win32.ActiveCfg = Debug|Win32 21 | {798BB610-A9F4-43F4-9FCB-507040BE3EED}.Debug|Win32.Build.0 = Debug|Win32 22 | {798BB610-A9F4-43F4-9FCB-507040BE3EED}.Debug|x64.ActiveCfg = Debug|x64 23 | {798BB610-A9F4-43F4-9FCB-507040BE3EED}.Debug|x64.Build.0 = Debug|x64 24 | {798BB610-A9F4-43F4-9FCB-507040BE3EED}.Release|Win32.ActiveCfg = Release|Win32 25 | {798BB610-A9F4-43F4-9FCB-507040BE3EED}.Release|Win32.Build.0 = Release|Win32 26 | {798BB610-A9F4-43F4-9FCB-507040BE3EED}.Release|x64.ActiveCfg = Release|x64 27 | {798BB610-A9F4-43F4-9FCB-507040BE3EED}.Release|x64.Build.0 = Release|x64 28 | {063D1B8E-AFEB-497E-B033-9D8325EBBE7C}.Debug|Win32.ActiveCfg = Debug|Win32 29 | {063D1B8E-AFEB-497E-B033-9D8325EBBE7C}.Debug|Win32.Build.0 = Debug|Win32 30 | {063D1B8E-AFEB-497E-B033-9D8325EBBE7C}.Debug|x64.ActiveCfg = Debug|x64 31 | {063D1B8E-AFEB-497E-B033-9D8325EBBE7C}.Debug|x64.Build.0 = Debug|x64 32 | {063D1B8E-AFEB-497E-B033-9D8325EBBE7C}.Release|Win32.ActiveCfg = Release|Win32 33 | {063D1B8E-AFEB-497E-B033-9D8325EBBE7C}.Release|Win32.Build.0 = Release|Win32 34 | {063D1B8E-AFEB-497E-B033-9D8325EBBE7C}.Release|x64.ActiveCfg = Release|x64 35 | {063D1B8E-AFEB-497E-B033-9D8325EBBE7C}.Release|x64.Build.0 = Release|x64 36 | {59625234-2624-48E0-BC5C-B74EE832B934}.Debug|Win32.ActiveCfg = Debug|Win32 37 | {59625234-2624-48E0-BC5C-B74EE832B934}.Debug|Win32.Build.0 = Debug|Win32 38 | {59625234-2624-48E0-BC5C-B74EE832B934}.Debug|x64.ActiveCfg = Debug|x64 39 | {59625234-2624-48E0-BC5C-B74EE832B934}.Debug|x64.Build.0 = Debug|x64 40 | {59625234-2624-48E0-BC5C-B74EE832B934}.Release|Win32.ActiveCfg = Release|Win32 41 | {59625234-2624-48E0-BC5C-B74EE832B934}.Release|Win32.Build.0 = Release|Win32 42 | {59625234-2624-48E0-BC5C-B74EE832B934}.Release|x64.ActiveCfg = Release|x64 43 | {59625234-2624-48E0-BC5C-B74EE832B934}.Release|x64.Build.0 = Release|x64 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | EndGlobal 49 | -------------------------------------------------------------------------------- /opencv_tracker/dev/vc12/opencv_tracker.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/opencv_tracker/dev/vc12/opencv_tracker.v12.suo -------------------------------------------------------------------------------- /opencv_tracker/dev/vc12/opencv_tracker.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | {798BB610-A9F4-43F4-9FCB-507040BE3EED} 29 | Win32Proj 30 | opencv_tracker 31 | 32 | 33 | 34 | Application 35 | true 36 | v120 37 | Unicode 38 | 39 | 40 | Application 41 | true 42 | v120 43 | Unicode 44 | 45 | 46 | Application 47 | false 48 | v120 49 | true 50 | Unicode 51 | 52 | 53 | Application 54 | false 55 | v120 56 | true 57 | Unicode 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | true 77 | ../bin/$(Platform)/$(Configuration) 78 | ./../src;./../src/include;$(BOOST_INC);$(OPENCV_INC);$(VC_IncludePath);$(WindowsSDK_IncludePath);;$(IncludePath) 79 | $(BOOST_ROOT)/lib;$(OPENCV_LIB);$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86); 80 | 81 | 82 | true 83 | ../bin/$(Platform)/$(Configuration) 84 | ./../src;./../src/include;$(BOOST_INC);$(OPENCV_INC);$(VC_IncludePath);$(WindowsSDK_IncludePath);$(IncludePath) 85 | $(BOOST_ROOT)/lib;$(OPENCV_LIB);$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64); 86 | 87 | 88 | false 89 | ../bin/$(Platform)/$(Configuration) 90 | ./../src;./../src/include;$(BOOST_INC);$(OPENCV_INC);$(VC_IncludePath);$(WindowsSDK_IncludePath);;$(IncludePath) 91 | $(BOOST_ROOT)/lib;$(OPENCV_LIB);$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86); 92 | 93 | 94 | false 95 | ../bin/$(Platform)/$(Configuration) 96 | ./../src;./../src/include;$(BOOST_INC);$(OPENCV_INC);$(VC_IncludePath);$(WindowsSDK_IncludePath);$(IncludePath);$(IncludePath) 97 | $(BOOST_ROOT)/lib;$(OPENCV_LIB);$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64); 98 | 99 | 100 | 101 | 102 | 103 | Level3 104 | Disabled 105 | WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) 106 | true 107 | 108 | 109 | Console 110 | true 111 | 112 | 113 | 114 | 115 | 116 | 117 | Level3 118 | Disabled 119 | _DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) 120 | true 121 | 122 | 123 | Console 124 | true 125 | %(AdditionalDependencies) 126 | 127 | 128 | 129 | 130 | Level3 131 | 132 | 133 | MaxSpeed 134 | true 135 | true 136 | WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) 137 | true 138 | 139 | 140 | Console 141 | true 142 | true 143 | true 144 | 145 | 146 | 147 | 148 | Level3 149 | 150 | 151 | MaxSpeed 152 | true 153 | true 154 | NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) 155 | true 156 | 157 | 158 | Console 159 | true 160 | true 161 | true 162 | %(AdditionalDependencies) 163 | 164 | 165 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /opencv_tracker/dev/vc12/opencv_tracker.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /opencv_tracker/dev/vc12/opencv_tracker.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | WindowsLocalDebugger 7 | 8 | 9 | 10 | 11 | WindowsLocalDebugger 12 | 13 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/abrupt_motion_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/abrupt_motion_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/abrupt_motion_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/abrupt_motion_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/abrupt_motion_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/abrupt_motion_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/background_clutter_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/background_clutter_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/background_clutter_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/background_clutter_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/background_clutter_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/background_clutter_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/blur_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/blur_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/blur_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/blur_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/blur_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/blur_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/deformation_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/deformation_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/deformation_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/deformation_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/deformation_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/deformation_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/illumination_variations_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/illumination_variations_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/illumination_variations_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/illumination_variations_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/illumination_variations_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/illumination_variations_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/in-plane_rotation_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/in-plane_rotation_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/in-plane_rotation_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/in-plane_rotation_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/in-plane_rotation_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/in-plane_rotation_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/location_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/location_error.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/low_resolution_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/low_resolution_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/low_resolution_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/low_resolution_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/low_resolution_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/low_resolution_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/occlusions_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/occlusions_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/occlusions_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/occlusions_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/occlusions_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/occlusions_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/out-of-plane_rotation_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/out-of-plane_rotation_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/out-of-plane_rotation_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/out-of-plane_rotation_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/out-of-plane_rotation_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/out-of-plane_rotation_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/out-of-view_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/out-of-view_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/out-of-view_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/out-of-view_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/out-of-view_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/out-of-view_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/overlap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/overlap.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/quality_plot_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/quality_plot_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/quality_plot_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/quality_plot_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/quality_plot_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/quality_plot_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/scale_variations_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/scale_variations_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/scale_variations_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/scale_variations_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/ALL/scale_variations_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/ALL/scale_variations_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/abrupt_motion_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/abrupt_motion_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/abrupt_motion_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/abrupt_motion_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/abrupt_motion_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/abrupt_motion_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/background_clutter_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/background_clutter_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/background_clutter_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/background_clutter_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/background_clutter_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/background_clutter_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/blur_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/blur_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/blur_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/blur_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/blur_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/blur_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/deformation_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/deformation_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/deformation_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/deformation_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/deformation_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/deformation_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/illumination_variations_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/illumination_variations_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/illumination_variations_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/illumination_variations_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/illumination_variations_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/illumination_variations_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/in-plane_rotation_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/in-plane_rotation_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/in-plane_rotation_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/in-plane_rotation_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/in-plane_rotation_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/in-plane_rotation_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/low_resolution_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/low_resolution_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/low_resolution_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/low_resolution_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/low_resolution_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/low_resolution_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/occlusions_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/occlusions_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/occlusions_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/occlusions_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/occlusions_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/occlusions_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-plane_rotation_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-plane_rotation_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-plane_rotation_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-plane_rotation_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-plane_rotation_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-plane_rotation_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-view_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-view_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-view_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-view_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-view_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/out-of-view_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/quality_plot_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/quality_plot_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/quality_plot_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/quality_plot_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/quality_plot_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/quality_plot_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/scale_variations_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/scale_variations_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/scale_variations_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/scale_variations_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCV/scale_variations_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCV/scale_variations_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/occlusions_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/occlusions_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/occlusions_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/occlusions_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/occlusions_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/occlusions_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-plane_rotation_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-plane_rotation_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-plane_rotation_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-plane_rotation_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-plane_rotation_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-plane_rotation_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-view_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-view_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-view_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-view_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-view_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/out-of-view_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/quality_plot_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/quality_plot_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/quality_plot_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/quality_plot_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/quality_plot_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/quality_plot_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/scale_variations_error_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/scale_variations_error_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/scale_variations_overlap_TRE_AUC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/scale_variations_overlap_TRE_AUC.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/scale_variations_overlap_TRE_threshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuukicammy/opencv_tracker_performance_test/2e814fcb9092dfedc3eb7642f7cee5c0a7be7766/tracker_benchmark_v1.0/figs/overall/OpenCVvsOriginal/scale_variations_overlap_TRE_threshold.png -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/trackers/CVBOOSTING/run_CvBoosting.m: -------------------------------------------------------------------------------- 1 | function results=run_CvBoosting(seq, res_path, bSaveImage) 2 | 3 | alg_type = 'BOOSTING'; 4 | 5 | close all; 6 | 7 | x=seq.init_rect(1)-1;%matlab to c 8 | y=seq.init_rect(2)-1; 9 | w=seq.init_rect(3); 10 | h=seq.init_rect(4); 11 | 12 | tic 13 | tracker_dir = pwd; 14 | cd ../../../'opencv_tracker/dev/bin/x64/Release'; 15 | tracker_program = '!opencv_tracker.exe'; 16 | command = [tracker_program... 17 | ' ' alg_type ' ' seq.name ' ' seq.path ' ' ... 18 | num2str(seq.startFrame) ' ' num2str(seq.endFrame) ' ' num2str(seq.nz) ' ' seq.ext ' '... 19 | num2str(x) ' ' num2str(y) ' ' num2str(w) ' ' num2str(h) ' '... 20 | num2str(bSaveImage) ' ' num2str(0) ' ' res_path ' ' res_path]; 21 | eval(command); 22 | duration=toc; 23 | cd(tracker_dir); 24 | results.res = dlmread([res_path seq.name '_' alg_type '.txt']); 25 | results.res(:,1:2) =results.res(:,1:2) + 1;%c to matlab 26 | 27 | results.type='rect'; 28 | results.fps=seq.len/duration; 29 | 30 | results.fps = dlmread([res_path seq.name '_' alg_type '_FPS.txt']); 31 | 32 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/trackers/CVKCF/run_CvKCF.asv: -------------------------------------------------------------------------------- 1 | function results=run_CvKCF(seq, res_path, bSaveImage) 2 | 3 | alg_type = 'KCF'; 4 | 5 | close all; 6 | 7 | x=seq.init_rect(1)-1;%matlab to c 8 | y=seq.init_rect(2)-1; 9 | w=seq.init_rect(3); 10 | h=seq.init_rect(4); 11 | 12 | if(srtcmp(seq.name, 13 | tic 14 | tracker_dir = pwd; 15 | cd ../../../'opencv_tracker/dev/bin/x64/Release'; 16 | tracker_program = '!opencv_tracker.exe'; 17 | command = [tracker_program... 18 | ' ' alg_type ' ' seq.name ' ' seq.path ' ' ... 19 | num2str(seq.startFrame) ' ' num2str(seq.endFrame) ' ' num2str(seq.nz) ' ' seq.ext ' '... 20 | num2str(x) ' ' num2str(y) ' ' num2str(w) ' ' num2str(h) ' '... 21 | num2str(bSaveImage) ' ' num2str(0) ' ' res_path ' ' res_path]; 22 | eval(command); 23 | duration=toc; 24 | cd(tracker_dir); 25 | results.res = dlmread([res_path seq.name '_' alg_type '.txt']); 26 | results.res(:,1:2) =results.res(:,1:2) + 1;%c to matlab 27 | 28 | results.type='rect'; 29 | results.fps=seq.len/duration; 30 | 31 | results.fps = dlmread([res_path seq.name '_' alg_type '_FPS.txt']); 32 | 33 | 34 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/trackers/CVKCF/run_CvKCF.m: -------------------------------------------------------------------------------- 1 | function results=run_CvKCF(seq, res_path, bSaveImage) 2 | 3 | alg_type = 'KCF'; 4 | 5 | close all; 6 | 7 | x=seq.init_rect(1)-1;%matlab to c 8 | y=seq.init_rect(2)-1; 9 | w=seq.init_rect(3); 10 | h=seq.init_rect(4); 11 | 12 | tic 13 | tracker_dir = pwd; 14 | cd ../../../'opencv_tracker/dev/bin/x64/Release'; 15 | tracker_program = '!opencv_tracker.exe'; 16 | command = [tracker_program... 17 | ' ' alg_type ' ' seq.name ' ' seq.path ' ' ... 18 | num2str(seq.startFrame) ' ' num2str(seq.endFrame) ' ' num2str(seq.nz) ' ' seq.ext ' '... 19 | num2str(x) ' ' num2str(y) ' ' num2str(w) ' ' num2str(h) ' '... 20 | num2str(bSaveImage) ' ' num2str(0) ' ' res_path ' ' res_path]; 21 | eval(command); 22 | duration=toc; 23 | cd(tracker_dir); 24 | results.res = dlmread([res_path seq.name '_' alg_type '.txt']); 25 | results.res(:,1:2) =results.res(:,1:2) + 1;%c to matlab 26 | 27 | results.type='rect'; 28 | results.fps=seq.len/duration; 29 | 30 | results.fps = dlmread([res_path seq.name '_' alg_type '_FPS.txt']); 31 | 32 | 33 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/trackers/CVMEDIANFLOW/run_CvMedianFlow.asv: -------------------------------------------------------------------------------- 1 | function results=run_CvMI(seq, res_path, bSaveImage) 2 | 3 | alg_type = 'MIL'; 4 | 5 | close all; 6 | 7 | x=seq.init_rect(1)-1;%matlab to c 8 | y=seq.init_rect(2)-1; 9 | w=seq.init_rect(3); 10 | h=seq.init_rect(4); 11 | 12 | tic 13 | tracker_dir = pwd; 14 | cd ../../../'opencv_tracker/dev/bin/x64/Release'; 15 | tracker_program = '!opencv_tracker.exe'; 16 | command = [tracker_program... 17 | ' ' alg_type ' ' seq.name ' ' seq.path ' ' ... 18 | num2str(seq.startFrame) ' ' num2str(seq.endFrame) ' ' num2str(seq.nz) ' ' seq.ext ' '... 19 | num2str(x) ' ' num2str(y) ' ' num2str(w) ' ' num2str(h) ' '... 20 | num2str(bSaveImage) ' ' num2str(bSaveImage) ' ' res_path ' ' res_path]; 21 | eval(command); 22 | duration=toc; 23 | cd(tracker_dir); 24 | results.res = dlmread([res_path seq.name '_' alg_type '.txt']); 25 | results.res(:,1:2) =results.res(:,1:2) + 1;%c to matlab 26 | 27 | results.type='rect'; 28 | results.fps=seq.len/duration; 29 | 30 | results.fps = dlmread([res_path seq.name '_' alg_type '_FPS.txt']); 31 | 32 | 33 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/trackers/CVMEDIANFLOW/run_CvMedianFlow.m: -------------------------------------------------------------------------------- 1 | function results=run_CvMedianFlow(seq, res_path, bSaveImage) 2 | 3 | alg_type = 'MEDIANFLOW'; 4 | 5 | close all; 6 | 7 | x=seq.init_rect(1)-1;%matlab to c 8 | y=seq.init_rect(2)-1; 9 | w=seq.init_rect(3); 10 | h=seq.init_rect(4); 11 | 12 | tic 13 | tracker_dir = pwd; 14 | cd ../../../'opencv_tracker/dev/bin/x64/Release'; 15 | tracker_program = '!opencv_tracker.exe'; 16 | command = [tracker_program... 17 | ' ' alg_type ' ' seq.name ' ' seq.path ' ' ... 18 | num2str(seq.startFrame) ' ' num2str(seq.endFrame) ' ' num2str(seq.nz) ' ' seq.ext ' '... 19 | num2str(x) ' ' num2str(y) ' ' num2str(w) ' ' num2str(h) ' '... 20 | num2str(bSaveImage) ' ' num2str(0) ' ' res_path ' ' res_path]; 21 | eval(command); 22 | duration=toc; 23 | cd(tracker_dir); 24 | results.res = dlmread([res_path seq.name '_' alg_type '.txt']); 25 | results.res(:,1:2) =results.res(:,1:2) + 1;%c to matlab 26 | 27 | results.type='rect'; 28 | results.fps=seq.len/duration; 29 | 30 | results.fps = dlmread([res_path seq.name '_' alg_type '_FPS.txt']); 31 | 32 | 33 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/trackers/CVMIL/run_CvMIL.m: -------------------------------------------------------------------------------- 1 | function results=run_CvMIL(seq, res_path, bSaveImage) 2 | 3 | alg_type = 'MIL'; 4 | 5 | close all; 6 | 7 | x=seq.init_rect(1)-1;%matlab to c 8 | y=seq.init_rect(2)-1; 9 | w=seq.init_rect(3); 10 | h=seq.init_rect(4); 11 | 12 | tic 13 | tracker_dir = pwd; 14 | cd ../../../'opencv_tracker/dev/bin/x64/Release'; 15 | tracker_program = '!opencv_tracker.exe'; 16 | command = [tracker_program... 17 | ' ' alg_type ' ' seq.name ' ' seq.path ' ' ... 18 | num2str(seq.startFrame) ' ' num2str(seq.endFrame) ' ' num2str(seq.nz) ' ' seq.ext ' '... 19 | num2str(x) ' ' num2str(y) ' ' num2str(w) ' ' num2str(h) ' '... 20 | num2str(bSaveImage) ' ' num2str(0) ' ' res_path ' ' res_path]; 21 | eval(command); 22 | duration=toc; 23 | cd(tracker_dir); 24 | results.res = dlmread([res_path seq.name '_' alg_type '.txt']); 25 | results.res(:,1:2) =results.res(:,1:2) + 1;%c to matlab 26 | 27 | results.type='rect'; 28 | results.fps=seq.len/duration; 29 | 30 | results.fps = dlmread([res_path seq.name '_' alg_type '_FPS.txt']); 31 | 32 | 33 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/trackers/CVTLD/run_CvTLD.asv: -------------------------------------------------------------------------------- 1 | function results=run_CvTLD(seq, res_path, bSaveImage) 2 | 3 | alg_type = 'TLD'; 4 | 5 | close all; 6 | 7 | x=seq.init_rect(1)-1;%matlab to c 8 | y=seq.init_rect(2)-1; 9 | w=seq.init_rect(3); 10 | h=seq.init_rect(4); 11 | 12 | tic 13 | tracker_dir = pwd: 14 | cd ../../../'opencv_tracker/dev/bin/x64/Release'; 15 | tracker_program = '"../../../opencv_tracker/dev/bin/x64/Release/opencv_tracker.exe"'; 16 | command = [tracker_program... 17 | ' ' alg_type ' ' seq.name ' ' seq.path ' ' ... 18 | num2str(seq.startFrame) ' ' num2str(seq.endFrame) ' ' num2str(seq.nz) ' ' seq.ext ' '... 19 | num2str(x) ' ' num2str(y) ' ' num2str(w) ' ' num2str(h) ' '... 20 | num2str(bSaveImage) ' ' num2str(bSaveImage) ' ' res_path ' ' res_path]; 21 | 22 | dos(command); 23 | duration=toc; 24 | 25 | results.res = dlmread([res_path seq.name '_' alg_type '.txt']); 26 | results.res(:,1:2) =results.res(:,1:2) + 1;%c to matlab 27 | 28 | results.type='rect'; 29 | results.fps=seq.len/duration; 30 | 31 | results.fps = dlmread([res_path seq.name '_' alg_type '_FPS.txt']); 32 | 33 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/trackers/CVTLD/run_CvTLD.m: -------------------------------------------------------------------------------- 1 | function results=run_CvTLD(seq, res_path, bSaveImage) 2 | 3 | alg_type = 'TLD'; 4 | 5 | close all; 6 | 7 | x=seq.init_rect(1)-1;%matlab to c 8 | y=seq.init_rect(2)-1; 9 | w=seq.init_rect(3); 10 | h=seq.init_rect(4); 11 | 12 | tic 13 | tracker_dir = pwd; 14 | cd ../../../'opencv_tracker/dev/bin/x64/Release'; 15 | tracker_program = '!opencv_tracker.exe'; 16 | command = [tracker_program... 17 | ' ' alg_type ' ' seq.name ' ' seq.path ' ' ... 18 | num2str(seq.startFrame) ' ' num2str(seq.endFrame) ' ' num2str(seq.nz) ' ' seq.ext ' '... 19 | num2str(x) ' ' num2str(y) ' ' num2str(w) ' ' num2str(h) ' '... 20 | num2str(bSaveImage) ' ' num2str(0) ' ' res_path ' ' res_path]; 21 | eval(command); 22 | duration=toc; 23 | cd(tracker_dir); 24 | results.res = dlmread([res_path seq.name '_' alg_type '.txt']); 25 | results.res(:,1:2) =results.res(:,1:2) + 1;%c to matlab 26 | 27 | results.type='rect'; 28 | results.fps=seq.len/duration; 29 | 30 | results.fps = dlmread([res_path seq.name '_' alg_type '_FPS.txt']); 31 | 32 | -------------------------------------------------------------------------------- /tracker_benchmark_v1.0/util/configTrackers.m: -------------------------------------------------------------------------------- 1 | function trackers=configTrackers 2 | 3 | BestTrackers = { struct('name','Struck','namePaper','Struck'),... 4 | struct('name','SCM','namePaper','SCM'),... 5 | struct('name','ASLA','namePaper','ASLA'),... 6 | struct('name','CXT','namePaper','CXT')}; 7 | 8 | trackersOpenCV={struct('name','CVBOOSTING','namePaper','CV_Boosting'),... 9 | struct('name','CVMIL','namePaper','CV_MIL'),... 10 | struct('name','CVTLD','namePaper','CV_TLD'),... 11 | struct('name','CVMEDIANFLOW','namePaper','CV_MedianFlow'),... 12 | struct('name','CVKCF','namePaper','CV_KCF')}; 13 | 14 | trackersOpenCVOriginal={struct('name','OAB','namePaper','Boosting'),... 15 | struct('name','MIL','namePaper','MIL'),... 16 | struct('name','TLD','namePaper','TLD') 17 | }; 18 | 19 | trackers = [trackersOpenCV, trackersOpenCVOriginal, BestTrackers]; 20 | 21 | --------------------------------------------------------------------------------