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.
- package/README.md +10 -0
- package/build/cli/linux/camera-debug.js +0 -0
- package/build/cli/linux/linux.js +0 -0
- package/build/cli/linux/runner.js +55 -6
- package/build/cli/linux/runner.js.map +1 -1
- package/build/cli/linux/webserver/public/inference-server.js +75 -3
- package/build/cli/linux/webserver/public/inference-server.js.map +1 -1
- package/build/cli/linux/webserver/views/inference-server-view.d.ts +11 -2
- package/build/cli/linux/webserver/views/inference-server-view.js +38 -12
- package/build/cli/linux/webserver/views/inference-server-view.js.map +1 -1
- package/build/library/classifier/image-classifier.d.ts +6 -2
- package/build/library/classifier/image-classifier.js +19 -4
- package/build/library/classifier/image-classifier.js.map +1 -1
- package/cli/linux/runner.ts +68 -7
- package/cli/linux/webserver/public/assets/mobileclient.css +5 -1
- package/cli/linux/webserver/public/inference-server.js +85 -4
- package/cli/linux/webserver/views/inference-server-view.ts +51 -14
- package/package.json +4 -2
- package/build/cli/linux/webserver/escape-html-template-tag/escape.d.ts +0 -12
- package/build/cli/linux/webserver/escape-html-template-tag/escape.js +0 -59
- package/build/cli/linux/webserver/escape-html-template-tag/escape.js.map +0 -1
- package/build/cli/linux/webserver/escape-html-template-tag/index.d.ts +0 -7
- package/build/cli/linux/webserver/escape-html-template-tag/index.js +0 -24
- package/build/cli/linux/webserver/escape-html-template-tag/index.js.map +0 -1
- package/build/sdk/studio/sdk/api/organizationRequiresAdminApi.d.ts +0 -55
- package/build/sdk/studio/sdk/api/organizationRequiresAdminApi.js +0 -158
- package/build/sdk/studio/sdk/api/organizationRequiresAdminApi.js.map +0 -1
- package/build/sdk/studio/sdk/api/organizationRequiresWhitelabelAdminApi.d.ts +0 -55
- package/build/sdk/studio/sdk/api/organizationRequiresWhitelabelAdminApi.js +0 -158
- 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
|
package/build/cli/linux/linux.js
CHANGED
|
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 ' +
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
<
|
|
112
|
-
|
|
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;
|
|
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":";;;;;;AAAA,+BAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"image-classifier.js","sourceRoot":"","sources":["../../../library/classifier/image-classifier.ts"],"names":[],"mappings":"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"}
|