From b0acb13e243de04c956e6b83626681e18c46c944 Mon Sep 17 00:00:00 2001 From: Jordan Cheney Date: Thu, 23 Apr 2015 02:19:09 -0400 Subject: [PATCH] Updated plugin documentation, documented command line API and added to C++ Plugin API --- app/br/br.cpp | 7 ++++++- docs/docs/api_docs/c_api/functions.md | 28 +++++++++++++++++++++++----- docs/docs/api_docs/cl_api.md | 377 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ docs/docs/api_docs/cpp_api.md | 15 +++++++-------- docs/docs/api_docs/cpp_api/compositetransform/compositetransform.md | 15 +++++++++++++++ docs/docs/api_docs/cpp_api/filegallery/constructors.md | 3 +++ docs/docs/api_docs/cpp_api/filegallery/filegallery.md | 11 +++++++++++ docs/docs/api_docs/cpp_api/filegallery/functions.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ docs/docs/api_docs/cpp_api/filegallery/members.md | 3 +++ docs/docs/api_docs/cpp_api/filegallery/statics.md | 1 + docs/docs/api_docs/cpp_api/gallery/gallery.md | 1 + docs/docs/api_docs/cpp_api/metadatatransform/metadatatransform.md | 2 +- docs/docs/api_docs/cpp_api/transform/functions.md | 2 +- docs/docs/api_docs/cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md | 2 +- docs/docs/api_docs/cpp_api/untrainabletransform/untrainabletransform.md | 2 +- docs/docs/api_docs/cpp_api/wrappertransform/constructors.md | 0 docs/docs/api_docs/cpp_api/wrappertransform/functions.md | 0 docs/docs/api_docs/cpp_api/wrappertransform/members.md | 0 docs/docs/api_docs/cpp_api/wrappertransform/properties.md | 0 docs/docs/api_docs/cpp_api/wrappertransform/statics.md | 0 docs/docs/api_docs/cpp_api/wrappertransform/wrappertransform.md | 13 +++++++++++++ docs/docs/api_docs/plugins/classification.md | 294 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------- docs/docs/api_docs/plugins/cluster.md | 43 ++++++++++++++++++++++++------------------- docs/docs/api_docs/plugins/core.md | 220 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------ docs/docs/api_docs/plugins/distance.md | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------- docs/docs/api_docs/plugins/format.md | 61 ++++++++++++++++++++++++++++++++++++++++++++----------------- docs/docs/api_docs/plugins/gallery.md | 196 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------- docs/docs/api_docs/plugins/gui.md | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------- docs/docs/api_docs/plugins/imgproc.md | 422 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------- docs/docs/api_docs/plugins/io.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ docs/docs/api_docs/plugins/metadata.md | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------- docs/docs/api_docs/plugins/output.md | 46 ++++++++++++++++++++++++++++++---------------- docs/docs/api_docs/plugins/video.md | 15 +++++++++++---- docs/docs/contribute.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ docs/docs/contributors.md | 13 +++++++++++++ docs/docs/docs/cpp_api/file/file.md | 65 ----------------------------------------------------------------- docs/docs/docs/cpp_api/transform/statics.md | 193 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- docs/docs/misc/MBGC_file_overview.pdf | Bin 0 -> 83820 bytes docs/docs/technical.md | 6 +++--- docs/mkdocs.yml | 12 +++++++++++- docs/scripts/check_links.py | 8 +++++++- docs/scripts/generate_plugin_docs.py | 172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------- docs/themes/readthedocs/css/theme_extra.css | 3 +++ openbr/openbr.h | 457 +++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- openbr/openbr_export.cpp | 483 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- openbr/openbr_plugin.h | 932 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- openbr/plugins/classification/adaboost.cpp | 22 +++++++++++----------- openbr/plugins/classification/ebif.cpp | 8 +++++--- openbr/plugins/classification/forest.cpp | 28 ++++++++++++++-------------- openbr/plugins/classification/lda.cpp | 35 +++++++++++++++++++---------------- openbr/plugins/classification/liblinear.cpp | 4 ++++ openbr/plugins/classification/mlp.cpp | 14 +++++++------- openbr/plugins/classification/nt4.cpp | 22 +++++++--------------- openbr/plugins/classification/pp4.cpp | 2 +- openbr/plugins/classification/pp5.cpp | 19 +++++++++++-------- openbr/plugins/classification/svm.cpp | 27 +++++++++++++++------------ openbr/plugins/classification/turk.cpp | 6 +++--- openbr/plugins/cluster/collectnn.cpp | 2 +- openbr/plugins/cluster/kmeans.cpp | 6 +++--- openbr/plugins/cluster/lognn.cpp | 2 +- openbr/plugins/cluster/randomcentroids.cpp | 6 +++--- openbr/plugins/core/align.cpp | 7 ++++--- openbr/plugins/core/cache.cpp | 2 +- openbr/plugins/core/contract.cpp | 5 +++-- openbr/plugins/core/crossvalidate.cpp | 8 +++++--- openbr/plugins/core/discard.cpp | 4 ++-- openbr/plugins/core/discardtemplates.cpp | 4 ++++ openbr/plugins/core/distributetemplate.cpp | 4 ++++ openbr/plugins/core/event.cpp | 4 ++++ openbr/plugins/core/expand.cpp | 7 ++----- openbr/plugins/core/first.cpp | 4 ++-- openbr/plugins/core/fork.cpp | 6 +++--- openbr/plugins/core/fte.cpp | 2 +- openbr/plugins/core/gallerycompare.cpp | 2 +- openbr/plugins/core/identity.cpp | 4 ++-- openbr/plugins/core/independent.cpp | 6 ++++-- openbr/plugins/core/jni.cpp | 1 - openbr/plugins/core/likely.cpp | 2 +- openbr/plugins/core/loadstore.cpp | 2 +- openbr/plugins/core/pipe.cpp | 7 +++---- openbr/plugins/core/progresscounter.cpp | 5 +++++ openbr/plugins/core/remove.cpp | 6 ++---- openbr/plugins/core/rest.cpp | 4 ++-- openbr/plugins/core/schrodinger.cpp | 4 ++-- openbr/plugins/core/singleton.cpp | 2 +- openbr/plugins/distance/bayesianquantization.cpp | 2 +- openbr/plugins/distance/crossvalidate.cpp | 2 +- openbr/plugins/distance/dist.cpp | 2 +- openbr/plugins/distance/fuse.cpp | 4 ++-- openbr/plugins/distance/identical.cpp | 2 +- openbr/plugins/distance/keypointmatcher.cpp | 1 + openbr/plugins/distance/matchprobability.cpp | 2 +- openbr/plugins/distance/online.cpp | 2 +- openbr/plugins/distance/pipe.cpp | 8 +++++--- openbr/plugins/distance/reject.cpp | 2 +- openbr/plugins/distance/sum.cpp | 2 +- openbr/plugins/distance/svm.cpp | 4 ++-- openbr/plugins/distance/unit.cpp | 2 +- openbr/plugins/distance/zscore.cpp | 4 ++++ openbr/plugins/format/binary.cpp | 2 +- openbr/plugins/format/ebts.cpp | 2 +- openbr/plugins/format/lmat.cpp | 2 +- openbr/plugins/format/mat.cpp | 6 ++++-- openbr/plugins/format/raw.cpp | 2 +- openbr/plugins/format/scores.cpp | 4 +--- openbr/plugins/gallery/arff.cpp | 2 +- openbr/plugins/gallery/binary.cpp | 2 +- openbr/plugins/gallery/csv.cpp | 9 ++++----- openbr/plugins/gallery/default.cpp | 2 +- openbr/plugins/gallery/empty.cpp | 2 +- openbr/plugins/gallery/fddb.cpp | 2 +- openbr/plugins/gallery/landmarks.cpp | 3 +-- openbr/plugins/gallery/lmat.cpp | 2 +- openbr/plugins/gallery/matrix.cpp | 2 +- openbr/plugins/gallery/seq.cpp | 4 ++++ openbr/plugins/gallery/stat.cpp | 2 +- openbr/plugins/gallery/template.cpp | 2 +- openbr/plugins/gallery/txt.cpp | 28 +++++++++++++--------------- openbr/plugins/gallery/vbb.cpp | 4 ++++ openbr/plugins/gallery/video.cpp | 19 ++++++++++++++++--- openbr/plugins/gallery/xml.cpp | 2 +- openbr/plugins/gui/show.cpp | 8 +++++++- openbr/plugins/imgproc/adaptivethreshold.cpp | 1 + openbr/plugins/imgproc/canny.cpp | 3 ++- openbr/plugins/imgproc/contrasteq.cpp | 7 ++++--- openbr/plugins/imgproc/cryptographichash.cpp | 1 + openbr/plugins/imgproc/csdn.cpp | 7 ++++--- openbr/plugins/imgproc/denoising.cpp | 1 + openbr/plugins/imgproc/div.cpp | 2 +- openbr/plugins/imgproc/dup.cpp | 2 +- openbr/plugins/imgproc/gabor.cpp | 3 ++- openbr/plugins/imgproc/heatmap.cpp | 4 ++++ openbr/plugins/imgproc/hog.cpp | 1 + openbr/plugins/imgproc/inpaint.cpp | 1 + openbr/plugins/imgproc/keypointdescriptor.cpp | 1 + openbr/plugins/imgproc/lbp.cpp | 7 ++++--- openbr/plugins/imgproc/ltp.cpp | 5 ++++- openbr/plugins/imgproc/mean.cpp | 4 +++- openbr/plugins/imgproc/merge.cpp | 1 + openbr/plugins/imgproc/multiscale.cpp | 2 +- openbr/plugins/imgproc/normalize.cpp | 10 +++++----- openbr/plugins/imgproc/productquantization.cpp | 10 ++++++++-- openbr/plugins/imgproc/recursiveintegralsampler.cpp | 2 +- openbr/plugins/imgproc/reshape.cpp | 2 +- openbr/plugins/imgproc/resize.cpp | 5 ++--- openbr/plugins/imgproc/rootnorm.cpp | 5 ++++- openbr/plugins/imgproc/sift.cpp | 1 + openbr/plugins/imgproc/skinmask.cpp | 3 ++- openbr/plugins/imgproc/threshold.cpp | 1 + openbr/plugins/imgproc/transpose.cpp | 4 ++++ openbr/plugins/io/galleryoutput.cpp | 4 ++++ openbr/plugins/io/incrementaloutput.cpp | 2 ++ openbr/plugins/io/open.cpp | 2 +- openbr/plugins/io/out.cpp | 4 ++++ openbr/plugins/io/print.cpp | 2 +- openbr/plugins/io/readlandmarks.cpp | 7 +++---- openbr/plugins/io/youtubefacesdb.cpp | 5 ++++- openbr/plugins/metadata/as.cpp | 2 +- openbr/plugins/metadata/cascade.cpp | 1 + openbr/plugins/metadata/check.cpp | 2 +- openbr/plugins/metadata/clearpoints.cpp | 2 +- openbr/plugins/metadata/croprect.cpp | 2 +- openbr/plugins/metadata/expandrect.cpp | 2 +- openbr/plugins/metadata/eyes.cpp | 9 ++++----- openbr/plugins/metadata/facefromeyes.cpp | 9 ++++----- openbr/plugins/metadata/fileexclusion.cpp | 4 ++++ openbr/plugins/metadata/filterdupemetadata.cpp | 2 +- openbr/plugins/metadata/grid.cpp | 2 +- openbr/plugins/metadata/groundtruth.cpp | 2 +- openbr/plugins/metadata/hogpersondetector.cpp | 1 + openbr/plugins/metadata/ifmetadata.cpp | 2 +- openbr/plugins/metadata/imposteruniquenessmeasure.cpp | 2 +- openbr/plugins/metadata/keypointdetector.cpp | 1 + openbr/plugins/metadata/name.cpp | 2 +- openbr/plugins/metadata/rectstotemplates.cpp | 3 +-- openbr/plugins/metadata/removemetadata.cpp | 2 +- openbr/plugins/metadata/removetemplates.cpp | 2 +- openbr/plugins/metadata/restoremat.cpp | 4 ++-- openbr/plugins/metadata/savemat.cpp | 2 +- openbr/plugins/metadata/stopwatch.cpp | 2 +- openbr/plugins/output/mtx.cpp | 2 +- openbr/plugins/video/aggregate.cpp | 7 ++++--- share/openbr/openbr.bib | 34 +++++++++++++++++++--------------- 183 files changed, 2628 insertions(+), 2772 deletions(-) create mode 100644 docs/docs/api_docs/cpp_api/compositetransform/compositetransform.md create mode 100644 docs/docs/api_docs/cpp_api/filegallery/constructors.md create mode 100644 docs/docs/api_docs/cpp_api/filegallery/functions.md create mode 100644 docs/docs/api_docs/cpp_api/filegallery/members.md create mode 100644 docs/docs/api_docs/cpp_api/filegallery/statics.md create mode 100644 docs/docs/api_docs/cpp_api/wrappertransform/constructors.md create mode 100644 docs/docs/api_docs/cpp_api/wrappertransform/functions.md create mode 100644 docs/docs/api_docs/cpp_api/wrappertransform/members.md create mode 100644 docs/docs/api_docs/cpp_api/wrappertransform/properties.md create mode 100644 docs/docs/api_docs/cpp_api/wrappertransform/statics.md create mode 100644 docs/docs/api_docs/cpp_api/wrappertransform/wrappertransform.md create mode 100644 docs/docs/contributors.md delete mode 100644 docs/docs/docs/cpp_api/file/file.md delete mode 100644 docs/docs/docs/cpp_api/transform/statics.md create mode 100644 docs/docs/misc/MBGC_file_overview.pdf diff --git a/app/br/br.cpp b/app/br/br.cpp index 2e2293a..a29c535 100644 --- a/app/br/br.cpp +++ b/app/br/br.cpp @@ -251,19 +251,22 @@ private: "-train ... [{model}]\n" "-enroll ... {output_gallery}\n" "-compare [{output}]\n" + "-pairwiseCompare [{output}]\n" "-eval [] [{csv}] [{matches}]\n" + "-inplaceEval [{csv}]\n" "-plot ... {destination}\n" "\n" "==== Other Commands ====\n" "-fuse ... (None|MinMax|ZScore|WScore) (Min|Max|Sum[W1:W2:...:Wn]|Replace|Difference|None) {simmat}\n" "-cluster ... {csv}\n" "-makeMask {mask}\n" + "-makePairwiseMask {mask}\n" "-combineMasks ... {mask} (And|Or)\n" "-cat ... {gallery}\n" "-convert (Format|Gallery|Output) {output_file}\n" "-evalClassification \n" "-evalClustering \n" - "-evalDetection [{csv}] [{normalize}] [{minSize}]\n" + "-evalDetection [{csv}] [{normalize}] [{minSize}] [{maxSize}]\n" "-evalLandmarking [{csv} [ ] [sample_index] [total_examples]]\n" "-evalRegression \n" "-assertEval \n" @@ -271,6 +274,7 @@ private: "-plotLandmarking ... {destination}\n" "-plotMetadata ... \n" "-project {output_gallery}\n" + "-deduplicate " "-getHeader \n" "-setHeader {} \n" "- \n" @@ -282,6 +286,7 @@ private: "-about\n" "-version\n" "-daemon\n" + "-slave\n" "-exit\n"); } }; diff --git a/docs/docs/api_docs/c_api/functions.md b/docs/docs/api_docs/c_api/functions.md index 25d8453..95256c6 100644 --- a/docs/docs/api_docs/c_api/functions.md +++ b/docs/docs/api_docs/c_api/functions.md @@ -263,7 +263,7 @@ Creates a **.csv** file containing performance metrics from evaluating the simil ## br_assert_eval -Evaluates the similarity matrix using the mask matrix. Function aborts ff TAR @ FAR = 0.001 does not meet an expected performance value. +Evaluates the similarity matrix using the mask matrix. Function aborts if TAR @ FAR = 0.001 does not meet an expected performance value. * **function definition:** @@ -794,7 +794,7 @@ Returns the full path to the root of the SDK. ## br_get_header -Retrieve the target and query inputs in the [BEE matrix](../../technical.md#the-evaluation-harness) header. See the bullets at the top of this page on managed return values. +Retrieve the target and query inputs in the [BEE matrix](../../technical.md#the-evaluation-harness) header. For information on managed return values see [here](../c_api.md#memory). * **function definition:** @@ -900,8 +900,8 @@ Convenience function for training on multiple inputs Parameter | Type | Description --- | --- | --- num_inputs | int | Size of **inputs** - inputs[] | const char * | An array of [galleries](../cpp_api.md#gallery) to train on. - modell | const char *model = | (Optional) String specifying the binary file to serialize training results to. The trained algorithm can be recovered by using this file as the algorithm. By default the trained algorithm will not be serialized to disk. + inputs[] | const char * | An array of [galleries](../cpp_api/gallery/gallery.md) to train on. + model | const char * | (Optional) String specifying the binary file to serialize training results to. The trained algorithm can be recovered by using this file as the algorithm. By default the trained algorithm will not be serialized to disk. * **output:** (void) * **see:** [br_train](#br_train) @@ -922,6 +922,24 @@ Get the current OpenBR version. --- +## br_slave_process + +For internal use via [ProcessWrapperTransform](../plugins/core.md#processwrappertransform) + +* **function definition:** + + void br_slave_process(const char * baseKey) + +* **parameters:** + + Parameter | Type | Description + --- | --- | --- + baseKey | const char * | base key for the slave process + +* **output:** (void) + +--- + ## br_load_img Load an image from a string buffer. This is an easy way to pass an image in memory from another programming language to openbr. @@ -1179,7 +1197,7 @@ Enroll a [Template](../cpp_api/template/template.md) from the C API! Parameter | Type | Description --- | --- | --- - tmpl | br_template | Pointer to a [Template](../cpp_api.md#template). + tmpl | br_template | Pointer to a [Template](../cpp_api/template/template.md). * **output:** ([br_template_list](typedefs.md#br_template_list)) Returns a pointer to a [TemplateList](../cpp_api/templatelist/templatelist.md) diff --git a/docs/docs/api_docs/cl_api.md b/docs/docs/api_docs/cl_api.md index e69de29..3da9922 100644 --- a/docs/docs/api_docs/cl_api.md +++ b/docs/docs/api_docs/cl_api.md @@ -0,0 +1,377 @@ +The command line API is a tool to run OpenBR from the command line. The command line is the easiest and fastest way to run OpenBR! + +The following is a detailed description of the command line API. The command line API is really just a set of wrappers to call the [C API](c_api.md). All of the flags in this API have a corresponding C API call. To help display the examples the following shorthand definitions will be used: + +Shortcut | Definition +--- | --- + | <> Represent an input argument +{arg} | {} Represent an output argument +[arg] | [] Represent an optional argument +(arg0|...|argN) | (...|...) Represent a choice. + +## Algorithms + +Almost every command line process needs to specify an algorithm to work properly. Algorithms in OpenBR are described in detail [here](../tutorials.md#algorithms-in-openbr). To specify algorithms to the command line use the -algorithm flag like so: + + -algorithm "AlgorithmString" + +Make sure you use the quotes if your algorithm is longer than one plugin because special characters in OpenBR are also special characters (with very different meanings!) in Bash. + +## Core Commands + +### -train {: #train } + +Train a model + +* **arguments:** + + -train ... [{model}] + +* **wraps:** [br_train_n](c_api/functions.md#br_train_n) + +### -enroll {: #enroll } + +Enroll a [Gallery](cpp_api/gallery/gallery.md) through an algorithm + +* **arguments:** + + -enroll ... {output_gallery} + +* **wraps:** [br_enroll](c_api/functions.md#br_enroll) or [br_enroll_n](c_api/functions.md#br_enroll_n) depending on the input size + +### -compare {: #compare } + +Compare query [Templates](cpp_api/template/template.md) against a target [Gallery](cpp_api/gallery/gallery.md) + +* **arguments:** + + -compare [{output}] + +* **wraps:** [br_compare](c_api/functions.md#br_compare) + +### -pairwiseCompare {: #pairwisecompare } + +DOCUMENT ME + +* **arguments:** + + -pairwiseCompare [{output}] + +* **wraps:** [br_pairwise_compare](c_api/functions.md#br_pairwise_compare) + +### -eval {: #eval } + +Evaluate a similarity matrix + +* **arguments:** + + -eval [] [{csv}] [{matches}] + +* **wraps:** [br_eval](c_api/functions.md#br_eval) + +### -inplaceEval {: #inplaceeval } + +DOCUMENT ME + +* **arguments:** + + -inplaceEval [{output}] + +* **wraps:** [br_inplace_eval](c_api/functions.md#br_inplace_eval) + +### -plot {: #inplaceeval} + +Plot the results of an evaluation + +* **arguments:** + + -plot ... {destination} + +* **wraps:** [br_plot](c_api/functions.md#br_plot) + + +## Other Commands + +### -fuse {: #fuse } + +Perform score level fusion on similarity matrices. + +* **arguments:** + + -fuse ... (None|MinMax|ZScore|WScore) (Min|Max|Sum[W1:W2:...:Wn]|Replace|Difference|None) {simmat} + +* **wraps:** [br_fuse](c_api/functions.md#br_fuse) + +### -cluster {: #cluster } + +Clusters one or more similarity matrices into a list of subjects + +* **arguments:** + + -cluster ... {csv} + +* **wraps:** [br_cluster](c_api/functions.md#br_cluster) + +### -makeMask {: #makemask } + +Constructs a mask from target and query inputs + +* **arguments:** + + -makeMask {mask} + +* **wraps:** [br_make_mask](c_api/functions.md#br_make_mask) + +### -makePairwiseMask {: #makepairwisemask } + +Constructs a mask from target and query inputs considering the target and input sets to be definite pairwise comparisons. + +* **arguments:** + + -makePairwiseMask {mask} + +* **wraps:** [br_make_pairwise_mask](c_api/functions.md#br_make_pairwise_mask) + +### -combineMasks {: #combinemask } + +Combines several equal-sized mask matrices. A comparison may not be simultaneously indentified as both a genuine and an imposter by different input masks. + +* **arguments:** + + -combineMasks ... {mask} (And|Or) + +* **wraps:** [br_combine_masks](c_api/functions.md#br_combine_masks) + +### -cat {: #cat } + +Concatenates a list of galleries into 1 gallery + +* **arguments:** + + -cat ... {gallery} + +* **wraps:** [br_cat](c_api/functions.md#br_cat) + +### -convert {: #convert } + +Convert a file to a different type. Files can only be converted to types within the same group. For example formats can only be converted to other formats. + +* **arguments:** + + -convert (Format|Gallery|Output) {output_file} + +* **wraps:** [br_convert](c_api/functions.md#br_convert) + +### -evalClassification {: #evalclassification } + +Evaluates and prints classification accuracy to terminal + +* **arguments:** + + -evalClassification + +* **wraps:** [br_eval_classification](c_api/functions.md#br_eval_classification) + +### -evalClustering {: #evalclustering } + +Evaluates and prints clustering accuracy to the terminal + +* **arguments:** + + -evalClustering + +* **wraps:** [br_eval_clustering](c_api/functions.md#br_eval_clustering) + +### -evalDetection {: #evaldetection } + +Evaluates and prints detection accuracy to terminal + +* **arguments:** + + -evalDetection [{csv}] [{normalize}] [{minSize}] [{maxSize}] + +* **wraps:** [br_eval_detection](c_api/functions.md#br_eval_detection) + +### -evalLandmarking {: #evallandmarking } + +Evaluates and prints landmarking accuracy to terminal + +* **arguments:** + + -evalLandmarking [{csv} [ ] [sample_index] [total_examples]] + +* **wraps:** [br_eval_landmarking](c_api/functions.md#br_eval_landmarking) + + +### -evalRegression {: #evalregression } + +Evaluates regression accuracy to disk + +* **arguments:** + + -evalRegression + +* **wraps:** [br_eval_regression](c_api/functions.md#br_eval_regression) + +### -assertEval {: #asserteval } + +Evaluates the similarity matrix using the mask matrix. Function aborts if TAR @ FAR = 0.001 does not meet an expected performance value. + +* **arguments:** + + -assertEval + +* **wraps:** [br_assert_eval](c_api/functions.md#br_assert_eval) + +### -plotDetection {: #plotdetection } + +Renders detection performance figures for a set of .csv files created by [-evalDetection](#evaldetection). + +* **arguments:** + + -plotDetection ... {destination} + +* **wraps:** [br_plot_detection](c_api/functions.md#br_plot_detection) + +### -plotLandmarking {: #plotlandmarking } + +Renders landmarking performance figures for a set of .csv files created by [-evalLandmarking](#evallandmarking) + +* **arguments:** + + -plotLandmarking ... {destination} + +* **wraps:** [br_plot_landmarking](c_api/functions.md#br_plot_landmarking) + +### -plotMetadata {: #plotmetadata } + +Renders metadata figures for a set of .csv files with specified columns + +* **arguments:** + + -plotMetadata ... + +* **wraps:** [br_plot_metadata](c_api/functions.md#br_plot_metadata) + +### -project {: #project } + +A naive alternative to [-enroll](#enroll) + +* **arguments:** + + -project {output_gallery} + +* **wraps:** [br_project](c_api/functions.md#br_project) + +### -getHeader {: #getheader } + +Retrieve the target and query inputs in the [BEE matrix](../technical.md#the-evaluation-harness) header + +* **arguments:** + + -getHeader + +* **wraps:** [br_get_header](c_api/functions.md#br_get_header) + +### -setHeader {: #setheader } + +Update the target and query inputs in the [BEE matrix](../technical.md#the-evaluation-harness) header + +* **arguments:** + + -setHeader {} + +* **wraps:** [br_set_header](c_api/functions.md#br_set_header) + +### -<key> <value> {: #setproperty } + +Appends a provided value to the [global metadata](cpp_api/context/context.md) using a provided key + +* **arguments:** + + - + +* **wraps:** [br_set_property](c_api/functions.md#br_set_property) + + +## Miscellaneous + +### -help {: #help } + +Print command line API documentation to the terminal + +* **arguments:** + + -help + +* **wraps:** N/A + +### -gui {: #gui } + +If this flag is set OpenBR will enable GUI windows to be launched. It must be the first flag set. + +* **arguments:** + + br -gui + +* **wraps:** N/A + +### -objects {: #objects } + +Returns names and parameters for the requested objects. Each object is newline seperated. Arguments are seperated from the object name with a tab. This function uses [QRegExp][QRegExp] syntax + +* **arguments:** + + -objects [abstraction [implementation]] + +* **wraps:** [br_objects](c_api/functions.md#br_objects) + +### -about {: #about } + +Get a string with the name, version, and copyright of the project. This string is suitable for printing or terminal + +* **arguments:** + + -about + +* **wraps:** [br_about](c_api/functions.md#br_about) + +### -version {: #version } + +Get the current OpenBR version + +* **arguments:** + + -version + +* **wraps:** [br_version](c_api/functions.md#br_version) + +### -slave {: #slave } + +For internal use via [ProcessWrapperTransform](../plugins/core.md#processwrappertransform) + +* **arguments:** + + -slave + +* **wraps:** [br_slave_process](c_api/functions.md#br_slave_process) + +### -daemon {: #daemon } + +DOCUMENT ME + +* **arguments:** + + -daemon + +* **wraps:** N/A + +### -exit + +Exit the application + +* **arguments:** + + -exit + +* **wraps:** N/A \ No newline at end of file diff --git a/docs/docs/api_docs/cpp_api.md b/docs/docs/api_docs/cpp_api.md index b93663d..a4ec1fd 100644 --- a/docs/docs/api_docs/cpp_api.md +++ b/docs/docs/api_docs/cpp_api.md @@ -1,15 +1,15 @@ # C++ Plugin API -The C++ Plugin API is a pluggable API designed to allow the succinct expression of biometrics algorithms as a series of independent plugins. The API exposes a number of data structures and plugin abstractions to use as simple building blocks for complex algorithms. +The C++ Plugin API is a pluggable API designed to allow the succinct expression of biometrics algorithms as a series of independent plugins. The API exposes a number of data structures and plugin abstractions to use as simple building blocks for complex algorithms. ## Data Structures -The API defines two data structures: +The API defines two data structures: * [Files](cpp_api/file/file.md) * [Templates](cpp_api/template/template.md) -[Files](cpp_api/file/file.md) are used for storing textual data and [Templates](cpp_api/template/template.md) act as containers that hold images, stored as OpenCV [Mats][Mat], and [Files](cpp_api/file/file.md). +[Files](cpp_api/file/file.md) are used for storing textual data and [Templates](cpp_api/template/template.md) act as containers that hold images, stored as OpenCV [Mats][Mat], and [Files](cpp_api/file/file.md). ## Plugin Abstractions @@ -25,20 +25,19 @@ Plugin | Function [Output](cpp_api/output/output.md) | Used for I/O. Outputs handle the results of Distance comparisons. [Representation](cpp_api/representation/representation.md) | Converts images into feature vectors. Slightly different then Transforms in implementation and available API calls. [Classifier](cpp_api/classifier/classifier.md) | Classifies feature vectors as members of specific classes - + Additionally, there are several child-abstractions for specific use cases. They are: - + Plugin | Parent | Function --- | --- | --- [UntrainableTransform](cpp_api/untrainabletransform/untrainabletransform.md) | [Transform](cpp_api/transform/transform.md) | A [Transform](cpp_api/transform/transform.md) that cannot be trained [MetaTransform](cpp_api/metatransform/metatransform.md) | [Transform](cpp_api/transform/transform.md) | A [Transform](cpp_api/transform/transform.md) that is *not* [independent](cpp_api/transform/members.md#independent) [UntrainableMetaTransform](cpp_api/untrainablemetatransform/untrainablemetatransform.md) | [UntrainableTransform](cpp_api/untrainabletransform/untrainabletransform.md) | A [Transform](cpp_api/transform/transform.md) that is *not* [independent](cpp_api/transform/members.md#independent) and cannot be trained - [MetadataTransform](cpp_api/metadatatransform/metadatatransform.md) | [Transform](cpp_api/transform/transform.md) | A [Transform](cpp_api/transform/transform.md) that operates only on [Transform](cpp_api/transform/transform.md) [metadata](cpp_api/transform/members.md#file) + [MetadataTransform](cpp_api/metadatatransform/metadatatransform.md) | [Transform](cpp_api/transform/transform.md) | A [Transform](cpp_api/transform/transform.md) that operates only on [Template](cpp_api/template/template.md) [metadata](cpp_api/template/members.md#file) [UntrainableMetadataTransform](cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) | [MetadataTransform](cpp_api/metadatatransform/metadatatransform.md) | A [MetadataTransform](cpp_api/metadatatransform/metadatatransform.md) that cannot be trained [TimeVaryingTransform](cpp_api/timevaryingtransform/timevaryingtransform.md) | [Transform](cpp_api/transform/transform.md) | A [Transform](cpp_api/transform/transform.md) that changes at runtime as a result of the input [UntrainableDistance](cpp_api/untrainabledistance/untrainabledistance.md) | [Distance](cpp_api/distance/distance.md) | A [Distance](cpp_api/distance/distance.md) that cannot be trained [FileGallery](cpp_api/filegallery/filegallery.md) | [Gallery](cpp_api/gallery/gallery.md) | DOCUMENT ME [MatrixOutput](cpp_api/matrixoutput/matrixoutput.md) | [Output](cpp_api/output/output.md) | A [Output](cpp_api/output/output.md) that outputs data as a matrix - + As was stated before, all plugins in OpenBR are constructed using strings stored as [Files](cpp_api/file/file.md). The construction is done at runtime by a [Factory](cpp_api/factory/factory.md) class. The [Factory](cpp_api/factory/factory.md) expects strings of the form "PluginName(property1=value1,propert2=value2...propertyN=valueN)". It then looks up the "PluginName" in a static registry and builds the plugin if found. The registry is populated using a special macro [BR_REGISTER](cpp_api/factory/macros.md#br_register); each plugin needs to register itself and its base abstraction in the factory to enable construction. The purpose of this is to allow algorithms to be described completely by strings. For more information on algorithms in OpenBR please see the [tutorial](../tutorials.md#algorithms-in-openbr) - \ No newline at end of file diff --git a/docs/docs/api_docs/cpp_api/compositetransform/compositetransform.md b/docs/docs/api_docs/cpp_api/compositetransform/compositetransform.md new file mode 100644 index 0000000..387fbbe --- /dev/null +++ b/docs/docs/api_docs/cpp_api/compositetransform/compositetransform.md @@ -0,0 +1,15 @@ + + +Inherits [TimeVaryingTransform](../timevaryingtransform/timevaryingtransform.md) + +Base class for [Transforms](../transform/transform.md) that aggregate subtransforms. + +See: + +* [Properties](properties.md) +* [Members](members.md) +* [Constructors](constructors.md) +* [Static Functions](statics.md) +* [Functions](functions.md) + +A CompositeTransform is a wrapper around a list of child transforms. It is used internally for plugins like pipes and forks. It offers \ No newline at end of file diff --git a/docs/docs/api_docs/cpp_api/filegallery/constructors.md b/docs/docs/api_docs/cpp_api/filegallery/constructors.md new file mode 100644 index 0000000..43ae079 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/filegallery/constructors.md @@ -0,0 +1,3 @@ +Constructor / Destructor | Description +--- | --- +virtual ~FileGallery() | Default destructor. Closes [f](members.md#f) \ No newline at end of file diff --git a/docs/docs/api_docs/cpp_api/filegallery/filegallery.md b/docs/docs/api_docs/cpp_api/filegallery/filegallery.md index 9422b45..b272e78 100644 --- a/docs/docs/api_docs/cpp_api/filegallery/filegallery.md +++ b/docs/docs/api_docs/cpp_api/filegallery/filegallery.md @@ -1,3 +1,14 @@ Inherits [Gallery](../gallery/gallery.md) + +A [Gallery](../gallery/gallery.md) that handles data stored on disk (as opposed to data already in memory). + +See: + +* [Members](members.md) +* [Constructors](constructors.md) +* [Static Functions](statics.md) +* [Functions](functions.md) + +[FileGalleries](filegallery.md) are the base abstraction for all [Galleries](../gallery/gallery.md) that handle I/O with the hard drive. They automatically track the size and current position of a file and also provide convienience opererators for opening them for reading and writing. \ No newline at end of file diff --git a/docs/docs/api_docs/cpp_api/filegallery/functions.md b/docs/docs/api_docs/cpp_api/filegallery/functions.md new file mode 100644 index 0000000..bc4eae4 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/filegallery/functions.md @@ -0,0 +1,54 @@ +## void init() {: #init } + +Initialize the [FileGallery](filegallery.md). This sets [f](members.md#f) using the file name from [file](../object/members.md#file). It also calls [Gallery](../gallery/gallery.md)::[init](../gallery/functions.md#init). + +* **function definition:** + + void init() + +* **parameters:** NONE +* **output:** (void) + +## qint64 totalSize() {: #totalsize } + +Get the total size of the file. This is useful for estimating progress. + +* **function definition:** + + qint64 totalSize() + +* **parameters:** NONE +* **output:** (qint64) Returns the total size of the file in bytes + +## qint64 position() {: #pos } + +Get the current index in the file. This is useful for reading and writing blocks of data + +* **function definition:** + + qint64 position() + +* **parameters:** NONE +* **output:** (qint64) Returns the current position in the file + +## bool readOpen() {: #readopen } + +Open [f](members.md#f) in read-only mode + +* **function definition:** + + bool readOpen() + +* **parameters:** NONE +* **output:** (bool) Returns true if the file was opened successfully, false otherwise + +## void writeOnly() {: #writeonly } + +Open [f](members.md#f) in write-only mode + +* **function definition:** + + void writeOpen() + +* **parameters:** NONE +* **output:** (void) \ No newline at end of file diff --git a/docs/docs/api_docs/cpp_api/filegallery/members.md b/docs/docs/api_docs/cpp_api/filegallery/members.md new file mode 100644 index 0000000..91fb08a --- /dev/null +++ b/docs/docs/api_docs/cpp_api/filegallery/members.md @@ -0,0 +1,3 @@ +Member | Type | Description +--- | --- | --- +f | [QFile][QFile] | The file on disk. It has the same name as [file](../object/members.md#file) diff --git a/docs/docs/api_docs/cpp_api/filegallery/statics.md b/docs/docs/api_docs/cpp_api/filegallery/statics.md new file mode 100644 index 0000000..db3df79 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/filegallery/statics.md @@ -0,0 +1 @@ +NONE \ No newline at end of file diff --git a/docs/docs/api_docs/cpp_api/gallery/gallery.md b/docs/docs/api_docs/cpp_api/gallery/gallery.md index 92219dc..c020c18 100644 --- a/docs/docs/api_docs/cpp_api/gallery/gallery.md +++ b/docs/docs/api_docs/cpp_api/gallery/gallery.md @@ -6,6 +6,7 @@ Plugin base class for storing a list of enrolled templates. See: +* [Properties](properties.md) * [Members](members.md) * [Constructors](constructors.md) * [Static Functions](statics.md) diff --git a/docs/docs/api_docs/cpp_api/metadatatransform/metadatatransform.md b/docs/docs/api_docs/cpp_api/metadatatransform/metadatatransform.md index 4ce9060..1ae4efb 100644 --- a/docs/docs/api_docs/cpp_api/metadatatransform/metadatatransform.md +++ b/docs/docs/api_docs/cpp_api/metadatatransform/metadatatransform.md @@ -11,4 +11,4 @@ See: * [Static Functions](statics.md) * [Functions](functions.md) -[MetadataTransforms](metadatatransform.md) are [Transforms](../transform/transform.md) that operate soley on textual [metadata](../transform/members.md#file). They are *not* [independent](../transform/members.md#independent) because [Templates](../template/template.md) can only every have one collection of [metadata](../template/members.md#file). +[MetadataTransforms](metadatatransform.md) are [Transforms](../transform/transform.md) that operate soley on textual [metadata](../template/members.md#file). They are *not* [independent](../transform/members.md#independent) because [Templates](../template/template.md) can only every have one collection of [metadata](../template/members.md#file). diff --git a/docs/docs/api_docs/cpp_api/transform/functions.md b/docs/docs/api_docs/cpp_api/transform/functions.md index 6b02c63..7364871 100644 --- a/docs/docs/api_docs/cpp_api/transform/functions.md +++ b/docs/docs/api_docs/cpp_api/transform/functions.md @@ -380,7 +380,7 @@ Convenience function to call [smartCopy](#smartcopy-1) without arguments ## [Transform](transform.md) \*simplify(bool &newTransform) {: #simplify } -This is a virtual function. Get a simplified version of the transform for use at project time. The simplified version of the [Transform](transform.md) does not include any [Transforms](transform.md) that are only active at train time. It also removes any [LoadStore](../../plugins/core.md#loadstoretransform) transforms and keeps only their children. Transforms that only are active at train time (see [DownsampleTransform](../../plugins/core.md#downsampletransform) as an example) should overload this function and return their children if they have any or NULL if they do not. +This is a virtual function. Get a simplified version of the transform for use at project time. The simplified version of the [Transform](transform.md) does not include any [Transforms](transform.md) that are only active at train time. It also removes any [LoadStore](../../plugins/core.md#loadstoretransform) transforms and keeps only their children. Transforms that only are active at train time (see [DownsampleTrainingTransform](../../plugins/core.md#downsampletrainingtransform) as an example) should overload this function and return their children if they have any or NULL if they do not. * **function definition:** diff --git a/docs/docs/api_docs/cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md b/docs/docs/api_docs/cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md index da00ad9..2743680 100644 --- a/docs/docs/api_docs/cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md +++ b/docs/docs/api_docs/cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md @@ -11,4 +11,4 @@ See: * [Static Functions](statics.md) * [Functions](functions.md) -[UntrainableMetadataTransforms](untrainablemetadatatransform.md) are [Transforms](../transform/transform.md) that operate soley on textual [metadata](../transform/members.md#file). They are *not* [independent](../transform/members.md#independent), because [Templates](../template/template.md) can only every have one collection of [metadata](../template/members.md#file), and they are *not* [trainable](../transform/members.md#trainable). +[UntrainableMetadataTransforms](untrainablemetadatatransform.md) are [Transforms](../transform/transform.md) that operate soley on textual [metadata](../template/members.md#file). They are *not* [independent](../transform/members.md#independent), because [Templates](../template/template.md) can only every have one collection of [metadata](../template/members.md#file), and they are *not* [trainable](../transform/members.md#trainable). diff --git a/docs/docs/api_docs/cpp_api/untrainabletransform/untrainabletransform.md b/docs/docs/api_docs/cpp_api/untrainabletransform/untrainabletransform.md index df85081..32baef5 100644 --- a/docs/docs/api_docs/cpp_api/untrainabletransform/untrainabletransform.md +++ b/docs/docs/api_docs/cpp_api/untrainabletransform/untrainabletransform.md @@ -11,4 +11,4 @@ See: * [Static Functions](statics.md) * [Functions](functions.md) -This is a base class for [Transforms](../transform/transform.md) that are not trainable. It overloads [train](../transform/functions.md#train-1), [load](../transform/functions.md#load), and [store](../transform/functions.md#store) so that they cannot be used in derived classes. Load and store are overloaded because a [Transform](../transform/transform.md) that doesn't train should also have nothing to save. \ No newline at end of file +This is a base class for [Transforms](../transform/transform.md) that are not trainable. It overloads [train](../transform/functions.md#train-1), [load](../object/functions.md#load), and [store](../object/functions.md#store) so that they cannot be used in derived classes. Load and store are overloaded because a [Transform](../transform/transform.md) that doesn't train should also have nothing to save. diff --git a/docs/docs/api_docs/cpp_api/wrappertransform/constructors.md b/docs/docs/api_docs/cpp_api/wrappertransform/constructors.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/wrappertransform/constructors.md diff --git a/docs/docs/api_docs/cpp_api/wrappertransform/functions.md b/docs/docs/api_docs/cpp_api/wrappertransform/functions.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/wrappertransform/functions.md diff --git a/docs/docs/api_docs/cpp_api/wrappertransform/members.md b/docs/docs/api_docs/cpp_api/wrappertransform/members.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/wrappertransform/members.md diff --git a/docs/docs/api_docs/cpp_api/wrappertransform/properties.md b/docs/docs/api_docs/cpp_api/wrappertransform/properties.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/wrappertransform/properties.md diff --git a/docs/docs/api_docs/cpp_api/wrappertransform/statics.md b/docs/docs/api_docs/cpp_api/wrappertransform/statics.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/wrappertransform/statics.md diff --git a/docs/docs/api_docs/cpp_api/wrappertransform/wrappertransform.md b/docs/docs/api_docs/cpp_api/wrappertransform/wrappertransform.md new file mode 100644 index 0000000..2377dc7 --- /dev/null +++ b/docs/docs/api_docs/cpp_api/wrappertransform/wrappertransform.md @@ -0,0 +1,13 @@ + + +Inherits [Transform](../transform/transform.md) + +Base class for [Transforms](../transform/transform.md) that act as decorators of another [Transform](../transform/transform.md) + +See: + +* [Properties](properties.md) +* [Members](members.md) +* [Constructors](constructors.md) +* [Static Functions](statics.md) +* [Functions](functions.md) \ No newline at end of file diff --git a/docs/docs/api_docs/plugins/classification.md b/docs/docs/api_docs/plugins/classification.md index 3eeb7f8..00ec0d2 100644 --- a/docs/docs/api_docs/plugins/classification.md +++ b/docs/docs/api_docs/plugins/classification.md @@ -1,109 +1,126 @@ # AdaBoostTransform Wraps OpenCV's Ada Boost framework + * **file:** classification/adaboost.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) +* **author(s):** [Scott Klum][sklum] * **see:** [http://docs.opencv.org/modules/ml/doc/boosting.html](http://docs.opencv.org/modules/ml/doc/boosting.html) -* **author:** Scott Klum * **properties:** -Property | Type | Description ---- | --- | --- -type | enum | Type of Adaboost to perform. Options are:
  • Discrete
  • Real
  • Logit
  • Gentle
