Commit bf7fdb63 authored by Davis King's avatar Davis King

merged

parents 9a52ea5c c8aa1312
...@@ -159,7 +159,15 @@ solver more accurate but might take longer to train.") ...@@ -159,7 +159,15 @@ solver more accurate but might take longer to train.")
&type::num_threads, &type::num_threads,
"train_simple_object_detector() will use this many threads of \n\ "train_simple_object_detector() will use this many threads of \n\
execution. Set this to the number of CPU cores on your machine to \n\ execution. Set this to the number of CPU cores on your machine to \n\
obtain the fastest training speed."); obtain the fastest training speed.")
.add_property("upsample_limit", &type::upsample_limit,
&type::upsample_limit,
"train_simple_object_detector() will upsample images if needed \n\
no more than upsample_limit times. Value 0 will forbid trainer to \n\
upsample any images. If trainer is unable to fit all boxes with \n\
required upsample_limit, exception will be thrown. Higher values \n\
of upsample_limit exponentially increases memory requiremens. \n\
Values higher than 2 (default) are not recommended.");
} }
{ {
typedef simple_test_results type; typedef simple_test_results type;
......
...@@ -33,6 +33,7 @@ namespace dlib ...@@ -33,6 +33,7 @@ namespace dlib
detection_window_size = 80*80; detection_window_size = 80*80;
C = 1; C = 1;
epsilon = 0.01; epsilon = 0.01;
upsample_limit = 2;
} }
bool be_verbose; bool be_verbose;
...@@ -41,6 +42,7 @@ namespace dlib ...@@ -41,6 +42,7 @@ namespace dlib
unsigned long detection_window_size; unsigned long detection_window_size;
double C; double C;
double epsilon; double epsilon;
unsigned long upsample_limit;
}; };
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -175,7 +177,7 @@ namespace dlib ...@@ -175,7 +177,7 @@ namespace dlib
// upsample the images at most two times to help make the boxes obtainable. // upsample the images at most two times to help make the boxes obtainable.
std::vector<std::vector<rectangle> > temp(boxes), removed; std::vector<std::vector<rectangle> > temp(boxes), removed;
removed = remove_unobtainable_rectangles(trainer, images, temp); removed = remove_unobtainable_rectangles(trainer, images, temp);
while (impl::contains_any_boxes(removed) && upsampling_amount < 2) while (impl::contains_any_boxes(removed) && upsampling_amount < options.upsample_limit)
{ {
++upsampling_amount; ++upsampling_amount;
if (options.be_verbose) if (options.be_verbose)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment