Commit 66d6d68f authored by Davis King's avatar Davis King

updated docs

parent 82c7e5f6
......@@ -77,6 +77,11 @@
<item>count_steps_without_decrease</item>
<item>count_steps_without_increase</item>
<item>binomial_random_vars_are_different</item>
<item>event_correlation</item>
<item>max_scoring_element</item>
<item>min_scoring_element</item>
</section>
<section>
......@@ -104,6 +109,10 @@
<name>Filtering</name>
<item>kalman_filter</item>
<item>rls_filter</item>
<item>momentum_filter</item>
<item>rect_filter</item>
<item>find_optimal_rect_filter</item>
<item>find_optimal_momentum_filter</item>
</section>
</top>
......@@ -326,7 +335,85 @@
by Greg Welch and Gary Bishop
</blockquote>
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>momentum_filter</name>
<file>dlib/filtering.h</file>
<spec_file link="true">dlib/filtering/kalman_filter_abstract.h</spec_file>
<description>
This object is a simple tool for filtering a single scalar value that
measures the location of a moving object that has some non-trivial
momentum. Importantly, the measurements are noisy and the object can
experience sudden unpredictable accelerations. To accomplish this
filtering we use a simple <a href="#kalman_filter">Kalman filter</a> with a
state transition model of:
<pre>
position_{i+1} = position_{i} + velocity_{i}
velocity_{i+1} = velocity_{i} + some_unpredictable_acceleration
</pre>
and a measurement model of:
<pre>
measured_position_{i} = position_{i} + measurement_noise
</pre>
Where <tt>some_unpredictable_acceleration</tt> and <tt>measurement_noise</tt> are 0 mean Gaussian
noise sources.
To allow for really sudden and large but infrequent accelerations, at each
step we check if the current measured position deviates from the predicted
filtered position by more than a user specified amount,
and if so we adjust the filter's state to keep it within these bounds.
This allows the moving object to undergo large unmodeled accelerations, far
in excess of what would be suggested by the basic Kalman filter's noise model, without
then experiencing a long lag time where the Kalman filter has to "catch
up" to the new position.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>rect_filter</name>
<file>dlib/filtering.h</file>
<spec_file link="true">dlib/filtering/kalman_filter_abstract.h</spec_file>
<description>
This object is just a <a href="#momentum_filter">momentum_filter</a> applied to the
four corners of a <a href="linear_algebra.html#rectangle">rectangle</a>. It allows
you to filter a stream of rectangles, for instance, bounding boxes from an object detector
applied to a video stream.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>find_optimal_momentum_filter</name>
<file>dlib/filtering.h</file>
<spec_file link="true">dlib/filtering/kalman_filter_abstract.h</spec_file>
<description>
This function finds the "optimal" settings of a <a href="#momentum_filter">momentum_filter</a>
based on unfiltered measurement data.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>find_optimal_rect_filter</name>
<file>dlib/filtering.h</file>
<spec_file link="true">dlib/filtering/kalman_filter_abstract.h</spec_file>
<description>
This function finds the "optimal" settings of a <a href="#rect_filter">rect_filter</a>
based on unfiltered measurement data.
</description>
</component>
<!-- ************************************************************************* -->
......@@ -572,6 +659,69 @@
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>binomial_random_vars_are_different</name>
<file>dlib/statistics/statistic.h</file>
<spec_file link="true">dlib/statistics/statistics_abstract.h</spec_file>
<description>
This function performs a simple statistical test to check if two binomially
distributed random variables have the same parameter (i.e. the chance of
"success"). It uses the simple likelihood ratio test discussed in
the following paper:
<blockquote>
Dunning, Ted. "Accurate methods for the statistics of surprise and
coincidence." Computational linguistics 19.1 (1993): 61-74.
</blockquote>
So for an extended discussion of the method see the above paper.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>event_correlation</name>
<file>dlib/statistics/statistic.h</file>
<spec_file link="true">dlib/statistics/statistics_abstract.h</spec_file>
<description>
This function does a statistical test to determine if two events co-occur in a
statistically significant way. It uses the simple likelihood ratio
test discussed in the following paper:
<blockquote>
Dunning, Ted. "Accurate methods for the statistics of surprise and
coincidence." Computational linguistics 19.1 (1993): 61-74.
</blockquote>
So for an extended discussion of the method see the above paper.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>max_scoring_element</name>
<file>dlib/algs.h</file>
<spec_file link="true">dlib/algs.h</spec_file>
<description>
This function finds the element of container that has the largest score,
according to a user supplied score function, and returns a std::pair containing
that maximal element along with the score.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>min_scoring_element</name>
<file>dlib/algs.h</file>
<spec_file link="true">dlib/algs.h</spec_file>
<description>
This function finds the element of container that has the smallest score,
according to a user supplied score function, and returns a std::pair containing
that minimal element along with the score.
</description>
</component>
<!-- ************************************************************************* -->
<component>
......
......@@ -457,6 +457,10 @@
<name>conv_valid</name>
<link>dlib/matrix/matrix_conv_abstract.h.html#conv_valid</link>
</item>
<item>
<name>xcorr_fft</name>
<link>dlib/matrix/matrix_conv_abstract.h.html#xcorr_fft</link>
</item>
<item>
<name>xcorr</name>
<link>dlib/matrix/matrix_conv_abstract.h.html#xcorr</link>
......
......@@ -69,6 +69,7 @@ Davis E. King. <a href="http://jmlr.csail.mit.edu/papers/volume10/king09a/king09
<item>svr_linear_trainer</item>
<item>rvm_regression_trainer</item>
<item>rbf_network_trainer</item>
<item>random_forest_regression_trainer</item>
</section>
<section>
<name>Structured Prediction</name>
......@@ -149,6 +150,10 @@ Davis E. King. <a href="http://jmlr.csail.mit.edu/papers/volume10/king09a/king09
<name>cont</name>
<link>dlib/dnn/layers_abstract.h.html#cont_</link>
</item>
<item>
<name>scale</name>
<link>dlib/dnn/layers_abstract.h.html#scale_</link>
</item>
<item>
<name>extract</name>
<link>dlib/dnn/layers_abstract.h.html#extract_</link>
......@@ -254,6 +259,10 @@ Davis E. King. <a href="http://jmlr.csail.mit.edu/papers/volume10/king09a/king09
<name>loss_binary_log</name>
<link>dlib/dnn/loss_abstract.h.html#loss_binary_log_</link>
</item>
<item>
<name>loss_multimulticlass_log</name>
<link>dlib/dnn/loss_abstract.h.html#loss_multimulticlass_log_</link>
</item>
<item>
<name>loss_multiclass_log</name>
<link>dlib/dnn/loss_abstract.h.html#loss_multiclass_log_</link>
......@@ -413,6 +422,7 @@ Davis E. King. <a href="http://jmlr.csail.mit.edu/papers/volume10/king09a/king09
<section>
<name>Function Objects</name>
<item>random_forest_regression_function</item>
<item>decision_function</item>
<item>projection_function</item>
<item>distance_function</item>
......@@ -438,6 +448,7 @@ Davis E. King. <a href="http://jmlr.csail.mit.edu/papers/volume10/king09a/king09
<item>load_libsvm_formatted_data</item>
<item>save_libsvm_formatted_data</item>
<item>fix_nonzero_indexing</item>
<item>make_bounding_box_regression_training_data</item>
</section>
<section>
......@@ -1704,6 +1715,30 @@ Davis E. King. <a href="http://jmlr.csail.mit.edu/papers/volume10/king09a/king09
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>random_forest_regression_trainer</name>
<file>dlib/random_forest.h</file>
<spec_file link="true">dlib/random_forest/random_forest_regression_abstract.h</spec_file>
<description>
This object implements Breiman's classic random forest regression
algorithm.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>random_forest_regression_function</name>
<file>dlib/random_forest.h</file>
<spec_file link="true">dlib/random_forest/random_forest_regression_abstract.h</spec_file>
<description>
This object represents a random forest that maps objects to real numbers. You
can learn its parameters using the <a href="#random_forest_regression_trainer">random_forest_regression_trainer</a>.
</description>
</component>
<!-- ************************************************************************* -->
<component>
......@@ -2837,6 +2872,28 @@ Davis E. King. <a href="http://jmlr.csail.mit.edu/papers/volume10/king09a/king09
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>make_bounding_box_regression_training_data</name>
<file>dlib/image_processing.h</file>
<spec_file link="true">dlib/image_processing/shape_predictor_trainer_abstract.h</spec_file>
<description>
Suppose you have an object detector that can roughly locate objects in an
image. This means your detector draws boxes around objects, but these are
<i>rough</i> boxes in the sense that they aren't positioned super accurately. For
instance, HOG based detectors usually have a stride of 8 pixels. So the
positional accuracy is going to be, at best, +/-8 pixels.
<p>
If you want to get better positional accuracy one easy thing to do is train a
<a href="#shape_predictor_trainer">shape_predictor</a> to give you the location
of the object's box. The make_bounding_box_regression_training_data() routine
helps you do this by creating an appropriate training dataset.
</p>
</description>
</component>
<!-- ************************************************************************* -->
<component>
......
......@@ -65,6 +65,7 @@
<item>find_max_parse_cky</item>
<item>min_cut</item>
<item>elastic_net</item>
<item>isotonic_regression</item>
</section>
<section>
......@@ -950,6 +951,23 @@ Or it can use the elastic net regularizer:
</component>
<!-- ************************************************************************* -->
<component>
<name>isotonic_regression</name>
<file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/isotonic_regression_abstract.h</spec_file>
<description>
This object is a tool for performing 1-D isotonic regression. That is, it
finds the least squares fit of a non-parametric curve to some user supplied
data, subject to the constraint that the fitted curve is non-decreasing.
<p>
This is done using the fast O(n) pool adjacent violators algorithm.
</p>
</description>
</component>
<!-- ************************************************************************* -->
<component>
......
......@@ -58,6 +58,8 @@
<section>
<name>Global Functions</name>
<item>ramdump</item>
<item>check_serialized_version</item>
<item>deserialize</item>
<item>serialize</item>
<item>zero_extend_cast</item>
......@@ -1003,6 +1005,51 @@
<!-- ************************************************************************* -->
<component>
<name>ramdump</name>
<file>dlib/serialize.h</file>
<spec_file link="true">dlib/serialize.h</spec_file>
<description>
This is a type decoration used to indicate that serialization should be
done by simply dumping the memory of some object to disk as fast as
possible without any sort of conversions. This means that the data written
will be "non-portable" in the sense that the format output by a RAM dump
may depend on things like the endianness of your CPU or settings of certain
compiler switches.
<p>
You use this object like this:
<code_box>
serialize("yourfile.dat") &lt;&lt; ramdump(yourobject);
deserialize("yourfile.dat") &gt;&gt; ramdump(yourobject); </code_box>
or
<code_box>
serialize(ramdump(yourobject), out);
deserialize(ramdump(yourobject), in); </code_box>
Also, not all objects have a ramdump mode. If you try to use ramdump on an
object that does not define a serialization dump for ramdump you will get a
compiler error.
</p>
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>check_serialized_version</name>
<file>dlib/serialize.h</file>
<spec_file link="true">dlib/serialize.h</spec_file>
<description>
This function deserializes a string and checks if it matches a user supplied
string (the version). If they don't match then dlib::serialization_error is
thrown. The point of this function is to make checking version strings in
serialized files a little more convenient.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>dlib_testing_suite</name>
<description>
......
......@@ -11,6 +11,53 @@
<!-- ************************************************************************************** -->
<current>
New Features and Improvements:
- Made orthogonalize() faster.
- Added binomial_random_vars_are_different() and event_correlation().
- Added scale_ layer, allowing implementation of squeeze-and-excitation networks.
- Added xcorr_fft()
- Added loss_multimulticlass_log: used for learning a collection of multi-class classifiers.
- Added the ramdump type decorator for invoking faster serialization routines.
- Added check_serialized_version()
- Added max_scoring_element() and min_scoring_element()
- Added make_bounding_box_regression_training_data()
- Added isotonic_regression.
- Added momentum_filter and rect_filter as well as find_optimal_momentum_filter() and find_optimal_rect_filter()
- Added a random forest regression tool. see random_forest_regression_trainer.
- Python API:
- Add Python rvm_trainer
- Added probability_that_sequence_is_increasing() to python API
- Made dlib.point() have writable x and y properties.
- Added a __time_compiled__ field to the python API.
- Exposed the image_dataset_metadata routines for parsing XML datasets to Python.
- Added num_threads to shape_predictor_training_options.
- Added set_dnn_prefer_smallest_algorithms()
- Added support for variadic Python functions in find_max_global.
- Added python interface to cuda::set_device() and other relevant functions.
- Added python interface to the more general global_function_search object.
Non-Backwards Compatible Changes:
- Changed cmake so that there is only the dlib target and it isn't forced to
be static or shared, instead, the build type will toggle based on the state
of CMake's BUILD_SHARED_LIBS variable. So there is no longer a dlib_shared target.
- Change types of tensor's size-related members to prevent integer overflow.
Bug fixes:
- Fixed memory leak in java swig array binding tool.
- Fixed windows include order problem in all/source.cpp file.
- Fixed cont_ layers not printing the correct num_filters parameter when they are printed to cout or xml.
- Fixed code not handling OBJECT_PART_NOT_PRESENT for full_object_detection objects.
- Fixed fft_inplace() not compiling for compile time sized matrices.
- The shape_predictor_trainer could have very bad runtime for some really
bad parameter settings. This has been fixed and also warning messages about
really bad training data or parameters have been added.
- Fixed the decayed running stats objects so they use unbiased estimators.
</current>
<!-- ************************************************************************************** -->
<old name="19.9" date="Jan 22, 2018">
New Features and Improvements:
- Switched the Python API from Boost.Python to pybind11. This means Python
users don't need to install Boost anymore, making building dlib's Python API
......@@ -29,7 +76,7 @@ Non-Backwards Compatible Changes:
Bug fixes:
- Fixed global_optimization.py not working in Python 3.
</current>
</old>
<!-- ************************************************************************************** -->
......
......@@ -126,6 +126,7 @@
<term file="dlib/dnn/loss_abstract.h.html" name="EXAMPLE_LOSS_LAYER_" include="dlib/dnn.h"/>
<term file="dlib/dnn/loss_abstract.h.html" name="loss_binary_hinge_" include="dlib/dnn.h"/>
<term file="dlib/dnn/loss_abstract.h.html" name="loss_binary_log_" include="dlib/dnn.h"/>
<term file="dlib/dnn/loss_abstract.h.html" name="loss_multimulticlass_log_" include="dlib/dnn.h"/>
<term file="dlib/dnn/loss_abstract.h.html" name="loss_multiclass_log_" include="dlib/dnn.h"/>
<term file="dlib/dnn/loss_abstract.h.html" name="loss_multiclass_log_per_pixel_" include="dlib/dnn.h"/>
<term file="dlib/dnn/loss_abstract.h.html" name="loss_multiclass_log_per_pixel_weighted_" include="dlib/dnn.h"/>
......@@ -152,6 +153,7 @@
<term file="dlib/dnn/layers_abstract.h.html" name="extract_" include="dlib/dnn.h"/>
<term file="dlib/dnn/layers_abstract.h.html" name="upsample_" include="dlib/dnn.h"/>
<term file="dlib/dnn/layers_abstract.h.html" name="cont_" include="dlib/dnn.h"/>
<term file="dlib/dnn/layers_abstract.h.html" name="scale_" include="dlib/dnn.h"/>
<term file="dlib/dnn/layers_abstract.h.html" name="l2normalize_" include="dlib/dnn.h"/>
<term file="dlib/dnn/layers_abstract.h.html" name="dropout_" include="dlib/dnn.h"/>
<term file="dlib/dnn/layers_abstract.h.html" name="multiply_" include="dlib/dnn.h"/>
......@@ -197,6 +199,11 @@
<term file="algorithms.html" name="kalman_filter" include="dlib/filtering.h"/>
<term file="algorithms.html" name="rls_filter" include="dlib/filtering.h"/>
<term file="algorithms.html" name="momentum_filter" include="dlib/filtering.h"/>
<term file="algorithms.html" name="rect_filter" include="dlib/filtering.h"/>
<term file="algorithms.html" name="find_optimal_rect_filter" include="dlib/filtering.h"/>
<term file="algorithms.html" name="find_optimal_momentum_filter" include="dlib/filtering.h"/>
<term file="dlib/error.h.html" name="error_type" include="dlib/error.h"/>
<term file="dlib/error.h.html" name="error" include="dlib/error.h"/>
<term file="dlib/error.h.html" name="fatal_error" include="dlib/error.h"/>
......@@ -264,6 +271,7 @@
<term file="optimization.html" name="find_max_box_constrained" include="dlib/optimization.h"/>
<term file="optimization.html" name="find_max_global" include="dlib/global_optimization.h"/>
<term file="optimization.html" name="find_min_global" include="dlib/global_optimization.h"/>
<term file="optimization.html" name="isotonic_regression" include="dlib/optimization.h"/>
<term file="optimization.html" name="global_function_search" include="dlib/global_optimization.h"/>
<term file="optimization.html" name="upper_bound_function" include="dlib/global_optimization.h"/>
<term file="optimization.html" name="call_function_and_expand_args" include="dlib/global_optimization.h"/>
......@@ -436,6 +444,8 @@
<term file="algorithms.html" name="running_cross_covariance" include="dlib/statistics.h"/>
<term file="algorithms.html" name="random_subset_selector" include="dlib/statistics.h"/>
<term file="algorithms.html" name="randomly_subsample" include="dlib/statistics.h"/>
<term file="algorithms.html" name="event_correlation" include="dlib/statistics.h"/>
<term file="algorithms.html" name="binomial_random_vars_are_different" include="dlib/statistics.h"/>
<term file="ml.html" name="lspi" include="dlib/control.h"/>
<term file="ml.html" name="policy" include="dlib/control.h"/>
......@@ -530,6 +540,7 @@
<term file="ml.html" name="svm_c_linear_dcd_trainer" include="dlib/svm.h"/>
<term file="ml.html" name="svm_rank_trainer" include="dlib/svm.h"/>
<term file="ml.html" name="shape_predictor_trainer" include="dlib/image_processing.h"/>
<term file="ml.html" name="make_bounding_box_regression_training_data" include="dlib/image_processing.h"/>
<term file="ml.html" name="test_shape_predictor" include="dlib/image_processing.h"/>
<term file="imaging.html" name="shape_predictor" include="dlib/image_processing.h"/>
<term file="imaging.html" name="render_face_detections" include="dlib/image_processing/render_face_detections.h"/>
......@@ -545,6 +556,12 @@
<term file="ml.html" name="svm_c_ekm_trainer" include="dlib/svm.h"/>
<term file="ml.html" name="rvm_trainer" include="dlib/svm.h"/>
<term file="ml.html" name="krr_trainer" include="dlib/svm.h"/>
<term file="ml.html" name="random_forest_regression_trainer" include="dlib/random_forest.h"/>
<term file="ml.html" name="random_forest_regression_function" include="dlib/random_forest.h"/>
<term file="dlib/random_forest/random_forest_regression_abstract.h.html" name="dense_feature_extractor" include="dlib/random_forest.h"/>
<term file="dlib/random_forest/random_forest_regression_abstract.h.html" name="internal_tree_node" include="dlib/random_forest.h"/>
<term file="ml.html" name="rr_trainer" include="dlib/svm.h"/>
<term file="ml.html" name="svr_trainer" include="dlib/svm.h"/>
<term file="ml.html" name="svr_linear_trainer" include="dlib/svm.h"/>
......@@ -713,6 +730,7 @@
<term file="dlib/matrix/matrix_conv_abstract.h.html" name="conv_same" include="dlib/matrix.h"/>
<term file="dlib/matrix/matrix_conv_abstract.h.html" name="conv_valid" include="dlib/matrix.h"/>
<term file="dlib/matrix/matrix_conv_abstract.h.html" name="xcorr" include="dlib/matrix.h"/>
<term file="dlib/matrix/matrix_conv_abstract.h.html" name="xcorr_fft" include="dlib/matrix.h"/>
<term file="dlib/matrix/matrix_conv_abstract.h.html" name="xcorr_same" include="dlib/matrix.h"/>
<term file="dlib/matrix/matrix_conv_abstract.h.html" name="xcorr_valid" include="dlib/matrix.h"/>
......@@ -928,6 +946,8 @@
<term link="dlib/float_details.h.html" name="float_details" include="dlib/float_details.h"/>
<term file="other.html" name="copy_functor" include="dlib/algs.h"/>
<term file="other.html" name="deserialize" include="dlib/serialize.h"/>
<term file="other.html" name="ramdump" include="dlib/serialize.h"/>
<term file="other.html" name="check_serialized_version" include="dlib/serialize.h"/>
<term file="other.html" name="error" include="dlib/error.h"/>
<term file="other.html" name="memory_manager" include="dlib/memory_manager.h"/>
<term file="other.html" name="default_memory_manager" include="dlib/algs.h"/>
......@@ -1330,6 +1350,8 @@
<term file="algorithms.html" name="max_scoring_element" include="dlib/algs.h"/>
<term file="algorithms.html" name="min_scoring_element" include="dlib/algs.h"/>
<term file="algorithms.html" name="bigint" include="dlib/bigint.h"/>
<term file="algorithms.html" name="crc32" include="dlib/crc32.h"/>
......
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