TL;DR. Две нейросетевые задачи — удаление фона (ONNX Runtime Web + модель silueta) и замазывание лиц (MediaPipe Tasks Vision + BlazeFace) — запущены полностью на клиенте: ни один пиксель не уходит на сервер. Ниже — почему «в браузере», какие модели выбраны и почему, как тянуть 43-мегабайтную модель с…
В статье на примере определения интента по фразе клиента, полученной в текстовом виде показаны подходы для решения поставленной задачи, выбор метрик и моделей.Сделан обзор на актуальные подходы для ускорения работы нейронных сетей, представлены библиотеки ONNX и ONNX Runtime.Проведены тесты с использованием фреймоворков ONNX и ONNX Runtime, используемых для ускорения работы моделей перед выводом их в продуктовую среду.Представлены графические зависимости и блоки кода. Читать далее
Полгода назад я начал портировать нейросеть EdgeFace-XS из ONNX в чистый C. Думал — граф небольшой, 1.77M параметров, что может пойти не так? Первый наивный порт выдал 24мс. ONNX Runtime — 3.9мс. В 6 раз медленнее. А потом началась оптимизация Читать далее
Рано или поздно у каждого кто работал с webworkers возникает ситуация когда код превращается в кашу вроде этого: main.jsconst worker = new Worker('test.worker.js'); worker.onmessage = (data) => { if(data.eventName === 'someFuncResult') someFunc(); else if(data.eventName === 'someFunc2Result') someFunc2(); }; worker.postMessage({eventName: 'someFunc'}); test.worker.jsself.addEventListener('message', (data) => {…