summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/svm/cross_validate_object_detection_trainer_abstract.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/svm/cross_validate_object_detection_trainer_abstract.h')
-rw-r--r--ml/dlib/dlib/svm/cross_validate_object_detection_trainer_abstract.h297
1 files changed, 0 insertions, 297 deletions
diff --git a/ml/dlib/dlib/svm/cross_validate_object_detection_trainer_abstract.h b/ml/dlib/dlib/svm/cross_validate_object_detection_trainer_abstract.h
deleted file mode 100644
index 575ed77fb..000000000
--- a/ml/dlib/dlib/svm/cross_validate_object_detection_trainer_abstract.h
+++ /dev/null
@@ -1,297 +0,0 @@
-// Copyright (C) 2011 Davis E. King (davis@dlib.net)
-// License: Boost Software License See LICENSE.txt for the full license.
-#undef DLIB_CROSS_VALIDATE_OBJECT_DETECTION_TRaINER_ABSTRACT_Hh_
-#ifdef DLIB_CROSS_VALIDATE_OBJECT_DETECTION_TRaINER_ABSTRACT_Hh_
-
-#include <vector>
-#include "../matrix.h"
-#include "../geometry.h"
-#include "../image_processing/full_object_detection_abstract.h"
-#include "../dnn/layers_abstract.h"
-
-namespace dlib
-{
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename object_detector_type,
- typename image_array_type
- >
- const matrix<double,1,3> test_object_detection_function (
- object_detector_type& detector,
- const image_array_type& images,
- const std::vector<std::vector<full_object_detection> >& truth_dets,
- const std::vector<std::vector<rectangle> >& ignore,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0
- );
- /*!
- requires
- - is_learning_problem(images,truth_dets)
- - images.size() == ignore.size()
- - object_detector_type == some kind of object detector function object
- (e.g. object_detector)
- - image_array_type must be an implementation of dlib/array/array_kernel_abstract.h
- and it must contain objects which can be accepted by detector().
- ensures
- - Tests the given detector against the supplied object detection problem and
- returns the precision, recall, and average precision. Note that the task is
- to predict, for each images[i], the set of object locations given by
- truth_dets[i]. Additionally, any detections on image[i] that match a box in
- ignore[i] are ignored. That is, detections matching a box in ignore[i] do
- not count as a false alarm and similarly if any element of ignore[i] goes
- undetected it does not count as a missed detection. So we say that ignore[i]
- contains a set of boxes that we "don't care" if they are detected or not.
- - In particular, returns a matrix M such that:
- - M(0) == the precision of the detector object. This is a number
- in the range [0,1] which measures the fraction of detector outputs
- which correspond to a real target. A value of 1 means the detector
- never produces any false alarms while a value of 0 means it only
- produces false alarms.
- - M(1) == the recall of the detector object. This is a number in the
- range [0,1] which measures the fraction of targets found by the
- detector. A value of 1 means the detector found all the targets
- in truth_dets while a value of 0 means the detector didn't locate
- any of the targets.
- - M(2) == the average precision of the detector object. This is a number
- in the range [0,1] which measures the overall quality of the detector.
- We compute this by taking all the detections output by the detector and
- ordering them in descending order of their detection scores. Then we use
- the average_precision() routine to score the ranked listing and store the
- output into M(2).
- - This function considers a detector output D to match a rectangle T if and
- only if overlap_tester(T,D) returns true.
- - Note that you can use the adjust_threshold argument to raise or lower the
- detection threshold. This value is passed into the identically named
- argument to the detector object and therefore influences the number of
- output detections. It can be useful, for example, to lower the detection
- threshold because it results in more detections being output by the
- detector, and therefore provides more information in the ranking,
- possibly raising the average precision.
- !*/
-
- template <
- typename object_detector_type,
- typename image_array_type
- >
- const matrix<double,1,3> test_object_detection_function (
- object_detector_type& detector,
- const image_array_type& images,
- const std::vector<std::vector<rectangle> >& truth_dets,
- const std::vector<std::vector<rectangle> >& ignore,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0
- );
- /*!
- requires
- - All the requirements of the above test_object_detection_function() routine.
- ensures
- - converts all the rectangles in truth_dets into full_object_detection objects
- via full_object_detection's rectangle constructor. Then invokes
- test_object_detection_function() on the full_object_detections and returns
- the results.
- !*/
-
- template <
- typename object_detector_type,
- typename image_array_type
- >
- const matrix<double,1,3> test_object_detection_function (
- object_detector_type& detector,
- const image_array_type& images,
- const std::vector<std::vector<rectangle> >& truth_dets,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0
- );
- /*!
- requires
- - All the requirements of the above test_object_detection_function() routine.
- ensures
- - This function simply invokes test_object_detection_function() with all the
- given arguments and an empty set of ignore rectangles and returns the results.
- !*/
-
- template <
- typename object_detector_type,
- typename image_array_type
- >
- const matrix<double,1,3> test_object_detection_function (
- object_detector_type& detector,
- const image_array_type& images,
- const std::vector<std::vector<full_object_detection> >& truth_dets,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0
- );
- /*!
- requires
- - All the requirements of the above test_object_detection_function() routine.
- ensures
- - This function simply invokes test_object_detection_function() with all the
- given arguments and an empty set of ignore rectangles and returns the results.
- !*/
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename SUBNET,
- typename image_array_type
- >
- const matrix<double,1,3> test_object_detection_function (
- loss_mmod<SUBNET>& detector,
- const image_array_type& images,
- const std::vector<std::vector<mmod_rect>>& truth_dets,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0,
- const test_box_overlap& overlaps_ignore_tester = test_box_overlap()
- );
- /*!
- requires
- - is_learning_problem(images,truth_dets)
- - image_array_type must be an implementation of dlib/array/array_kernel_abstract.h
- and it must contain objects which can be accepted by detector().
- ensures
- - This function is just like the test_object_detection_function() for
- object_detector's except it runs on CNNs that use loss_mmod.
- - Tests the given detector against the supplied object detection problem and
- returns the precision, recall, and average precision. Note that the task is
- to predict, for each images[i], the set of object locations, and their
- corresponding labels, given by truth_dets[i]. Additionally, any detections
- on image[i] that match a box in truth_dets[i] that are marked ignore are
- ignored. That is, detections matching an ignore box, regardless of the
- ignore box's label, do not count as a false alarm and similarly if any
- ignored box in truth_dets goes undetected it does not count as a missed
- detection. To test if a box overlaps an ignore box, we use overlaps_ignore_tester.
- - In particular, returns a matrix M such that:
- - M(0) == the precision of the detector object. This is a number
- in the range [0,1] which measures the fraction of detector outputs
- which correspond to a real target. A value of 1 means the detector
- never produces any false alarms while a value of 0 means it only
- produces false alarms.
- - M(1) == the recall of the detector object. This is a number in the
- range [0,1] which measures the fraction of targets found by the detector.
- A value of 1 means the detector found all the non-ignore targets in
- truth_dets while a value of 0 means the detector didn't locate any of the
- targets.
- - M(2) == the average precision of the detector object. This is a number
- in the range [0,1] which measures the overall quality of the detector.
- We compute this by taking all the detections output by the detector and
- ordering them in descending order of their detection scores. Then we use
- the average_precision() routine to score the ranked listing and store the
- output into M(2).
- - This function considers a detector output D to match a truth rectangle T if
- and only if overlap_tester(T,D) returns true and the labels are identical strings.
- - Note that you can use the adjust_threshold argument to raise or lower the
- detection threshold. This value is passed into the identically named
- argument to the detector object and therefore influences the number of
- output detections. It can be useful, for example, to lower the detection
- threshold because it results in more detections being output by the
- detector, and therefore provides more information in the ranking,
- possibly raising the average precision.
- !*/
-
-// ----------------------------------------------------------------------------------------
-// ----------------------------------------------------------------------------------------
-// ----------------------------------------------------------------------------------------
-
- template <
- typename trainer_type,
- typename image_array_type
- >
- const matrix<double,1,3> cross_validate_object_detection_trainer (
- const trainer_type& trainer,
- const image_array_type& images,
- const std::vector<std::vector<full_object_detection> >& truth_dets,
- const std::vector<std::vector<rectangle> >& ignore,
- const long folds,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0
- );
- /*!
- requires
- - is_learning_problem(images,truth_dets)
- - images.size() == ignore.size()
- - 1 < folds <= images.size()
- - trainer_type == some kind of object detection trainer (e.g structural_object_detection_trainer)
- - image_array_type must be an implementation of dlib/array/array_kernel_abstract.h
- and it must contain objects which can be accepted by detector().
- - it is legal to call trainer.train(images, truth_dets)
- ensures
- - Performs k-fold cross-validation by using the given trainer to solve an
- object detection problem for the given number of folds. Each fold is tested
- using the output of the trainer and a matrix summarizing the results is
- returned. The matrix contains the precision, recall, and average
- precision of the trained detectors and is defined identically to the
- test_object_detection_function() routine defined at the top of this file.
- !*/
-
- template <
- typename trainer_type,
- typename image_array_type
- >
- const matrix<double,1,3> cross_validate_object_detection_trainer (
- const trainer_type& trainer,
- const image_array_type& images,
- const std::vector<std::vector<rectangle> >& truth_dets,
- const std::vector<std::vector<rectangle> >& ignore,
- const long folds,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0
- );
- /*!
- requires
- - all the requirements of the above cross_validate_object_detection_trainer() routine.
- ensures
- - converts all the rectangles in truth_dets into full_object_detection objects
- via full_object_detection's rectangle constructor. Then invokes
- cross_validate_object_detection_trainer() on the full_object_detections and
- returns the results.
- !*/
-
- template <
- typename trainer_type,
- typename image_array_type
- >
- const matrix<double,1,3> cross_validate_object_detection_trainer (
- const trainer_type& trainer,
- const image_array_type& images,
- const std::vector<std::vector<rectangle> >& truth_dets,
- const long folds,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0
- );
- /*!
- requires
- - All the requirements of the above cross_validate_object_detection_trainer() routine.
- ensures
- - This function simply invokes cross_validate_object_detection_trainer() with all
- the given arguments and an empty set of ignore rectangles and returns the results.
- !*/
-
- template <
- typename trainer_type,
- typename image_array_type
- >
- const matrix<double,1,3> cross_validate_object_detection_trainer (
- const trainer_type& trainer,
- const image_array_type& images,
- const std::vector<std::vector<full_object_detection> >& truth_dets,
- const long folds,
- const test_box_overlap& overlap_tester = test_box_overlap(),
- const double adjust_threshold = 0
- );
- /*!
- requires
- - All the requirements of the above cross_validate_object_detection_trainer() routine.
- ensures
- - This function simply invokes cross_validate_object_detection_trainer() with all
- the given arguments and an empty set of ignore rectangles and returns the results.
- !*/
-
-// ----------------------------------------------------------------------------------------
-
-}
-
-#endif // DLIB_CROSS_VALIDATE_OBJECT_DETECTION_TRaINER_ABSTRACT_Hh_
-
-