Commit 4f8a2319206c0f9f788143da755efa07f9b5f974
1 parent
091df77e
Added MTurkTransform for converting from maps to values
Showing
2 changed files
with
22 additions
and
7 deletions
openbr/plugins/svm.cpp
| @@ -136,12 +136,12 @@ private: | @@ -136,12 +136,12 @@ private: | ||
| 136 | Mat data = OpenCVUtils::toMat(_data.data()); | 136 | Mat data = OpenCVUtils::toMat(_data.data()); |
| 137 | Mat lab; | 137 | Mat lab; |
| 138 | // If we are doing regression, the input variable should have float | 138 | // If we are doing regression, the input variable should have float |
| 139 | - // values | 139 | + // values |
| 140 | if (type == EPS_SVR || type == NU_SVR) { | 140 | if (type == EPS_SVR || type == NU_SVR) { |
| 141 | lab = OpenCVUtils::toMat(File::get<float>(_data, inputVariable)); | 141 | lab = OpenCVUtils::toMat(File::get<float>(_data, inputVariable)); |
| 142 | } | 142 | } |
| 143 | // If we are doing classification, we should be dealing with discrete | 143 | // If we are doing classification, we should be dealing with discrete |
| 144 | - // values. Map them and store the mapping data | 144 | + // values. Map them and store the mapping data |
| 145 | else { | 145 | else { |
| 146 | QList<int> dataLabels = _data.indexProperty(inputVariable, labelMap, reverseLookup); | 146 | QList<int> dataLabels = _data.indexProperty(inputVariable, labelMap, reverseLookup); |
| 147 | lab = OpenCVUtils::toMat(dataLabels); | 147 | lab = OpenCVUtils::toMat(dataLabels); |
openbr/plugins/template.cpp
| @@ -42,8 +42,8 @@ class RemoveTemplatesTransform : public UntrainableMetaTransform | @@ -42,8 +42,8 @@ class RemoveTemplatesTransform : public UntrainableMetaTransform | ||
| 42 | void project(const Template &src, Template &dst) const | 42 | void project(const Template &src, Template &dst) const |
| 43 | { | 43 | { |
| 44 | const QRegularExpression re(regexp); | 44 | const QRegularExpression re(regexp); |
| 45 | - const QRegularExpressionMatch match = re.match(key.isEmpty() ? src.file.suffix() : src.file.get<QString>(key)); | ||
| 46 | - if (match.hasMatch()) dst = Template(); | 45 | + const QRegularExpressionMatch match = re.match(key.isEmpty() ? src.file.baseName() : src.file.get<QString>(key)); |
| 46 | + if (!match.hasMatch()) dst = Template(); | ||
| 47 | else dst = src; | 47 | else dst = src; |
| 48 | } | 48 | } |
| 49 | }; | 49 | }; |
| @@ -95,19 +95,34 @@ BR_REGISTER(Transform, SelectPointsTransform) | @@ -95,19 +95,34 @@ BR_REGISTER(Transform, SelectPointsTransform) | ||
| 95 | 95 | ||
| 96 | /*! | 96 | /*! |
| 97 | * \ingroup transforms | 97 | * \ingroup transforms |
| 98 | - * \brief Does nothing. | 98 | + * \brief Converts Amazon MTurk labels |
| 99 | + * \author Scott Klum \cite sklum | ||
| 99 | */ | 100 | */ |
| 100 | -class NoneTransform : public UntrainableMetaTransform | 101 | +class MTurkTransform : public UntrainableTransform |
| 101 | { | 102 | { |
| 102 | Q_OBJECT | 103 | Q_OBJECT |
| 104 | + Q_PROPERTY(QString inputVariable READ get_inputVariable WRITE set_inputVariable RESET reset_inputVariable STORED false) | ||
| 105 | + Q_PROPERTY(float maxVotes READ get_maxVotes WRITE set_maxVotes RESET reset_maxVotes STORED false) | ||
| 106 | + BR_PROPERTY(QString, inputVariable, QString()) | ||
| 107 | + BR_PROPERTY(float, maxVotes, 1.) | ||
| 103 | 108 | ||
| 104 | void project(const Template &src, Template &dst) const | 109 | void project(const Template &src, Template &dst) const |
| 105 | { | 110 | { |
| 106 | dst = src; | 111 | dst = src; |
| 112 | + | ||
| 113 | + QMap<QString,QVariant> map = dst.file.get<QMap<QString,QVariant> >(inputVariable); | ||
| 114 | + | ||
| 115 | + bool ok; | ||
| 116 | + | ||
| 117 | + QMapIterator<QString, QVariant> i(map); | ||
| 118 | + while (i.hasNext()) { | ||
| 119 | + i.next(); | ||
| 120 | + dst.file.set(i.key(), i.value().toFloat(&ok)/maxVotes); | ||
| 121 | + } | ||
| 107 | } | 122 | } |
| 108 | }; | 123 | }; |
| 109 | 124 | ||
| 110 | -BR_REGISTER(Transform, NoneTransform) | 125 | +BR_REGISTER(Transform, MTurkTransform) |
| 111 | 126 | ||
| 112 | } // namespace br | 127 | } // namespace br |
| 113 | 128 |