Default is Real. -splitCriteria | enum | Splitting criteria used to choose optimal splits during a weak tree construction. Options are:
  • Default
  • Gini
  • Misclass
  • Sqerr
Default is Default. -weakCount | int | Maximum number of weak classifiers per stage. Default is 100. -trimRate | float | A threshold between 0 and 1 used to save computational time. Samples with summary weight -folds | int | OpenCV parameter variable. Default value is 0. -maxDepth | int | Maximum height of each weak classifier tree. Default is 1 (stumps). -returnConfidence | bool | Return the confidence value of the classification or the class value of the classification. Default is true (return confidence value). -overwriteMat | bool | If true, the output template will be a 1x1 matrix with value equal to the confidence or classification (depending on returnConfidence). If false the output template will be the same as the input template. Default is true. -inputVariable | QString | Metadata variable storing the label for each template. Default is "Label". -outputVariable | QString | Metadata variable to store the confidence or classification of each template (depending on returnConfidence). If overwriteMat is true nothing will be written here. Default is "". + Property | Type | Description + --- | --- | --- + enum | type | Type of Adaboost to perform. Options are:
  • Discrete
  • Real
  • Logit
  • Gentle
Default is Real. + enum | splitCriteria | Splitting criteria used to choose optimal splits during a weak tree construction. Options are:
  • Default
  • Gini
  • Misclass
  • Sqerr
