Commit dc272c06 authored by biagio montesano's avatar biagio montesano

Added tutorial. Modified somples, deleted test printing from binary_descriptor

parent 2d96430a
......@@ -127,15 +127,20 @@ Each :math:`BD_j` can be obtained using the standard deviation vector :math:`S_j
Once the LBD has been obtained, it must be converted into a binary form. For such purpose, we consider 32 possible pairs of BD inside it; each couple of BD is compared bit by bit and comparison generates an 8 bit string. Concatenating 32 comparison strings, we get the 256-bit final binary representation of a single LBD.
Related Pages
-------------
* `BinaryDescriptor Class <binary_descriptor.html>`_
* `Matching with binary descriptors <matching.html>`_
* `Drawing Function of Keylines and Matches <drawing_functions.html>`_
References
----------
.. [LBD] Zhang, Lilian, and Reinhard Koch. *An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometric consistency*, Journal of Visual Communication and Image Representation 24.7 (2013): 794-805.
Summary
-------
.. toctree::
:maxdepth: 2
binary_descriptor
matching
drawing_functions
tutorial
This diff is collapsed.
......@@ -189,15 +189,5 @@ int main( int argc, char** argv )
/* require knn match */
bdm->knnMatch( descr1, descr2, matches, 6 );
/* visualize matches and Hamming distances */
for ( size_t v = 0; v < matches.size(); v++ )
{
for ( size_t m = 0; m < matches[v].size(); m++ )
{
DMatch dm = matches[v][m];
std::cout << dm.queryIdx << " " << dm.trainIdx << " " << dm.distance << std::endl;
}
}
}
......@@ -699,17 +699,6 @@ int BinaryDescriptor::OctaveKeyLines( ScaleLines &keyLines )
}
Mat appoggio = octaveImages[0].clone();
cvtColor(appoggio, appoggio, COLOR_GRAY2BGR);
for(size_t t = 0; t<extractedLines[0].size(); t++)
{
Vec4i v = extractedLines[0][t];
line(appoggio, Point(v[0], v[1]), Point(v[2], v[3]), Scalar(255, 0, 0), 3);
std::cout<< std::endl << prec[t] << " " << w_idth[t] /*<< " " << nfa[t]*/ << std::endl;
imshow("M", appoggio);
//waitKey();
}
/* prepare a vector to store octave information associated to extracted lines */
std::vector<OctaveLine> octaveLines( numOfFinalLine );
......
......@@ -77,7 +77,7 @@ Tracker classes:
----------------
.. toctree::
:maxdepth: 2
:maxdepth: 2
tracker_algorithms
common_interfaces_tracker
......
Tracking API
============
.. highlight:: cpp
Long-term optical tracking API
------------------------------
Long-term optical tracking is one of most important issue for many computer vision applications in real world scenario.
The development in this area is very fragmented and this API is an unique interface useful for plug several algorithms and compare them.
This work is partially based on [AAM]_ and [AMVOT]_.
This algorithms start from a bounding box of the target and with their internal representation they avoid the drift during the tracking.
These long-term trackers are able to evaluate online the quality of the location of the target in the new frame, without ground truth.
There are three main components: the TrackerSampler, the TrackerFeatureSet and the TrackerModel. The first component is the object that computes the patches over the frame based on the last target location.
The TrackerFeatureSet is the class that manages the Features, is possible plug many kind of these (HAAR, HOG, LBP, Feature2D, etc).
The last component is the internal representation of the target, it is the appearence model. It stores all state candidates and compute the trajectory (the most likely target states). The class TrackerTargetState represents a possible state of the target.
The TrackerSampler and the TrackerFeatureSet are the visual representation of the target, instead the TrackerModel is the statistical model.
A recent benchmark between these algorithms can be found in [OOT]_.
UML design:
-----------
**General diagram**
.. image:: pics/package.png
:width: 50%
:alt: General diagram
:align: center
**Tracker diagram**
.. image:: pics/Tracker.png
:width: 80%
:alt: Tracker diagram
:align: center
**TrackerSampler diagram**
.. image:: pics/TrackerSampler.png
:width: 100%
:alt: TrackerSampler diagram
:align: center
**TrackerFeatureSet diagram**
.. image:: pics/TrackerFeature.png
:width: 100%
:alt: TrackerFeatureSet diagram
:align: center
**TrackerModel diagram**
.. image:: pics/TrackerModel.png
:width: 100%
:alt: TrackerModel diagram
:align: center
To see how API works, try tracker demo:
https://github.com/lenlen/opencv/blob/tracking_api/samples/cpp/tracker.cpp
.. note:: This Tracking API has been designed with PlantUML. If you modify this API please change UML files under modules/tracking/misc/
The following reference was used in the API
.. [AAM] S Salti, A Cavallaro, L Di Stefano, Adaptive Appearance Modeling for Video Tracking: Survey and Evaluation, IEEE Transactions on Image Processing, Vol. 21, Issue 10, October 2012, pp. 4334-4348
.. [AMVOT] X Li, W Hu, C Shen, Z Zhang, A Dick, A van den Hengel, A Survey of Appearance Models in Visual Object Tracking, ACM Transactions on Intelligent Systems and Technology (TIST), 2013
.. [OOT] Yi Wu and Jongwoo Lim and Ming-Hsuan Yang, Online Object Tracking: A Benchmark, The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2013
Tracker classes:
----------------
.. toctree::
:maxdepth: 2
tracker_algorithms
common_interfaces_tracker
common_interfaces_tracker_sampler
common_interfaces_tracker_feature_set
common_interfaces_tracker_model
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