diff --git a/sdk/plugins/output.cpp b/sdk/plugins/output.cpp index 1d8d9b8..488247e 100644 --- a/sdk/plugins/output.cpp +++ b/sdk/plugins/output.cpp @@ -259,6 +259,46 @@ BR_REGISTER(Output, EmptyOutput) /*! * \ingroup outputs + * \brief Outputs highest ranked matches with scores. + * \author Scott Klum \cite sklum + */ +class rankOutput : public MatrixOutput +{ + Q_OBJECT + + ~rankOutput() + { + if (targetFiles.isEmpty() || queryFiles.isEmpty()) return; + + QList ranks; + QList scores; + QStringList lines; + + for (int i=0; i Pair; + int rank = 1; + foreach (const Pair &pair, Common::Sort(OpenCVUtils::matrixToVector(data.row(i)), true)) { + if(targetFiles[pair.second].label() == queryFiles[i].label()) { + ranks.append(rank); + scores.append(pair.first); + break; + } + rank++; + } + } + + typedef QPair RankPair; + foreach (const RankPair &pair, Common::Sort(ranks, false)) + lines.append(queryFiles[pair.second].name + " " + QString::number(pair.first) + " " + QString::number(scores[pair.second]) + " " + targetFiles[pair.second].name); + + QtUtils::writeFile(file, lines); + } +}; + +BR_REGISTER(Output, rankOutput) + +/*! + * \ingroup outputs * \brief The highest scoring matches. * \author Josh Klontz \cite jklontz */ diff --git a/sdk/plugins/pp5.cpp b/sdk/plugins/pp5.cpp index 05707b3..3c7349d 100644 --- a/sdk/plugins/pp5.cpp +++ b/sdk/plugins/pp5.cpp @@ -46,7 +46,7 @@ class PP5Initializer : public Initializer void initialize() const { TRY(ppr_initialize_sdk(qPrintable(Globals->sdkPath + "/share/openbr/models/pp5/"), my_license_id, my_license_key)) - Globals->abbreviations.insert("PP5","Open+PP5Enroll!Identity:PP5Compare"); + 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)"); } diff --git a/sdk/plugins/stasm.cpp b/sdk/plugins/stasm.cpp index fac064a..00a1835 100644 --- a/sdk/plugins/stasm.cpp +++ b/sdk/plugins/stasm.cpp @@ -45,7 +45,7 @@ class StasmTransform : public UntrainableTransform AsmSearchDll(&nlandmarks, landmarks, qPrintable(src.file.name), reinterpret_cast(src.m().data), src.m().cols, src.m().rows, - src.m(), (src.m().channels() == 3), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-68-1d.conf"), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-76-2d.conf")); + src.m(), (src.m().channels() == 3), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-68-1d.conf"), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-76-2d.conf"), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/")); if (nlandmarks == 0) qWarning("Unable to detect Stasm landmarks"); diff --git a/share/openbr/cmake/FindStasm.cmake b/share/openbr/cmake/FindStasm.cmake index 5c12554..bf026dd 100644 --- a/share/openbr/cmake/FindStasm.cmake +++ b/share/openbr/cmake/FindStasm.cmake @@ -10,7 +10,11 @@ find_path(Stasm_DIR include/stasm.hpp ${CMAKE_SOURCE_DIR}/3rdparty/*) +add_subdirectory(${Stasm_DIR} ${Stasm_DIR}/build) + +set(SRC ${SOURCE};${SRC}) + include_directories(${Stasm_DIR}/include) -link_directories(${Stasm_DIR}/lib) +link_directories(${Stasm_DIR}/build) set(Stasm_LIBS stasm)