Default is Default. + int | weakCount | Maximum number of weak classifiers per stage. Default is 100. + float | trimRate | A threshold between 0 and 1 used to save computational time. Samples with summary weight + int | folds | OpenCV parameter variable. Default value is 0. + int | maxDepth | Maximum height of each weak classifier tree. Default is 1 (stumps). + bool | returnConfidence | Return the confidence value of the classification or the class value of the classification. Default is true (return confidence value). + bool | overwriteMat | If true, the output template will be a 1x1 matrix with value equal to the confidence or classification (depending on returnConfidence). If false the output template will be the same as the input template. Default is true. + QString | inputVariable | Metadata variable storing the label for each template. Default is "Label". + QString | outputVariable | Metadata variable to store the confidence or classification of each template (depending on returnConfidence). If overwriteMat is true nothing will be written here. Default is "". --- # DFFSTransform -Computes Distance From Feature Space (DFFS) +Computes [Distance](../cpp_api/distance/distance.md) From Feature Space (DFFS) + * **file:** classification/lda.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Moghaddam, Baback, and Alex Pentland.* + **"Probabilistic visual learning for object representation."** + Pattern Analysis and Machine Intelligence, IEEE Transactions on 19.7 (1997): 696-710. + * **properties:** -Property | Type | Description ---- | --- | --- -keep | float | Sets PCA keep property. Default is 0.95. + Property | Type | Description + --- | --- | --- + keep | float | Sets PCA keep property. Default is 0.95. --- # EBIFTransform Face Recognition Using Early Biologically Inspired Features + * **file:** classification/ebif.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **see:** [Min Li (IBM China Research Lab, China), Nalini Ratha (IBM Watson Research Center, USA), Weihong Qian (IBM China Research Lab, China), Shenghua Bao (IBM China Research Lab, China), Zhong Su (IBM China Research Lab, China)](#min li (ibm china research lab, china), nalini ratha (ibm watson research center, usa), weihong qian (ibm china research lab, china), shenghua bao (ibm china research lab, china), zhong su (ibm china research lab, china)) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Li, Min, et al.* + **"Face recognition using early biologically inspired features."** + Biometrics: Theory, Applications and Systems (BTAS), 2013 IEEE Sixth International Conference on. IEEE, 2013. + * **properties:** -Property | Type | Description ---- | --- | --- -N | int | The number of scales. Default is 6. -M | int | The number of orientations between 0 and pi. Default is 9. + Property | Type | Description + --- | --- | --- + N | int | The number of scales. Default is 6. + M | int | The number of orientations between 0 and pi. Default is 9. --- # ForestInductionTransform Wraps OpenCV's random trees framework to induce features + * **file:** classification/forest.cpp * **inherits:** [ForestTransform](#foresttransform) +* **author(s):** [Scott Klum][sklum] * **see:** [https://lirias.kuleuven.be/bitstream/123456789/316661/1/icdm11-camready.pdf](https://lirias.kuleuven.be/bitstream/123456789/316661/1/icdm11-camready.pdf) -* **author:** Scott Klum * **properties:** -Property | Type | Description ---- | --- | --- -useRegressionValue | bool | SCOTT FILL ME IN. + Property | Type | Description + --- | --- | --- + useRegressionValue | bool | SCOTT FILL ME IN. --- # ForestTransform Wraps OpenCV's random trees framework + * **file:** classification/forest.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) +* **author(s):** [Scott Klum][sklum] * **see:** [http://docs.opencv.org/modules/ml/doc/random_trees.html](http://docs.opencv.org/modules/ml/doc/random_trees.html) -* **author:** Scott Klum * **properties:** -Property | Type | Description ---- | --- | --- -classification | bool | If true the labels are expected to be categorical. Otherwise they are expected to be numerical. Default is true. -splitPercentage | float | Used to calculate the minimum number of samples per split in a random tree. The minimum number of samples is calculated as the number of samples x splitPercentage. Default is 0.01. -maxDepth | int | The maximum depth of each decision tree. Default is std::numeric_limits::max() and typically should be set by the user. -maxTrees | int | The maximum number of trees in the forest. Default is 10. -forestAccuracy | float | A sufficient accuracy for the forest for training to terminate. Used if termCrit is EPS or Both. Default is 0.1. -returnConfidence | bool | If both classification and returnConfidence are use a fuzzy class label as the output of the forest. Default is true. -overwriteMat | bool | If true set dst to be a 1x1 Mat with the forest response as its value. Otherwise append the forest response to metadata using outputVariable as a key. Default is true. -inputVariable | QString | The metadata key for each templates label. Default is "Label". -outputVariable | QString | The metadata key for the forest response if overwriteMat is false. Default is "". -weight | bool | If true and classification is true the random forest will use prior accuracies. Default is false. -termCrit | enum | Termination criteria for training the random forest. Options are Iter, EPS and Both. Iter terminates when the maximum number of trees is reached. EPS terminates when forestAccuracy is met. Both terminates when either is true. Default is Iter. + Property | Type | Description + --- | --- | --- + classification | bool | If true the labels are expected to be categorical. Otherwise they are expected to be numerical. Default is true. + splitPercentage | float | Used to calculate the minimum number of samples per split in a random tree. The minimum number of samples is calculated as the number of samples x splitPercentage. Default is 0.01. + maxDepth | int | The maximum depth of each decision tree. Default is std::numeric_limits::max() and typically should be set by the user. + maxTrees | int | The maximum number of trees in the forest. Default is 10. + forestAccuracy | float | A sufficient accuracy for the forest for training to terminate. Used if termCrit is EPS or Both. Default is 0.1. + returnConfidence | bool | If both classification and returnConfidence are use a fuzzy class label as the output of the forest. Default is true. + overwriteMat | bool | If true set dst to be a 1x1 Mat with the forest response as its value. Otherwise append the forest response to metadata using outputVariable as a key. Default is true. + inputVariable | QString | The metadata key for each templates label. Default is "Label". + outputVariable | QString | The metadata key for the forest response if overwriteMat is false. Default is "". + weight | bool | If true and classification is true the random forest will use prior accuracies. Default is false. + termCrit | enum | Termination criteria for training the random forest. Options are Iter, EPS and Both. Iter terminates when the maximum number of trees is reached. EPS terminates when forestAccuracy is met. Both terminates when either is true. Default is Iter. --- # IPC2013FaceRecognitionTransform Intel Perceptual Computing SDK 2013 Face Recognition + * **file:** classification/ipc2013.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -112,52 +129,68 @@ Intel Perceptual Computing SDK 2013 Face Recognition # LDATransform Projects input into learned Linear Discriminant Analysis subspace. + * **file:** classification/lda.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **authors:** Brendan Klare, Josh Klontz +* **author(s):** [Brendan Klare][bklare], [Josh Klontz][jklontz] * **properties:** -Property | Type | Description ---- | --- | --- -pcaKeep | float | BRENDAN OR JOSH FILL ME IN. Default is 0.98. -pcaWhiten | bool | BRENDAN OR JOSH FILL ME IN. Default is false. -directLDA | int | BRENDAN OR JOSH FILL ME IN. Default is 0. -directDrop | float | BRENDAN OR JOSH FILL ME IN. Default is 0.1. -inputVariable | QString | BRENDAN OR JOSH FILL ME IN. Default is "Label". -isBinary | bool | BRENDAN OR JOSH FILL ME IN. Default is false. -normalize | bool | BRENDAN OR JOSH FILL ME IN. Default is true. + Property | Type | Description + --- | --- | --- + pcaKeep | float | BRENDAN OR JOSH FILL ME IN. Default is 0.98. + pcaWhiten | bool | BRENDAN OR JOSH FILL ME IN. Default is false. + directLDA | int | BRENDAN OR JOSH FILL ME IN. Default is 0. + directDrop | float | BRENDAN OR JOSH FILL ME IN. Default is 0.1. + inputVariable | QString | BRENDAN OR JOSH FILL ME IN. Default is "Label". + isBinary | bool | BRENDAN OR JOSH FILL ME IN. Default is false. + normalize | bool | BRENDAN OR JOSH FILL ME IN. Default is true. + +--- + +# Linear + +DOCUMENT ME SCOTT + + +* **file:** classification/liblinear.cpp +* **inherits:** [Transform](../cpp_api/transform/transform.md) +* **author(s):** [Scott Klum][sklum] +* **properties:** None + --- # MLPTransform Wraps OpenCV's multi-layer perceptron framework + * **file:** classification/mlp.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) +* **author(s):** [Scott Klum][sklum] * **see:** [http://docs.opencv.org/modules/ml/doc/neural_networks.html](http://docs.opencv.org/modules/ml/doc/neural_networks.html) -* **author:** Scott Klum * **properties:** -Property | Type | Description ---- | --- | --- -kernel | enum | Type of MLP kernel to use. Options are Identity, Sigmoid, Gaussian. Default is Sigmoid. -alpha | float | Determines activation function for neural network. See OpenCV documentation for more details. Default is 1. -beta | float | Determines activation function for neural network. See OpenCV documentation for more details. Default is 1. -inputVariables | QStringList | Metadata keys for the labels associated with each template. There should be the same number of keys in the list as there are neurons in the final layer. Default is QStringList(). -outputVariables | QStringList | Metadata keys to store the output of the neural network. There should be the same number of keys in the list as there are neurons in the final layer. Default is QStringList(). -neuronsPerLayer | QList | The number of neurons in each layer of the net. Default is QList() << 1 << 1. + Property | Type | Description + --- | --- | --- + kernel | enum | Type of MLP kernel to use. Options are Identity, Sigmoid, Gaussian. Default is Sigmoid. + alpha | float | Determines activation function for neural network. See OpenCV documentation for more details. Default is 1. + beta | float | Determines activation function for neural network. See OpenCV documentation for more details. Default is 1. + inputVariables | QStringList | Metadata keys for the labels associated with each template. There should be the same number of keys in the list as there are neurons in the final layer. Default is QStringList(). + outputVariables | QStringList | Metadata keys to store the output of the neural network. There should be the same number of keys in the list as there are neurons in the final layer. Default is QStringList(). + neuronsPerLayer | QList | The number of neurons in each layer of the net. Default is QList() << 1 << 1. --- # NT4Compare Compare templates with Neurotech SDK 4 + * **file:** classification/nt4.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **authors:** Josh Klontz, E. Taborsky +* **author(s):** [Josh Klontz][jklontz], [E. Taborsky][mmtaborsky] * **properties:** None @@ -166,10 +199,11 @@ Compare templates with Neurotech SDK 4 # NT4DetectFace Neurotech face detection + * **file:** classification/nt4.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **authors:** Josh Klontz, E. Taborsky +* **author(s):** [Josh Klontz][jklontz], [E. Taborsky][mmtaborsky] * **properties:** None @@ -178,10 +212,11 @@ Neurotech face detection # NT4EnrollFace Enroll face in Neurotech SDK 4 + * **file:** classification/nt4.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -190,10 +225,11 @@ Enroll face in Neurotech SDK 4 # NT4EnrollIris Enroll iris in Neurotech SDK 4 + * **file:** classification/nt4.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** E. Taborsky +* **author(s):** [E. Taborsky][mmtaborsky] * **properties:** None @@ -202,27 +238,29 @@ Enroll iris in Neurotech SDK 4 # PCATransform Projects input into learned Principal Component Analysis subspace. + * **file:** classification/lda.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **authors:** Brendan Klare, Josh Klontz +* **author(s):** [Brendan Klare][bklare], [Josh Klontz][jklontz] * **properties:** -Property | Type | Description ---- | --- | --- -keep | float | Options are:
  • keep < 0 - All eigenvalues are retained
  • keep == 0 - No PCA is performed and the eigenvectors form an identity matrix
  • 0 < keep < 1 - Keep is the fraction of the variance to retain
  • keep >= 1 - keep is the number of leading eigenvectors to retain
Default is 0.95. -drop | int | BRENDAN OR JOSH FILL ME IN. Default is 0. -whiten | bool | BRENDAN OR JOSH FILL ME IN. Default is false. + Property | Type | Description + --- | --- | --- + keep | float | Options are:
  • keep < 0 - All eigenvalues are retained
  • keep == 0 - No PCA is performed and the eigenvectors form an identity matrix
  • 0 < keep < 1 - Keep is the fraction of the variance to retain
  • keep >= 1 - keep is the number of leading eigenvectors to retain
