diff --git a/plugins/coreml/package-lock.json b/plugins/coreml/package-lock.json index 112d63992..0348e2226 100644 --- a/plugins/coreml/package-lock.json +++ b/plugins/coreml/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/coreml", - "version": "0.1.8", + "version": "0.1.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/coreml", - "version": "0.1.8", + "version": "0.1.9", "devDependencies": { "@scrypted/sdk": "file:../../sdk" } diff --git a/plugins/coreml/package.json b/plugins/coreml/package.json index cb32cedc0..453d76015 100644 --- a/plugins/coreml/package.json +++ b/plugins/coreml/package.json @@ -41,5 +41,5 @@ "devDependencies": { "@scrypted/sdk": "file:../../sdk" }, - "version": "0.1.8" + "version": "0.1.9" } diff --git a/plugins/tensorflow-lite/.vscode/settings.json b/plugins/tensorflow-lite/.vscode/settings.json index 49c64736b..0e267f2d4 100644 --- a/plugins/tensorflow-lite/.vscode/settings.json +++ b/plugins/tensorflow-lite/.vscode/settings.json @@ -1,16 +1,16 @@ { // docker installation - // "scrypted.debugHost": "koushik-windows", - // "scrypted.serverRoot": "/server", + "scrypted.debugHost": "koushik-ubuntu", + "scrypted.serverRoot": "/server", // pi local installation // "scrypted.debugHost": "192.168.2.119", // "scrypted.serverRoot": "/home/pi/.scrypted", // local checkout - "scrypted.debugHost": "127.0.0.1", - "scrypted.serverRoot": "/Users/koush/.scrypted", + // "scrypted.debugHost": "127.0.0.1", + // "scrypted.serverRoot": "/Users/koush/.scrypted", // "scrypted.debugHost": "koushik-windows", // "scrypted.serverRoot": "C:\\Users\\koush\\.scrypted", diff --git a/plugins/tensorflow-lite/package-lock.json b/plugins/tensorflow-lite/package-lock.json index 4c3ccac44..5ab79dcbf 100644 --- a/plugins/tensorflow-lite/package-lock.json +++ b/plugins/tensorflow-lite/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/tensorflow-lite", - "version": "0.1.8", + "version": "0.1.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/tensorflow-lite", - "version": "0.1.8", + "version": "0.1.9", "devDependencies": { "@scrypted/sdk": "file:../../sdk" } diff --git a/plugins/tensorflow-lite/package.json b/plugins/tensorflow-lite/package.json index 906a484f9..0cb6fdd8b 100644 --- a/plugins/tensorflow-lite/package.json +++ b/plugins/tensorflow-lite/package.json @@ -44,5 +44,5 @@ "devDependencies": { "@scrypted/sdk": "file:../../sdk" }, - "version": "0.1.8" + "version": "0.1.9" } diff --git a/plugins/tensorflow-lite/src/predict/__init__.py b/plugins/tensorflow-lite/src/predict/__init__.py index 742549c1a..835fa643d 100644 --- a/plugins/tensorflow-lite/src/predict/__init__.py +++ b/plugins/tensorflow-lite/src/predict/__init__.py @@ -47,13 +47,6 @@ def parse_label_contents(contents: str): ret[row_number] = content.strip() return ret -class RawImage: - jpegMediaObject: scrypted_sdk.MediaObject - - def __init__(self, image: Image.Image): - self.image = image - self.jpegMediaObject = None - def is_same_box(bb1, bb2, threshold = .7): r1 = from_bounding_box(bb1) r2 = from_bounding_box(bb2) @@ -146,10 +139,6 @@ class PredictPlugin(DetectPlugin, scrypted_sdk.BufferConverter, scrypted_sdk.Set def getTriggerClasses(self) -> list[str]: return ['motion'] - async def createMedia(self, data: RawImage) -> scrypted_sdk.MediaObject: - mo = await scrypted_sdk.mediaManager.createMediaObject(data, self.fromMimeType) - return mo - def requestRestart(self): asyncio.ensure_future(scrypted_sdk.deviceManager.requestRestart()) @@ -226,15 +215,28 @@ class PredictPlugin(DetectPlugin, scrypted_sdk.BufferConverter, scrypted_sdk.Set settings = detection_session and detection_session.get('settings') src_size = videoFrame.width, videoFrame.height w, h = self.get_input_size() + input_aspect_ratio = w / h iw, ih = src_size + src_aspect_ratio = iw / ih ws = w / iw hs = h / ih s = max(ws, hs) - if ws == 1 and hs == 1: + + # image is already correct aspect ratio, so it can be processed in a single pass. + if input_aspect_ratio == src_aspect_ratio: def cvss(point): return point[0], point[1] + # aspect ratio matches, but image must be scaled. + resize = None + if ih != w: + resize = { + 'width': w, + 'height': h, + } + data = await videoFrame.toBuffer({ + 'resize': resize, 'format': videoFrame.format or 'rgb', }) image = await ensureRGBData(data, (w, h), videoFrame.format) diff --git a/plugins/tensorflow/package-lock.json b/plugins/tensorflow/package-lock.json index 4c3ccac44..5ab79dcbf 100644 --- a/plugins/tensorflow/package-lock.json +++ b/plugins/tensorflow/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/tensorflow-lite", - "version": "0.1.8", + "version": "0.1.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/tensorflow-lite", - "version": "0.1.8", + "version": "0.1.9", "devDependencies": { "@scrypted/sdk": "file:../../sdk" } diff --git a/plugins/tensorflow/package.json b/plugins/tensorflow/package.json index b82895556..78f1fbb16 100644 --- a/plugins/tensorflow/package.json +++ b/plugins/tensorflow/package.json @@ -41,5 +41,5 @@ "devDependencies": { "@scrypted/sdk": "file:../../sdk" }, - "version": "0.1.8" + "version": "0.1.9" }