@digipair/skill-tensorflow 0.25.0

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/index.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/index";
package/index.cjs.js ADDED
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tf = require('@tensorflow/tfjs-node');
6
+ var cocoSsdModel = require('@tensorflow-models/coco-ssd');
7
+ var faceDetectionModel = require('@tensorflow-models/face-detection');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n["default"] = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var tf__namespace = /*#__PURE__*/_interopNamespace(tf);
28
+ var cocoSsdModel__namespace = /*#__PURE__*/_interopNamespace(cocoSsdModel);
29
+ var faceDetectionModel__namespace = /*#__PURE__*/_interopNamespace(faceDetectionModel);
30
+
31
+ let TensorflowService = class TensorflowService {
32
+ async base64ToImage(base64) {
33
+ const data = base64.replace(/^data:image\/\w+;base64,/, '');
34
+ const buffer = Buffer.from(data, 'base64');
35
+ return buffer;
36
+ }
37
+ async cocoSsd(params, _pinsSettingsList, _context) {
38
+ const { image } = params;
39
+ const model = await cocoSsdModel__namespace.load();
40
+ const imageLoaded = await this.base64ToImage(image);
41
+ const imageData = tf__namespace.node.decodeImage(imageLoaded, 3);
42
+ const predictions = await model.detect(imageData);
43
+ return predictions;
44
+ }
45
+ async faceDetection(params, _pinsSettingsList, _context) {
46
+ const { image } = params;
47
+ const model = faceDetectionModel__namespace.SupportedModels.MediaPipeFaceDetector;
48
+ const imageLoaded = await this.base64ToImage(image);
49
+ const imageData = tf__namespace.node.decodeImage(imageLoaded, 3);
50
+ const detectorConfig = {
51
+ runtime: 'mediapipe'
52
+ };
53
+ const detector = await faceDetectionModel__namespace.createDetector(model, detectorConfig);
54
+ const faces = await detector.estimateFaces(imageData);
55
+ return faces;
56
+ }
57
+ };
58
+ const cocoSsd = (params, pinsSettingsList, context)=>new TensorflowService().cocoSsd(params, pinsSettingsList, context);
59
+ const faceDetection = (params, pinsSettingsList, context)=>new TensorflowService().faceDetection(params, pinsSettingsList, context);
60
+
61
+ exports.cocoSsd = cocoSsd;
62
+ exports.faceDetection = faceDetection;
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './libs/skill-tensorflow/src/index';
package/index.esm.js ADDED
@@ -0,0 +1,35 @@
1
+ import * as tf from '@tensorflow/tfjs-node';
2
+ import * as cocoSsdModel from '@tensorflow-models/coco-ssd';
3
+ import * as faceDetectionModel from '@tensorflow-models/face-detection';
4
+
5
+ let TensorflowService = class TensorflowService {
6
+ async base64ToImage(base64) {
7
+ const data = base64.replace(/^data:image\/\w+;base64,/, '');
8
+ const buffer = Buffer.from(data, 'base64');
9
+ return buffer;
10
+ }
11
+ async cocoSsd(params, _pinsSettingsList, _context) {
12
+ const { image } = params;
13
+ const model = await cocoSsdModel.load();
14
+ const imageLoaded = await this.base64ToImage(image);
15
+ const imageData = tf.node.decodeImage(imageLoaded, 3);
16
+ const predictions = await model.detect(imageData);
17
+ return predictions;
18
+ }
19
+ async faceDetection(params, _pinsSettingsList, _context) {
20
+ const { image } = params;
21
+ const model = faceDetectionModel.SupportedModels.MediaPipeFaceDetector;
22
+ const imageLoaded = await this.base64ToImage(image);
23
+ const imageData = tf.node.decodeImage(imageLoaded, 3);
24
+ const detectorConfig = {
25
+ runtime: 'mediapipe'
26
+ };
27
+ const detector = await faceDetectionModel.createDetector(model, detectorConfig);
28
+ const faces = await detector.estimateFaces(imageData);
29
+ return faces;
30
+ }
31
+ };
32
+ const cocoSsd = (params, pinsSettingsList, context)=>new TensorflowService().cocoSsd(params, pinsSettingsList, context);
33
+ const faceDetection = (params, pinsSettingsList, context)=>new TensorflowService().faceDetection(params, pinsSettingsList, context);
34
+
35
+ export { cocoSsd, faceDetection };
@@ -0,0 +1 @@
1
+ export * from './lib/skill-tensorflow';
@@ -0,0 +1,5 @@
1
+ import { PinsSettings } from '@digipair/engine';
2
+ import * as cocoSsdModel from '@tensorflow-models/coco-ssd';
3
+ import * as faceDetectionModel from '@tensorflow-models/face-detection';
4
+ export declare const cocoSsd: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<cocoSsdModel.DetectedObject[]>;
5
+ export declare const faceDetection: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<faceDetectionModel.Face[]>;
package/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@digipair/skill-tensorflow",
3
+ "version": "0.25.0",
4
+ "dependencies": {
5
+ "@tensorflow-models/coco-ssd": "^2.2.3",
6
+ "@tensorflow-models/face-detection": "^1.0.2",
7
+ "@tensorflow/tfjs-node": "^4.20.0"
8
+ },
9
+ "main": "./index.cjs.js",
10
+ "module": "./index.esm.js"
11
+ }
package/schema.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "title": "@digipair/skill-tensorfow",
5
+ "summary": "Analyse par Deep Learning",
6
+ "description": "Cette compétence permet aux utilisateurs d'analyser des données par Deep Learning.",
7
+ "version": "0.1.0",
8
+ "x-icon": "🤖"
9
+ },
10
+ "paths": {
11
+ "/cocoSsd": {
12
+ "post": {
13
+ "tags": ["service"],
14
+ "summary": "Détecte les objets",
15
+ "description": "Détecte les objets dans une image",
16
+ "parameters": [
17
+ {
18
+ "name": "image",
19
+ "summary": "Image",
20
+ "required": true,
21
+ "description": "Image à analyser",
22
+ "schema": {
23
+ "type": "string"
24
+ }
25
+ }
26
+ ],
27
+ "x-events": []
28
+ }
29
+ },
30
+ "/faceDetection": {
31
+ "post": {
32
+ "tags": ["service"],
33
+ "summary": "Détecte les visages",
34
+ "description": "Détecte les visages dans une image",
35
+ "parameters": [
36
+ {
37
+ "name": "image",
38
+ "summary": "Image",
39
+ "required": true,
40
+ "description": "Image à analyser",
41
+ "schema": {
42
+ "type": "string"
43
+ }
44
+ }
45
+ ],
46
+ "x-events": []
47
+ }
48
+ }
49
+ },
50
+ "components": {
51
+ "schemas": {}
52
+ }
53
+ }