Default is 0.95. + drop | int | BRENDAN OR JOSH FILL ME IN. Default is 0. + whiten | bool | BRENDAN OR JOSH FILL ME IN. Default is false. --- # PP4Compare Compare faces using PittPatt 4. + * **file:** classification/pp4.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -231,25 +269,27 @@ Compare faces using PittPatt 4. # PP4EnrollTransform Enroll faces in PittPatt 4 + * **file:** classification/pp4.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** -Property | Type | Description ---- | --- | --- -detectOnly | bool | If true, return all detected faces. Otherwise, return only faces that are suitable for recognition. Default is false. + Property | Type | Description + --- | --- | --- + detectOnly | bool | If true, return all detected faces. Otherwise, return only faces that are suitable for recognition. Default is false. --- # PP5CompareDistance -Compare templates with PP5 +Compare templates with PP5. PP5 distance is known to be asymmetric + * **file:** classification/pp5.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **authors:** Josh Klontz, E. Taborsky +* **author(s):** [Josh Klontz][jklontz], [E. Taborsky][mmtaborsky] * **properties:** None @@ -258,30 +298,45 @@ Compare templates with PP5 # PP5EnrollTransform Enroll faces in PP5 + * **file:** classification/pp5.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **authors:** Josh Klontz, E. Taborsky +* **author(s):** [Josh Klontz][jklontz], [E. Taborsky][mmtaborsky] * **properties:** -Property | Type | Description ---- | --- | --- -detectOnly | bool | If true, enroll all detected faces. Otherwise, only enroll faces suitable for recognition. Default is false. -requireLandmarks | bool | If true, require the right eye, left eye, and nose base to be detectable by PP5. If this does not happen FTE is set to true for that template. Default is false. -adaptiveMinSize | float | The minimum face size as a percentage of total image width. 0.1 corresponds to a minimum face size of 10% the total image width. Default is 0.01. -minSize | int | The absolute minimum face size to search for. This is not a pixel value. Please see PittPatt documentation for the relationship between minSize and pixel IPD. Default is 4. -landmarkRange | enum | Range of landmarks to search for. Options are Frontal, Extended, Full, and Comprehensive. Default is Comprehensive. -searchPruningAggressiveness | int | The amount of aggressiveness involved in search for faces in images. 0 means all scales and locations are searched. 1 means fewer detectors are used in the early stages but all scales are still searched. 2-4 means that the largest faces are found first and then fewer scales are searched. Default is 0. + Property | Type | Description + --- | --- | --- + detectOnly | bool | If true, enroll all detected faces. Otherwise, only enroll faces suitable for recognition. Default is false. + requireLandmarks | bool | If true, require the right eye, left eye, and nose base to be detectable by PP5. If this does not happen FTE is set to true for that template. Default is false. + adaptiveMinSize | float | The minimum face size as a percentage of total image width. 0.1 corresponds to a minimum face size of 10% the total image width. Default is 0.01. + minSize | int | The absolute minimum face size to search for. This is not a pixel value. Please see PittPatt documentation for the relationship between minSize and pixel IPD. Default is 4. + landmarkRange | enum | Range of landmarks to search for. Options are Frontal, Extended, Full, and Comprehensive. Default is Comprehensive. + searchPruningAggressiveness | int | The amount of aggressiveness involved in search for faces in images. 0 means all scales and locations are searched. 1 means fewer detectors are used in the early stages but all scales are still searched. 2-4 means that the largest faces are found first and then fewer scales are searched. Default is 0. + +--- + +# PP5GalleryTransform + +DOCUMENT ME + + +* **file:** classification/pp5.cpp +* **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) +* **author(s):** [Unknown][unknown] +* **properties:** None + --- # RowWisePCATransform PCA on each row. + * **file:** classification/lda.cpp * **inherits:** [PCATransform](#pcatransform) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -290,63 +345,68 @@ PCA on each row. # SVMTransform Wraps OpenCV's SVM framework. + * **file:** classification/svm.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **see:** +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://docs.opencv.org/modules/ml/doc/support_vector_machines.html](http://docs.opencv.org/modules/ml/doc/support_vector_machines.html) +* **read:** - * [http://docs.opencv.org/modules/ml/doc/support_vector_machines.html](http://docs.opencv.org/modules/ml/doc/support_vector_machines.html) - * [C. Burges. "A tutorial on support vector machines for pattern recognition", Knowledge Discovery and Data Mining 2(2), 1998.](C. Burges. "A tutorial on support vector machines for pattern recognition", Knowledge Discovery and Data Mining 2(2), 1998.) + 1. *C. Burges.* + **"A tutorial on support vector machines for pattern recognition"** + Knowledge Discovery and Data Mining 2(2), 1998. -* **author:** Josh Klontz * **properties:** -Property | Type | Description ---- | --- | --- -Kernel | enum | The type of SVM kernel to use. Options are Linear, Poly, RBF, Sigmoid. Default is Linear. -Type | enum | The type of SVM to do. Options are C_SVC, NU_SVC, ONE_CLASS, EPS_SVR, NU_SVR. Default is C_SVC. -C | float | Parameter C of an SVM optimization problem. Needed when Type is C_SVC, EPS_SVR or NU_SVR. Default is -1. -gamma | float | Parameter gamma of a kernel function. Needed when Kernel is Poly, RBF, or Sigmoid. Default is -1. -inputVariable | QString | Metadata variable storing the label for each template. Default is "Label". -outputVariable | QString | Metadata variable to store the prediction value of the trained SVM. If type is EPS_SVR or NU_SVR the stored value is the output of the SVM. Otherwise the value is the output of the SVM mapped through the reverse lookup table. Default is "". -returnDFVal | bool | If true, dst is set to a 1x1 Mat with value equal to the predicted output of the SVM. Default is false. -termCriteria | int | The maximum number of training iterations. Default is 1000. -folds | int | Cross validation parameter used for autoselecting other parameters. Default is 5. -balanceFolds | bool | If true and the problem is 2-class classification then more balanced cross validation subsets are created. Default is false. + Property | Type | Description + --- | --- | --- + Kernel | enum | The type of SVM kernel to use. Options are Linear, Poly, RBF, Sigmoid. Default is Linear. + Type | enum | The type of SVM to do. Options are C_SVC, NU_SVC, ONE_CLASS, EPS_SVR, NU_SVR. Default is C_SVC. + C | float | Parameter C of an SVM optimization problem. Needed when Type is C_SVC, EPS_SVR or NU_SVR. Default is -1. + gamma | float | Parameter gamma of a kernel function. Needed when Kernel is Poly, RBF, or Sigmoid. Default is -1. + inputVariable | QString | Metadata variable storing the label for each template. Default is "Label". + outputVariable | QString | Metadata variable to store the prediction value of the trained SVM. If type is EPS_SVR or NU_SVR the stored value is the output of the SVM. Otherwise the value is the output of the SVM mapped through the reverse lookup table. Default is "". + returnDFVal | bool | If true, dst is set to a 1x1 Mat with value equal to the predicted output of the SVM. Default is false. + termCriteria | int | The maximum number of training iterations. Default is 1000. + folds | int | Cross validation parameter used for autoselecting other parameters. Default is 5. + balanceFolds | bool | If true and the problem is 2-class classification then more balanced cross validation subsets are created. Default is false. --- # SparseLDATransform Projects input into learned Linear Discriminant Analysis subspace learned on a sparse subset of features with the highest weight in the original LDA algorithm. + * **file:** classification/lda.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** -Property | Type | Description ---- | --- | --- -varThreshold | float | BRENDAN FILL ME IN. Default is 1.5. -pcaKeep | float | BRENDAN FILL ME IN. Default is 0.98. -normalize | bool | BRENDAN FILL ME IN. Default is true. + Property | Type | Description + --- | --- | --- + varThreshold | float | BRENDAN FILL ME IN. Default is 1.5. + pcaKeep | float | BRENDAN FILL ME IN. Default is 0.98. + normalize | bool | BRENDAN FILL ME IN. Default is true. --- # TurkClassifierTransform Convenience class for training turk attribute regressors + * **file:** classification/turk.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** -Property | Type | Description ---- | --- | --- -key | QString | Metadata key to pass input values to SVM. Actual lookup key is "key_value" where value is each value in the parameter values. Default is "". -values | QStringList | Metadata keys to pass input values to SVM. Actual lookup key is "key_value" where key is the parameter key and value is each value in this list. Each passed value trains a new SVM with the input values found in metadata
  • "key_value"
. Default is "". -isMeta | bool | If true, "Average+SaveMat(predicted_key_value)" is appended to each classifier. If false, nothing is appended. Default is false. + Property | Type | Description + --- | --- | --- + key | QString | Metadata key to pass input values to SVM. Actual lookup key is "key_value" where value is each value in the parameter values. Default is "". + values | QStringList | Metadata keys to pass input values to SVM. Actual lookup key is "key_value" where key is the parameter key and value is each value in this list. Each passed value trains a new SVM with the input values found in metadata
  • "key_value"
. Default is "". + isMeta | bool | If true, "Average+SaveMat(predicted_key_value)" is appended to each classifier. If false, nothing is appended. Default is false. --- diff --git a/docs/docs/api_docs/plugins/cluster.md b/docs/docs/api_docs/plugins/cluster.md index 18b123d..5724827 100644 --- a/docs/docs/api_docs/plugins/cluster.md +++ b/docs/docs/api_docs/plugins/cluster.md @@ -1,42 +1,45 @@ # CollectNNTransform Collect nearest neighbors and append them to metadata. + * **file:** cluster/collectnn.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** -Property | Type | Description ---- | --- | --- -keep | int | The maximum number of nearest neighbors to keep. Default is 20. + Property | Type | Description + --- | --- | --- + keep | int | The maximum number of nearest neighbors to keep. Default is 20. --- # KMeansTransform Wraps OpenCV kmeans and flann. + * **file:** cluster/kmeans.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) +* **author(s):** [Josh Klontz][jklontz] * **see:** [http://docs.opencv.org/modules/flann/doc/flann_fast_approximate_nearest_neighbor_search.html](http://docs.opencv.org/modules/flann/doc/flann_fast_approximate_nearest_neighbor_search.html) -* **author:** Josh Klontz * **properties:** -Property | Type | Description ---- | --- | --- -kTrain | int | The number of random centroids to make at train time. Default is 256. -kSearch | int | The number of nearest neighbors to search for at runtime. Default is 1. + Property | Type | Description + --- | --- | --- + kTrain | int | The number of random centroids to make at train time. Default is 256. + kSearch | int | The number of nearest neighbors to search for at runtime. Default is 1. --- # KNNTransform K nearest neighbors classifier. + * **file:** cluster/knn.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -45,32 +48,34 @@ K nearest neighbors classifier. # LogNNTransform Log nearest neighbors to specified file. + * **file:** cluster/lognn.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** -Property | Type | Description ---- | --- | --- -fileName | QString | The name of the log file. An empty fileName won't be written to. Default is "". + Property | Type | Description + --- | --- | --- + fileName | QString | The name of the log file. An empty fileName won't be written to. Default is "". --- # RandomCentroidsTransform Chooses k random points to be centroids. + * **file:** cluster/randomcentroids.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) +* **author(s):** [Austin Blanton][imaus10] * **see:** [http://docs.opencv.org/modules/flann/doc/flann_fast_approximate_nearest_neighbor_search.html](http://docs.opencv.org/modules/flann/doc/flann_fast_approximate_nearest_neighbor_search.html) -* **author:** Austin Blanton * **properties:** -Property | Type | Description ---- | --- | --- -kTrain | int | The number of random centroids to make at train time. Default is 256. -kSearch | int | The number of nearest neighbors to search for at runtime. Default is 1. + Property | Type | Description + --- | --- | --- + kTrain | int | The number of random centroids to make at train time. Default is 256. + kSearch | int | The number of nearest neighbors to search for at runtime. Default is 1. --- diff --git a/docs/docs/api_docs/plugins/core.md b/docs/docs/api_docs/plugins/core.md index 22c324f..1b04df0 100644 --- a/docs/docs/api_docs/plugins/core.md +++ b/docs/docs/api_docs/plugins/core.md @@ -1,10 +1,11 @@ # CacheTransform -Caches br::Transform::project() results. +Caches [Transform](../cpp_api/transform/transform.md)::project() results. + * **file:** core/cache.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -13,10 +14,11 @@ Caches br::Transform::project() results. # CollectOutputTransform DOCUMENT ME CHARLES + * **file:** core/stream.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -26,9 +28,12 @@ DOCUMENT ME CHARLES It's like the opposite of ExpandTransform, but not really +Given a [TemplateList](../cpp_api/templatelist/templatelist.md) as input, concatenate them into a single [Template](../cpp_api/template/template.md) + + * **file:** core/contract.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -36,11 +41,15 @@ It's like the opposite of ExpandTransform, but not really # CrossValidateTransform -Cross validate a trainable transform. +Cross validate a trainable [Transform](../cpp_api/transform/transform.md). + +To use an extended [Gallery](../cpp_api/gallery/gallery.md), add an allPartitions="true" flag to the gallery sigset for those images that should be compared +against for all testing partitions. + * **file:** core/crossvalidate.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) -* **authors:** Josh Klontz, Scott Klum +* **author(s):** [Josh Klontz][jklontz], [Scott Klum][sklum] * **properties:** None @@ -49,10 +58,24 @@ Cross validate a trainable transform. # DirectStreamTransform DOCUMENT ME CHARLES + * **file:** core/stream.cpp -* **inherits:** [CompositeTransform](#compositetransform) -* **author:** Charles Otto +* **inherits:** [CompositeTransform](../cpp_api/compositetransform/compositetransform.md) +* **author(s):** [Charles Otto][caotto] +* **properties:** None + + +--- + +# DiscardTemplatesTransform + +DOCUMENT ME + + +* **file:** core/discardtemplates.cpp +* **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -60,12 +83,25 @@ DOCUMENT ME CHARLES # DiscardTransform -Removes all template's matrices. +Removes all matrices from a [Template](../cpp_api/template/template.md). + * **file:** core/discard.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **see:** [IdentityTransform FirstTransform RestTransform RemoveTransform](#identitytransform firsttransform resttransform removetransform) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# DistributeTemplateTransform + +DOCUMENT ME + + +* **file:** core/distributetemplate.cpp +* **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -74,10 +110,24 @@ Removes all template's matrices. # DownsampleTrainingTransform DOCUMENT ME JOSH + * **file:** core/downsampletraining.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# EventTransform + +DOCUMENT ME + + +* **file:** core/event.cpp +* **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -85,12 +135,12 @@ DOCUMENT ME JOSH # ExpandTransform -Performs an expansion step on input templatelists +Performs an expansion step on an input [TemplateList](../cpp_api/templatelist/templatelist.md). Each matrix in each input [Template](../cpp_api/template/template.md) is expanded into its own [Template](../cpp_api/template/template.md). + * **file:** core/expand.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **see:** [PipeTransform](#pipetransform) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -98,11 +148,12 @@ Performs an expansion step on input templatelists # FTETransform -Flags images that failed to enroll based on the specified transform. +Flags images that failed to enroll based on the specified [Transform](../cpp_api/transform/transform.md). + * **file:** core/fte.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -110,12 +161,12 @@ Flags images that failed to enroll based on the specified transform. # FirstTransform -Removes all but the first matrix from the template. +Removes all but the first matrix from the [Template](../cpp_api/template/template.md). + * **file:** core/first.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **see:** [IdentityTransform DiscardTransform RestTransform RemoveTransform](#identitytransform discardtransform resttransform removetransform) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -125,10 +176,12 @@ Removes all but the first matrix from the template. Transforms in parallel. +The source [Template](../cpp_api/template/template.md) is seperately given to each transform and the results are appended together. + + * **file:** core/fork.cpp -* **inherits:** [CompositeTransform](#compositetransform) -* **see:** [PipeTransform](#pipetransform) -* **author:** Josh Klontz +* **inherits:** [CompositeTransform](../cpp_api/compositetransform/compositetransform.md) +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -136,11 +189,13 @@ Transforms in parallel. # GalleryCompareTransform -Compare each template to a fixed gallery (with name = galleryName), using the specified distance. +Compare each [Template](../cpp_api/template/template.md) to a fixed [Gallery](../cpp_api/gallery/gallery.md) (with name = galleryName), using the specified distance. +dst will contain a 1 by n vector of scores. + * **file:** core/gallerycompare.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -148,12 +203,12 @@ Compare each template to a fixed gallery (with name = galleryName), using the sp # IdentityTransform -A no-op transform. +A no-op [Transform](../cpp_api/transform/transform.md). + * **file:** core/identity.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **see:** [DiscardTransform FirstTransform RestTransform RemoveTransform](#discardtransform firsttransform resttransform removetransform) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -161,11 +216,27 @@ A no-op transform. # IndependentTransform -Clones the transform so that it can be applied independently. +Clones the [Transform](../cpp_api/transform/transform.md) so that it can be applied independently. + +Independent [Transform](../cpp_api/transform/transform.md)s expect single-matrix [Template](../cpp_api/template/template.md). + * **file:** core/independent.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# JNITransform + +Execute Java code from OpenBR using the JNI + + +* **file:** core/jni.cpp +* **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) +* **author(s):** [Jordan Cheney][jcheney] * **properties:** None @@ -174,10 +245,12 @@ Clones the transform so that it can be applied independently. # LikelyTransform Generic interface to Likely JIT compiler + * **file:** core/likely.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [www.liblikely.org](www.liblikely.org) * **properties:** None @@ -185,11 +258,12 @@ Generic interface to Likely JIT compiler # LoadStoreTransform -Caches transform training. +Caches [Transform](../cpp_api/transform/transform.md) training. + * **file:** core/loadstore.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -199,14 +273,12 @@ Caches transform training. Transforms in series. -* **file:** core/pipe.cpp -* **inherits:** [CompositeTransform](#compositetransform) -* **see:** - - * [ExpandTransform](ExpandTransform) - * [ForkTransform](ForkTransform) +The source [Template](../cpp_api/template/template.md) is given to the first transform and the resulting [Template](../cpp_api/template/template.md) is passed to the next transform, etc. + -* **author:** Josh Klontz +* **file:** core/pipe.cpp +* **inherits:** [CompositeTransform](../cpp_api/compositetransform/compositetransform.md) +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -215,10 +287,11 @@ Transforms in series. # ProcessWrapperTransform Interface to a separate process + * **file:** core/processwrapper.cpp -* **inherits:** [WrapperTransform](#wrappertransform) -* **author:** Charles Otto +* **inherits:** [WrapperTransform](../cpp_api/wrappertransform/wrappertransform.md) +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -227,10 +300,43 @@ Interface to a separate process # ProcrustesAlignTransform Improved procrustes alignment of points, to include a post processing scaling of points +to faciliate subsequent texture mapping. + * **file:** core/align.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] +* **properties:** + + Property | Type | Description + --- | --- | --- + width | float | Width of output coordinate space (before padding) + padding | float | Amount of padding around the coordinate space + useFirst | bool | Whether or not to use the first instance as the reference object + +--- + +# ProgressCounterTransform + +DOCUMENT ME + + +* **file:** core/progresscounter.cpp +* **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) +* **author(s):** [Unknown][unknown] +* **properties:** None + + +--- + +# RemoveTransform + +Removes the matrix from the [Template](../cpp_api/template/template.md) at the specified index. + + +* **file:** core/remove.cpp +* **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -238,12 +344,12 @@ Improved procrustes alignment of points, to include a post processing scaling of # RestTransform -Removes the first matrix from the template. +Removes the first matrix from the [Template](../cpp_api/template/template.md). + * **file:** core/rest.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **see:** [IdentityTransform DiscardTransform FirstTransform RemoveTransform](#identitytransform discardtransform firsttransform removetransform) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -251,11 +357,13 @@ Removes the first matrix from the template. # SchrodingerTransform -Generates two templates, one of which is passed through a transform and the other +Generates two [Template](../cpp_api/template/template.md), one of which is passed through a [Transform](../cpp_api/transform/transform.md) and the other +is not. No cats were harmed in the making of this [Transform](../cpp_api/transform/transform.md). + * **file:** core/schrodinger.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -263,11 +371,12 @@ Generates two templates, one of which is passed through a transform and the othe # SingletonTransform -A globally shared transform. +A globally shared [Transform](../cpp_api/transform/transform.md). + * **file:** core/singleton.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -276,10 +385,11 @@ A globally shared transform. # StreamTransform DOCUMENT ME CHARLES + * **file:** core/stream.cpp -* **inherits:** [WrapperTransform](#wrappertransform) -* **author:** Charles Otto +* **inherits:** [WrapperTransform](../cpp_api/wrappertransform/wrappertransform.md) +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -288,10 +398,11 @@ DOCUMENT ME CHARLES # SynthesizePointsTransform Synthesize additional points via triangulation. + * **file:** core/align.cpp * **inherits:** [MetadataTransform](../cpp_api/metadatatransform/metadatatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -300,10 +411,11 @@ Synthesize additional points via triangulation. # TextureMapTransform Maps texture from one set of points to another. Assumes that points are rigidly transformed + * **file:** core/align.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **authors:** Brendan Klare, Scott Klum +* **author(s):** [Brendan Klare][bklare], [Scott Klum][sklum] * **properties:** None diff --git a/docs/docs/api_docs/plugins/distance.md b/docs/docs/api_docs/plugins/distance.md index 5e22e69..8fd0c45 100644 --- a/docs/docs/api_docs/plugins/distance.md +++ b/docs/docs/api_docs/plugins/distance.md @@ -1,10 +1,11 @@ # AttributeDistance Attenuation function based distance from attributes + * **file:** distance/attribute.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -12,11 +13,12 @@ Attenuation function based distance from attributes # BayesianQuantizationDistance -Bayesian quantization distance +Bayesian quantization [Distance](../cpp_api/distance/distance.md) + * **file:** distance/bayesianquantization.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -25,10 +27,11 @@ Bayesian quantization distance # ByteL1Distance Fast 8-bit L1 distance + * **file:** distance/byteL1.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -36,11 +39,12 @@ Fast 8-bit L1 distance # CrossValidateDistance -Cross validate a distance metric. +Cross validate a [Distance](../cpp_api/distance/distance.md) metric. + * **file:** distance/crossvalidate.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -49,10 +53,11 @@ Cross validate a distance metric. # DefaultDistance DistDistance wrapper. + * **file:** distance/default.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -60,11 +65,12 @@ DistDistance wrapper. # DistDistance -Standard distance metrics +Standard [Distance](../cpp_api/distance/distance.md) metrics + * **file:** distance/dist.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -73,10 +79,11 @@ Standard distance metrics # FilterDistance Checks target metadata against filters. + * **file:** distance/filter.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -84,23 +91,28 @@ Checks target metadata against filters. # FuseDistance -Fuses similarity scores across multiple matrices of compared templates +Fuses similarity scores across multiple matrices of compared [Template](../cpp_api/template/template.md) + * **file:** distance/fuse.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **author:** Scott Klum -* **properties:** None +* **author(s):** [Scott Klum][sklum] +* **properties:** + Property | Type | Description + --- | --- | --- + Operation | enum | Possible values are:
  • Mean
  • sum
  • min
  • max
