parent
b9ea3ef741
commit
b3fb4986f2
2 changed files with 168 additions and 0 deletions
@ -0,0 +1,167 @@ |
||||
Latent SVM |
||||
=============================================================== |
||||
|
||||
.. highlight:: cpp |
||||
|
||||
|
||||
Discriminatively Trained Part Based Models for Object Detection |
||||
--------------------------------------------------------------- |
||||
|
||||
The object detector described below has been initially proposed by |
||||
P.F. Felzenszwalb in [Felzenszwalb2010]_. It is based on a |
||||
Dalal-Triggs detector that uses a single filter on histogram of |
||||
oriented gradients (HOG) features to represent an object category. |
||||
This detector uses a sliding window approach, where a filter is |
||||
applied at all positions and scales of an image. The first |
||||
innovation is enriching the Dalal-Triggs model using a |
||||
star-structured part-based model defined by a "root" filter |
||||
(analogous to the Dalal-Triggs filter) plus a set of parts filters |
||||
and associated deformation models. The score of one of star models |
||||
at a particular position and scale within an image is the score of |
||||
the root filter at the given location plus the sum over parts of the |
||||
maximum, over placements of that part, of the part filter score on |
||||
its location minus a deformation cost easuring the deviation of the |
||||
part from its ideal location relative to the root. Both root and |
||||
part filter scores are defined by the dot product between a filter |
||||
(a set of weights) and a subwindow of a feature pyramid computed |
||||
from the input image. Another improvement is a representation of the |
||||
class of models by a mixture of star models. The score of a mixture |
||||
model at a particular position and scale is the maximum over |
||||
components, of the score of that component model at the given |
||||
location. |
||||
|
||||
|
||||
CvLSVMFilterPosition |
||||
-------------------- |
||||
.. ocv:struct:: CvLSVMFilterPosition |
||||
|
||||
Structure describes the position of the filter in the feature pyramid. |
||||
|
||||
.. ocv:member:: unsigned int l |
||||
|
||||
level in the feature pyramid |
||||
|
||||
.. ocv:member:: unsigned int x |
||||
|
||||
x-coordinate in level l |
||||
|
||||
.. ocv:member:: unsigned int y |
||||
|
||||
y-coordinate in level l |
||||
|
||||
|
||||
CvLSVMFilterObject |
||||
------------------ |
||||
.. ocv:struct:: CvLSVMFilterObject |
||||
|
||||
Description of the filter, which corresponds to the part of the object. |
||||
|
||||
.. ocv:member:: CvLSVMFilterPosition V |
||||
|
||||
ideal (penalty = 0) position of the partial filter |
||||
from the root filter position (V_i in the paper) |
||||
|
||||
.. ocv:member:: float fineFunction[4] |
||||
|
||||
vector describes penalty function (d_i in the paper) |
||||
pf[0] * x + pf[1] * y + pf[2] * x^2 + pf[3] * y^2 |
||||
|
||||
.. ocv:member:: int sizeX, sizeY |
||||
|
||||
Rectangular map (sizeX x sizeY), |
||||
every cell stores feature vector (dimension = p) |
||||
|
||||
.. ocv:member:: int numFeatures |
||||
|
||||
number of features |
||||
|
||||
.. ocv:member:: float *H |
||||
|
||||
matrix of feature vectors to set and get |
||||
feature vectors (i,j) used formula H[(j * sizeX + i) * p + k], |
||||
where k - component of feature vector in cell (i, j) |
||||
|
||||
CvLatentSvmDetector |
||||
------------------- |
||||
.. ocv:struct:: CvLatentSvmDetector |
||||
|
||||
Structure contains internal representation of trained Latent SVM detector. |
||||
|
||||
.. ocv:member:: int num_filters |
||||
|
||||
total number of filters (root plus part) in model |
||||
|
||||
.. ocv:member:: int num_components |
||||
|
||||
number of components in model |
||||
|
||||
.. ocv:member:: int* num_part_filters |
||||
|
||||
array containing number of part filters for each component |
||||
|
||||
.. ocv:member:: CvLSVMFilterObject** filters |
||||
|
||||
root and part filters for all model components |
||||
|
||||
.. ocv:member:: float* b |
||||
|
||||
biases for all model components |
||||
|
||||
.. ocv:member:: float score_threshold |
||||
|
||||
confidence level threshold |
||||
|
||||
|
||||
CvObjectDetection |
||||
----------------- |
||||
.. ocv:struct:: CvObjectDetection |
||||
|
||||
Structure contains the bounding box and confidence level for detected object. |
||||
|
||||
.. ocv:member:: CvRect rect |
||||
|
||||
bounding box for a detected object |
||||
|
||||
.. ocv:member:: float score |
||||
|
||||
confidence level |
||||
|
||||
|
||||
cvLoadLatentSvmDetector |
||||
----------------------- |
||||
|
||||
Loads trained detector from a file. |
||||
|
||||
.. ocv:function:: CvLatentSvmDetector* cvLoadLatentSvmDetector(const char* filename) |
||||
|
||||
:param filename: Name of the file containing the description of a trained detector |
||||
|
||||
|
||||
cvReleaseLatentSvmDetector |
||||
-------------------------- |
||||
|
||||
Release memory allocated for CvLatentSvmDetector structure. |
||||
|
||||
.. ocv:function:: void cvReleaseLatentSvmDetector(CvLatentSvmDetector** detector) |
||||
|
||||
:param detector: CvLatentSvmDetector structure to be released |
||||
|
||||
|
||||
cvLatentSvmDetectObjects |
||||
------------------------ |
||||
|
||||
Find rectangular regions in the given image that are likely to contain objects |
||||
and corresponding confidence levels. |
||||
|
||||
.. ocv:function:: CvSeq* cvLatentSvmDetectObjects(IplImage* image, CvLatentSvmDetector* detector, CvMemStorage* storage, float overlap_threshold, int numThreads) |
||||
|
||||
:param image: image |
||||
:param detector: LatentSVM detector in internal representation |
||||
:param storage: Memory storage to store the resultant sequence of the object candidate rectangles |
||||
:param overlap_threshold: Threshold for the non-maximum suppression algorithm |
||||
:param numThreads: Number of threads used in parallel version of the algorithm |
||||
|
||||
|
||||
.. [Felzenszwalb2010] Felzenszwalb, P. F. and Girshick, R. B. and McAllester, D. and Ramanan, D. *Object Detection with Discriminatively Trained Part Based Models*. PAMI, vol. 32, no. 9, pp. 1627-1645, September 2010 |
||||
|
||||
|
Loading…
Reference in new issue