Commit 922ab9862c0f721d6d3a0d964a7403ef12f70c78
1 parent
f2e9bf0e
expose training data to likely
Showing
1 changed file
with
22 additions
and
2 deletions
openbr/plugins/core/likely.cpp
| ... | ... | @@ -40,8 +40,10 @@ class LikelyTransform : public Transform |
| 40 | 40 | qFatal("Failed to compile: %s", qPrintable(sourceFile)); |
| 41 | 41 | } |
| 42 | 42 | |
| 43 | - void train(const TemplateList &) | |
| 43 | + void train(const TemplateList &trainingData) | |
| 44 | 44 | { |
| 45 | + const likely_const_mat data = likelyFromOpenCVMats(trainingData.data().toVector().toStdVector()); | |
| 46 | + | |
| 45 | 47 | QByteArray sourceCode; |
| 46 | 48 | QtUtils::readFile(sourceFile, sourceCode); |
| 47 | 49 | |
| ... | ... | @@ -50,7 +52,24 @@ class LikelyTransform : public Transform |
| 50 | 52 | settings.runtime_only = true; |
| 51 | 53 | |
| 52 | 54 | likely_mat output; |
| 53 | - const likely_const_env parent = likely_standard(settings, &output, likely_file_bitcode); | |
| 55 | + likely_const_env parent = likely_standard(settings, &output, likely_file_bitcode); | |
| 56 | + | |
| 57 | + { // Construct an environment where `data` is accessible | |
| 58 | + QString source; | |
| 59 | + QTextStream textStream(&source); | |
| 60 | + textStream << "(= data ("; | |
| 61 | + { | |
| 62 | + const likely_const_mat dataType = likely_type_to_string(data->type); | |
| 63 | + textStream << dataType->data; | |
| 64 | + likely_release_mat(dataType); | |
| 65 | + } | |
| 66 | + textStream << " " << uintptr_t(data) << "))"; | |
| 67 | + | |
| 68 | + const likely_const_env env = likely_lex_parse_and_eval(qPrintable(source), likely_file_lisp, parent); | |
| 69 | + likely_release_env(parent); | |
| 70 | + parent = env; | |
| 71 | + } | |
| 72 | + | |
| 54 | 73 | likely_release_env(likely_lex_parse_and_eval(sourceCode.data(), likely_guess_file_type(qPrintable(sourceFile)), parent)); |
| 55 | 74 | likely_release_env(parent); |
| 56 | 75 | |
| ... | ... | @@ -58,6 +77,7 @@ class LikelyTransform : public Transform |
| 58 | 77 | likely_release_mat(output); |
| 59 | 78 | |
| 60 | 79 | compile(); |
| 80 | + likely_release_mat(data); | |
| 61 | 81 | } |
| 62 | 82 | |
| 63 | 83 | void project(const Template &src, Template &dst) const | ... | ... |