. --- # HalfByteL1Distance Fast 4-bit L1 distance + * **file:** distance/halfbyteL1.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -109,10 +121,11 @@ Fast 4-bit L1 distance # HeatMapDistance 1v1 heat map comparison + * **file:** distance/heatmap.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -120,11 +133,12 @@ Fast 4-bit L1 distance # IdenticalDistance -Returns +Returns true if the [Template](../cpp_api/template/template.md) are identical, false otherwise. + * **file:** distance/identical.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -133,10 +147,12 @@ Returns # KeyPointMatcherDistance Wraps OpenCV Key Point Matcher + * **file:** distance/keypointmatcher.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html](http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html) * **properties:** None @@ -145,10 +161,11 @@ Wraps OpenCV Key Point Matcher # L1Distance L1 distance computed using eigen. + * **file:** distance/L1.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -157,10 +174,11 @@ L1 distance computed using eigen. # L2Distance L2 distance computed using eigen. + * **file:** distance/L2.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -169,10 +187,11 @@ L2 distance computed using eigen. # MatchProbabilityDistance Match Probability + * **file:** distance/matchprobability.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -181,10 +200,11 @@ Match Probability # MetadataDistance Checks target metadata against query metadata. + * **file:** distance/metadata.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -193,10 +213,11 @@ Checks target metadata against query metadata. # NegativeLogPlusOneDistance Returns -log(distance(a,b)+1) + * **file:** distance/neglogplusone.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -204,11 +225,12 @@ Returns -log(distance(a,b)+1) # OnlineDistance -Online distance metric to attenuate match scores across multiple frames +Online [Distance](../cpp_api/distance/distance.md) metric to attenuate match scores across multiple frames + * **file:** distance/online.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Brendan klare +* **author(s):** [Brendan klare][bklare] * **properties:** None @@ -218,9 +240,14 @@ Online distance metric to attenuate match scores across multiple frames Distances in series. +The [Template](../cpp_api/template/template.md) are compared using each [Distance](../cpp_api/distance/distance.md) in order. +If the result of the comparison with any given distance is -FLOAT_MAX then this result is returned early. +Otherwise the returned result is the value of comparing the [Template](../cpp_api/template/template.md) using the last [Distance](../cpp_api/distance/distance.md). + + * **file:** distance/pipe.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -228,11 +255,12 @@ Distances in series. # RejectDistance -Sets distance to -FLOAT_MAX if a target template has/doesn't have a key. +Sets [Distance](../cpp_api/distance/distance.md) to -FLOAT_MAX if a target [Template](../cpp_api/template/template.md) has/doesn't have a key. + * **file:** distance/reject.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -240,11 +268,12 @@ Sets distance to -FLOAT_MAX if a target template has/doesn't have a key. # SVMDistance -SVM Regression on template absolute differences. +SVM Regression on [Template](../cpp_api/template/template.md) absolute differences. + * **file:** distance/svm.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -252,11 +281,12 @@ SVM Regression on template absolute differences. # SumDistance -Sum match scores across multiple distances +Sum match scores across multiple [Distance](../cpp_api/distance/distance.md) + * **file:** distance/sum.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -265,10 +295,11 @@ Sum match scores across multiple distances # TurkDistance Unmaps Turk HITs to be compared against query mats + * **file:** distance/turk.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -276,11 +307,25 @@ Unmaps Turk HITs to be compared against query mats # UnitDistance -Linear normalizes of a distance so the mean impostor score is 0 and the mean genuine score is 1. +Linear normalizes of a [Distance](../cpp_api/distance/distance.md) so the mean impostor score is 0 and the mean genuine score is 1. + * **file:** distance/unit.cpp * **inherits:** [Distance](../cpp_api/distance/distance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# ZScoreDistance + +DOCUMENT ME + + +* **file:** distance/zscore.cpp +* **inherits:** [Distance](../cpp_api/distance/distance.md) +* **author(s):** [Unknown][unknown] * **properties:** None diff --git a/docs/docs/api_docs/plugins/format.md b/docs/docs/api_docs/plugins/format.md index e7dc011..a50494f 100644 --- a/docs/docs/api_docs/plugins/format.md +++ b/docs/docs/api_docs/plugins/format.md @@ -1,10 +1,11 @@ # DefaultFormat Reads image files. + * **file:** format/video.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -13,10 +14,12 @@ Reads image files. # binaryFormat A simple binary matrix format. + * **file:** format/binary.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **format:** First 4 bytes indicate the number of rows. Second 4 bytes indicate the number of columns. The rest of the bytes are 32-bit floating data elements in row-major order. * **properties:** None @@ -25,10 +28,11 @@ A simple binary matrix format. # csvFormat Reads a comma separated value file. + * **file:** format/csv.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -37,10 +41,12 @@ Reads a comma separated value file. # ebtsFormat Reads FBI EBTS transactions. + * **file:** format/ebts.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] +* **see:** [https://www.fbibiospecs.org/ebts.html](https://www.fbibiospecs.org/ebts.html) * **properties:** None @@ -49,10 +55,11 @@ Reads FBI EBTS transactions. # lffsFormat Reads a NIST LFFS file. + * **file:** format/lffs.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -61,10 +68,12 @@ Reads a NIST LFFS file. # lmatFormat Likely matrix format + * **file:** format/lmat.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [www.liblikely.org](www.liblikely.org) * **properties:** None @@ -73,10 +82,11 @@ Likely matrix format # maskFormat Reads a NIST BEE mask matrix. + * **file:** format/mtx.cpp * **inherits:** [mtxFormat](#mtxformat) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -86,9 +96,13 @@ Reads a NIST BEE mask matrix. MATLAB .mat format. +matFormat is known not to work with compressed matrices + + * **file:** format/mat.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://www.mathworks.com/help/pdf_doc/matlab/matfile_format.pdf](http://www.mathworks.com/help/pdf_doc/matlab/matfile_format.pdf) * **properties:** None @@ -97,10 +111,11 @@ MATLAB .mat format. # mtxFormat Reads a NIST BEE similarity matrix. + * **file:** format/mtx.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -109,10 +124,11 @@ Reads a NIST BEE similarity matrix. # nullFormat Returns an empty matrix. + * **file:** format/null.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -121,10 +137,11 @@ Returns an empty matrix. # postFormat Handle POST requests + * **file:** format/post.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -133,10 +150,12 @@ Handle POST requests # rawFormat RAW format + * **file:** format/raw.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://www.nist.gov/srd/nistsd27.cfm](http://www.nist.gov/srd/nistsd27.cfm) * **properties:** None @@ -145,10 +164,14 @@ RAW format # scoresFormat Reads in scores or ground truth from a text table. + * **file:** format/scores.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **format:** Example of the format:
2.2531514    FALSE   99990377    99990164
+2.2549822    TRUE    99990101    99990101
+
* **properties:** None @@ -157,10 +180,11 @@ Reads in scores or ground truth from a text table. # urlFormat Reads image files from the web. + * **file:** format/url.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -169,10 +193,11 @@ Reads image files from the web. # videoFormat Read all frames of a video using OpenCV + * **file:** format/video.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -181,10 +206,11 @@ Read all frames of a video using OpenCV # webcamFormat Retrieves an image from a webcam. + * **file:** format/video.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -193,10 +219,11 @@ Retrieves an image from a webcam. # xmlFormat Decodes images from Base64 xml + * **file:** format/xml.cpp * **inherits:** [Format](../cpp_api/format/format.md) -* **authors:** Scott Klum, Josh Klontz +* **author(s):** [Scott Klum][sklum], [Josh Klontz][jklontz] * **properties:** None diff --git a/docs/docs/api_docs/plugins/gallery.md b/docs/docs/api_docs/plugins/gallery.md index e50b515..7e46a5a 100644 --- a/docs/docs/api_docs/plugins/gallery.md +++ b/docs/docs/api_docs/plugins/gallery.md @@ -1,10 +1,11 @@ # BinaryGallery An abstract gallery for handling binary data + * **file:** gallery/binary.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Unknown +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -12,11 +13,12 @@ An abstract gallery for handling binary data # DefaultGallery -Treats the gallery as a br::Format. +Treats the gallery as a [Format](../cpp_api/format/format.md). + * **file:** gallery/default.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -25,22 +27,28 @@ Treats the gallery as a br::Format. # EmptyGallery Reads/writes templates to/from folders. + * **file:** gallery/empty.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz -* **properties:** None +* **author(s):** [Josh Klontz][jklontz] +* **properties:** + Property | Type | Description + --- | --- | --- + regexp | QString | An optional regular expression to match against the files extension. --- # FDDBGallery Implements the FDDB detection format. + * **file:** gallery/fddb.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://vis-www.cs.umass.edu/fddb/README.txt](http://vis-www.cs.umass.edu/fddb/README.txt) * **properties:** None @@ -49,10 +57,25 @@ Implements the FDDB detection format. # arffGallery Weka ARFF file format. + * **file:** gallery/arff.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://weka.wikispaces.com/ARFF+%28stable+version%29](http://weka.wikispaces.com/ARFF+%28stable+version%29) +* **properties:** None + + +--- + +# aviGallery + +Read videos of format .avi + + +* **file:** gallery/video.cpp +* **inherits:** [videoGallery](#videogallery) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -61,10 +84,11 @@ Weka ARFF file format. # crawlGallery Crawl a root location for image files. + * **file:** gallery/crawl.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -73,11 +97,12 @@ Crawl a root location for image files. # csvGallery Treats each line as a file. + * **file:** gallery/csv.cpp * **inherits:** [FileGallery](../cpp_api/filegallery/filegallery.md) -* **see:** [txtGallery](#txtgallery) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **format:** Columns should be comma separated with first row containing headers. The first column in the file should be the path to the file to enroll. Other columns will be treated as file metadata. * **properties:** None @@ -86,10 +111,11 @@ Treats each line as a file. # dbGallery Database input. + * **file:** gallery/db.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -97,11 +123,12 @@ Database input. # flatGallery -Treats each line as a call to File::flat() +Treats each line as a call to [File](../cpp_api/file/file.md)::flat() + * **file:** gallery/flat.cpp * **inherits:** [FileGallery](../cpp_api/filegallery/filegallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -111,9 +138,13 @@ Treats each line as a call to File::flat() A binary gallery. +Designed to be a literal translation of templates to disk. +Compatible with [TemplateList](../cpp_api/templatelist/templatelist.md)::fromBuffer. + + * **file:** gallery/binary.cpp * **inherits:** [BinaryGallery](#binarygallery) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -122,10 +153,11 @@ A binary gallery. # googleGallery Input from a google image search. + * **file:** gallery/google.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -134,10 +166,11 @@ Input from a google image search. # jsonGallery Newline-separated JSON objects. + * **file:** gallery/binary.cpp * **inherits:** [BinaryGallery](#binarygallery) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -146,10 +179,11 @@ Newline-separated JSON objects. # keyframesGallery Read key frames of a video with LibAV + * **file:** gallery/keyframes.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Ben Klein +* **author(s):** [Ben Klein][bhklein] * **properties:** None @@ -158,10 +192,16 @@ Read key frames of a video with LibAV # landmarksGallery Text format for associating anonymous landmarks with images. + * **file:** gallery/landmarks.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **format:** The input should be formatted as follows:
file_name:x1,y1,x2,y2,...,xn,yn
+file_name:x1,y1,x2,y2,...,xn,yn
+...
+file_name:x1,y1,x2,y2,...,xn,yn
+
* **properties:** None @@ -170,10 +210,12 @@ Text format for associating anonymous landmarks with images. # lmatGallery Likely matrix format + * **file:** gallery/lmat.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [www.liblikely.org](www.liblikely.org) * **properties:** None @@ -181,11 +223,12 @@ Likely matrix format # matrixGallery -Combine all templates into one large matrix and process it as a br::Format +Combine all [Template](../cpp_api/template/template.md) into one large matrix and process it as a [Format](../cpp_api/format/format.md) + * **file:** gallery/matrix.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -194,10 +237,11 @@ Combine all templates into one large matrix and process it as a br::Format # memGallery A gallery held in memory. + * **file:** gallery/mem.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -206,10 +250,11 @@ A gallery held in memory. # mp4Gallery Read key frames of a .mp4 video file with LibAV + * **file:** gallery/keyframes.cpp * **inherits:** [keyframesGallery](#keyframesgallery) -* **author:** Ben Klein +* **author(s):** [Ben Klein][bhklein] * **properties:** None @@ -218,10 +263,24 @@ Read key frames of a .mp4 video file with LibAV # postGallery Handle POST requests + * **file:** gallery/post.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# seqGallery + +DOCUMENT ME + + +* **file:** gallery/seq.cpp +* **inherits:** [Gallery](../cpp_api/gallery/gallery.md) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -229,11 +288,12 @@ Handle POST requests # statGallery -Print template statistics. +Print [Template](../cpp_api/template/template.md) statistics. + * **file:** gallery/stat.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -241,11 +301,12 @@ Print template statistics. # templateGallery -Treat the file as a single binary template. +Treat the file as a single binary [Template](../cpp_api/template/template.md). + * **file:** gallery/template.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -254,10 +315,11 @@ Treat the file as a single binary template. # turkGallery For Amazon Mechanical Turk datasets + * **file:** gallery/turk.cpp * **inherits:** [Gallery](../cpp_api/gallery/gallery.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -266,11 +328,20 @@ For Amazon Mechanical Turk datasets # txtGallery Treats each line as a file. + * **file:** gallery/txt.cpp * **inherits:** [FileGallery](../cpp_api/filegallery/filegallery.md) -* **see:** [csvGallery](#csvgallery) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **format:** The entire line is treated as the file path.
<FILE>
+<FILE>
+...
+<FILE>
+
An optional label may be specified using a space ' ' separator:
<FILE> <LABEL>
+<FILE> <LABEL>
+...
+<FILE> <LABEL>
+
* **properties:** None @@ -279,10 +350,11 @@ Treats each line as a file. # urlGallery Newline-separated URLs. + * **file:** gallery/binary.cpp * **inherits:** [BinaryGallery](#binarygallery) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -291,10 +363,63 @@ Newline-separated URLs. # utGallery A contiguous array of br_universal_template. + * **file:** gallery/binary.cpp * **inherits:** [BinaryGallery](#binarygallery) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# vbbGallery + +DOCUMENT ME + + +* **file:** gallery/vbb.cpp +* **inherits:** [Gallery](../cpp_api/gallery/gallery.md) +* **author(s):** [Unknown][unknown] +* **properties:** None + + +--- + +# videoGallery + +Read a video frame by frame using cv::VideoCapture + + +* **file:** gallery/video.cpp +* **inherits:** [Gallery](../cpp_api/gallery/gallery.md) +* **author(s):** [Unknown][unknown] +* **properties:** None + + +--- + +# webcamGallery + +Read a video from the webcam + + +* **file:** gallery/video.cpp +* **inherits:** [videoGallery](#videogallery) +* **author(s):** [Unknown][unknown] +* **properties:** None + + +--- + +# wmvGallery + +Read videos of format .wmv + + +* **file:** gallery/video.cpp +* **inherits:** [videoGallery](#videogallery) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -302,11 +427,12 @@ A contiguous array of br_universal_template. # xmlGallery -A +A sigset input. + * **file:** gallery/xml.cpp * **inherits:** [FileGallery](../cpp_api/filegallery/filegallery.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None diff --git a/docs/docs/api_docs/plugins/gui.md b/docs/docs/api_docs/plugins/gui.md index 7c32638..17f99e7 100644 --- a/docs/docs/api_docs/plugins/gui.md +++ b/docs/docs/api_docs/plugins/gui.md @@ -1,10 +1,11 @@ # AdjacentOverlayTransform Load the image named in the specified property, draw it on the current matrix adjacent to the rect specified in the other property. + * **file:** gui/adjacentoverlay.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -13,10 +14,11 @@ Load the image named in the specified property, draw it on the current matrix ad # DrawDelaunayTransform Creates a Delaunay triangulation based on a set of points + * **file:** gui/drawdelaunay.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -25,10 +27,11 @@ Creates a Delaunay triangulation based on a set of points # DrawGridLinesTransform Draws a grid on the image + * **file:** gui/drawgridlines.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -37,10 +40,11 @@ Draws a grid on the image # DrawOpticalFlow Draw a line representing the direction and magnitude of optical flow at the specified points. + * **file:** gui/drawopticalflow.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -50,9 +54,12 @@ Draw a line representing the direction and magnitude of optical flow at the spec Draw the values of a list of properties at the specified point on the image +The inPlace argument controls whether or not the image is cloned before it is drawn on. + + * **file:** gui/drawpropertiespoint.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -62,9 +69,12 @@ Draw the values of a list of properties at the specified point on the image Draw the value of the specified property at the specified point on the image +The inPlace argument controls whether or not the image is cloned before it is drawn on. + + * **file:** gui/drawpropertypoint.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -73,10 +83,11 @@ Draw the value of the specified property at the specified point on the image # DrawSegmentation Fill in the segmentations or draw a line between intersecting segments. + * **file:** gui/drawsegmentation.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -86,9 +97,12 @@ Fill in the segmentations or draw a line between intersecting segments. Renders metadata onto the image. +The inPlace argument controls whether or not the image is cloned before the metadata is drawn. + + * **file:** gui/draw.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -97,10 +111,11 @@ Renders metadata onto the image. # ElicitTransform Elicits metadata for templates in a pretty GUI + * **file:** gui/show.cpp * **inherits:** [ShowTransform](#showtransform) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -109,10 +124,12 @@ Elicits metadata for templates in a pretty GUI # FPSCalc Calculates the average FPS of projects going through this transform, stores the result in AvgFPS +Reports an average FPS from the initialization of this transform onwards. + * **file:** gui/show.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -121,10 +138,24 @@ Calculates the average FPS of projects going through this transform, stores the # FPSLimit Limits the frequency of projects going through this transform to the input targetFPS + * **file:** gui/show.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] +* **properties:** None + + +--- + +# FilterTransform + +DOCUMENT ME + + +* **file:** gui/show.cpp +* **inherits:** [ShowTransform](#showtransform) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -133,10 +164,13 @@ Limits the frequency of projects going through this transform to the input targe # ManualRectsTransform Manual select rectangular regions on an image. +Stores marked rectangles as anonymous rectangles, or if a set of labels is provided, prompt the user +to select one of those labels after drawing each rectangle. + * **file:** gui/show.cpp * **inherits:** [ShowTransform](#showtransform) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -145,10 +179,11 @@ Manual select rectangular regions on an image. # ManualTransform Manual selection of landmark locations + * **file:** gui/show.cpp * **inherits:** [ShowTransform](#showtransform) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -157,10 +192,11 @@ Manual selection of landmark locations # ShowTrainingTransform Show the training data + * **file:** gui/show.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -170,9 +206,12 @@ Show the training data Displays templates in a GUI pop-up window using QT. +Can be used with parallelism enabled, although it is considered TimeVarying. + + * **file:** gui/show.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -181,10 +220,11 @@ Displays templates in a GUI pop-up window using QT. # SurveyTransform Display an image, and asks a yes/no question about it + * **file:** gui/show.cpp * **inherits:** [ShowTransform](#showtransform) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None diff --git a/docs/docs/api_docs/plugins/imgproc.md b/docs/docs/api_docs/plugins/imgproc.md index b782ea9..2685db2 100644 --- a/docs/docs/api_docs/plugins/imgproc.md +++ b/docs/docs/api_docs/plugins/imgproc.md @@ -1,10 +1,11 @@ # AbsDiffTransform Take the absolute difference of two matrices. + * **file:** imgproc/absdiff.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -13,10 +14,11 @@ Take the absolute difference of two matrices. # AbsTransform Computes the absolute value of each element. + * **file:** imgproc/abs.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -25,10 +27,12 @@ Computes the absolute value of each element. # AdaptiveThresholdTransform Wraps OpenCV's adaptive thresholding. + * **file:** imgproc/adaptivethreshold.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] +* **see:** [http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html](http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html) * **properties:** None @@ -37,10 +41,11 @@ Wraps OpenCV's adaptive thresholding. # AffineTransform Performs a two or three point registration. + * **file:** imgproc/affine.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -49,10 +54,11 @@ Performs a two or three point registration. # AndTransform Logical AND of two matrices. + * **file:** imgproc/and.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -61,10 +67,11 @@ Logical AND of two matrices. # ApplyMaskTransform Applies a mask from the metadata. + * **file:** imgproc/applymask.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -73,10 +80,11 @@ Applies a mask from the metadata. # BayesianQuantizationTransform Quantize into a space where L1 distance approximates log-likelihood. + * **file:** imgproc/bayesianquantization.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -85,10 +93,11 @@ Quantize into a space where L1 distance approximates log-likelihood. # BinarizeTransform Approximate floats as signed bit. + * **file:** imgproc/binarize.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -97,10 +106,11 @@ Approximate floats as signed bit. # BlendTransform Alpha-blend two matrices + * **file:** imgproc/blend.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -109,10 +119,11 @@ Alpha-blend two matrices # BlurTransform Gaussian blur + * **file:** imgproc/blur.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -120,11 +131,12 @@ Gaussian blur # BuildScalesTransform -Document me +DOCUMENT ME + * **file:** imgproc/multiscale.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -133,10 +145,11 @@ Document me # ByRowTransform Turns each row into its own matrix. + * **file:** imgproc/byrow.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -144,11 +157,13 @@ Turns each row into its own matrix. # CannyTransform -Warpper to OpenCV Canny edge detector +Wrapper to OpenCV Canny edge detector + * **file:** imgproc/canny.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] +* **see:** [http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html](http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html) * **properties:** None @@ -157,10 +172,12 @@ Warpper to OpenCV Canny edge detector # CatColsTransform Concatenates all input matrices by column into a single matrix. +Use after a fork to concatenate two feature matrices by column. + * **file:** imgproc/catcols.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -169,10 +186,12 @@ Concatenates all input matrices by column into a single matrix. # CatRowsTransform Concatenates all input matrices by row into a single matrix. +All matricies must have the same column counts. + * **file:** imgproc/catrows.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -181,10 +200,11 @@ Concatenates all input matrices by row into a single matrix. # CatTransform Concatenates all input matrices into a single matrix. + * **file:** imgproc/cat.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -193,10 +213,11 @@ Concatenates all input matrices into a single matrix. # CenterTransform Normalize each dimension based on training data. + * **file:** imgproc/center.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -204,11 +225,18 @@ Normalize each dimension based on training data. # ContrastEqTransform -Xiaoyang Tan; Triggs, B.; +Perform contrast equalization + * **file:** imgproc/contrasteq.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Xiaoyang Tan; Triggs, B.;* + **"Enhanced Local Texture Feature Sets for Face Recognition Under Difficult Lighting Conditions,"** + Image Processing, IEEE Transactions on , vol.19, no.6, pp.1635-1650, June 2010 + * **properties:** None @@ -217,10 +245,11 @@ Xiaoyang Tan; Triggs, B.; # CropBlackTransform Crop out black borders + * **file:** imgproc/cropblack.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -229,10 +258,11 @@ Crop out black borders # CropFromMaskTransform Crops image based on mask metadata + * **file:** imgproc/cropfrommask.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -241,10 +271,11 @@ Crops image based on mask metadata # CropSquareTransform Trim the image so the width and the height are the same size. + * **file:** imgproc/cropsquare.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -253,10 +284,11 @@ Trim the image so the width and the height are the same size. # CropTransform Crops about the specified region of interest. + * **file:** imgproc/crop.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -265,10 +297,12 @@ Crops about the specified region of interest. # CryptographicHashTransform Wraps QCryptographicHash + * **file:** imgproc/cryptographichash.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://doc.qt.io/qt-5/qcryptographichash.html](http://doc.qt.io/qt-5/qcryptographichash.html) * **properties:** None @@ -277,10 +311,11 @@ Wraps QCryptographicHash # CvtFloatTransform Convert to floating point format. + * **file:** imgproc/cvtfloat.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -289,10 +324,11 @@ Convert to floating point format. # CvtTransform Colorspace conversion. + * **file:** imgproc/cvt.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -301,10 +337,11 @@ Colorspace conversion. # CvtUCharTransform Convert to uchar format + * **file:** imgproc/cvtuchar.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -313,10 +350,11 @@ Convert to uchar format # DiscardAlphaTransform Drop the alpha channel (if exists). + * **file:** imgproc/discardalpha.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -324,11 +362,12 @@ Drop the alpha channel (if exists). # DivTransform -Enforce a multiple of +Enforce a multiple of n columns. + * **file:** imgproc/div.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -337,10 +376,11 @@ Enforce a multiple of # DoGTransform Difference of gaussians + * **file:** imgproc/dog.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -349,10 +389,11 @@ Difference of gaussians # DownsampleTransform Downsample the rows and columns of a matrix. + * **file:** imgproc/downsample.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Lacey Best-Rowden +* **author(s):** [Lacey Best-Rowden][lbestrowden] * **properties:** None @@ -360,11 +401,12 @@ Downsample the rows and columns of a matrix. # DupTransform -Duplicates the template data. +Duplicates the [Template](../cpp_api/template/template.md) data. + * **file:** imgproc/dup.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -373,10 +415,11 @@ Duplicates the template data. # EnsureChannelsTransform Enforce the matrix has a certain number of channels by adding or removing channels. + * **file:** imgproc/ensurechannels.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -385,10 +428,11 @@ Enforce the matrix has a certain number of channels by adding or removing channe # EqualizeHistTransform Histogram equalization + * **file:** imgproc/equalizehist.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -397,10 +441,11 @@ Histogram equalization # FlipTransform Flips the image about an axis. + * **file:** imgproc/flip.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -409,10 +454,11 @@ Flips the image about an axis. # FloodTransform Fill black pixels with the specified color. + * **file:** imgproc/flood.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -421,10 +467,11 @@ Fill black pixels with the specified color. # GaborJetTransform A vector of gabor wavelets applied at a point. + * **file:** imgproc/gabor.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -432,11 +479,13 @@ A vector of gabor wavelets applied at a point. # GaborTransform -http://en.wikipedia.org/wiki/Gabor_filter +Implements a Gabor Filter + * **file:** imgproc/gabor.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://en.wikipedia.org/wiki/Gabor_filter](http://en.wikipedia.org/wiki/Gabor_filter) * **properties:** None @@ -445,10 +494,11 @@ http://en.wikipedia.org/wiki/Gabor_filter # GammaTransform Gamma correction + * **file:** imgproc/gamma.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -457,10 +507,11 @@ Gamma correction # GradientMaskTransform Masks image according to pixel change. + * **file:** imgproc/gradientmask.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -469,10 +520,11 @@ Masks image according to pixel change. # GradientTransform Computes magnitude and/or angle of image. + * **file:** imgproc/gradient.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -482,9 +534,25 @@ Computes magnitude and/or angle of image. Group all input matrices into a single matrix. +Similar to CatTransfrom but groups every _size_ adjacent matricies. + + * **file:** imgproc/group.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# HeatmapTransform + +DOCUMENT ME + + +* **file:** imgproc/heatmap.cpp +* **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -493,10 +561,11 @@ Group all input matrices into a single matrix. # HistBinTransform Quantizes the values into bins. + * **file:** imgproc/histbin.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -505,10 +574,11 @@ Quantizes the values into bins. # HistEqQuantizationTransform Approximate floats as uchar with different scalings for each dimension. + * **file:** imgproc/histeqquantization.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -517,10 +587,11 @@ Approximate floats as uchar with different scalings for each dimension. # HistTransform Histograms the matrix + * **file:** imgproc/hist.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -529,10 +600,12 @@ Histograms the matrix # HoGDescriptorTransform OpenCV HOGDescriptor wrapper + * **file:** imgproc/hog.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] +* **see:** [http://docs.opencv.org/modules/gpu/doc/object_detection.html](http://docs.opencv.org/modules/gpu/doc/object_detection.html) * **properties:** None @@ -541,10 +614,12 @@ OpenCV HOGDescriptor wrapper # InpaintTransform Wraps OpenCV inpainting + * **file:** imgproc/inpaint.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://docs.opencv.org/modules/photo/doc/inpainting.html](http://docs.opencv.org/modules/photo/doc/inpainting.html) * **properties:** None @@ -553,10 +628,11 @@ Wraps OpenCV inpainting # IntegralHistTransform An integral histogram + * **file:** imgproc/integralhist.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -565,10 +641,11 @@ An integral histogram # IntegralSamplerTransform Sliding window feature extraction from a multi-channel integral image. + * **file:** imgproc/integralsampler.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -577,10 +654,12 @@ Sliding window feature extraction from a multi-channel integral image. # IntegralSlidingWindowTransform Overloads SlidingWindowTransform for integral images that should be +sampled at multiple scales. + * **file:** imgproc/slidingwindow.cpp * **inherits:** [SlidingWindowTransform](#slidingwindowtransform) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -589,10 +668,11 @@ Overloads SlidingWindowTransform for integral images that should be # IntegralTransform Computes integral image. + * **file:** imgproc/integral.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -601,10 +681,11 @@ Computes integral image. # KernelHashTransform Kernel hash + * **file:** imgproc/kernelhash.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -613,10 +694,12 @@ Kernel hash # KeyPointDescriptorTransform Wraps OpenCV Key Point Descriptor + * **file:** imgproc/keypointdescriptor.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html](http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html) * **properties:** None @@ -624,11 +707,18 @@ Wraps OpenCV Key Point Descriptor # LBPTransform -Ahonen, T.; Hadid, A.; Pietikainen, M.; +Convert the image into a feature vector using Local Binary Patterns + * **file:** imgproc/lbp.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Ahonen, T.; Hadid, A.; Pietikainen, M.;* + **"Face Description with Local Binary Patterns: Application to Face Recognition"** + Pattern Analysis and Machine Intelligence, IEEE Transactions, vol.28, no.12, pp.2037-2041, Dec. 2006 + * **properties:** None @@ -636,11 +726,18 @@ Ahonen, T.; Hadid, A.; Pietikainen, M.; # LTPTransform -Tan, Xiaoyang, and Bill Triggs. "Enhanced local texture feature sets for face recognition under difficult lighting conditions." Analysis and Modeling of Faces and Gestures. Springer Berlin Heidelberg, 2007. 168-182. +DOCUMENT ME + * **file:** imgproc/ltp.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **authors:** Brendan Klare, Josh Klontz +* **author(s):** [Brendan Klare][bklare], [Josh Klontz][jklontz] +* **read:** + + 1. *Tan, Xiaoyang, and Bill Triggs.* + **"Enhanced local texture feature sets for face recognition under difficult lighting conditions."** + Analysis and Modeling of Faces and Gestures. Springer Berlin Heidelberg, 2007. 168-182. + * **properties:** None @@ -649,10 +746,11 @@ Tan, Xiaoyang, and Bill Triggs. "Enhanced local texture feature sets for face re # LargestConvexAreaTransform Set the template's label to the area of the largest convex hull. + * **file:** imgproc/largestconvexarea.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -661,10 +759,11 @@ Set the template's label to the area of the largest convex hull. # LimitSizeTransform Limit the size of the template + * **file:** imgproc/limitsize.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -672,11 +771,12 @@ Limit the size of the template # MAddTransform -dst = a*src+b +dst = a src+b + * **file:** imgproc/madd.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -685,10 +785,11 @@ dst = a*src+b # MaskTransform Applies an eliptical mask + * **file:** imgproc/mask.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -697,10 +798,11 @@ Applies an eliptical mask # MatStatsTransform Statistics + * **file:** imgproc/matstats.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -709,10 +811,11 @@ Statistics # MeanFillTransform Fill 0 pixels with the mean of non-0 pixels. + * **file:** imgproc/meanfill.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -722,9 +825,12 @@ Fill 0 pixels with the mean of non-0 pixels. Computes the mean of a set of templates. +Suitable for visualization only as it sets every projected template to the mean template. + + * **file:** imgproc/mean.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -733,10 +839,12 @@ Computes the mean of a set of templates. # MergeTransform Wraps OpenCV merge + * **file:** imgproc/merge.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#merge](http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#merge) * **properties:** None @@ -745,10 +853,11 @@ Wraps OpenCV merge # MorphTransform Morphological operator + * **file:** imgproc/morph.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -757,10 +866,12 @@ Morphological operator # NLMeansDenoisingTransform Wraps OpenCV Non-Local Means Denoising + * **file:** imgproc/denoising.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://docs.opencv.org/modules/photo/doc/denoising.html](http://docs.opencv.org/modules/photo/doc/denoising.html) * **properties:** None @@ -769,29 +880,31 @@ Wraps OpenCV Non-Local Means Denoising # NormalizeTransform Normalize matrix to unit length + * **file:** imgproc/normalize.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** -Property | Type | Description ---- | --- | --- -NormType | enum | Values are NORM_INF, NORM_L1, NORM_L2, NORM_MINMAX -ByRow | bool | If true normalize each row independently otherwise normalize the entire matrix. -alpha | int | Lower bound if using NORM_MINMAX. Value to normalize to otherwise. -beta | int | Upper bound if using NORM_MINMAX. Not used otherwise. -squareRoot | bool | If true compute the signed square root of the output after normalization. + Property | Type | Description + --- | --- | --- + NormType | enum | Values are:
  • NORM_INF
  • NORM_L1
  • NORM_L2
  • NORM_MINMAX
