From 2463460dca6d4554ef7306032e150b0123ffd7e4 Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Wed, 6 Mar 2013 14:20:42 -0500 Subject: [PATCH] Local --- sdk/core/core.cpp | 3 ++- sdk/plugins/filter.cpp | 2 +- sdk/plugins/output.cpp | 2 +- sdk/plugins/pp5.cpp | 2 +- sdk/plugins/regions.cpp | 21 +++++++++++++++------ sdk/plugins/stasm.cmake | 4 ++-- sdk/plugins/stasm.cpp | 14 ++++++++++---- 7 files changed, 32 insertions(+), 16 deletions(-) diff --git a/sdk/core/core.cpp b/sdk/core/core.cpp index b2868f5..6a28961 100644 --- a/sdk/core/core.cpp +++ b/sdk/core/core.cpp @@ -113,8 +113,9 @@ struct AlgorithmCore QScopedPointer g(Gallery::make(gallery)); if (g.isNull()) return FileList(); - if (gallery.contains("read") || gallery.contains("cache")) + if (gallery.contains("read") || gallery.contains("cache")) { fileList = g->files(); + } if (!fileList.isEmpty() && gallery.contains("cache")) return fileList; diff --git a/sdk/plugins/filter.cpp b/sdk/plugins/filter.cpp index affeb71..6c4c48c 100644 --- a/sdk/plugins/filter.cpp +++ b/sdk/plugins/filter.cpp @@ -155,7 +155,6 @@ class CSDNTransform : public UntrainableTransform } } - m.convertTo(m, CV_8UC1); dst = m; } @@ -214,6 +213,7 @@ class ContrastEqTransform : public UntrainableTransform for (int i=0; i(i, j) = fast_tanh(p[i*nCols+j]); + dst = m; } }; diff --git a/sdk/plugins/output.cpp b/sdk/plugins/output.cpp index 88e2e80..622e249 100644 --- a/sdk/plugins/output.cpp +++ b/sdk/plugins/output.cpp @@ -170,6 +170,7 @@ class rrOutput : public MatrixOutput const float threshold = file.getFloat("threshold", -std::numeric_limits::max()); QStringList lines; + for (int i=0; isdkPath + "/share/openbr/models/pp5/"), my_license_id, my_license_key)) Globals->abbreviations.insert("PP5","Open!PP5Enroll:PP5Compare"); - Globals->abbreviations.insert("RegisterFace", "Open+Cvt(Gray)+PP5Enroll(true)+Rename(PP5_Landmark0_Right_Eye_X,Affine_0_X)+Rename(PP5_Landmark0_Right_Eye_Y,Affine_0_Y)+Rename(PP5_Landmark1_Left_Eye_X,Affine_1_X)+Rename(PP5_Landmark1_Left_Eye_Y,Affine_1_Y)+Affine(96,128,0.28,0.45)"); + Globals->abbreviations.insert("PP5Register", "Open+PP5Enroll(true)+RenameFirst([eyeLx,PP5_Landmark0_Right_Eye_X],Affine_0_X)+RenameFirst([eyeLy,PP5_Landmark0_Right_Eye_Y],Affine_0_Y)+RenameFirst([eyeRx,PP5_Landmark1_Left_Eye_X],Affine_1_X)+RenameFirst([eyeRy,PP5_Landmark1_Left_Eye_Y],Affine_1_Y)"); } void finalize() const diff --git a/sdk/plugins/regions.cpp b/sdk/plugins/regions.cpp index 0a87524..7f9aeb1 100644 --- a/sdk/plugins/regions.cpp +++ b/sdk/plugins/regions.cpp @@ -148,7 +148,11 @@ class RectFromLandmarksTransform : public UntrainableTransform void project(const Template &src, Template &dst) const { - if (src.file.landmarks().isEmpty()) qFatal("No landmarks"); + if (src.file.landmarks().isEmpty()) { + qWarning("No landmarks"); + dst = src; + return; + } int minX, minY; minX = minY = std::numeric_limits::max(); @@ -156,7 +160,7 @@ class RectFromLandmarksTransform : public UntrainableTransform maxX = maxY = -std::numeric_limits::max(); foreach(int index, indices) { - if (src.file.landmarks().size() < index+1) { + if (src.file.landmarks().size() > index+1) { if (src.file.landmarks()[index].x() < minX) minX = src.file.landmarks()[index].x(); if (src.file.landmarks()[index].x() > maxX) maxX = src.file.landmarks()[index].x(); if (src.file.landmarks()[index].y() < minY) minY = src.file.landmarks()[index].y(); @@ -165,11 +169,16 @@ class RectFromLandmarksTransform : public UntrainableTransform } } - double width = maxX-minX+padding; - double height = maxY-minY+padding; - //double deltaHeight = ((width/aspectRatio) - height); + // Padding is .05 + double width = maxX-minX; + double deltaWidth = width*padding; + width += deltaWidth; + + double height = maxY-minY; + double deltaHeight = width/aspectRatio - height; + height += deltaHeight; - dst.m() = src.m()(Rect(std::max(0.0, minX-padding/2.0), std::max(0.0, minY-padding/2.0), width, height)); + dst.m() = src.m()(Rect(std::max(0.0, minX - deltaWidth/2.0), std::max(0.0, minY - deltaHeight/2.0), std::min((double)src.m().cols, width), std::min((double)src.m().rows, height))); } }; diff --git a/sdk/plugins/stasm.cmake b/sdk/plugins/stasm.cmake index 0975003..d5636f4 100644 --- a/sdk/plugins/stasm.cmake +++ b/sdk/plugins/stasm.cmake @@ -6,9 +6,9 @@ if(${BR_WITH_STASM}) set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${Stasm_LIBS}) if(WIN32) - install(DIRECTORY ${Stasm_DIR}/lib/ DESTINATION bin) + install(DIRECTORY ${Stasm_DIR}/build/ DESTINATION bin) else() - install(DIRECTORY ${Stasm_DIR}/lib/ DESTINATION lib) + install(DIRECTORY ${Stasm_DIR}/build/ DESTINATION lib) endif() install(DIRECTORY ${Stasm_DIR}/models/ DESTINATION share/openbr/models/stasm) diff --git a/sdk/plugins/stasm.cpp b/sdk/plugins/stasm.cpp index 00a1835..f310d57 100644 --- a/sdk/plugins/stasm.cpp +++ b/sdk/plugins/stasm.cpp @@ -18,11 +18,11 @@ class StasmInitializer : public Initializer void initialize() const { - Globals->abbreviations.insert("RectFromStasmEyes","RectFromLandmarks([27, 28, 29, 30, 31, 32, 33, 34, 35, 36],10)"); + Globals->abbreviations.insert("RectFromStasmEyes","RectFromLandmarks([27, 28, 29, 30, 31, 32, 33, 34, 35, 36],0.125,6.0)+Resize(44,168)"); // Globals->abbreviations.insert("RectFromStasmJaw","RectFromLandmarks([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],10)"); - Globals->abbreviations.insert("RectFromStasmBrow","RectFromLandmarks([15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],10)"); - Globals->abbreviations.insert("RectFromStasmNose","RectFromLandmarks([37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47],10)"); - Globals->abbreviations.insert("RectFromStasmMouth","RectFromLandmarks([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66],10)"); + Globals->abbreviations.insert("RectFromStasmBrow","RectFromLandmarks([15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],0.05,6.5)+Resize(44,230)"); + Globals->abbreviations.insert("RectFromStasmNose","RectFromLandmarks([37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47],0.05,1.25)"); + Globals->abbreviations.insert("RectFromStasmMouth","RectFromLandmarks([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66],0.15,3.0)+Resize(44,110)"); } }; @@ -38,6 +38,11 @@ class StasmTransform : public UntrainableTransform { Q_OBJECT + void init() + { + Globals->setProperty("parallelism", "0"); // Can only work in single threaded mode + } + void project(const Template &src, Template &dst) const { int nlandmarks; @@ -50,6 +55,7 @@ class StasmTransform : public UntrainableTransform if (nlandmarks == 0) qWarning("Unable to detect Stasm landmarks"); dst = src; + for (int i = 0; i < nlandmarks; i++) dst.file.appendLandmark(QPointF(landmarks[2 * i], landmarks[2 * i + 1])); } -- libgit2 0.21.4