detect: publish betas

This commit is contained in:
Koushik Dutta
2026-01-10 15:30:07 -08:00
parent 38bac58fc6
commit 7202e99ab0
13 changed files with 34 additions and 76 deletions

View File

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

View File

@@ -50,5 +50,5 @@
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
},
"version": "0.1.87"
"version": "0.1.89"
}

View File

@@ -83,25 +83,13 @@ class CoreMLPlugin(
if model != "Default":
self.storage.setItem("model", "Default")
model = "scrypted_yolov9c_relu"
model_version = "v8"
mlmodel = "model"
self.modelName = model
print(f"model: {model}")
files = [
f"{model}/{model}.mlpackage/Data/com.apple.CoreML/weights/weight.bin",
f"{model}/{model}.mlpackage/Data/com.apple.CoreML/{mlmodel}.mlmodel",
f"{model}/{model}.mlpackage/Manifest.json",
]
for f in files:
p = self.downloadFile(
f"https://huggingface.co/scrypted/plugin-models/resolve/main/coreml/{f}",
f"{model_version}/{f}",
)
modelFile = os.path.dirname(p)
model_path = self.downloadHuggingFaceModelLocalFallback(model)
modelFile = os.path.join(model_path, f"{model}.mlpackage")
print(model_path, modelFile)
self.model = ct.models.MLModel(modelFile)
self.modelspec = self.model.get_spec()

View File

@@ -6,6 +6,7 @@ import os
import asyncio
import coremltools as ct
import numpy as np
# import Quartz
# from Foundation import NSData, NSMakeSize
@@ -25,6 +26,7 @@ def cosine_similarity(vector_a, vector_b):
similarity = dot_product / (norm_a * norm_b)
return similarity
class CoreMLFaceRecognition(FaceRecognizeDetection):
def __init__(self, plugin, nativeId: str):
super().__init__(plugin, nativeId)
@@ -32,22 +34,8 @@ class CoreMLFaceRecognition(FaceRecognizeDetection):
self.recogExecutor = concurrent.futures.ThreadPoolExecutor(1, "recog-face")
def downloadModel(self, model: str):
model_version = "v7"
mlmodel = "model"
files = [
f"{model}/{model}.mlpackage/Data/com.apple.CoreML/weights/weight.bin",
f"{model}/{model}.mlpackage/Data/com.apple.CoreML/{mlmodel}.mlmodel",
f"{model}/{model}.mlpackage/Manifest.json",
]
for f in files:
p = self.downloadFile(
f"https://huggingface.co/scrypted/plugin-models/resolve/main/coreml/{f}",
f"{model_version}/{f}",
)
modelFile = os.path.dirname(p)
model_path = self.downloadHuggingFaceModelLocalFallback(model)
modelFile = os.path.join(model_path, f"{model}.mlpackage")
model = ct.models.MLModel(modelFile)
inputName = model.get_spec().description.input[0].name
return model, inputName
@@ -70,6 +58,7 @@ class CoreMLFaceRecognition(FaceRecognizeDetection):
out_dict = model.predict({inputName: input})
results = list(out_dict.values())[0][0]
return results
results = await asyncio.get_event_loop().run_in_executor(
self.recogExecutor, lambda: predict()
)

View File

@@ -20,22 +20,8 @@ class CoreMLTextRecognition(TextRecognition):
self.recogExecutor = concurrent.futures.ThreadPoolExecutor(1, "recog-text")
def downloadModel(self, model: str):
model_version = "v8"
mlmodel = "model"
files = [
f"{model}/{model}.mlpackage/Data/com.apple.CoreML/weights/weight.bin",
f"{model}/{model}.mlpackage/Data/com.apple.CoreML/{mlmodel}.mlmodel",
f"{model}/{model}.mlpackage/Manifest.json",
]
for f in files:
p = self.downloadFile(
f"https://github.com/koush/coreml-models/raw/main/{f}",
f"{model_version}/{f}",
)
modelFile = os.path.dirname(p)
model_path = self.downloadHuggingFaceModelLocalFallback(model)
modelFile = os.path.join(model_path, f"{model}.mlpackage")
model = ct.models.MLModel(modelFile)
inputName = model.get_spec().description.input[0].name
return model, inputName

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/onnx",
"version": "0.1.129",
"version": "0.1.130",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/onnx",
"version": "0.1.129",
"version": "0.1.130",
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
}

