diff --git a/plugins/homekit/.npmignore b/plugins/homekit/.npmignore index e54429a34..1cbbda916 100644 --- a/plugins/homekit/.npmignore +++ b/plugins/homekit/.npmignore @@ -6,4 +6,5 @@ fs src .vscode dist/*.js +dist/*.txt HAP-NodeJS diff --git a/plugins/objectdetector/.npmignore b/plugins/objectdetector/.npmignore index 7f70a764e..ff2824293 100644 --- a/plugins/objectdetector/.npmignore +++ b/plugins/objectdetector/.npmignore @@ -1,5 +1,8 @@ .DS_Store out/ node_modules/ -dist/*.map -face-api.js +*.map +fs +src +.vscode +dist/*.js diff --git a/plugins/objectdetector/package-lock.json b/plugins/objectdetector/package-lock.json index c9d9eccc0..eb45270db 100644 --- a/plugins/objectdetector/package-lock.json +++ b/plugins/objectdetector/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/objectdetector", - "version": "0.0.13", + "version": "0.0.18", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/objectdetector", - "version": "0.0.13", + "version": "0.0.18", "license": "Apache-2.0", "dependencies": { "@scrypted/common": "file:../../common", diff --git a/plugins/objectdetector/package.json b/plugins/objectdetector/package.json index b8499ea90..d7ad75f59 100644 --- a/plugins/objectdetector/package.json +++ b/plugins/objectdetector/package.json @@ -1,7 +1,7 @@ { "name": "@scrypted/objectdetector", - "version": "0.0.13", - "description": "Object Detection extension for VideoCameras. Installed alongside a CPU or TPU plugin.", + "version": "0.0.18", + "description": "Object Detector for VideoCameras. Installed alongside a detection service.", "author": "Scrypted", "license": "Apache-2.0", "scripts": { @@ -30,7 +30,7 @@ "person" ], "scrypted": { - "name": "Object Detection Plugin", + "name": "Object Detector Plugin", "singleInstance": true, "type": "API", "interfaces": [ diff --git a/plugins/objectdetector/src/main.ts b/plugins/objectdetector/src/main.ts index f2cbea13e..c8c5c2589 100644 --- a/plugins/objectdetector/src/main.ts +++ b/plugins/objectdetector/src/main.ts @@ -2,6 +2,7 @@ import { MixinProvider, ScryptedDeviceType, ScryptedInterface, MediaObject, Vide import sdk from '@scrypted/sdk'; import { SettingsMixinDeviceBase } from "../../../common/src/settings-mixin"; import { randomBytes } from 'crypto'; +import { alertRecommendedPlugins } from '@scrypted/common/src/alert-recommended-plugins'; import { DenoisedDetectionEntry, denoiseDetections } from './denoise'; export interface DetectionInput { @@ -309,6 +310,11 @@ class ObjectDetectionPlugin extends ScryptedDeviceBase implements MixinProvider if (!device.mixins?.includes(this.id)) continue; device.probe(); + + alertRecommendedPlugins({ + '@scrypted/tensorflow': 'TensorFlow Face Recognition Plugin', + '@scrypted/tensorflow-lite': 'TensorFlow Lite Object Detection Plugin', + }); } } diff --git a/plugins/tensorflow-lite/.npmignore b/plugins/tensorflow-lite/.npmignore index ca2464ae8..ca1748929 100644 --- a/plugins/tensorflow-lite/.npmignore +++ b/plugins/tensorflow-lite/.npmignore @@ -6,4 +6,6 @@ fs src .vscode dist/*.js +dist/*.txt __pycache__ +all_models diff --git a/plugins/tensorflow-lite/package-lock.json b/plugins/tensorflow-lite/package-lock.json index c8c589ec4..d5d2d8b00 100644 --- a/plugins/tensorflow-lite/package-lock.json +++ b/plugins/tensorflow-lite/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/coral", - "version": "0.0.15", + "version": "0.0.21", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/coral", - "version": "0.0.15", + "version": "0.0.21", "devDependencies": { "@scrypted/sdk": "file:../../sdk" } diff --git a/plugins/tensorflow-lite/package.json b/plugins/tensorflow-lite/package.json index 02c91a676..524e24e22 100644 --- a/plugins/tensorflow-lite/package.json +++ b/plugins/tensorflow-lite/package.json @@ -1,6 +1,20 @@ { - "name": "@scrypted/tensowflow-lite", - "description": "Object Detection for VideoCameras.", + "name": "@scrypted/tensorflow-lite", + "description": "Object Detection Service.", + "keywords": [ + "scrypted", + "plugin", + "tensorflow", + "coral", + "tpu", + "edge", + "motion", + "object", + "detect", + "detection", + "people", + "person" + ], "scripts": { "prepublishOnly": "NODE_ENV=production scrypted-webpack", "prescrypted-vscode-launch": "scrypted-webpack", @@ -15,7 +29,7 @@ "scrypted": { "name": "TensorFlow Lite + Coral TPU Object Detection Plugin", "runtime": "python", - "type": "Light", + "type": "API", "interfaces": [ "ObjectDetection" ] @@ -23,5 +37,5 @@ "devDependencies": { "@scrypted/sdk": "file:../../sdk" }, - "version": "0.0.15" + "version": "0.0.21" } diff --git a/plugins/tensorflow/.npmignore b/plugins/tensorflow/.npmignore index 7f70a764e..b51b4d425 100644 --- a/plugins/tensorflow/.npmignore +++ b/plugins/tensorflow/.npmignore @@ -1,5 +1,10 @@ .DS_Store out/ node_modules/ -dist/*.map +*.map +fs +src +.vscode +dist/*.js +dist/*.txt face-api.js diff --git a/plugins/tensorflow/package-lock.json b/plugins/tensorflow/package-lock.json index ee65b72b8..090cd37df 100644 --- a/plugins/tensorflow/package-lock.json +++ b/plugins/tensorflow/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/tensorflow", - "version": "0.0.13", + "version": "0.0.16", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/tensorflow", - "version": "0.0.13", + "version": "0.0.16", "license": "Apache-2.0", "dependencies": { "@koush/face-api.js": "^0.22.3", diff --git a/plugins/tensorflow/package.json b/plugins/tensorflow/package.json index 0be39a993..c4ebd950d 100644 --- a/plugins/tensorflow/package.json +++ b/plugins/tensorflow/package.json @@ -1,7 +1,7 @@ { "name": "@scrypted/tensorflow", - "version": "0.0.13", - "description": "Face Recognition for VideoCameras.", + "version": "0.0.16", + "description": "Face Recognition Service.", "author": "Scrypted", "license": "Apache-2.0", "scripts": { @@ -20,8 +20,6 @@ "plugin", "tensorflow", "motion", - "object", - "detect", "detection", "face", "recognition", diff --git a/plugins/tensorflow/src/main.ts b/plugins/tensorflow/src/main.ts index 5c5346b98..97cae3160 100644 --- a/plugins/tensorflow/src/main.ts +++ b/plugins/tensorflow/src/main.ts @@ -13,6 +13,7 @@ import { sleep } from './sleep'; import { makeBoundingBoxFromFace } from './util'; import { FFMpegRebroadcastSession, startRebroadcastSession } from '../../../common/src/ffmpeg-rebroadcast'; import { createRawVideoParser, PIXEL_FORMAT_RGB24, StreamChunk } from '@scrypted/common/src/stream-parser'; +import { alertRecommendedPlugins } from '@scrypted/common/src/alert-recommended-plugins'; import { once } from 'events'; import { decodeJpeg, encodeJpeg } from './jpeg'; import { EventEmitter } from 'stream'; @@ -166,6 +167,10 @@ class TensorFlow extends ScryptedDeviceBase implements ObjectDetection, DevicePr } this.reloadFaceMatcher(); + + alertRecommendedPlugins({ + '@scrypted/objectdetector': 'Object Detection Plugin', + }); } async addUnknowns(unknowns: { descriptor: Float32Array, nativeId: string, detection: FaceDetection }[], input: Tensor3D, buffer: Buffer) { @@ -363,7 +368,6 @@ class TensorFlow extends ScryptedDeviceBase implements ObjectDetection, DevicePr if (!detectionSession.running) return; this.onDeviceEvent(ScryptedInterface.ObjectDetection, detections); - this.console.log(detections); await sleep(1000); }