edge-impulse-linux 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +10 -0
  2. package/build/cli/linux/camera-debug.js +0 -0
  3. package/build/cli/linux/linux.js +0 -0
  4. package/build/cli/linux/runner.js +55 -6
  5. package/build/cli/linux/runner.js.map +1 -1
  6. package/build/cli/linux/webserver/public/inference-server.js +75 -3
  7. package/build/cli/linux/webserver/public/inference-server.js.map +1 -1
  8. package/build/cli/linux/webserver/views/inference-server-view.d.ts +11 -2
  9. package/build/cli/linux/webserver/views/inference-server-view.js +38 -12
  10. package/build/cli/linux/webserver/views/inference-server-view.js.map +1 -1
  11. package/build/library/classifier/image-classifier.d.ts +6 -2
  12. package/build/library/classifier/image-classifier.js +19 -4
  13. package/build/library/classifier/image-classifier.js.map +1 -1
  14. package/cli/linux/runner.ts +68 -7
  15. package/cli/linux/webserver/public/assets/mobileclient.css +5 -1
  16. package/cli/linux/webserver/public/inference-server.js +85 -4
  17. package/cli/linux/webserver/views/inference-server-view.ts +51 -14
  18. package/package.json +4 -2
  19. package/build/cli/linux/webserver/escape-html-template-tag/escape.d.ts +0 -12
  20. package/build/cli/linux/webserver/escape-html-template-tag/escape.js +0 -59
  21. package/build/cli/linux/webserver/escape-html-template-tag/escape.js.map +0 -1
  22. package/build/cli/linux/webserver/escape-html-template-tag/index.d.ts +0 -7
  23. package/build/cli/linux/webserver/escape-html-template-tag/index.js +0 -24
  24. package/build/cli/linux/webserver/escape-html-template-tag/index.js.map +0 -1
  25. package/build/sdk/studio/sdk/api/organizationRequiresAdminApi.d.ts +0 -55
  26. package/build/sdk/studio/sdk/api/organizationRequiresAdminApi.js +0 -158
  27. package/build/sdk/studio/sdk/api/organizationRequiresAdminApi.js.map +0 -1
  28. package/build/sdk/studio/sdk/api/organizationRequiresWhitelabelAdminApi.d.ts +0 -55
  29. package/build/sdk/studio/sdk/api/organizationRequiresWhitelabelAdminApi.js +0 -158
  30. package/build/sdk/studio/sdk/api/organizationRequiresWhitelabelAdminApi.js.map +0 -1
package/README.md CHANGED
@@ -87,3 +87,13 @@ let res = await runner.classify(features);
87
87
  // run the filter
88
88
  let filteredRes = movingAverageFilter.run(res);
89
89
  ```
90
+
91
+ ## Development tips
92
+
93
+ ### Auto-reload the runner
94
+
95
+ If you're working on something in the runner, and want to auto-recompile on changes; start with:
96
+
97
+ ```
98
+ npm run watch-runner -- "--model-file /Users/yourname/Downloads/yourmodel-v36.eim --run-http-server 1338"
99
+ ```
File without changes
File without changes
@@ -497,22 +497,42 @@ function startApiServer(model, runner, projectStudioUrl, port) {
497
497
  text = text.concat([
498
498
  `curl -v -X POST -H "Content-Type: application/json" -d '{"features": [5, 10, 15, 20]}' http://localhost:${port}/api/features`,
499
499
  '',
500
- '(Expecting ' + runner.getModel().modelParameters.input_features_count + ' features for this model)',
500
+ '(Expecting ' + model.modelParameters.input_features_count + ' features for this model)',
501
501
  ]);
502
502
  }
503
+ let modelVm;
504
+ if (model.modelParameters.sensorType === 'camera') {
505
+ modelVm = {
506
+ mode: 'image',
507
+ width: model.modelParameters.image_input_width,
508
+ height: model.modelParameters.image_input_height,
509
+ depth: model.modelParameters.image_channel_count === 3 ? 'RGB' : 'Grayscale',
510
+ isObjectDetection: model.modelParameters.model_type === 'constrained_object_detection' ||
511
+ model.modelParameters.model_type === 'object_detection',
512
+ };
513
+ }
514
+ else {
515
+ modelVm = {
516
+ mode: 'features',
517
+ featuresCount: model.modelParameters.input_features_count,
518
+ };
519
+ }
503
520
  const view = inference_server_view_1.renderInferenceServerView({
504
521
  owner: model.project.owner,
505
522
  projectName: model.project.name,
506
523
  projectVersion: model.project.deploy_version,
507
- featuresCount: runner.getModel().modelParameters.input_features_count,
508
- mode: model.modelParameters.sensorType === 'camera' ? 'image' : 'features',
509
524
  serverPort: port,
510
525
  studioLink: projectStudioUrl,
526
+ model: modelVm,
511
527
  });
