Я пытаюсь получить прогнозируемые данные из tenorflow. js но когда это происходит, экран камеры задерживается, как можно устранить эту задержку? или нужно перенести тензор потока лайт? Я протестировал 3 устройства (LG v20, iphone 8, Galaxy S10). все устройства получают одинаковый результат.
'''
const TensorCamera = cameraWithTensors(Camera);
const inputTensorWidth = 224;
const inputTensorHeight = 224;
const AUTORENDER = true;
const App = () => {
const [hasPermission, setHasPermission] = useState(false);
const [vector_model, setVector_model] = useState(null);
let rafId;
const handleCameraStream = async (images, PaymentRequestUpdateEvent, gl) => {
const loop = async () => {
console.log(tf.memory());
const imgTensor=tf.tidy(()=>{
let imgTensor = images.next().value;
imgTensor = tf.cast(imgTensor, "float32");
imgTensor = imgTensor.expandDims(0);
return imgTensor;
})
const sim =await(await vector_model).predict({ "images": imgTensor },{batchSize:5});
tf.dispose(imgTensor);
tf.dispose(sim);
rafId = requestAnimationFrame(loop);
console.log(tf.memory());
}
loop();
}
useEffect(() => {
const preload = async () => {
await tf.ready();
const model = await tf.loadGraphModel("https://tfhub.dev/google/tfjs-model/imagenet/mobilenet_v2_140_224/feature_vector/3/default/1", { fromTFHub: true });
setVector_model(model);
const { status } = await Camera.requestPermissionsAsync();
setHasPermission(status);
}
preload();
}, [])
useEffect(() => {
return cancelAnimationFrame(rafId);
}, [rafId]);
...