edge-impulse-linux 1.16.2 → 1.17.2

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 (84) hide show
  1. package/build/cli/linux/linux.js +1 -0
  2. package/build/cli/linux/linux.js.map +1 -1
  3. package/build/cli/linux/runner-profiling.d.ts +10 -0
  4. package/build/cli/linux/runner-profiling.js +72 -0
  5. package/build/cli/linux/runner-profiling.js.map +1 -0
  6. package/build/cli/linux/runner-utils.d.ts +1 -0
  7. package/build/cli/linux/runner-utils.js +83 -79
  8. package/build/cli/linux/runner-utils.js.map +1 -1
  9. package/build/cli/linux/runner.js +57 -8
  10. package/build/cli/linux/runner.js.map +1 -1
  11. package/build/cli/linux/webserver/public/inference-server.js +92 -83
  12. package/build/cli/linux/webserver/public/inference-server.js.map +1 -1
  13. package/build/cli/linux/webserver/public/webserver.js +124 -17
  14. package/build/cli/linux/webserver/public/webserver.js.map +1 -1
  15. package/build/cli/linux/webserver/views/index.js +5 -3
  16. package/build/cli/linux/webserver/views/index.js.map +1 -1
  17. package/build/cli-common/model-monitor.d.ts +1 -2
  18. package/build/cli-common/model-monitor.js +5 -5
  19. package/build/cli-common/model-monitor.js.map +1 -1
  20. package/build/cli-common/remote-mgmt-service.d.ts +1 -1
  21. package/build/library/async-pool.d.ts +1 -0
  22. package/build/library/async-pool.js +21 -0
  23. package/build/library/async-pool.js.map +1 -0
  24. package/build/library/classifier/image-classifier.d.ts +16 -3
  25. package/build/library/classifier/image-classifier.js +38 -8
  26. package/build/library/classifier/image-classifier.js.map +1 -1
  27. package/build/library/classifier/libcwrapper.d.ts +26 -0
  28. package/build/library/classifier/libcwrapper.js +37 -0
  29. package/build/library/classifier/libcwrapper.js.map +1 -0
  30. package/build/library/classifier/linux-impulse-runner-types.d.ts +177 -0
  31. package/build/library/classifier/linux-impulse-runner-types.js +28 -0
  32. package/build/library/classifier/linux-impulse-runner-types.js.map +1 -0
  33. package/build/library/classifier/linux-impulse-runner.d.ts +15 -125
  34. package/build/library/classifier/linux-impulse-runner.js +154 -46
  35. package/build/library/classifier/linux-impulse-runner.js.map +1 -1
  36. package/build/library/classifier/valgrind-suppression.d.ts +1 -0
  37. package/build/library/classifier/valgrind-suppression.js +64 -0
  38. package/build/library/classifier/valgrind-suppression.js.map +1 -0
  39. package/build/library/moving-average-filter.d.ts +1 -1
  40. package/build/library/sensors/gstreamer.d.ts +12 -5
  41. package/build/library/sensors/gstreamer.js +217 -66
  42. package/build/library/sensors/gstreamer.js.map +1 -1
  43. package/build/library/sensors/icamera.d.ts +3 -1
  44. package/build/library/sensors/imagesnap.d.ts +2 -0
  45. package/build/library/sensors/imagesnap.js +2 -0
  46. package/build/library/sensors/imagesnap.js.map +1 -1
  47. package/build/library/sensors/prophesee.d.ts +2 -0
  48. package/build/library/sensors/prophesee.js +1 -0
  49. package/build/library/sensors/prophesee.js.map +1 -1
  50. package/build/library/sensors/sensors-helper.d.ts +1 -0
  51. package/build/library/sensors/sensors-helper.js +1 -1
  52. package/build/library/sensors/sensors-helper.js.map +1 -1
  53. package/build/sdk/studio/sdk/api/classifyApi.d.ts +64 -0
  54. package/build/sdk/studio/sdk/api/classifyApi.js +128 -0
  55. package/build/sdk/studio/sdk/api/classifyApi.js.map +1 -1
  56. package/build/sdk/studio/sdk/api/rawDataApi.d.ts +55 -1
  57. package/build/sdk/studio/sdk/api/rawDataApi.js +166 -1
  58. package/build/sdk/studio/sdk/api/rawDataApi.js.map +1 -1
  59. package/build/sdk/studio/sdk/api/testApi.d.ts +16 -0
  60. package/build/sdk/studio/sdk/api/testApi.js +90 -0
  61. package/build/sdk/studio/sdk/api/testApi.js.map +1 -1
  62. package/build/sdk/studio/sdk/model/batchEditBoundingBoxesRequest.d.ts +32 -0
  63. package/build/sdk/studio/sdk/model/batchEditBoundingBoxesRequest.js +34 -0
  64. package/build/sdk/studio/sdk/model/batchEditBoundingBoxesRequest.js.map +1 -0
  65. package/build/sdk/studio/sdk/model/models.d.ts +2 -0
  66. package/build/sdk/studio/sdk/model/models.js +6 -0
  67. package/build/sdk/studio/sdk/model/models.js.map +1 -1
  68. package/build/sdk/studio/sdk/model/permission.d.ts +1 -1
  69. package/build/sdk/studio/sdk/model/permission.js +1 -1
  70. package/build/sdk/studio/sdk/model/permission.js.map +1 -1
  71. package/build/sdk/studio/sdk/model/uploadVersionArchiveRequest.d.ts +34 -0
  72. package/build/sdk/studio/sdk/model/uploadVersionArchiveRequest.js +29 -0
  73. package/build/sdk/studio/sdk/model/uploadVersionArchiveRequest.js.map +1 -0
  74. package/build/shared/views/project/bounding-box-scaling.d.ts +66 -0
  75. package/build/shared/views/project/bounding-box-scaling.js +155 -0
  76. package/build/shared/views/project/bounding-box-scaling.js.map +1 -0
  77. package/cli/linux/webserver/public/assets/mobileclient.css +31 -3
  78. package/cli/linux/webserver/public/inference-server.js +100 -89
  79. package/cli/linux/webserver/public/webserver.js +136 -17
  80. package/examples/js/classify-camera.js +1 -3
  81. package/examples/ts/classify-camera.ts +1 -3
  82. package/package.json +2 -1
  83. package/test/gstreamer.test.ts +28 -23
  84. package/examples/ts/classify-custom-from-test.ts +0 -96
