Модель Keras в Tensorflow. js: хорошие прогнозы на изображениях, но ужасные на видео? - PullRequest
0 голосов
/ 04 августа 2020

Я преобразовал пользовательскую модель Keras в LayersModel для Tensorflow. js. Я протестировал модель, загрузив изображение и вызвав прогноз после завершения загрузки. Фрагмент для прогнозирования:

let img = document.getElementById('image')
let offset = tf.scalar(255)
let tensorImg = tf.browser.fromPixels(img).resizeNearestNeighbor([224,224]).toFloat().expandDims();
let tensorImg_scaled = tensorImg.div(offset)
prediction = await model.predict(tensorImg_scaled).data();

С этим кодом мои прогнозы следуют исходной модели, а значения достоверности постоянно меняются, как и должны. Однако я намерен анализировать поток веб-камеры каждую секунду. Каждую секунду вызывается функция, включающая этот код:

const video = document.querySelector("video");
let offset = tf.scalar(255)
let tensorImg = tf.browser.fromPixels(video).resizeNearestNeighbor([224,224]).toFloat().expandDims();
let tensorImg_scaled = tensorImg.div(offset)
prediction = await model.predict(tensorImg_scaled).data();

С видео я получаю ужасные результаты, когда прогноз всегда выглядит примерно как Float32Array (3) [6.18722574920633e-16, 1, 3.5979095258653615e-8] - среднее значение достоверности всегда равно 1 или 0,9999.

В чем может быть проблема? Реже вызов фрагмента предсказания видео - например, каждые 5 секунд - не помогает.

Любая помощь с предсказаниями видео приветствуется - это последний проект для uni, и пани c начинает закрадываться. .. Большое спасибо!

...