+ ByRow | bool | If true normalize each row independently otherwise normalize the entire matrix. + alpha | int | Lower bound if using NORM_MINMAX. Value to normalize to otherwise. + beta | int | Upper bound if using NORM_MINMAX. Not used otherwise. + squareRoot | bool | If true compute the signed square root of the output after normalization. --- # OrigLinearRegressionTransform Prediction with magic numbers from jmp; must get input as blue;green;red + * **file:** imgproc/origlinearregression.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** E. Taborsky +* **author(s):** [E. Taborsky][mmtaborsky] * **properties:** None @@ -800,10 +913,11 @@ Prediction with magic numbers from jmp; must get input as blue;green;red # PackTransform Compress two uchar into one uchar. + * **file:** imgproc/pack.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -812,10 +926,11 @@ Compress two uchar into one uchar. # PowTransform Raise each element to the specified power. + * **file:** imgproc/pow.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -824,10 +939,17 @@ Raise each element to the specified power. # ProductQuantizationDistance Distance in a product quantized space + * **file:** imgproc/productquantization.cpp * **inherits:** [UntrainableDistance](../cpp_api/untrainabledistance/untrainabledistance.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Jegou, Herve, Matthijs Douze, and Cordelia Schmid.* + **"Product quantization for nearest neighbor search."** + Pattern Analysis and Machine Intelligence, IEEE Transactions on 33.1 (2011): 117-128 + * **properties:** None @@ -836,10 +958,17 @@ Distance in a product quantized space # ProductQuantizationTransform Product quantization + * **file:** imgproc/productquantization.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Jegou, Herve, Matthijs Douze, and Cordelia Schmid.* + **"Product quantization for nearest neighbor search."** + Pattern Analysis and Machine Intelligence, IEEE Transactions on 33.1 (2011): 117-128 + * **properties:** None @@ -848,10 +977,11 @@ Product quantization # QuantizeTransform Approximate floats as uchar. + * **file:** imgproc/quantize.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -860,10 +990,11 @@ Approximate floats as uchar. # RGTransform Normalized RG color space. + * **file:** imgproc/rg.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -872,10 +1003,11 @@ Normalized RG color space. # ROIFromPtsTransform Crops the rectangular regions of interest from given points and sizes. + * **file:** imgproc/roifrompoints.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -884,10 +1016,11 @@ Crops the rectangular regions of interest from given points and sizes. # ROITransform Crops the rectangular regions of interest. + * **file:** imgproc/roi.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -896,10 +1029,11 @@ Crops the rectangular regions of interest. # RankTransform Converts each element to its rank-ordered value. + * **file:** imgproc/rank.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -908,10 +1042,11 @@ Converts each element to its rank-ordered value. # RectRegionsTransform Subdivide matrix into rectangular subregions. + * **file:** imgproc/rectregions.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -919,11 +1054,12 @@ Subdivide matrix into rectangular subregions. # RecursiveIntegralSamplerTransform -Construct template in a recursive decent manner. +Construct [Template](../cpp_api/template/template.md) in a recursive decent manner. + * **file:** imgproc/recursiveintegralsampler.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -932,10 +1068,11 @@ Construct template in a recursive decent manner. # RedLinearRegressionTransform Prediction using only the red wavelength; magic numbers from jmp + * **file:** imgproc/redlinearregression.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** E. Taborsky +* **author(s):** [E. Taborsky][mmtaborsky] * **properties:** None @@ -943,11 +1080,12 @@ Prediction using only the red wavelength; magic numbers from jmp # ReshapeTransform -Reshape the each matrix to the specified number of rows. +Reshape each matrix to the specified number of rows. + * **file:** imgproc/reshape.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -956,22 +1094,31 @@ Reshape the each matrix to the specified number of rows. # ResizeTransform Resize the template + * **file:** imgproc/resize.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz -* **properties:** None +* **author(s):** [Josh Klontz][jklontz] +* **properties:** + Property | Type | Description + --- | --- | --- + method | enum | Resize method. Good options are:
  • Area should be used for shrinking an image
  • Cubic for slow but accurate enlargment
  • Bilin for fast enlargement
