javascript - React native cameraWithTensors onReady 仅在保存文件时调用
问题描述
cameraWithTensors 应该开始将传入视频中的帧发送到处理相机输入的函数。问题是该函数仅在我导航到页面并再次保存代码时才被调用,没有这个函数永远不会被调用。这很奇怪,因为没有记录错误。
cameraWithTensor 帧被传递给 handleCameraStream
<TensorCamera
style={styles.camera}
type={type}
zoom={0}
cameraTextureHeight={textureDimsState.height}
cameraTextureWidth={textureDimsState.width}
resizeHeight={tensorDims.height}
resizeWidth={tensorDims.width}
resizeDepth={tensorDims.depth}
onReady={imageAsTensors => handleCameraStream(imageAsTensors)}
autorender={AUTORENDER}
/>
handleCameraStream 将来自 TensorCamera 的帧作为输入,并不断循环对帧进行预测
blazeFaceModel 和 loadedModel 最初设置为 null ,当加载两个模型时,我从 useEffect() 设置它们的值
const handleCameraStream = imageAsTensors => {
if (!imageAsTensors) {
console.log("Image not found!");
}
const loop = async () => {
const imageTensor = imageAsTensors.next().value;
if (loadedModel !== null && blazeFaceModel !== null) {
console.log("Started");
await getPrediction(imageTensor).catch(e => console.log(e));
}
tf.dispose(imageAsTensors);
requestAnimationFrameId = requestAnimationFrame(loop);
};
//loop infinitely to constantly make predictions
loop();
};
useEffect() 包含我最初需要设置的数据,这里设置了loadedModel和blazeFaceModel
useEffect(() => {
if (!frameWorkReady) {
(async () => {
const { status } = await Camera.requestPermissionsAsync().catch(e =>
console.log(e)
);
if (Platform.OS == "ios") {
setTextureDims({ height: 1920, width: 1080 });
} else {
setTextureDims({ height: 1200, width: 1600 });
}
setHasPermission(status === "granted");
await tf.ready().catch(e => console.log(e));
setTFReady(true);
setModelLoaded(await loadModel().catch(e => console.log(e)));
setBlazeFaceModel(
await loadBlazeFaceModel().catch(e => console.log(e))
);
setFrameWorkReady(true);
})();
}
}, []);
我想只添加一个按钮来刷新页面,但如果我不必这样做,我会更喜欢。
解决方案
推荐阅读
- mongodb - MGO 查询嵌套对象数组
- react-native - 什么反应本机组件以创建带有子项的列表
- php - 我怎样才能在laravel中放置计数器?
- python - 如何从数据库中获取与值列表匹配的记录?
- reactjs - antd 中的 getFieldDecorator 是什么,React 中的 getFieldDecorator 有什么用?
- jakarta-ee - 是否有 ManagedExecutorService 队列限制?
- mysql - 如何更新 MongoDB BI 连接器中的超时设置
- python-3.x - 如何使用python对二进制图像中的列和行像素求和
- python - 我正在使用 selenium 抓取一个网站,beautifulsoup。需要总数。网站中的页面或其他导航页面的方式
- c++ - QSyntaxHighlighter 不会创建 QTextFragments