mirror of
https://github.com/koush/scrypted.git
synced 2026-02-03 14:13:28 +00:00
tensorflow: use native modules again
This commit is contained in:
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -11,7 +11,7 @@
|
||||
path = plugins/neato/node-botvac
|
||||
url = git@github.com:koush/node-botvac
|
||||
[submodule "plugins/tensorflow/face-api.js"]
|
||||
path = plugins/tensorflow/face-api.js
|
||||
path = external/face-api.js
|
||||
url = git@github.com:koush/face-api.js
|
||||
[submodule "external/axios-digest-auth"]
|
||||
path = external/axios-digest-auth
|
||||
|
||||
1
external/face-api.js
vendored
Submodule
1
external/face-api.js
vendored
Submodule
Submodule external/face-api.js added at a86687eea2
Submodule plugins/tensorflow/face-api.js deleted from d6d47dc8fb
@@ -1 +1 @@
|
||||
../face-api.js/weights/face_landmark_68_model-shard1
|
||||
../../../external/face-api.js/weights/face_landmark_68_model-shard1
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/face_landmark_68_model-weights_manifest.json
|
||||
../../../external/face-api.js/weights/face_landmark_68_model-weights_manifest.json
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/face_landmark_68_tiny_model-shard1
|
||||
../../../external/face-api.js/weights/face_landmark_68_tiny_model-shard1
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/face_landmark_68_tiny_model-weights_manifest.json
|
||||
../../../external/face-api.js/weights/face_landmark_68_tiny_model-weights_manifest.json
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/face_recognition_model-shard1
|
||||
../../../external/face-api.js/weights/face_recognition_model-shard1
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/face_recognition_model-shard2
|
||||
../../../external/face-api.js/weights/face_recognition_model-shard2
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/face_recognition_model-weights_manifest.json
|
||||
../../../external/face-api.js/weights/face_recognition_model-weights_manifest.json
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/ssd_mobilenetv1_model-shard1
|
||||
../../../external/face-api.js/weights/ssd_mobilenetv1_model-shard1
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/ssd_mobilenetv1_model-shard2
|
||||
../../../external/face-api.js/weights/ssd_mobilenetv1_model-shard2
|
||||
@@ -1 +1 @@
|
||||
../face-api.js/weights/ssd_mobilenetv1_model-weights_manifest.json
|
||||
../../../external/face-api.js/weights/ssd_mobilenetv1_model-weights_manifest.json
|
||||
@@ -1 +0,0 @@
|
||||
../../node_modules/@tensorflow/tfjs-backend-wasm/dist/tfjs-backend-wasm-simd.wasm
|
||||
@@ -1 +0,0 @@
|
||||
../../node_modules/@tensorflow/tfjs-backend-wasm/dist/tfjs-backend-wasm-threaded-simd.wasm
|
||||
@@ -1 +0,0 @@
|
||||
../../node_modules/@tensorflow/tfjs-backend-wasm/dist/tfjs-backend-wasm.wasm
|
||||
8108
plugins/tensorflow/package-lock.json
generated
8108
plugins/tensorflow/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -41,16 +41,19 @@
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
"@scrypted/sdk": "file:../../sdk",
|
||||
"@tensorflow-models/coco-ssd": "^2.2.2",
|
||||
"@tensorflow/tfjs": "^3.11.0",
|
||||
"@tensorflow/tfjs-backend-wasm": "^3.11.0",
|
||||
"canvas": "^2.8.0",
|
||||
"face-api.js": "file:./face-api.js",
|
||||
"@koush/face-api.js": "^0.22.3",
|
||||
"jpeg-js": "^0.4.3",
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/lodash": "^4.14.175",
|
||||
"@types/node": "^14.17.11"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@tensorflow-models/coco-ssd": "^2.2.2",
|
||||
"@tensorflow/tfjs": "^3.11.0",
|
||||
"@tensorflow/tfjs-core": "^3.9.0",
|
||||
"@tensorflow/tfjs-node-gpu": "^3.11.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,13 @@ import { MixinProvider, ScryptedDeviceType, ScryptedInterface, MediaObject, Vide
|
||||
import sdk from '@scrypted/sdk';
|
||||
import { SettingsMixinDeviceBase } from "../../../common/src/settings-mixin";
|
||||
import { AutoenableMixinProvider } from '@scrypted/common/src/autoenable-mixin-provider';
|
||||
import * as tf from '@tensorflow/tfjs-core';
|
||||
import { ENV, tensor3d } from '@tensorflow/tfjs-core';
|
||||
import { setWasmPaths } from '@tensorflow/tfjs-backend-wasm';
|
||||
import * as tf from '@tensorflow/tfjs-node-gpu';
|
||||
import { ENV, tensor3d } from '@tensorflow/tfjs-node-gpu';
|
||||
import * as coco from '@tensorflow-models/coco-ssd';
|
||||
import path from 'path';
|
||||
import fetch from 'node-fetch';
|
||||
import * as faceapi from 'face-api.js';
|
||||
import { FaceDetection, FaceMatcher, LabeledFaceDescriptors } from 'face-api.js';
|
||||
import * as faceapi from '@koush/face-api.js';
|
||||
import { FaceDetection, FaceMatcher, LabeledFaceDescriptors } from '@koush/face-api.js';
|
||||
import canvas, { createCanvas } from 'canvas';
|
||||
import { Canvas, Image, ImageData } from 'canvas';
|
||||
import { randomBytes } from 'crypto';
|
||||
@@ -42,9 +41,9 @@ function observeLoadError(promise: Promise<any>) {
|
||||
}
|
||||
|
||||
const ssdPromise = (async () => {
|
||||
setWasmPaths('wasm/')
|
||||
// setWasmPaths('wasm/')
|
||||
|
||||
await tf.setBackend('wasm');
|
||||
// await tf.setBackend('wasm');
|
||||
const fdnPromise = faceapi.nets.ssdMobilenetv1.loadFromDisk('./');
|
||||
observeLoadError(fdnPromise);
|
||||
const flnPromise = faceapi.nets.faceLandmark68Net.loadFromDisk('./');
|
||||
|
||||
Reference in New Issue
Block a user