Commit 922ab9862c0f721d6d3a0d964a7403ef12f70c78

Authored by Josh Klontz
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,8 +40,10 @@ class LikelyTransform : public Transform
40 qFatal("Failed to compile: %s", qPrintable(sourceFile)); 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 QByteArray sourceCode; 47 QByteArray sourceCode;
46 QtUtils::readFile(sourceFile, sourceCode); 48 QtUtils::readFile(sourceFile, sourceCode);
47 49
@@ -50,7 +52,24 @@ class LikelyTransform : public Transform @@ -50,7 +52,24 @@ class LikelyTransform : public Transform
50 settings.runtime_only = true; 52 settings.runtime_only = true;
51 53
52 likely_mat output; 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 likely_release_env(likely_lex_parse_and_eval(sourceCode.data(), likely_guess_file_type(qPrintable(sourceFile)), parent)); 73 likely_release_env(likely_lex_parse_and_eval(sourceCode.data(), likely_guess_file_type(qPrintable(sourceFile)), parent));
55 likely_release_env(parent); 74 likely_release_env(parent);
56 75
@@ -58,6 +77,7 @@ class LikelyTransform : public Transform @@ -58,6 +77,7 @@ class LikelyTransform : public Transform
58 likely_release_mat(output); 77 likely_release_mat(output);
59 78
60 compile(); 79 compile();
  80 + likely_release_mat(data);
61 } 81 }
62 82
63 void project(const Template &src, Template &dst) const 83 void project(const Template &src, Template &dst) const