Commit 08fb3495e388f33ae7264d61f4ffe1fcd444648d
1 parent
a91c55a5
Generalized verifydetection
Showing
1 changed file
with
12 additions
and
8 deletions
openbr/plugins/metadata/verifydetection.cpp
| ... | ... | @@ -21,29 +21,33 @@ namespace br |
| 21 | 21 | |
| 22 | 22 | /*! |
| 23 | 23 | * \ingroup transforms |
| 24 | - * \brief Check if a the automated face detection contains the landmarks correpsonding | |
| 24 | + * \brief Check if a the automated face detection contains the landmarks corresponding | |
| 25 | 25 | * to the tempate metadata. If not, drop the template. This is meant for use |
| 26 | - * during training, where the landmarks will be ground truth'd. If one wants to | |
| 26 | + * during training, where the landmarks will be ground truth'd. If one wants to | |
| 27 | 27 | * using a ground truth bounding box instead, then convert the BB to a landmark. |
| 28 | - * \br_property int index Index of the landmark to be used. | |
| 28 | + * \br_property int index Index of the landmark to be used. | |
| 29 | + * \br_property QString inputVariable Metadata key for the rect. | |
| 29 | 30 | * \author Brendan Klare \cite bklare |
| 30 | 31 | */ |
| 31 | 32 | class VerifyDetectionTransform : public UntrainableMetaTransform |
| 32 | 33 | { |
| 33 | 34 | Q_OBJECT |
| 34 | 35 | Q_PROPERTY(int index READ get_index WRITE set_index RESET reset_index STORED false) |
| 36 | + Q_PROPERTY(QString inputVariable READ get_inputVariable WRITE set_inputVariable RESET reset_inputVariable STORED false) | |
| 35 | 37 | BR_PROPERTY(int, index, 14) |
| 38 | + BR_PROPERTY(QString, inputVariable, "Face") | |
| 36 | 39 | |
| 37 | - void project(const Template &, Template &dst) const | |
| 40 | + void project(const Template &src, Template &dst) const | |
| 38 | 41 | { |
| 39 | - qWarning("Single template project not supported by VerifyDetectionTransform."); | |
| 40 | - dst.file.fte = true; | |
| 42 | + TemplateList temp; | |
| 43 | + project(TemplateList() << src, temp); | |
| 44 | + if (!temp.isEmpty()) dst = temp.first(); | |
| 41 | 45 | } |
| 42 | 46 | |
| 43 | 47 | void project(const TemplateList &src, TemplateList &dst) const |
| 44 | 48 | { |
| 45 | - for (int i = 0; i < src.size(); i++) | |
| 46 | - if (src[i].file.get<QRectF>("FrontalFace").contains(src[i].file.points()[index])) | |
| 49 | + for (int i = 0; i < src.size(); i++) | |
| 50 | + if (src[i].file.get<QRectF>(inputVariable).contains(src[i].file.points()[index])) | |
| 47 | 51 | dst.append(src[i]); |
| 48 | 52 | } |
| 49 | 53 | }; | ... | ... |