detect: add format hints

This commit is contained in:
Koushik Dutta
2023-03-23 19:59:26 -07:00
parent 33ca0242b1
commit 6cd412de88
12 changed files with 30 additions and 19 deletions

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/coreml",
"version": "0.1.4",
"version": "0.1.5",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/coreml",
"version": "0.1.4",
"version": "0.1.5",
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
}

View File

@@ -41,5 +41,5 @@
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
},
"version": "0.1.4"
"version": "0.1.5"
}

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/objectdetector",
"version": "0.0.111",
"version": "0.0.112",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/objectdetector",
"version": "0.0.111",
"version": "0.0.112",
"license": "Apache-2.0",
"dependencies": {
"@scrypted/common": "file:../../common",

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/objectdetector",
"version": "0.0.111",
"version": "0.0.112",
"description": "Scrypted Video Analysis Plugin. Installed alongside a detection service like OpenCV or TensorFlow.",
"author": "Scrypted",
"license": "Apache-2.0",

View File

@@ -8,6 +8,7 @@ import { Readable } from 'stream';
async function createVipsMediaObject(image: VipsImage): Promise<VideoFrame & MediaObject> {
const ret = await sdk.mediaManager.createMediaObject(image, ScryptedMimeTypes.Image, {
format: null,
timestamp: 0,
width: image.width,
height: image.height,

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/python-codecs",
"version": "0.1.17",
"version": "0.1.18",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@scrypted/python-codecs",
"version": "0.1.17",
"version": "0.1.18",
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
}

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/python-codecs",
"version": "0.1.17",
"version": "0.1.18",
"description": "Python Codecs for Scrypted",
"keywords": [
"scrypted",

View File

@@ -72,6 +72,7 @@ def toPILImage(pilImageWrapper: PILImage, options: scrypted_sdk.ImageOptions = N
async def createPILMediaObject(image: PILImage):
ret = await scrypted_sdk.mediaManager.createMediaObject(image, scrypted_sdk.ScryptedMimeTypes.Image.value, {
'format': None,
'width': image.width,
'height': image.height,
'toBuffer': lambda options = None: image.toBuffer(options),

View File

@@ -75,6 +75,7 @@ def toVipsImage(vipsImageWrapper: VipsImage, options: scrypted_sdk.ImageOptions
async def createVipsMediaObject(image: VipsImage):
ret = await scrypted_sdk.mediaManager.createMediaObject(image, scrypted_sdk.ScryptedMimeTypes.Image.value, {
'format': None,
'width': image.width,
'height': image.height,
'toBuffer': lambda options = None: image.toBuffer(options),

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/tensorflow-lite",
"version": "0.1.7",
"version": "0.1.8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/tensorflow-lite",
"version": "0.1.7",
"version": "0.1.8",
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
}

View File

@@ -44,5 +44,5 @@
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
},
"version": "0.1.7"
"version": "0.1.8"
}

View File

@@ -44,7 +44,6 @@ def parse_label_contents(contents: str):
ret[row_number] = content.strip()
return ret
class RawImage:
jpegMediaObject: scrypted_sdk.MediaObject
@@ -298,9 +297,12 @@ class PredictPlugin(DetectPlugin, scrypted_sdk.BufferConverter, scrypted_sdk.Set
return point[0], point[1], True
data = await videoFrame.toBuffer({
'format': 'rgb',
'format': videoFrame.format or 'rgb',
})
image = Image.frombuffer('RGB', (w, h), data)
if videoFrame.format == 'rgba':
image = Image.frombuffer('RGBA', (w, h), data).convert('RGB')
else:
image = Image.frombuffer('RGB', (w, h), data)
try:
ret = await self.detect_once(image, settings, src_size, cvss)
return ret
@@ -328,7 +330,7 @@ class PredictPlugin(DetectPlugin, scrypted_sdk.BufferConverter, scrypted_sdk.Set
'width': sw,
'height': sh,
},
'format': 'rgb',
'format': videoFrame.format or 'rgb',
}),
videoFrame.toBuffer({
'resize': {
@@ -341,12 +343,18 @@ class PredictPlugin(DetectPlugin, scrypted_sdk.BufferConverter, scrypted_sdk.Set
'width': sw,
'height': sh,
},
'format': 'rgb',
'format': videoFrame.format or 'rgb',
})
)
first = Image.frombuffer('RGB', (w, h), firstData)
second = Image.frombuffer('RGB', (w, h), secondData)
if videoFrame.format == 'rgba':
first = Image.frombuffer('RGBA', (w, h), firstData).convert('RGB')
else:
first = Image.frombuffer('RGB', (w, h), firstData)
if videoFrame.format == 'rgba':
second = Image.frombuffer('RGBA', (w, h), secondData).convert('RGB')
else:
second = Image.frombuffer('RGB', (w, h), secondData)
def cvss1(point, normalize=False):
return point[0] / s, point[1] / s, True