View File

@@ -50,5 +50,5 @@
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
},
"version": "0.1.129"
"version": "0.1.130"
}

View File

@@ -4,6 +4,7 @@ import ast
import asyncio
import concurrent.futures
import json
import os
import platform
import sys
import threading
@@ -72,11 +73,8 @@ class ONNXPlugin(
print(f"model {model}")
model_version = "v3"
onnxfile = self.downloadFile(
f"https://huggingface.co/scrypted/plugin-models/resolve/main/onnx/{model}/{model}.onnx",
f"{model_version}/{model}/{model}.onnx",
)
model_path = self.downloadHuggingFaceModelLocalFallback(model)
onnxfile = os.path.join(model_path, f"{model}.onnx")
print(onnxfile)

View File

@@ -2,6 +2,7 @@ from __future__ import annotations
import asyncio
import concurrent.futures
import os
import platform
import sys
import threading
@@ -15,11 +16,8 @@ from predict.face_recognize import FaceRecognizeDetection
class ONNXFaceRecognition(FaceRecognizeDetection):
def downloadModel(self, model: str):
model_version = "v1"
onnxfile = self.downloadFile(
f"https://huggingface.co/scrypted/plugin-models/resolve/main/onnx/{model}/{model}.onnx",
f"{model_version}/{model}/{model}.onnx",
)
model_path = self.downloadHuggingFaceModelLocalFallback(model)
onnxfile = os.path.join(model_path, f"{model}.onnx")
print(onnxfile)
compiled_models_array = []

View File

@@ -2,6 +2,7 @@ from __future__ import annotations
import asyncio
import concurrent.futures
import os
import platform
import sys
import threading
@@ -15,12 +16,8 @@ from predict.text_recognize import TextRecognition
class ONNXTextRecognition(TextRecognition):
def downloadModel(self, model: str):
onnxmodel = model
model_version = "v4"
onnxfile = self.downloadFile(
f"https://github.com/koush/onnx-models/raw/main/{model}/{onnxmodel}.onnx",
f"{model_version}/{model}/{onnxmodel}.onnx",
)
model_path = self.downloadHuggingFaceModelLocalFallback(model)
onnxfile = os.path.join(model_path, f"{model}.onnx")
print(onnxfile)
compiled_models_array = []

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/openvino",
"version": "0.1.193",
"version": "0.1.194",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/openvino",
"version": "0.1.193",
"version": "0.1.194",
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
}

View File

@@ -50,5 +50,5 @@
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
},
"version": "0.1.193"
"version": "0.1.194"
}

View File

@@ -21,8 +21,8 @@ from detect import DetectPlugin
from predict.rectangle import Rectangle
cache_dir = os.path.join(os.environ["SCRYPTED_PLUGIN_VOLUME"], "files", "hf")
os.makedirs(cache_dir, exist_ok=True)
os.environ['HF_HUB_CACHE'] = cache_dir
# os.makedirs(cache_dir, exist_ok=True)
# os.environ['HF_HUB_CACHE'] = cache_dir
original_getaddrinfo = socket.getaddrinfo
@@ -91,10 +91,12 @@ class PredictPlugin(DetectPlugin, scrypted_sdk.ClusterForkInterface, scrypted_sd
def downloadHuggingFaceModel(self, model: str, local_files_only: bool = False) -> str:
from huggingface_hub import snapshot_download
plugin_suffix = self.pluginId.split('/')[1]
local_dir = os.path.join(cache_dir, plugin_suffix, model)
local_path = snapshot_download(
repo_id="scrypted/plugin-models",
allow_patterns=f"{plugin_suffix}/{model}/*",
local_files_only=local_files_only,
local_dir=local_dir,
)
local_path = os.path.join(local_path, plugin_suffix, model)
return local_path