@@ -0,0 +1,177 @@
1
+ export type RunnerErrorResponse = {
2
+ success: false;
3
+ error: string;
4
+ };
5
+ export type RunnerHelloRequest = {
6
+ hello: 1;
7
+ };
8
+ export declare enum RunnerHelloHasAnomaly {
9
+ None = 0,
10
+ KMeans = 1,
11
+ GMM = 2,
12
+ VisualGMM = 3,
13
+ VisualPatchcore = 4
14
+ }
15
+ export declare enum RunnerHelloInferencingEngine {
16
+ None = 255,
17
+ Utensor = 1,
18
+ Tflite = 2,
19
+ Cubeai = 3,
20
+ TfliteFull = 4,
21
+ TensaiFlow = 5,
22
+ TensorRT = 6,
23
+ Drpai = 7,
24
+ TfliteTidl = 8,
25
+ Akida = 9,
26
+ Syntiant = 10,
27
+ OnnxTidl = 11,
28
+ Memryx = 12
29
+ }
30
+ export type RunnerHelloResponseModelParameters = {
31
+ axis_count: number;
32
+ frequency: number;
33
+ has_anomaly: RunnerHelloHasAnomaly;
34
+ /**
35
+ * NOTE: This field is _experimental_. It might change when object tracking
36
+ * is released publicly.
37
+ */
38
+ has_object_tracking?: boolean;
39
+ input_features_count: number;
40
+ image_input_height: number;
41
+ image_input_width: number;
42
+ image_input_frames: number;
43
+ image_channel_count: number;
44
+ image_resize_mode?: 'none' | 'fit-shortest' | 'fit-longest' | 'squash';
45
+ interval_ms: number;
46
+ label_count: number;
47
+ sensor: number;
48
+ labels: string[];
49
+ model_type: 'classification' | 'object_detection' | 'constrained_object_detection';
50
+ slice_size: undefined | number;
51
+ use_continuous_mode: undefined | boolean;
52
+ inferencing_engine?: undefined | RunnerHelloInferencingEngine;
53
+ thresholds: ({
54
+ id: number;
55
+ type: 'anomaly_gmm';
56
+ min_anomaly_score: number;
57
+ } | {
58
+ id: number;
59
+ type: 'object_detection';
60
+ min_score: number;
61
+ } | {
62
+ id: number;
63
+ type: 'object_tracking';
64
+ keep_grace: number;
65
+ max_observations: number;
66
+ threshold: number;
67
+ })[] | undefined;
68
+ };
69
+ export type RunnerHelloResponseProject = {
70
+ deploy_version: number;
71
+ id: number;
72
+ name: string;
73
+ owner: string;
74
+ };
75
+ export type RunnerHelloResponseInferencingEngine = {
76
+ inferencing_engine?: undefined | RunnerHelloInferencingEngine;
77
+ properties?: undefined | string[];
78
+ };
79
+ export type RunnerHelloResponse = {
80
+ features_shm?: {
81
+ name: string;
82
+ size_bytes: number;
83
+ type: 'float32';
84
+ elements: number;
85
+ };
86
+ features_shm_error?: string;
87
+ model_parameters: RunnerHelloResponseModelParameters;
88
+ project: RunnerHelloResponseProject;
89
+ inferencing_engine: RunnerHelloResponseInferencingEngine;
90
+ success: true;
91
+ } | RunnerErrorResponse;
92
+ export type RunnerClassifyRequest = {
93
+ classify: number[];
94
+ } | {
95
+ classify_shm: {
96
+ elements: number;
97
+ };
98
+ };
99
+ export type RunnerClassifyContinuousRequest = {
100
+ classify_continuous: number[];
101
+ } | {
102
+ classify_continuous_shm: {
103
+ elements: number;
104
+ };
105
+ };
106
+ export type RunnerClassifyResponseSuccess = {
107
+ result: {
108
+ classification?: {
109
+ [k: string]: number;
110
+ };
111
+ bounding_boxes?: {
112
+ label: string;
113
+ value: number;
114
+ x: number;
115
+ y: number;
116
+ width: number;
117
+ height: number;
118
+ }[];
119
+ /**
120
+ * NOTE: This field is _experimental_. It might change when object tracking
121
+ * is released publicly.
122
+ */
123
+ object_tracking?: {
124
+ object_id: number;
125
+ label: string;
126
+ value: number;
127
+ x: number;
128
+ y: number;
129
+ width: number;
130
+ height: number;
131
+ }[];
132
+ visual_anomaly_grid?: {
133
+ label: string;
134
+ value: number;
135
+ x: number;
136
+ y: number;
137
+ width: number;
138
+ height: number;
139
+ }[];
140
+ visual_anomaly_max?: number;
141
+ visual_anomaly_mean?: number;
142
+ anomaly?: number;
143
+ };
144
+ timing: {
145
+ dsp: number;
146
+ classification: number;
147
+ anomaly: number;
148
+ };
149
+ info?: string;
150
+ };
151
+ export type RunnerClassifyResponse = ({
152
+ success: true;
153
+ } & RunnerClassifyResponseSuccess) | RunnerErrorResponse;
154
+ export type RunnerSetThresholdRequest = {
155
+ set_threshold: {
156
+ id: number;
157
+ min_anomaly_score: number;
158
+ } | {
159
+ id: number;
160
+ min_score: number;
161
+ } | {
162
+ id: number;
163
+ keep_grace: number;
164
+ max_observations: number;
165
+ threshold: number;
166
+ };
167
+ };
168
+ export type RunnerSetThresholdResponse = {
169
+ success: true;
170
+ } | RunnerErrorResponse;
171
+ export type ModelInformation = {
172
+ project: RunnerHelloResponseProject;
173
+ modelParameters: RunnerHelloResponseModelParameters & {
174
+ sensorType: 'unknown' | 'accelerometer' | 'microphone' | 'camera' | 'positional';
175
+ };
176
+ inferencingEngine: RunnerHelloResponseInferencingEngine;
177
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunnerHelloInferencingEngine = exports.RunnerHelloHasAnomaly = void 0;
4
+ var RunnerHelloHasAnomaly;
5
+ (function (RunnerHelloHasAnomaly) {
6
+ RunnerHelloHasAnomaly[RunnerHelloHasAnomaly["None"] = 0] = "None";
7
+ RunnerHelloHasAnomaly[RunnerHelloHasAnomaly["KMeans"] = 1] = "KMeans";
8
+ RunnerHelloHasAnomaly[RunnerHelloHasAnomaly["GMM"] = 2] = "GMM";
9
+ RunnerHelloHasAnomaly[RunnerHelloHasAnomaly["VisualGMM"] = 3] = "VisualGMM";
10
+ RunnerHelloHasAnomaly[RunnerHelloHasAnomaly["VisualPatchcore"] = 4] = "VisualPatchcore";
11
+ })(RunnerHelloHasAnomaly = exports.RunnerHelloHasAnomaly || (exports.RunnerHelloHasAnomaly = {}));
12
+ var RunnerHelloInferencingEngine;
13
+ (function (RunnerHelloInferencingEngine) {
14
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["None"] = 255] = "None";
15
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["Utensor"] = 1] = "Utensor";
16
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["Tflite"] = 2] = "Tflite";
17
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["Cubeai"] = 3] = "Cubeai";
18
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["TfliteFull"] = 4] = "TfliteFull";
19
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["TensaiFlow"] = 5] = "TensaiFlow";
20
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["TensorRT"] = 6] = "TensorRT";
21
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["Drpai"] = 7] = "Drpai";
22
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["TfliteTidl"] = 8] = "TfliteTidl";
23
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["Akida"] = 9] = "Akida";
24
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["Syntiant"] = 10] = "Syntiant";
25
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["OnnxTidl"] = 11] = "OnnxTidl";
26
+ RunnerHelloInferencingEngine[RunnerHelloInferencingEngine["Memryx"] = 12] = "Memryx";
27
+ })(RunnerHelloInferencingEngine = exports.RunnerHelloInferencingEngine || (exports.RunnerHelloInferencingEngine = {}));
28
+ //# sourceMappingURL=linux-impulse-runner-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linux-impulse-runner-types.js","sourceRoot":"","sources":["../../../library/classifier/linux-impulse-runner-types.ts"],"names":[],"mappings":";;;AASA,IAAY,qBAMX;AAND,WAAY,qBAAqB;IAC7B,iEAAQ,CAAA;IACR,qEAAU,CAAA;IACV,+DAAO,CAAA;IACP,2EAAa,CAAA;IACb,uFAAmB,CAAA;AACvB,CAAC,EANW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAMhC;AAED,IAAY,4BAcX;AAdD,WAAY,4BAA4B;IACpC,iFAAU,CAAA;IACV,qFAAW,CAAA;IACX,mFAAU,CAAA;IACV,mFAAU,CAAA;IACV,2FAAc,CAAA;IACd,2FAAc,CAAA;IACd,uFAAY,CAAA;IACZ,iFAAS,CAAA;IACT,2FAAc,CAAA;IACd,iFAAS,CAAA;IACT,wFAAa,CAAA;IACb,wFAAa,CAAA;IACb,oFAAW,CAAA;AACf,CAAC,EAdW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAcvC"}
@@ -1,125 +1,5 @@
1
- export declare enum RunnerHelloHasAnomaly {
2
- None = 0,
3
- KMeans = 1,
4
- GMM = 2,
5
- VisualGMM = 3
6
- }
7
- export declare enum RunnerHelloInferencingEngine {
8
- None = 255,
9
- Utensor = 1,
10
- Tflite = 2,
11
- Cubeai = 3,
12
- TfliteFull = 4,
13
- TensaiFlow = 5,
14
- TensorRT = 6,
15
- Drpai = 7,
16
- TfliteTidl = 8,
17
- Akida = 9,
18
- Syntiant = 10,
19
- OnnxTidl = 11,
20
- Memryx = 12
21
- }
22
- export type RunnerHelloResponseModelParameters = {
23
- axis_count: number;
24
- frequency: number;
25
- has_anomaly: RunnerHelloHasAnomaly;
26
- /**
27
- * NOTE: This field is _experimental_. It might change when object tracking
28
- * is released publicly.
29
- */
30
- has_object_tracking?: boolean;
31
- input_features_count: number;
32
- image_input_height: number;
33
- image_input_width: number;
34
- image_input_frames: number;
35
- image_channel_count: number;
36
- image_resize_mode?: 'none' | 'fit-shortest' | 'fit-longest' | 'squash';
37
- interval_ms: number;
38
- label_count: number;
39
- sensor: number;
40
- labels: string[];
41
- model_type: 'classification' | 'object_detection' | 'constrained_object_detection';
42
- slice_size: undefined | number;
43
- use_continuous_mode: undefined | boolean;
44
- inferencing_engine?: undefined | RunnerHelloInferencingEngine;
45
- thresholds: ({
46
- id: number;
47
- type: 'anomaly_gmm';
48
- min_anomaly_score: number;
49
- } | {
50
- id: number;
51
- type: 'object_detection';
52
- min_score: number;
53
- } | {
54
- id: number;
55
- type: 'object_tracking';
56
- keep_grace: number;
57
- max_observations: number;
58
- threshold: number;
59
- })[] | undefined;
60
- };
61
- export type RunnerHelloResponseProject = {
62
- deploy_version: number;
63
- id: number;
64
- name: string;
65
- owner: string;
66
- };
67
- export type RunnerHelloResponseInferencingEngine = {
68
- inferencing_engine?: undefined | RunnerHelloInferencingEngine;
69
- properties?: undefined | string[];
70
- };
71
- export type RunnerClassifyResponseSuccess = {
72
- result: {
73
- classification?: {
74
- [k: string]: number;
75
- };
76
- bounding_boxes?: {
77
- label: string;
78
- value: number;
79
- x: number;
80
- y: number;
81
- width: number;
82
- height: number;
83
- }[];
84
- /**
85
- * NOTE: This field is _experimental_. It might change when object tracking
86
- * is released publicly.
87
- */
88
- object_tracking?: {
89
- object_id: number;
90
- label: string;
91
- value: number;
92
- x: number;
93
- y: number;
94
- width: number;
95
- height: number;
96
- }[];
97
- visual_anomaly_grid?: {
98
- label: string;
99
- value: number;
100
- x: number;
101
- y: number;
102
- width: number;
103
- height: number;
104
- }[];
105
- visual_anomaly_max?: number;
106
- visual_anomaly_mean?: number;
107
- anomaly?: number;
108
- };
109
- timing: {
110
- dsp: number;
111
- classification: number;
112
- anomaly: number;
113
- };
114
- info?: string;
115
- };
116
- export type ModelInformation = {
117
- project: RunnerHelloResponseProject;
118
- modelParameters: RunnerHelloResponseModelParameters & {
119
- sensorType: 'unknown' | 'accelerometer' | 'microphone' | 'camera' | 'positional';
120
- };
121
- inferencingEngine: RunnerHelloResponseInferencingEngine;
122
- };
1
+ import { ModelInformation, RunnerClassifyResponseSuccess } from './linux-impulse-runner-types';
2
+ export * from './linux-impulse-runner-types';
123
3
  export declare class LinuxImpulseRunner {
124
4
  private _path;
125
5
  private _runner;
@@ -128,11 +8,21 @@ export declare class LinuxImpulseRunner {
128
8
  private _id;
129
9
  private _stopped;
130
10
  private _socket;
11
+ private _shm;
12
+ private _verbose;
13
+ private _shmBehavior;
14
+ private _valgrind;
15
+ private _stdout;
131
16
  /**
132
17
  * Start a new impulse runner
133
18
  * @param path Path to the runner's executable
134
19
  */
135
- constructor(path: string);
20
+ constructor(path: string, opts?: {
21
+ valgrind?: boolean;
22
+ verbose?: boolean;
23
+ shmBehavior?: 'auto' | 'always' | 'never';
24
+ throwOnShmInitFailed?: boolean;
25
+ });
136
26
  /**
137
27
  * Initialize the runner
138
28
  * This returns information about the model
@@ -146,7 +36,7 @@ export declare class LinuxImpulseRunner {
146
36
  /**
147
37
  * Stop the classification process
148
38
  */
149
- stop(): Promise<void>;
39
+ stop(): Promise<string>;
150
40
  /**
151
41
  * Get information about the model, this is only available
152
42
  * after the runner has been initialized
@@ -163,7 +53,7 @@ export declare class LinuxImpulseRunner {
163
53
  * @param data An array of numbers, already formatted according to the rules in
164
54
  * https://docs.edgeimpulse.com/docs/running-your-impulse-locally-1
165
55
  */
166
- classifyContinuous(data: number[]): Promise<RunnerClassifyResponseSuccess>;
56
+ classifyContinuous(data: number[], timeout?: number): Promise<RunnerClassifyResponseSuccess>;
167
57
  setLearnBlockThreshold(obj: {
168
58
  id: number;
169
59
  type: 'anomaly_gmm';