512
528
  res.status(200);
513
529
  res.header('Content-Type', 'text/html');
514
530
  res.end(view.toString());
515
531
  }));
532
+ app.get('/api/info', asyncMiddleware_1.asyncMiddleware(async (req, res) => {
533
+ res.header('Content-Type', 'application/json');
534
+ res.end(JSON.stringify(model, null, 4) + '\n');
535
+ }));
516
536
  app.post('/api/features', asyncMiddleware_1.asyncMiddleware(async (req, res) => {
517
537
  const body = req.body;
518
538
  try {
@@ -545,7 +565,7 @@ function startApiServer(model, runner, projectStudioUrl, port) {
545
565
  res.end(JSON.stringify(response, null, 4) + '\n');
546
566
  }));
547
567
  app.post('/api/image', asyncMiddleware_1.asyncMiddleware(async (req, res) => {
548
- let features;
568
+ let resized;
549
569
  try {
550
570
  const multipartUpload = multer_1.default({ limits: { files: 1, fileSize: 100 * 1024 * 1024 } });
551
571
  const fields = [{ name: "file", maxCount: 1 }];
@@ -565,7 +585,7 @@ function startApiServer(model, runner, projectStudioUrl, port) {
565
585
  }
566
586
  console.log(RUNNER_PREFIX, 'Incoming inference request (/api/image) for ' +
567
587
  (file.originalname || 'a file with size ' + file.size + ' bytes'));
568
- features = (await image_classifier_1.ImageClassifier.resizeImage(model, file.buffer)).features;
588
+ resized = (await image_classifier_1.ImageClassifier.resizeImage(model, file.buffer, 'contain'));
569
589
  }
570
590
  catch (ex2) {
571
591
  const ex = ex2;
@@ -573,7 +593,36 @@ function startApiServer(model, runner, projectStudioUrl, port) {
573
593
  res.header('Content-Type', 'text/plain');
574
594
  return res.end(ex.message || ex.toString() + '\n');
575
595
  }
576
- let response = await runner.classify(features);
596
+ let response = await runner.classify(resized.features);
597
+ let origFactor = resized.originalWidth / resized.originalHeight;
598
+ let newFactor = resized.newWidth / resized.newHeight;
599
+ let factor;
600
+ let offsetX;
601
+ let offsetY;
602
+ if (origFactor > newFactor) {
603
+ // boxed in with bands top/bottom
604
+ factor = resized.newWidth / resized.originalWidth;
605
+ offsetX = 0;
606
+ offsetY = (resized.newHeight - (resized.originalHeight * factor)) / 2;
607
+ }
608
+ else if (origFactor < newFactor) {
609
+ // boxed in with bands left/right
610
+ factor = resized.newHeight / resized.originalHeight;
611
+ offsetX = (resized.newWidth - (resized.originalWidth * factor)) / 2;
612
+ offsetY = 0;
613
+ }
614
+ else {
615
+ // image was already at the right aspect ratio
616
+ offsetX = 0;
617
+ offsetY = 0;
618
+ factor = resized.newWidth / resized.originalWidth;
619
+ }
620
+ for (const bb of response.result.bounding_boxes || []) {
621
+ bb.x = Math.round((bb.x / factor) - (offsetX / factor));
622
+ bb.width = Math.round((bb.width / factor));
623
+ bb.y = Math.round((bb.y / factor) - (offsetY / factor));
624
+ bb.height = Math.round((bb.height / factor));
625
+ }
577
626
  res.header('Content-Type', 'application/json');
578
627
  res.end(JSON.stringify(response, null, 4) + '\n');
579
628
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../cli/linux/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../cli/linux/runner.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,16 @@ window.InferenceServer = async () => {
6
6
  runInferenceBtn: document.querySelector('#run-inference'),
7
7
  resultSection: document.querySelector('#result-section'),
8
8
  resultSectionPre: document.querySelector('#result-section pre'),
9
+ previewSection: document.querySelector('#preview-section'),
10
+ previewSectionImgContainer: document.querySelector('#preview-image-container'),
11
+ previewSectionImg: document.querySelector('#preview-section img'),
9
12
  features: document.querySelector('#features'),
10
13
  };
14
+ const colors = [
15
+ '#e6194B', '#3cb44b', '#ffe119', '#4363d8', '#f58231', '#42d4f4', '#f032e6', '#fabed4',
16
+ '#469990', '#dcbeff', '#9A6324', '#fffac8', '#800000', '#aaffc3',
17
+ ];
18
+ const labelToColor = {};
11
19
  if (els.uploadFile) {
12
20
  els.uploadFile.oninput = () => {
13
21
  if (els.uploadFile.files.length > 0) {
@@ -75,14 +83,78 @@ window.InferenceServer = async () => {
75
83
  throw new Error('Could not find either upload or features elements');
76
84
  }
77
85
  const text = await resp.text();
86
+ let body;
78
87
  try {
79
- const body = JSON.parse(text);
80
- els.resultSection.style.display = '';
81
- els.resultSectionPre.textContent = JSON.stringify(body, null, 4);
88
+ body = JSON.parse(text);
82
89
  }
83
90
  catch (ex) {
84
91
  throw new Error(text);
85
92
  }
93
+ if (els.uploadFile && body.result.bounding_boxes) {
94
+ els.previewSection.style.display = '';
95
+ const dataUrl = await new Promise((resolve, reject) => {
96
+ const reader = new FileReader();
97
+ reader.onload = e => {
98
+ resolve(e.target.result);
99
+ };
100
+ reader.onerror = err => {
101
+ reject(err);
102
+ };
103
+ reader.readAsDataURL(els.uploadFile.files[0]);
104
+ });
105
+ els.previewSectionImg.src = dataUrl;
106
+ const result = body.result;
107
+ let factor = 1;
108
+ for (let oldEl of els.previewSectionImgContainer.querySelectorAll('.bounding-box-container')) {
109
+ oldEl.parentNode.removeChild(oldEl);
110
+ }
111
+ for (let b of result.bounding_boxes) {
112
+ let bb = {
113
+ x: b.x / factor,
114
+ y: b.y / factor,
115
+ width: b.width / factor,
116
+ height: b.height / factor,
117
+ label: b.label,
118
+ value: b.value
119
+ };
120
+ if (!labelToColor[bb.label]) {
121
+ labelToColor[bb.label] = colors[0];
122
+ colors.splice(0, 1);
123
+ }
124
+ let color = labelToColor[bb.label];
125
+ let el = document.createElement('div');
126
+ el.classList.add('bounding-box-container');
127
+ el.style.position = 'absolute';
128
+ el.style.border = 'solid 3px ' + color;
129
+ // if (modelType === 'object_detection') {
130
+ el.style.width = (bb.width) + 'px';
131
+ el.style.height = (bb.height) + 'px';
132
+ el.style.left = (bb.x) + 'px';
133
+ el.style.top = (bb.y) + 'px';
134
+ // }
135
+ // else if (modelType === 'constrained_object_detection') {
136
+ // let centerX = bb.x + (bb.width / 2);
137
+ // let centerY = bb.y + (bb.height / 2);
138
+ // el.style.borderRadius = '10px';
139
+ // el.style.width = 20 + 'px';
140
+ // el.style.height = 20 + 'px';
141
+ // el.style.left = (centerX - 10) + 'px';
142
+ // el.style.top = (centerY - 10) + 'px';
143
+ // }
144
+ let label = document.createElement('div');
145
+ label.classList.add('bounding-box-label');
146
+ label.style.background = color;
147
+ label.textContent = bb.label + ' (' + bb.value.toFixed(2) + ')';
148
+ el.style.whiteSpace = 'nowrap';
149
+ el.appendChild(label);
150
+ els.previewSectionImgContainer.appendChild(el);
151
+ }
152
+ }
153
+ else {
154
+ els.previewSection.style.display = 'none';
155
+ }
156
+ els.resultSection.style.display = '';
157
+ els.resultSectionPre.textContent = JSON.stringify(body, null, 4);
86
158
  }
87
159
  catch (ex) {
88
160
  alert('Failed to run inference: ' + (ex.message || ex.toString()));
@@ -1 +1 @@
1
- {"version":3,"file":"inference-server.js","sourceRoot":"","sources":["../../../../../cli/linux/webserver/public/inference-server.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inference-server.js","sourceRoot":"","sources":["../../../../../cli/linux/webserver/public/inference-server.js"],"names":[],"mappings":"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"}
@@ -1,10 +1,19 @@
1
+ export declare type InferenceServerModelViewModel = {
2
+ mode: 'features';
3
+ featuresCount: number;
4
+ } | {
5
+ mode: 'image';
6
+ width: number;
7
+ height: number;
8
+ depth: 'Grayscale' | 'RGB';
9
+ isObjectDetection: boolean;
10
+ };
1
11
  export declare type InferenceServerViewModel = {
2
12
  studioLink: string;
3
13
  owner: string;
4
14
  projectName: string;
5
15
  projectVersion: number;
6
16
  serverPort: number;
7
- featuresCount: number;
8
- mode: 'features' | 'image';
17
+ model: InferenceServerModelViewModel;
9
18
  };
10
19
  export declare const renderInferenceServerView: (vm: InferenceServerViewModel) => import("./escape-html-template-tag/escape").HtmlSafeString;
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.renderInferenceServerView = void 0;
7
7
  const escape_html_template_tag_1 = __importDefault(require("./escape-html-template-tag"));
8
8
  exports.renderInferenceServerView = (vm) => {
9
+ let resultsColClass = `col-12`;
10
+ if (vm.model.mode === 'image' && vm.model.isObjectDetection) {
11
+ resultsColClass = `col-12 col-lg-6`;
12
+ }
9
13
  return escape_html_template_tag_1.default `<!DOCTYPE html>
10
14
  <html>
11
15
 
@@ -58,24 +62,35 @@ exports.renderInferenceServerView = (vm) => {
58
62
  <h4>Model information</h4>
59
63
  </div>
60
64
  </div>
65
+ <div class="mb-2 text-sm">
66
+ Inference server for "<a href="${vm.studioLink}" target="_blank">${vm.owner} / ${vm.projectName}</a>" (v${vm.projectVersion}).
67
+ </div>
68
+ <div class="row card-sub-header border-bottom">
69
+ <div class="col">
70
+ <h4>Get model info</h4>
71
+ </div>
72
+ </div>
61
73
  <div class="mb-3 text-sm">
62
- Inference server for "<a href="${vm.studioLink}" target="_blank">${vm.owner} / ${vm.projectName}</a>" (v${vm.projectVersion})
74
+ <code>curl -v -X GET http://localhost:${vm.serverPort}/api/info</code>
63
75
  </div>
64
76
  <div class="row card-sub-header border-bottom">
65
77
  <div class="col">
66
78
  <h4>How to run inference</h4>
67
79
  </div>
68
80
  </div>
69
- ${vm.mode === 'image' ? escape_html_template_tag_1.default `
81
+ ${vm.model.mode === 'image' ? escape_html_template_tag_1.default `
70
82
  <div class="mb-3 text-sm">
71
83
  <code>curl -v -X POST -F 'file=@path-to-an-image.jpg' http://localhost:${vm.serverPort}/api/image</code>
72
84
  </div>
85
+ <div class="mb-4 text-xs">
86
+ (Expecting a ${vm.model.width} x ${vm.model.height} (${vm.model.depth}) image, images in other resolutions will be resized)
87
+ </div>
73
88
  ` : escape_html_template_tag_1.default `
74
89
  <div class="mb-3 text-sm">
75
90
  <code>curl -v -X POST -H "Content-Type: application/json" -d '{"features": [5, 10, 15, 20]}' http://localhost:${vm.serverPort}/api/features</code>
76
91
  </div>
77
92
  <div class="mb-4 text-xs">
78
- (Expecting ${vm.featuresCount} features for this model)
93
+ (Expecting ${vm.model.featuresCount} features for this model)
79
94
  </div>
80
95
  `}
81
96
  </div>
@@ -84,16 +99,16 @@ exports.renderInferenceServerView = (vm) => {
84
99
  <div class="card-body text-left mb--3">
85
100
  <div class="row card-sub-header border-bottom mt--2">
86
101
  <div class="col">
87
- <h4>Try it out</h4>
102
+ <h4>Try out inferencing</h4>
88
103
  </div>
89
104
  </div>
90
- ${vm.mode === 'image' ? escape_html_template_tag_1.default `
105
+ ${vm.model.mode === 'image' ? escape_html_template_tag_1.default `
91
106
  <div class="mb-3">
92
107
  <input type="file" class="form-control form-control-sm border-0 px-0" id="upload-file">
93
108
  </div>
94
109
  ` : escape_html_template_tag_1.default `
95
110
  <div class="mb-2 text-sm">
96
- Enter ${vm.featuresCount} features, split by ',' - for example from "Live classification".
111
+ Enter ${vm.model.featuresCount} features, split by ',' - for example from "Live classification".
97
112
  </div>
98
113
  <div class="mb-3">
99
114
  <input class="form-control form-control-sm" id="features" placeholder="0, 0, 0, 0, ...">
@@ -102,14 +117,25 @@ exports.renderInferenceServerView = (vm) => {
102
117
  <div class="mb-3">
103
118
  <button class="btn-sm btn btn-primary" id="run-inference" disabled>Run inference</button>
104
119
  </div>
105
- <section id="result-section" style="display: none">
106
- <div class="row card-sub-header border-bottom">
107
- <div class="col">
108
- <h4>Result</h4>
120
+
121
+ <div class="row mb-3" id="result-section" style="display: none">
122
+ <div class="${resultsColClass}">
123
+ <div class="row card-sub-header border-bottom">
124
+ <div class="col">
125
+ <h4>Result</h4>
126
+ </div>
109
127
  </div>
128
+ <pre class="text-xs mb-0">Bleep bloop</pre>
110
129
  </div>
111
- <pre class="mb-3 text-xs">Bleep bloop</pre>
112
- </section>
130
+ <div id="preview-section" class="${resultsColClass}" style="display: none">
131
+ <div class="row card-sub-header border-bottom">
132
+ <div class="col">
133
+ <h4>Preview</h4>
134
+ </div>
135
+ </div>
136
+ <div id="preview-image-container" class="mt-3"><img id="preview-image"></img></div>
137
+ </div>
138
+ </div>
113
139
  </div>
114
140
  </div>
115
141
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"inference-server-view.js","sourceRoot":"","sources":["../../../../../cli/linux/webserver/views/inference-server-view.ts"],"names":[],"mappings":";;;;;;AAAA,0FAA8C;AAYjC,QAAA,yBAAyB,GAAG,CAAC,EAA4B,EAAE,EAAE;IACtE,OAAO,kCAAI,CAAA;;;;;iBAKE,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,WAAW,MAAM,EAAE,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEAgDH,EAAE,CAAC,UAAU,qBAAqB,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,WAAW,WAAW,EAAE,CAAC,cAAc;;;;;;;8BAO7H,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,kCAAI,CAAA;;yGAEiD,EAAE,CAAC,UAAU;;6BAEzF,CAAC,CAAC,CAAC,kCAAI,CAAA;;gJAE4G,EAAE,CAAC,UAAU;;;6CAGhH,EAAE,CAAC,aAAa;;6BAEhC;;;;;;;;;;8BAUC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,kCAAI,CAAA;;;;6BAI3B,CAAC,CAAC,CAAC,kCAAI,CAAA;;wCAEI,EAAE,CAAC,aAAa;;;;;6BAK3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmCxB,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"inference-server-view.js","sourceRoot":"","sources":["../../../../../cli/linux/webserver/views/inference-server-view.ts"],"names":[],"mappings":";;;;;;AAAA,0FAA8C;AAsBjC,QAAA,yBAAyB,GAAG,CAAC,EAA4B,EAAE,EAAE;IACtE,IAAI,eAAe,GAAG,QAAQ,CAAC;IAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE;QACzD,eAAe,GAAG,iBAAiB,CAAC;KACvC;IAED,OAAO,kCAAI,CAAA;;;;;iBAKE,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,WAAW,MAAM,EAAE,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEAgDH,EAAE,CAAC,UAAU,qBAAqB,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,WAAW,WAAW,EAAE,CAAC,cAAc;;;;;;;;wEAQnF,EAAE,CAAC,UAAU;;;;;;;8BAOvD,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,kCAAI,CAAA;;yGAE2C,EAAE,CAAC,UAAU;;;+CAGvE,EAAE,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK;;6BAExE,CAAC,CAAC,CAAC,kCAAI,CAAA;;gJAE4G,EAAE,CAAC,UAAU;;;6CAGhH,EAAE,CAAC,KAAK,CAAC,aAAa;;6BAEtC;;;;;;;;;;8BAUC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,kCAAI,CAAA;;;;6BAIjC,CAAC,CAAC,CAAC,kCAAI,CAAA;;wCAEI,EAAE,CAAC,KAAK,CAAC,aAAa;;;;;6BAKjC;;;;;;8CAMiB,eAAe;;;;;;;;mEAQM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgC7E,CAAC;AACN,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from "tsee";
3
3
  import { LinuxImpulseRunner, ModelInformation, RunnerClassifyResponseSuccess } from "./linux-impulse-runner";
4
- import sharp from 'sharp';
4
+ import sharp, { FitEnum } from 'sharp';
5
5
  import { ICamera } from "../sensors/icamera";
6
6
  export declare class ImageClassifier extends EventEmitter<{
7
7
  result: (result: RunnerClassifyResponseSuccess, timeMs: number, imgAsJpeg: Buffer) => void;
@@ -24,8 +24,12 @@ export declare class ImageClassifier extends EventEmitter<{
24
24
  * Stop the classifier
25
25
  */
26
26
  stop(): Promise<void>;
27
- static resizeImage(model: ModelInformation, data: Buffer): Promise<{
27
+ static resizeImage(model: ModelInformation, data: Buffer, fitMethod?: keyof FitEnum): Promise<{
28
28
  img: sharp.Sharp;
29
29
  features: number[];
30
+ originalWidth: number;
31
+ originalHeight: number;
32
+ newWidth: number;
33
+ newHeight: number;
30
34
  }>;
31
35
  }
@@ -90,7 +90,14 @@ class ImageClassifier extends tsee_1.EventEmitter {
90
90
  this._runner.stop()
91
91
  ]);
92
92
  }
93
- static async resizeImage(model, data) {
93
+ static async resizeImage(model, data, fitMethod) {
94
+ const metadata = await sharp_1.default(data).metadata();
95
+ if (!metadata.width) {
96
+ throw new Error('ImageClassifier.resize: cannot determine width of image');
97
+ }
98
+ if (!metadata.height) {
99
+ throw new Error('ImageClassifier.resize: cannot determine height of image');
100
+ }
94
101
  // resize image and add to frameQueue
95
102
  let img;
96
103
  let features = [];
@@ -98,7 +105,8 @@ class ImageClassifier extends tsee_1.EventEmitter {
98
105
  img = sharp_1.default(data).resize({
99
106
  height: model.modelParameters.image_input_height,
100
107
  width: model.modelParameters.image_input_width,
101
- });
108
+ fit: fitMethod,
109
+ }).removeAlpha();
102
110
  let buffer = await img.raw().toBuffer();
103
111
  for (let ix = 0; ix < buffer.length; ix += 3) {
104
112
  let r = buffer[ix + 0];
@@ -111,7 +119,8 @@ class ImageClassifier extends tsee_1.EventEmitter {
111
119
  else {
112
120
  img = sharp_1.default(data).resize({
113
121
  height: model.modelParameters.image_input_height,
114
- width: model.modelParameters.image_input_width
122
+ width: model.modelParameters.image_input_width,
123
+ fit: fitMethod,
115
124
  }).toColourspace('b-w');
116
125
  let buffer = await img.raw().toBuffer();
117
126
  for (let p of buffer) {
@@ -119,9 +128,15 @@ class ImageClassifier extends tsee_1.EventEmitter {
119
128
  features.push((p << 16) + (p << 8) + p);
120
129
  }
121
130
  }
131
+ // await fs.promises.writeFile('debug.png', await img.png().toBuffer());
132
+ // await fs.promises.writeFile('features.txt', features.map(x => '0x' + x.toString(16)).join(', '), 'utf-8');
122
133
  return {
123
134
  img: img,
124
- features: features
135
+ features: features,
136
+ originalWidth: metadata.width,
137
+ originalHeight: metadata.height,
138
+ newWidth: model.modelParameters.image_input_width,
139
+ newHeight: model.modelParameters.image_input_height,
125
140
  };
126
141
  }
127
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image-classifier.js","sourceRoot":"","sources":["../../../library/classifier/image-classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-classifier.js","sourceRoot":"","sources":["../../../library/classifier/image-classifier.ts"],"names":[],"mappings":"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"}