From 9f15f251cafe40c1f1f7ad7d24dbe343f5a2db1e Mon Sep 17 00:00:00 2001 From: Josh Klontz Date: Sun, 17 Mar 2013 21:48:33 -0400 Subject: [PATCH] implemented RootNorm transform --- sdk/plugins/algorithms.cpp | 2 +- sdk/plugins/normalize.cpp | 24 ++++++++++++++++++++++++ share/openbr/openbr.bib | 8 ++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/sdk/plugins/algorithms.cpp b/sdk/plugins/algorithms.cpp index 809e094..a46caad 100644 --- a/sdk/plugins/algorithms.cpp +++ b/sdk/plugins/algorithms.cpp @@ -42,7 +42,7 @@ class AlgorithmsInitializer : public Initializer Globals->abbreviations.insert("OpenBR", "FaceRecognition"); Globals->abbreviations.insert("GenderEstimation", "GenderClassification"); Globals->abbreviations.insert("AgeEstimation", "AgeRegression"); - Globals->abbreviations.insert("FaceRecognitionHoG", "Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(64,64,0.25,0.35)+Gradient+Bin(0,360,8,true)+Merge+Integral+IntegralSampler+ProductQuantization:ProductQuantization"); + Globals->abbreviations.insert("FaceRecognitionHoG", "Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(64,64,0.25,0.35)+Gradient+Bin(0,360,8,true)+Merge+Integral+IntegralSampler+RootNorm+ProductQuantization:ProductQuantization"); // Generic Image Processing Globals->abbreviations.insert("SIFT", "Open+KeyPointDetector(SIFT)+KeyPointDescriptor(SIFT):KeyPointMatcher(BruteForce)"); diff --git a/sdk/plugins/normalize.cpp b/sdk/plugins/normalize.cpp index 208ae11..a924e07 100644 --- a/sdk/plugins/normalize.cpp +++ b/sdk/plugins/normalize.cpp @@ -224,6 +224,30 @@ class RowWiseMeanCenterTransform : public Transform BR_REGISTER(Transform, RowWiseMeanCenterTransform) +/*! + * \ingroup transforms + * \brief dst=sqrt(norm_L1(src)) proposed as RootSIFT in \cite Arandjelovic12 + * \author Josh Klontz \cite jklontz + */ +class RootNormTransform : public UntrainableTransform +{ + Q_OBJECT + + void project(const Template &src, Template &dst) const + { + const Mat &m = src; + dst.m() = Mat(m.rows, m.cols, m.type()); + for (int i=0; i