├── 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 |
44 |
45 | * Precision plot (center position error)
46 |
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 |
--------------------------------------------------------------------------------