tensorflow.js bodypix 模型不工作并且没有给出任何错误

tensorflow.js bodypix model not working and not giving any error

我正在创建一个简单的 body 分段 html following this

我试过:

  <body> 
       <!-- Load TensorFlow.js --> 
       <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.13.3"></script> 
       <!-- Load BodyPix -->
       <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/body-pix"></script> 
           bodypix.load().then(function(net) {
               // BodyPix model loaded
           });
       </script>
   </body>
</html>

使用此脚本:


// load the BodyPix model from a checkpoint
const net = await bodyPix.load();

// arguments for estimating person segmentation.
const outputStride = 16;
const segmentationThreshold = 0.5;

const personSegmentation = await net.estimatePersonSegmentation(imageElement, outputStride, segmentationThreshold);

它工作正常,没有错误,但问题是它甚至无法从简单的图像中检测到人。我试过这个 link 作为演示,使用 source code 给出的图像 但即使在那里,它也掩盖了整个图像,没有检测到任何 body 返回一个全为零的 uint8clamped 数组 相同的模型在我的手机中工作。 是不是我电脑的问题。 是i7 2600 3.7ghz

注意-我没有 gpu

错误

实际上错误是tensorflow默认使用webGL后端。如果你没有 GPU 那么它会崩溃

解决方案

注意-此解决方案适用于节点 js,但您也可以将类似的概念与脚本标签一起使用

要解决这个问题,你必须首先导入@tensorflow/tfjs或@tensorflow/tfjs-core或@tensorflow/tfjs-node,然后将其后端设置为cpu (或者 tensorflow,如果你使用的是@tensorflow/tfjs-node) 参考下面的脚本

//main.js file, works well with webpack
import * as tf from '@tensorflow/tfjs-core'
import * as bodypix from '@tensorflow-models/body-pix'

tf.setBackend('cpu')

//now you can load bodypix or any model

有关文档,请参阅 here