Commit aa58a73f3a928e90a275ebc8ae2cf6fa01d98d1f
Merge pull request #374 from biometrics/cascade_documentation
Documentation for cascade branch transforms
Showing
8 changed files
with
67 additions
and
8 deletions
openbr/plugins/classification/boostedforest.cpp
| ... | ... | @@ -83,6 +83,18 @@ static void storeRecursive(QDataStream &stream, const Node *node, int maxCatCoun |
| 83 | 83 | } |
| 84 | 84 | } |
| 85 | 85 | |
| 86 | +/*! | |
| 87 | + * \brief A classification wrapper on OpenCV's CvBoost class. It uses CvBoost for training a boosted forest and then performs classification using the trained nodes. | |
| 88 | + * \author Jordan Cheney \cite jcheney | |
| 89 | + * \author Scott Klum \cite sklum | |
| 90 | + * \br_property Representation* representation The Representation describing the features used by the boosted forest | |
| 91 | + * \br_property float minTAR The minimum true accept rate during training | |
| 92 | + * \br_property float maxFAR The maximum false accept rate during training | |
| 93 | + * \br_property float trimRate The trim rate during training | |
| 94 | + * \br_property int maxDepth The maximum depth for each trained tree | |
| 95 | + * \br_property int maxWeakCount The maximum number of trees in the forest | |
| 96 | + * \br_property Type type. The type of boosting to perform. Options are [Discrete, Real, Logit, Gentle]. Gentle is the default. | |
| 97 | + */ | |
| 86 | 98 | class BoostedForestClassifier : public Classifier |
| 87 | 99 | { |
| 88 | 100 | Q_OBJECT | ... | ... |
openbr/plugins/classification/cascade.cpp
| ... | ... | @@ -102,6 +102,19 @@ struct ImageHandler |
| 102 | 102 | Size winSize; |
| 103 | 103 | }; |
| 104 | 104 | |
| 105 | +/*! | |
| 106 | + * \brief A meta Classifier that creates a cascade of another Classifier. The cascade is a series of stages, each with its own instance of a given classifier. A sample can only reach the next stage if it is classified as positive by the previous stage. | |
| 107 | + * \author Jordan Cheney \cite jcheney | |
| 108 | + * \author Scott Klum \cite sklum | |
| 109 | + * \br_property int numStages The number of stages in the cascade | |
| 110 | + * \br_property int numPos The number of positives to feed each stage during training | |
| 111 | + * \br_property int numNegs The number of negatives to feed each stage during training. A negative sample must have been classified by the previous stages in the cascade as positive to be fed to the next stage during training. | |
| 112 | + * \br_property float maxFAR A termination parameter. Calculated as (number of passed negatives) / (total number of checked negatives) for a given stage during training. If that number is below the given maxFAR cascade training is terminated early. This can help prevent overfitting. | |
| 113 | + * \br_paper Paul Viola, Michael Jones | |
| 114 | + * Rapid Object Detection using a Boosted Cascade of Simple Features | |
| 115 | + * CVPR, 2001 | |
| 116 | + * \br_link Rapid Object Detection using a Boosted Cascade of Simple Features https://www.cs.cmu.edu/~efros/courses/LBMV07/Papers/viola-cvpr-01.pdf | |
| 117 | + */ | |
| 105 | 118 | class CascadeClassifier : public Classifier |
| 106 | 119 | { |
| 107 | 120 | Q_OBJECT | ... | ... |
openbr/plugins/imgproc/rndaffine.cpp
| ... | ... | @@ -8,6 +8,13 @@ using namespace cv; |
| 8 | 8 | namespace br |
| 9 | 9 | { |
| 10 | 10 | |
| 11 | +/*! | |
| 12 | + * \brief Perform a number of random transformations to the points in metadata as "Affine_0" and "Affine_1" | |
| 13 | + * \author Jordan Cheney \cite jcheney | |
| 14 | + * \br_property int numAffines The number of independent random transformations to perform. The result of each transform is stored as its own template in the output TemplateList | |
| 15 | + * \br_property float scaleFactor Controls the magnitude of the random changes to the affine points | |
| 16 | + * \br_property int maxAngle the maximum angle between the original line between the two affine points and the new line between the points. | |
| 17 | + */ | |
| 11 | 18 | class RndAffineTransform : public UntrainableMetaTransform |
| 12 | 19 | { |
| 13 | 20 | Q_OBJECT |
| ... | ... | @@ -17,8 +24,6 @@ class RndAffineTransform : public UntrainableMetaTransform |
| 17 | 24 | Q_PROPERTY(float scaleFactor READ get_scaleFactor WRITE set_scaleFactor RESET reset_scaleFactor STORED false) |
| 18 | 25 | Q_PROPERTY(int maxAngle READ get_maxAngle WRITE set_maxAngle RESET reset_maxAngle STORED false) |
| 19 | 26 | BR_PROPERTY(int, numAffines, 0) |
| 20 | - BR_PROPERTY(int, winWidth, 24) | |
| 21 | - BR_PROPERTY(int, winHeight, 24) | |
| 22 | 27 | BR_PROPERTY(float, scaleFactor, 1.2) |
| 23 | 28 | BR_PROPERTY(int, maxAngle, 15) |
| 24 | 29 | ... | ... |
openbr/plugins/imgproc/slidingwindow.cpp
| ... | ... | @@ -27,10 +27,17 @@ namespace br |
| 27 | 27 | |
| 28 | 28 | /*! |
| 29 | 29 | * \ingroup transforms |
| 30 | - * \brief Sliding Window Framework | |
| 31 | - * \author Jordan Cheney | |
| 30 | + * \brief Sliding Window Framework for object detection. Performs an exhaustive search of an image by sliding a window of a given size around the image and then resizing the image and repeating until terminating conditions are met. | |
| 31 | + * \author Jordan Cheney \cite jcheney | |
| 32 | + * \author Scott Klum \cite sklum | |
| 33 | + * \br_property Classifier* classifier The classifier that determines if a given window is a positive or negative sample. The size of the window is determined using the classifiers *windowSize* method. | |
| 34 | + * \br_property int minSize The smallest sized object to detect in pixels | |
| 35 | + * \br_property int maxSize The largest sized object to detect in pixels. A negative value will set maxSize == image size | |
| 36 | + * \br_property float scaleFactor The factor to scale the image by during each resize. | |
| 37 | + * \br_property int minNeighbors Parameter for non-maximum supression | |
| 38 | + * \br_property float confidenceThreshold A threshold for positive detections. Positive detections returned by the classifier that have confidences below this threshold are considered negative detections. | |
| 39 | + * \br_property float eps Parameter for non-maximum supression | |
| 32 | 40 | */ |
| 33 | - | |
| 34 | 41 | class SlidingWindowTransform : public MetaTransform |
| 35 | 42 | { |
| 36 | 43 | Q_OBJECT | ... | ... |
openbr/plugins/representation/gradienthistogram.cpp
openbr/plugins/representation/haar.cpp
| ... | ... | @@ -18,6 +18,16 @@ namespace br |
| 18 | 18 | /* (x + w, y + h) */ \ |
| 19 | 19 | (p3) = (rect).x + (rect).width + (step) * ((rect).y + (rect).height); |
| 20 | 20 | |
| 21 | +/*! | |
| 22 | + * \brief An implementation of Haar Features for Viola-Jones cascade object detection | |
| 23 | + * \author Jordan Cheney \cite jcheney | |
| 24 | + * \br_property int winWidth The width of the input image. The total feature space is based on this and the winHeight | |
| 25 | + * \br_property int winHeight The height of the input image. The total feature space is based on this and the winWidth. | |
| 26 | + * \br_paper Paul Viola, Michael Jones | |
| 27 | + * Rapid Object Detection using a Boosted Cascade of Simple Features | |
| 28 | + * CVPR, 2001 | |
| 29 | + * \br_link Rapid Object Detection using a Boosted Cascade of Simple Features https://www.cs.cmu.edu/~efros/courses/LBMV07/Papers/viola-cvpr-01.pdf | |
| 30 | + */ | |
| 21 | 31 | class HaarRepresentation : public Representation |
| 22 | 32 | { |
| 23 | 33 | Q_OBJECT | ... | ... |
openbr/plugins/representation/mblbp.cpp
| ... | ... | @@ -18,6 +18,16 @@ namespace br |
| 18 | 18 | /* (x + w, y + h) */ \ |
| 19 | 19 | (p3) = (rect).x + (rect).width + (step) * ((rect).y + (rect).height); |
| 20 | 20 | |
| 21 | +/*! | |
| 22 | + * \brief An implementation of MBLBP as an OpenBR Representation | |
| 23 | + * \author Jordan Cheney \cite jcheney | |
| 24 | + * \br_property int winWidth The width of the input image. The total feature space is based on this and the winHeight | |
| 25 | + * \br_property int winHeight The height of the input image. The total feature space is based on this and the winWidth. | |
| 26 | + * \br_paper Shengcai Liao, Xiangxin Zhu, Zhen Lei, Lun Zhang, Stan Z. Li | |
| 27 | + * Learning Multi-scale Block Local Binary Patterns for Face Recognition | |
| 28 | + * ICB, 2007 | |
| 29 | + * \br_link Learning Multi-scale Block Local Binary Patterns for Face Recognition http://www.cbsr.ia.ac.cn/users/lzhang/papers/ICB07/ICB07_Liao.pdf | |
| 30 | + */ | |
| 21 | 31 | class MBLBPRepresentation : public Representation |
| 22 | 32 | { |
| 23 | 33 | Q_OBJECT | ... | ... |
openbr/plugins/representation/random.cpp
| ... | ... | @@ -11,9 +11,11 @@ namespace br |
| 11 | 11 | { |
| 12 | 12 | |
| 13 | 13 | /*! |
| 14 | - * \ingroup galleries | |
| 15 | - * \brief Computes first order gradient histogram features using an integral image | |
| 14 | + * \ingroup representations | |
| 15 | + * \brief A meta Representation that creates a smaller, random feature space from the full feature space of a given representation. | |
| 16 | 16 | * \author Scott Klum \cite sklum |
| 17 | + * \br_property Representation* representation The representation from which to create the random feature space | |
| 18 | + * \br_property int count The size of the random feature space | |
| 17 | 19 | */ |
| 18 | 20 | class RandomRepresentation : public Representation |
| 19 | 21 | { | ... | ... |