Commit 760c7c00b471b13f943190c1c0b605302077ecf8
1 parent
28ac05ec
improved/fixed demographic filter thread safety
Showing
2 changed files
with
5 additions
and
5 deletions
sdk/openbr_plugin.cpp
| @@ -1318,8 +1318,9 @@ float Distance::compare(const Template &target, const Template &query) const | @@ -1318,8 +1318,9 @@ float Distance::compare(const Template &target, const Template &query) const | ||
| 1318 | if (!Globals->demographicFilters.isEmpty()) // If statement is faster than iterating over an empty list of filters | 1318 | if (!Globals->demographicFilters.isEmpty()) // If statement is faster than iterating over an empty list of filters |
| 1319 | foreach (const QString &filter, Globals->demographicFilters.keys()) { | 1319 | foreach (const QString &filter, Globals->demographicFilters.keys()) { |
| 1320 | const QString targetMetadata = target.file.getString(filter, ""); | 1320 | const QString targetMetadata = target.file.getString(filter, ""); |
| 1321 | - if (!targetMetadata.isEmpty() && | ||
| 1322 | - (Globals->demographicFilters[filter].indexIn(targetMetadata) == -1)) | 1321 | + if (targetMetadata.isEmpty()) continue; |
| 1322 | + const QRegExp re(Globals->demographicFilters[filter]); | ||
| 1323 | + if (re.indexIn(targetMetadata) == -1) | ||
| 1323 | return -std::numeric_limits<float>::max(); | 1324 | return -std::numeric_limits<float>::max(); |
| 1324 | } | 1325 | } |
| 1325 | 1326 |
sdk/openbr_plugin.h
| @@ -496,10 +496,9 @@ public: | @@ -496,10 +496,9 @@ public: | ||
| 496 | BR_PROPERTY(bool, enrollAll, false) | 496 | BR_PROPERTY(bool, enrollAll, false) |
| 497 | 497 | ||
| 498 | /*! | 498 | /*! |
| 499 | - * \brief Keys to use when matching templates to automatically determine non-match based on template metadata. | 499 | + * \brief Regular expressions that automatically determine impostor matches based on target (gallery) template metadata. |
| 500 | */ | 500 | */ |
| 501 | - | ||
| 502 | - typedef QHash<QString,QRegExp> DemographicFilters; | 501 | + typedef QHash<QString,QString> DemographicFilters; |
| 503 | Q_PROPERTY(DemographicFilters demographicFilters READ get_demographicFilters WRITE set_demographicFilters RESET reset_demographicFilters) | 502 | Q_PROPERTY(DemographicFilters demographicFilters READ get_demographicFilters WRITE set_demographicFilters RESET reset_demographicFilters) |
| 504 | BR_PROPERTY(DemographicFilters, demographicFilters, DemographicFilters()) | 503 | BR_PROPERTY(DemographicFilters, demographicFilters, DemographicFilters()) |
| 505 | 504 |