+ preserveAspect | bool | If true, the image will be sized per specification, but a border will be applied to preserve aspect ratio. --- # RevertAffineTransform Designed for use after eye detection + Stasm, this will +revert the detected landmarks to the original coordinate space +before affine alignment to the stasm mean shape. The storeAffine +parameter must be set to true when calling AffineTransform before this. + * **file:** imgproc/revertaffine.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -980,10 +1127,11 @@ Designed for use after eye detection + Stasm, this will # RndPointTransform Generates a random landmark. + * **file:** imgproc/rndpoint.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -992,10 +1140,11 @@ Generates a random landmark. # RndRegionTransform Selects a random region. + * **file:** imgproc/rndregion.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -1004,10 +1153,11 @@ Selects a random region. # RndRotateTransform Randomly rotates an image in a specified range. + * **file:** imgproc/rndrotate.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -1016,10 +1166,11 @@ Randomly rotates an image in a specified range. # RndSubspaceTransform Generates a random subspace. + * **file:** imgproc/rndsubspace.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -1027,11 +1178,18 @@ Generates a random subspace. # RootNormTransform -dst=sqrt(norm_L1(src)) proposed as RootSIFT in +dst=sqrt(norm_L1(src)) proposed as RootSIFT (see paper) + * **file:** imgproc/rootnorm.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Arandjelovic, Relja, and Andrew Zisserman.* + **"Three things everyone should know to improve object retrieval."** + Computer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on. IEEE, 2012. + * **properties:** None @@ -1040,10 +1198,11 @@ dst=sqrt(norm_L1(src)) proposed as RootSIFT in # RowWiseMeanCenterTransform Remove the row-wise training set average. + * **file:** imgproc/rowwisemeancenter.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -1052,10 +1211,12 @@ Remove the row-wise training set average. # SIFTDescriptorTransform Specialize wrapper OpenCV SIFT wrapper + * **file:** imgproc/sift.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://docs.opencv.org/modules/nonfree/doc/feature_detection.html](http://docs.opencv.org/modules/nonfree/doc/feature_detection.html) * **properties:** None @@ -1064,10 +1225,11 @@ Specialize wrapper OpenCV SIFT wrapper # SampleFromMaskTransform Samples pixels from a mask. + * **file:** imgproc/samplefrommask.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -1076,10 +1238,11 @@ Samples pixels from a mask. # ScaleTransform Scales using the given factor + * **file:** imgproc/scale.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -1087,11 +1250,13 @@ Scales using the given factor # SkinMaskTransform -http://worldofcameras.wordpress.com/tag/skin-detection-opencv/ +Make a mask over skin in an image + * **file:** imgproc/skinmask.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://worldofcameras.wordpress.com/tag/skin-detection-opencv/](http://worldofcameras.wordpress.com/tag/skin-detection-opencv/) * **properties:** None @@ -1100,10 +1265,12 @@ http://worldofcameras.wordpress.com/tag/skin-detection-opencv/ # SlidingWindowTransform Applies a transform to a sliding window. +Discards negative detections. + * **file:** imgproc/slidingwindow.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -1112,10 +1279,11 @@ Applies a transform to a sliding window. # SplitChannelsTransform Split a multi-channel matrix into several single-channel matrices. + * **file:** imgproc/splitchannels.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -1124,10 +1292,11 @@ Split a multi-channel matrix into several single-channel matrices. # SubdivideTransform Divide the matrix into 4 smaller matricies of equal size. + * **file:** imgproc/subdivide.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -1136,10 +1305,11 @@ Divide the matrix into 4 smaller matricies of equal size. # SubtractTransform Subtract two matrices. + * **file:** imgproc/subtract.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -1148,10 +1318,25 @@ Subtract two matrices. # ThresholdTransform Wraps OpenCV's adaptive thresholding. + * **file:** imgproc/threshold.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] +* **see:** [http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html](http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html) +* **properties:** None + + +--- + +# TransposeTransform + +Get the transpose of the [Template](../cpp_api/template/template.md) matrix + + +* **file:** imgproc/transpose.cpp +* **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -1160,10 +1345,11 @@ Wraps OpenCV's adaptive thresholding. # WatershedSegmentationTransform Applies watershed segmentation. + * **file:** imgproc/watershedsegmentation.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None diff --git a/docs/docs/api_docs/plugins/io.md b/docs/docs/api_docs/plugins/io.md index 0120043..21e148e 100644 --- a/docs/docs/api_docs/plugins/io.md +++ b/docs/docs/api_docs/plugins/io.md @@ -1,10 +1,11 @@ # DecodeTransform Decodes images + * **file:** io/decode.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -13,10 +14,24 @@ Decodes images # DownloadTransform Downloads an image from a URL + * **file:** io/download.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# GalleryOutputTransform + +DOCUMENT ME + + +* **file:** io/galleryoutput.cpp +* **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) +* **author(s):** [Unknown][unknown] * **properties:** None @@ -26,9 +41,16 @@ Downloads an image from a URL Incrementally output templates received to a gallery, based on the current filename +When a template is received in projectUpdate for the first time since a finalize, open a new gallery based on the +template's filename, and the galleryFormat property. + +[Template](../cpp_api/template/template.md) received in projectUpdate will be output to the gallery with a filename combining their original filename and +their FrameNumber property, with the file extension specified by the fileFormat property. + + * **file:** io/incrementaloutput.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -36,11 +58,25 @@ Incrementally output templates received to a gallery, based on the current filen # OpenTransform -Applies br::Format to br::Template::file::name and appends results. +Applies [Format](../cpp_api/format/format.md) to [Template](../cpp_api/template/template.md) filename and appends results. + * **file:** io/open.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# OutputTransform + +DOCUMENT ME + + +* **file:** io/out.cpp +* **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) +* **author(s):** [Unknown][Unknown] * **properties:** None @@ -48,11 +84,12 @@ Applies br::Format to br::Template::file::name and appends results. # PrintTransform -Prints the template's file to stdout or stderr. +Prints the file of the input [Template](../cpp_api/template/template.md) to stdout or stderr. + * **file:** io/print.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -60,11 +97,16 @@ Prints the template's file to stdout or stderr. # ReadLandmarksTransform -Read landmarks from a file and associate them with the correct templates. +Read landmarks from a file and associate them with the correct [Template](../cpp_api/template/template.md). + * **file:** io/readlandmarks.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] +* **format:** Example of the format:
image_001.jpg:146.000000,190.000000,227.000000,186.000000,202.000000,256.000000
+image_002.jpg:75.000000,235.000000,140.000000,225.000000,91.000000,300.000000
+image_003.jpg:158.000000,186.000000,246.000000,188.000000,208.000000,233.000000
+
* **properties:** None @@ -73,10 +115,11 @@ Read landmarks from a file and associate them with the correct templates. # ReadTransform Read images + * **file:** io/read.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -85,10 +128,11 @@ Read images # WriteTransform Write all mats to disk as images. + * **file:** io/write.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -97,10 +141,17 @@ Write all mats to disk as images. # YouTubeFacesDBTransform Implements the YouTubesFaceDB + * **file:** io/youtubefacesdb.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Wolf, Lior, Tal Hassner, and Itay Maoz.* + **"Face recognition in unconstrained videos with matched background similarity."** + Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. IEEE, 2011. + * **properties:** None diff --git a/docs/docs/api_docs/plugins/metadata.md b/docs/docs/api_docs/plugins/metadata.md index ea50cef..cf09650 100644 --- a/docs/docs/api_docs/plugins/metadata.md +++ b/docs/docs/api_docs/plugins/metadata.md @@ -1,10 +1,17 @@ # ASEFEyesTransform -Bolme, D.S.; Draper, B.A.; Beveridge, J.R.; +Find eye locations using an ASEF filter + * **file:** metadata/eyes.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **authors:** David Bolme, Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **read:** + + 1. *Bolme, D.S.; Draper, B.A.; Beveridge, J.R.;* + **"Average of Synthetic Exact Filters,"** + Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on , vol., no., pp.2105-2112, 20-25 June 2009 + * **properties:** None @@ -13,10 +20,11 @@ Bolme, D.S.; Draper, B.A.; Beveridge, J.R.; # AnonymizeLandmarksTransform Remove a name from a point/rect + * **file:** metadata/anonymizelandmarks.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -24,11 +32,12 @@ Remove a name from a point/rect # AsTransform -Change the br::Template::file extension +Change the [Template](../cpp_api/template/template.md) file extension + * **file:** metadata/as.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -37,10 +46,11 @@ Change the br::Template::file extension # AveragePointsTransform Averages a set of landmarks into a new landmark + * **file:** metadata/averagepoints.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -49,10 +59,12 @@ Averages a set of landmarks into a new landmark # CascadeTransform Wraps OpenCV cascade classifier + * **file:** metadata/cascade.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) -* **authors:** Josh Klontz, David Crouse +* **author(s):** [Josh Klontz][jklontz], [David Crouse][dgcrouse] +* **see:** [http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html](http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html) * **properties:** None @@ -60,11 +72,12 @@ Wraps OpenCV cascade classifier # CheckTransform -Checks the template for NaN values. +Checks the [Template](../cpp_api/template/template.md) for NaN values. + * **file:** metadata/check.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -72,11 +85,12 @@ Checks the template for NaN values. # ClearPointsTransform -Clears the points from a template +Clears the points from a [Template](../cpp_api/template/template.md) + * **file:** metadata/clearpoints.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -85,10 +99,11 @@ Clears the points from a template # ConsolidateDetectionsTransform Consolidate redundant/overlapping detections. + * **file:** metadata/consolidatedetections.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -96,11 +111,12 @@ Consolidate redundant/overlapping detections. # CropRectTransform -Crops the width and height of a template's rects by input width and height factors. +Crops the width and height of a [Template](../cpp_api/template/template.md) rects by input width and height factors. + * **file:** metadata/croprect.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -109,10 +125,11 @@ Crops the width and height of a template's rects by input width and height facto # DelaunayTransform Creates a Delaunay triangulation based on a set of points + * **file:** metadata/delaunay.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -120,11 +137,12 @@ Creates a Delaunay triangulation based on a set of points # ExpandRectTransform -Expand the width and height of a template's rects by input width and height factors. +Expand the width and height of a [Template](../cpp_api/template/template.md) rects by input width and height factors. + * **file:** metadata/expandrect.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -133,10 +151,41 @@ Expand the width and height of a template's rects by input width and height fact # ExtractMetadataTransform Create matrix from metadata values. + * **file:** metadata/extractmetadata.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **properties:** None + + +--- + +# FaceFromEyesTransform + +Create face bounding box from two eye locations. + + +* **file:** metadata/facefromeyes.cpp +* **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) +* **author(s):** [Brendan Klare][bklare] +* **properties:** + + Property | Type | Description + --- | --- | --- + widthPadding | double | Specifies what percentage of the interpupliary distance (ipd) will be padded in both horizontal directions. + verticalLocation | double | specifies where vertically the eyes are within the bounding box (0.5 would be the center). + +--- + +# FileExclusionTransform + +DOCUMENT ME + + +* **file:** metadata/fileexclusion.cpp +* **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) +* **author(s):** [Unknown][Unknown] * **properties:** None @@ -144,11 +193,12 @@ Create matrix from metadata values. # FilterDupeMetadataTransform -Removes duplicate templates based on a unique metadata key +Removes duplicate [Template](../cpp_api/template/template.md) based on a unique metadata key + * **file:** metadata/filterdupemetadata.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None @@ -156,11 +206,12 @@ Removes duplicate templates based on a unique metadata key # GridTransform -Add landmarks to the template in a grid layout +Add landmarks to the [Template](../cpp_api/template/template.md) in a grid layout + * **file:** metadata/grid.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -168,11 +219,12 @@ Add landmarks to the template in a grid layout # GroundTruthTransform -Add any ground truth to the template using the file's base name. +Add any ground truth to the [Template](../cpp_api/template/template.md) using the file's base name. + * **file:** metadata/groundtruth.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -181,10 +233,12 @@ Add any ground truth to the template using the file's base name. # HOGPersonDetectorTransform Detects objects with OpenCV's built-in HOG detection. + * **file:** metadata/hogpersondetector.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] +* **see:** [http://docs.opencv.org/modules/gpu/doc/object_detection.html](http://docs.opencv.org/modules/gpu/doc/object_detection.html) * **properties:** None @@ -192,11 +246,12 @@ Detects objects with OpenCV's built-in HOG detection. # IfMetadataTransform -Clear templates without the required metadata. +Clear [Template](../cpp_api/template/template.md) without the required metadata. + * **file:** metadata/ifmetadata.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -205,10 +260,11 @@ Clear templates without the required metadata. # ImpostorUniquenessMeasureTransform Impostor Uniqueness Measure + * **file:** metadata/imposteruniquenessmeasure.cpp * **inherits:** [Transform](../cpp_api/transform/transform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -217,10 +273,11 @@ Impostor Uniqueness Measure # JSONTransform Represent the metadata as JSON template data. + * **file:** metadata/json.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -229,10 +286,11 @@ Represent the metadata as JSON template data. # KeepMetadataTransform Retains only the values for the keys listed, to reduce template size + * **file:** metadata/keepmetadata.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -241,10 +299,12 @@ Retains only the values for the keys listed, to reduce template size # KeyPointDetectorTransform Wraps OpenCV Key Point Detector + * **file:** metadata/keypointdetector.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] +* **see:** [http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html](http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html) * **properties:** None @@ -253,10 +313,11 @@ Wraps OpenCV Key Point Detector # KeyToRectTransform Convert values of key_X, key_Y, key_Width, key_Height to a rect. + * **file:** metadata/keytorect.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Jordan Cheney +* **author(s):** [Jordan Cheney][JordanCheney] * **properties:** None @@ -265,10 +326,11 @@ Convert values of key_X, key_Y, key_Width, key_Height to a rect. # NameLandmarksTransform Name a point/rect + * **file:** metadata/namelandmarks.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -276,11 +338,12 @@ Name a point/rect # NameTransform -Sets the template's matrix data to the br::File::name. +Sets the [Template](../cpp_api/template/template.md) matrix data to the br::File::name. + * **file:** metadata/name.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -289,10 +352,11 @@ Sets the template's matrix data to the br::File::name. # NormalizePointsTransform Normalize points to be relative to a single point + * **file:** metadata/normalizepoints.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -301,10 +365,11 @@ Normalize points to be relative to a single point # PointDisplacementTransform Normalize points to be relative to a single point + * **file:** metadata/pointdisplacement.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -313,10 +378,11 @@ Normalize points to be relative to a single point # PointsToMatrixTransform Converts either the file::points() list or a QList metadata item to be the template's matrix + * **file:** metadata/pointstomatrix.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -325,10 +391,11 @@ Converts either the file::points() list or a QList metadata item to be # ProcrustesTransform Procrustes alignment of points + * **file:** metadata/procrustes.cpp * **inherits:** [MetadataTransform](../cpp_api/metadatatransform/metadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -336,11 +403,12 @@ Procrustes alignment of points # RectsToTemplatesTransform -For each rectangle bounding box in src, a new +For each rectangle bounding box in src, a new [Template](../cpp_api/template/template.md) is created. + * **file:** metadata/rectstotemplates.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -349,10 +417,11 @@ For each rectangle bounding box in src, a new # RegexPropertyTransform Apply the input regular expression to the value of inputProperty, store the matched portion in outputProperty. + * **file:** metadata/regexproperty.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -360,11 +429,12 @@ Apply the input regular expression to the value of inputProperty, store the matc # RemoveMetadataTransform -Removes a metadata field from all templates +Removes a metadata field from all [Template](../cpp_api/template/template.md) + * **file:** metadata/removemetadata.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -372,11 +442,12 @@ Removes a metadata field from all templates # RemoveTemplatesTransform -Remove templates with the specified file extension or metadata value. +Remove [Template](../cpp_api/template/template.md) with the specified file extension or metadata value. + * **file:** metadata/removetemplates.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -385,10 +456,11 @@ Remove templates with the specified file extension or metadata value. # RenameFirstTransform Rename first found metadata key + * **file:** metadata/renamefirst.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -397,10 +469,11 @@ Rename first found metadata key # RenameTransform Rename metadata key + * **file:** metadata/rename.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -409,10 +482,12 @@ Rename metadata key # ReorderPointsTransform Reorder the points such that points[from[i]] becomes points[to[i]] and +vice versa + * **file:** metadata/reorderpoints.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -420,11 +495,14 @@ Reorder the points such that points[from[i]] becomes points[to[i]] and # RestoreMatTransform -Set the last matrix of the input template to a matrix stored as metadata with input propName. +Set the last matrix of the input [Template](../cpp_api/template/template.md) to a matrix stored as metadata with input propName. + +Also removes the property from the [Template](../cpp_api/template/template.md)s metadata after restoring it. + * **file:** metadata/restoremat.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -432,11 +510,12 @@ Set the last matrix of the input template to a matrix stored as metadata with in # SaveMatTransform -Store the last matrix of the input template as a metadata key with input property name. +Store the last matrix of the input [Template](../cpp_api/template/template.md) as a metadata key with input property name. + * **file:** metadata/savemat.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -445,10 +524,11 @@ Store the last matrix of the input template as a metadata key with input propert # SelectPointsTransform Retains only landmarks/points at the provided indices + * **file:** metadata/selectpoints.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Brendan Klare +* **author(s):** [Brendan Klare][bklare] * **properties:** None @@ -457,10 +537,11 @@ Retains only landmarks/points at the provided indices # SetMetadataTransform Sets the metadata key/value pair. + * **file:** metadata/setmetadata.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -469,10 +550,11 @@ Sets the metadata key/value pair. # SetPointsInRectTransform Set points relative to a rect + * **file:** metadata/setpointsinrect.cpp * **inherits:** [UntrainableMetadataTransform](../cpp_api/untrainablemetadatatransform/untrainablemetadatatransform.md) -* **author:** Jordan Cheney +* **author(s):** [Jordan Cheney][JordanCheney] * **properties:** None @@ -481,10 +563,11 @@ Set points relative to a rect # StasmTransform Wraps STASM key point detector + * **file:** metadata/stasm4.cpp * **inherits:** [UntrainableTransform](../cpp_api/untrainabletransform/untrainabletransform.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -492,11 +575,12 @@ Wraps STASM key point detector # StopWatchTransform -Gives time elapsed over a specified transform as a function of both images (or frames) and pixels. +Gives time elapsed over a specified [Transform](../cpp_api/transform/transform.md) as a function of both images (or frames) and pixels. + * **file:** metadata/stopwatch.cpp * **inherits:** [MetaTransform](../cpp_api/metatransform/metatransform.md) -* **authors:** Jordan Cheney, Josh Klontz +* **author(s):** [Jordan Cheney][JordanCheney], [Josh Klontz][jklontz] * **properties:** None diff --git a/docs/docs/api_docs/plugins/output.md b/docs/docs/api_docs/plugins/output.md index f11909a..1c04249 100644 --- a/docs/docs/api_docs/plugins/output.md +++ b/docs/docs/api_docs/plugins/output.md @@ -1,10 +1,11 @@ # DefaultOutput -Adaptor class -- write a matrix output using Format classes. +Adaptor class -- write a matrix output using [Format](../cpp_api/format/format.md) classes. + * **file:** output/default.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **author:** Charles Otto +* **author(s):** [Charles Otto][caotto] * **properties:** None @@ -13,10 +14,11 @@ Adaptor class -- write a matrix output using Format classes. # EmptyOutput Output to the terminal. + * **file:** output/empty.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -25,10 +27,11 @@ Output to the terminal. # bestOutput The highest scoring matches. + * **file:** output/best.cpp * **inherits:** [Output](../cpp_api/output/output.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -37,10 +40,11 @@ The highest scoring matches. # csvOutput Comma separated values output. + * **file:** output/csv.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -49,10 +53,11 @@ Comma separated values output. # evalOutput Evaluate the output matrix. + * **file:** output/eval.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -61,10 +66,11 @@ Evaluate the output matrix. # heatOutput Matrix-like output for heat maps. + * **file:** output/heat.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -73,10 +79,11 @@ Matrix-like output for heat maps. # histOutput Score histogram. + * **file:** output/hist.cpp * **inherits:** [Output](../cpp_api/output/output.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -85,10 +92,11 @@ Score histogram. # meltOutput One score per row. + * **file:** output/melt.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -96,11 +104,12 @@ One score per row. # mtxOutput - +simmat output. + * **file:** output/mtx.cpp * **inherits:** [Output](../cpp_api/output/output.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -109,10 +118,11 @@ One score per row. # nullOutput Discards the scores. + * **file:** output/null.cpp * **inherits:** [Output](../cpp_api/output/output.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -121,10 +131,11 @@ Discards the scores. # rankOutput Outputs highest ranked matches with scores. + * **file:** output/rank.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **author:** Scott Klum +* **author(s):** [Scott Klum][sklum] * **properties:** None @@ -133,10 +144,11 @@ Outputs highest ranked matches with scores. # rrOutput Rank retrieval output. + * **file:** output/rr.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **authors:** Josh Klontz, Scott Klum +* **author(s):** [Josh Klontz][jklontz], [Scott Klum][sklum] * **properties:** None @@ -145,10 +157,11 @@ Rank retrieval output. # tailOutput The highest scoring matches. + * **file:** output/tail.cpp * **inherits:** [Output](../cpp_api/output/output.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -157,10 +170,11 @@ The highest scoring matches. # txtOutput Text file output. + * **file:** output/txt.cpp * **inherits:** [MatrixOutput](../cpp_api/matrixoutput/matrixoutput.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None diff --git a/docs/docs/api_docs/plugins/video.md b/docs/docs/api_docs/plugins/video.md index 2f5f6b1..b57d8b7 100644 --- a/docs/docs/api_docs/plugins/video.md +++ b/docs/docs/api_docs/plugins/video.md @@ -1,10 +1,13 @@ # AggregateFrames -Passes along n sequential frames to the next transform. +Passes along n sequential frames to the next [Transform](../cpp_api/transform/transform.md). + +For a video with m frames, AggregateFrames would create a total of m-n+1 sequences ([0,n] ... [m-n+1, m]) + * **file:** video/aggregate.cpp * **inherits:** [TimeVaryingTransform](../cpp_api/timevaryingtransform/timevaryingtransform.md) -* **author:** Josh Klontz +* **author(s):** [Josh Klontz][jklontz] * **properties:** None @@ -13,10 +16,13 @@ Passes along n sequential frames to the next transform. # DropFrames Only use one frame every n frames. + * **file:** video/drop.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10 + + For a video with m frames, DropFrames will pass on m/n frames.] * **properties:** None @@ -25,10 +31,11 @@ Only use one frame every n frames. # OpticalFlowTransform Gets a one-channel dense optical flow from two images + * **file:** video/opticalflow.cpp * **inherits:** [UntrainableMetaTransform](../cpp_api/untrainablemetatransform/untrainablemetatransform.md) -* **author:** Austin Blanton +* **author(s):** [Austin Blanton][imaus10] * **properties:** None diff --git a/docs/docs/contribute.md b/docs/docs/contribute.md index e69de29..58800ee 100644 --- a/docs/docs/contribute.md +++ b/docs/docs/contribute.md @@ -0,0 +1,75 @@ +So you want to contribute to OpenBR? That's awesome! These are some guidelines to follow so that your contribution fits nicely into our framework. + +## Contributing a Plugin + +You should consider contributing a plugin (or plugins!) if you have an algorithm you are interested in moving to OpenBR or you have an extension to an existing algorithm. Below are the steps for creating and contributing a plugin- + +1. Check out the [C++ Plugin API](api_docs/cpp_api.md) and decide which abstraction best suits the needs of your contribution +2. Select a module in the openbr/plugins/ directory that describes your plugin, then create a new file in that module. Your file should have the same name as your plugin. +3. Implement your plugin! Make sure to have a look at the [Style Guide](#style-guide) so your code matches what's already there. This increases overall readability and makes it easier for newcomers to learn! + +### Common Mistakes + +Some common mistakes that will stop your plugin from working! + +* The entire plugin should be inside ```namespace br``` +* Make sure your plugin declares ```Q_OBJECT``` right after it's definition +* Remember to call [BR_REGISTER](api_docs/cpp_api/factory/macros.md#br_register) at the end of your plugin! +* Remeber to add ```#include "module/filename.moc"``` at the very bottom of your file + +[MAddTransform](api_docs/plugins/imgproc.md#maddtransform) is a simple and clear example of how a [Transform](api_docs/cpp_api/transform/transform.md) should look. + +### Documenting + +Documenting your plugin is very important. OpenBR supports custom, doxygen-style, in-code comments to make documentation simple, clear, and easy. Comments should appear like + + /*! + * ... + */ + +Comments are organized using tags, which are of the form \tag. There are a few **required** tags that all OpenBR transforms must have. + +Tag | Description +--- | --- +\ingroup | The abstraction that your plugin belongs to +\brief | A description of your plugin +\author | Your name +\cite | The citation link for the author. There must be citation tag for every author who appears. If you haven't already please add your information to openbr/docs/docs/contributors.md +\br_property | Describes a BR_PROPERTY of your plugin. This should take the format ```\br_property type name description```. In certain cases, for enumerations for example, it is beneficial to add a bulleted list to the description. This is done using a comma seperated **[]** list. ```[item1,item2,item3]``` will appear like
  • item1
  • item2
  • item3
