Tensorflow Js 在注册的 blazeface 中找不到后端
Tensorflow Js No backend found in registery blazeface
我想知道图像上是否有人脸,所以我将 tensorflow JS 与 blazeface 模型一起使用。但是获取代码后出现错误:
Error: No backend found in registry.
at Engine.getSortedBackends (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2928:19)
at Engine.initializeBackendsAndReturnBest (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2937:35)
at Engine.get [as backend] (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2743:31)
at Engine.makeTensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:3268:35)
at makeTensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4087:19)
at tensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4136:12)
at Object.decodeWeights (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4400:27)
at GraphModel.loadSync (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:7410:34)
at GraphModel.<anonymous> (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:7385:52)
at step (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:77:23)
这是我的代码(我从文档中复制过去):
module.exports = {
blazeface: require('@tensorflow-models/blazeface'),
async detectFace(imageLink) {
const model = await this.blazeface.load();
const returnTensors = false;
const predictions = await model.estimateFaces(imageLink, returnTensors);
if (predictions.length > 0) {
for (let i = 0; i < predictions.length; i++) {
const start = predictions[i].topLeft;
const end = predictions[i].bottomRight;
const size = [end[0] - start[0], end[1] - start[1]];
// Render a rectangle over each detected face.
ctx.fillRect(start[0], start[1], size[0], size[1]);
}
}
}
}
请记住错误来自以下行 const model = await this.blazeface.load();
所以很多人都在谈论版本所以这是我的一个例子 package.json
"dependencies": {
"@tensorflow-models/blazeface": "0.0.6",
"@tensorflow/tfjs": "^3.0.0",
"@tensorflow/tfjs-backend-cpu": "^3.0.0",
"@tensorflow/tfjs-backend-webgl": "^3.0.0",
"@tensorflow/tfjs-converter": "^3.0.0",
"@tensorflow/tfjs-core": "^3.0.0"
}
我使用的是 Node 版本 14.8.0 和 npm 版本 6.14.7。
此代码应在服务器上运行,因此我不希望它在前端运行。
看来你可以做两件事。
安装@tensorflow/tfjs-node并使用tf: require("@tensorflow/tfjs-node"),
或者您可以使用 this.tf.getBackend();
(即使使用 tf: require("@tensorflow/tfjs")
)
我想知道图像上是否有人脸,所以我将 tensorflow JS 与 blazeface 模型一起使用。但是获取代码后出现错误:
Error: No backend found in registry.
at Engine.getSortedBackends (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2928:19)
at Engine.initializeBackendsAndReturnBest (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2937:35)
at Engine.get [as backend] (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2743:31)
at Engine.makeTensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:3268:35)
at makeTensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4087:19)
at tensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4136:12)
at Object.decodeWeights (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4400:27)
at GraphModel.loadSync (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:7410:34)
at GraphModel.<anonymous> (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:7385:52)
at step (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:77:23)
这是我的代码(我从文档中复制过去):
module.exports = {
blazeface: require('@tensorflow-models/blazeface'),
async detectFace(imageLink) {
const model = await this.blazeface.load();
const returnTensors = false;
const predictions = await model.estimateFaces(imageLink, returnTensors);
if (predictions.length > 0) {
for (let i = 0; i < predictions.length; i++) {
const start = predictions[i].topLeft;
const end = predictions[i].bottomRight;
const size = [end[0] - start[0], end[1] - start[1]];
// Render a rectangle over each detected face.
ctx.fillRect(start[0], start[1], size[0], size[1]);
}
}
}
}
请记住错误来自以下行 const model = await this.blazeface.load();
所以很多人都在谈论版本所以这是我的一个例子 package.json
"dependencies": {
"@tensorflow-models/blazeface": "0.0.6",
"@tensorflow/tfjs": "^3.0.0",
"@tensorflow/tfjs-backend-cpu": "^3.0.0",
"@tensorflow/tfjs-backend-webgl": "^3.0.0",
"@tensorflow/tfjs-converter": "^3.0.0",
"@tensorflow/tfjs-core": "^3.0.0"
}
我使用的是 Node 版本 14.8.0 和 npm 版本 6.14.7。 此代码应在服务器上运行,因此我不希望它在前端运行。
看来你可以做两件事。
安装@tensorflow/tfjs-node并使用tf: require("@tensorflow/tfjs-node"),
或者您可以使用 this.tf.getBackend();
(即使使用 tf: require("@tensorflow/tfjs")
)