Each property of the plugin must have a corresponding \br_property tag. + +The mimimum comment would look like this + + /*! + * \ingroup abstraction group + * \brief A description of the plugin + * \author Your Name \cite Your Citation + * \br_property percentage float The percentage of something + * \br_property enum choice A choice with possible values: [choice1, choice2, choice3] + */ + +There are also a few **optional** tags to provide more information. + +Tag | Description +--- | --- +\br_link | A link to a webpage +\br_paper | An academic paper your plugin needs to cite. This is a multi-line tag- The first line should contain the paper authors, the second line should contain the paper title, and the third should contain other information about the paper (for example conference and year). See below for an example. +\br_related_plugin | Link to a related plugin within OpenBR. The full name of the plugin should be provided. Multiple plugins can be given and they should be seperated by a space. +\br_format | TODO define + +Optional tags could look like this + + /*! + * \br_link http://openbiometrics.org + * \br_paper Author1, Author2, Author3 + * Paper Title + * Conference. Year + * \br_related_plugin ExampleTransform ExampleDistance ExampleGallery + */ + +Finally, OpenBR supports automatic linking for abstractions found in comments. For example, Transform will automatically become [Transform](api_docs/cpp_api/transform/transform.md). Plural words like Transforms will also be linked but possesives like Tranform's will not. + +--- + +## Contributing to the API + +You should contribute to the API if you want to add a new abstraction or extend an existing abstraction with new functionality. Please note, this occurs *very* *very* rarely. Our goal is to leave the core API as stable and consistent as possible and change only the surrounding plugins. If you believe your idea offers exciting new functionality or greatly increases efficiency please [open an issue](https://github.com/biometrics/openbr/issues) so that it can be discussed as a community. \ No newline at end of file diff --git a/docs/docs/contributors.md b/docs/docs/contributors.md new file mode 100644 index 0000000..4e40032 --- /dev/null +++ b/docs/docs/contributors.md @@ -0,0 +1,13 @@ + + +[jklontz]: https://github.com/jklontz "Joshua C. Klontz, jklontz@ieee.org" +[mburge]: https://github.com/mburge "Dr. Mark J. Burge mburge@gmail.com" +[bklare]: https://github.com/bklare "Dr. Brendan F. Klare brendan.klare@ieee.org" +[mmtaborsky]: https://github.com/mmtaborsky "M. M. Taborsky mmtaborsky@gmail.com" +[sklum]: https://github.com/sklum "Scott J. Klum scott.klum@gmail.com" +[caotto]: https://github.com/caotto "Charles A. Otto ottochar@gmail.com" +[lbestrowden]: https://github.com/lbestrowden "Lacey S. Best-Rowden bestrow1@msu.edu" +[imaus10]: https://github.com/imaus10 "Austin Van Blanton imaus10@gmail.com" +[dgcrouse]: https://github.com/dgcrouse "David G. Crouse dgcrouse@gmail.com" +[baba1472]: https://github.com/baba1472 "Babatunde Ogunfemi ogunfemi.b@gmail.com" +[jcheney]: https://github.com/JordanCheney "Jordan Cheney jordan.cheney@gmail.com" diff --git a/docs/docs/docs/cpp_api/file/file.md b/docs/docs/docs/cpp_api/file/file.md deleted file mode 100644 index 9da2bb9..0000000 --- a/docs/docs/docs/cpp_api/file/file.md +++ /dev/null @@ -1,65 +0,0 @@ -# File - -A file path with associated metadata. - -See: - -* [Members](members.md) -* [Constructors](constructors.md) -* [Static Functions](statics.md) -* [Functions](functions.md) - -The File is one of two important data structures in OpenBR (the [Template](../template/template.md) is the other). -It is typically used to store the path to a file on disk with associated metadata. -The ability to associate a key/value metadata table with the file helps keep the API simple while providing customizable behavior. - -When querying the value of a metadata key, the value will first try to be resolved against the file's private metadata table. -If the key does not exist in its local table then it will be resolved against the properties in the global Context. -By design file metadata may be set globally using Context::setProperty to operate on all files. - -Files have a simple grammar that allow them to be converted to and from strings. -If a string ends with a **]** or **)** then the text within the final **[]** or **()** are parsed as comma separated metadata fields. -By convention, fields within **[]** are expected to have the format [key1=value1, key2=value2, ..., keyN=valueN] where order is irrelevant. -Fields within **()** are expected to have the format (value1, value2, ..., valueN) where order matters and the key context dependent. -The left hand side of the string not parsed in a manner described above is assigned to [name](members.md#name). - -Values are not necessarily stored as strings in the metadata table. -The system will attempt to infer and convert them to their "native" type. -The conversion logic is as follows: - -1. If the value starts with **[** and ends with **]** then it is treated as a comma separated list and represented with [QVariantList][QVariantList]. Each value in the list is parsed recursively. -2. If the value starts with **(** and ends with **)** and contains four comma separated elements, each convertable to a floating point number, then it is represented with [QRectF][QRectF]. -3. If the value starts with **(** and ends with **)** and contains two comma separated elements, each convertable to a floating point number, then it is represented with [QPointF][QPointF]. -4. If the value is convertable to a floating point number then it is represented with float. -5. Otherwise, it is represented with [QString][QString]. - -Metadata keys fall into one of two categories: -* camelCaseKeys are inputs that specify how to process the file. -* Capitalized_Underscored_Keys are outputs computed from processing the file. - -Below are some of the most commonly occurring standardized keys: - -Key | Value | Description ---- | ---- | ----------- -name | QString | Contents of [name](members.md#name) -separator | QString | Separate [name](members.md#name) into multiple files -Index | int | Index of a template in a template list -Confidence | float | Classification/Regression quality -FTE | bool | Failure to enroll -FTO | bool | Failure to open -\*_X | float | Position -\*_Y | float | Position -\*_Width | float | Size -\*_Height | float | Size -\*_Radius | float | Size -Label | QString | Class label -Theta | float | Pose -Roll | float | Pose -Pitch | float | Pose -Yaw | float | Pose -Points | QList<QPointF> | List of unnamed points -Rects | QList<Rect> | List of unnamed rects -Age | float | Age used for demographic filtering -Gender | QString | Subject gender -Train | bool | The data is for training, as opposed to enrollment -_\* | \* | Reserved for internal use diff --git a/docs/docs/docs/cpp_api/transform/statics.md b/docs/docs/docs/cpp_api/transform/statics.md deleted file mode 100644 index bc838b1..0000000 --- a/docs/docs/docs/cpp_api/transform/statics.md +++ /dev/null @@ -1,193 +0,0 @@ -## [Transform](transform.md) \*make([QString][QString] str, [QObject][QObject] \*parent) {: #make } - -Make a transform from a string. This function converts the abbreviation characters **+**, **/**, **{}**, **<\>**, and **()** into their full-length alternatives. - -Abbreviation | Translation ---- | --- -\+ | [PipeTransform](../../plugins/core.md#pipetransform). Each [Transform](transform.md) linked by a **+** is turned into a child of a single [PipeTransform](../../plugins/core.md#pipetransform). "Example1+Example2" becomes "Pipe([Example1,Example2])". [Templates](../template/template.md) are projected through the children of a pipe in series, the output of one become the input of the next. -/ | [ForkTransform](../../plugins/core.md#forktransform). Each [Transform](transform.md) linked by a **/** is turned into a child of a single [ForkTransform](../../plugins/core.md#forktransform). "Example1/Example2" becomes "Fork([Example1,Example2])". [Templates](../template/template.md) are projected the children of a fork in parallel, each receives the same input and the outputs are merged together. -\{\} | [CacheTransform](../../plugins/core.md#cachetransform). Can only surround a single [Transform](transform.md). "{Example}" becomes "Cache(Example)". The results of a cached [Transform](transform.md) are stored in a global cache using the [file](../object/members.md#file) name as a key. -<> | [LoadStoreTransform](../../plugins/core.md#loadstoretransform). Can only surround a single [Transform](transform.md). "" becomes "LoadStore(Example)". Serialize and store a [Transform](transform.md) after training or deserialize and load a [Transform](transform.md) before projecting. -() | Order of operations. Change the order of operations using parantheses. - -The parsed string is then passed to [Factory](../factory/factory.md)::[make](../factory/statics.md#make) to be turned into a transform. - -* **function definition:** - - static Transform *make(QString str, QObject *parent) - -* **parameters:** - - Parameter | Type | Description - --- | --- | --- - str | [QString][QString] | String describing the transform - parent | [QObject][QObject] \* | Parent of the object to be created - -* **output:** ([Transform](transform.md) \*) Returns a pointer to the [Transform](transform.md) described by the string -* **see:** [Factory::make](../factory/statics.md#make) -* **example:** - - Transform::make("Example1+Example2+")->description(); // returns "Pipe(transforms=[Example1,Example2,LoadStore(ModelFile)])". - - -## [QSharedPointer][QSharedPointer]<[Transform](transform.md)> fromAlgorithm(const [QString][QString] &algorithm, bool preprocess=false) {: #fromalgorithm } - -Create a [Transform](transform.md) from an OpenBR algorithm string. The [Transform](transform.md) is created using everything to the left of a **:** or a **!** in the string. - -* **function definition:** - - static QSharedPointer fromAlgorithm(const QString &algorithm, bool preprocess=false) - -* **parameters:** - - Parameter | Type | Description - --- | --- | --- - algorithm | const [QString][QString] & | Algorithm string to construct the [Transform](transform.md) from - preprocess | bool | (Optional) If true add a [StreamTransform](../../plugins/core.md#streamtransform) as the parent of the constructed [Transform](transform.md). Default is false. - -* **output:** ([QSharedPointer][QSharedPointer]<[Transform](transform.md)>) Returns a pointer to the [Transform](transform.md) described by the algorithm. -* **example:** - - Transform::fromAlgorithm("EnrollmentTransform:Distance")->decription(); // returns "EnrollmentTransform" - Transform::fromAlgorithm("EnrollmentTransform!DistanceTransform")->decription(); // returns "EnrollmentTransform" - Transform::fromAlgorithm("EnrollmentTransform")->decription(); // returns "EnrollmentTransform" - -## [QSharedPointer][QSharedPointer]<[Transform](transform.md)> fromComparison(const [QString][QString] &algorithm) {: #fromcomparison } - -Create a[Transform](transform.md) from an OpenBR algorithm string. The [Transform](transform.md) is created using everything to the right of a **:** or a **!** in the string. If the separating symbol is a **:** the string to the right describes a distance. It is converted to a [GalleryCompareTransform](../../plugins/core.md#gallerycomparetransform) with the distance stored as a property. If the separating symbol is a **!** the string already describes a transform and is unchanged. - -* **function definition:** - - static QSharedPointer fromComparison(const QString &algorithm) - -* **parameters:** - - Parameter | Type | Description - --- | --- | --- - algorithm | const [QString][QString] & | Algorithm string to construct the [Transform](transform.md) from - -* **output:** ([QSharedPointer][QSharedPointer]<[Transform](transform.md)>) Returns a pointer to the [Transform](transform.md) described by the algorithm. -* **example:** - - Transform::fromAlgorithm("EnrollmentTransform:Distance")->description(); // returns "GalleryCompare(distance=Distance)"" - Transform::fromAlgorithm("EnrollmentTransform!DistanceTransform"); // returns "DistanceTransform" - - -## [Transform](transform.md) \*deserialize([QDataStream][QDataStream] &stream) {: #deserialize } - -Deserialize a [Transform](transform.md) from a stream. - -* **function definition:** - - static Transform *deserialize(QDataStream &stream) - -* **parameters:** - - Parameter | Type | Description - --- | --- | --- - stream | [QDataStream][QDataStream] & | Stream containing the serialized transform - -* **output:** ([Transform](transform.md) \*) Returns the deserialized transform - - -## [Template](../template/template.md) &operator>>([Template](../template/template.md) &srcdst, const [Transform](transform.md) &f) {: #template-operater-gtgt-1 } - -Convenience function for [project](functions.md#project-1) - -* **function definition:** - - inline Template &operator>>(Template &srcdst, const Transform &f) - -* **parameters:** - - Parameter | Type | Description - --- | --- | --- - srcdst | [Template](../template/template.md) & | Input template. Will be overwritten with the output following call to [project](functions.md#project-1) - f | const [Transform](transform.md) & | [Transform](transform.md) to project through. - -* **output:** ([Template](../template/template.md) &) Returns the output of f::[project](functions.md#project-1) -* **example:** - - Template t("picture1.jpg"); - Transform *transform = Transform::make("Example", NULL); - - t >> *transform; // projects t through Example. t is overwritten with the output of the project call - - - -## [TemplateList](../templatelist/templatelist.md) &operator>>([TemplateList](../templatelist/templatelist.md) &srcdst, const [Transform](transform.md) &f) {: #template-operater-gtgt-2 } - -Convenience function for [project](functions.md#project-2) - -* **function definition:** - - inline TemplateList &operator>>(TemplateList &srcdst, const Transform &f) - -* **parameters:** - - Parameter | Type | Description - --- | --- | --- - srcdst | [TemplateList](../templatelist/templatelist.md) & | Input templates. Will be overwritten with the output following call to [project](functions.md#project-2) - f | const [Transform](transform.md) & | [Transform](transform.md) to project through. - -* **output:** ([TemplateList](../templatelist/templatelist.md) &) Returns the output of f::[project](functions.md#project-2) -* **example:** - - TemplateList tList(QList