在Chrome扩展程序中包含第三方库后未定义变量

时间:2018-10-27 01:59:29

标签: javascript tensorflow google-chrome-extension computer-vision

我正在尝试将posenet张量流模型添加到chrome扩展中。我从示例复制了库:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.11.7"></script>
<!-- Load Posenet -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/posenet@0.1.2"></script>

到扩展程序目录中名为“ tensorflow”的文件夹中。 我从本地将脚本导入了background.html文件

 <html>
    <video autoplay="true" id="webcamVideo" width="227" height="227"></video>
    <script src="third_party/deeplearnjs/deeplearn.0.5.js"></script>
    <script src="third_party/deeplearnjs/deeplearn_knn_image_classifier.0.4.2.js"> </script>
    <script src="third_party/@tensorflow/tensorflow.js"></script>
    <script src="third_party/@tensorflow-models/posenet.js"></script>
    <script src="background.js"></script>
    </html>

这似乎没有错误,我可以成功使用background.js中deeplearn库中的对象。但是,当我尝试在background.js中使用posenet时,出现了未定义posenet的错误。

posenet.load().then(function(net){
  return net.estimateSinglePose(imageElement, imageScaleFactor, flipHorizontal, outputStride)
}).then(function(pose){
  console.log(pose);
})

我已经在React中成功使用了posenet,但是我正在努力使其在此扩展中起作用。我在此工作流程中缺少什么吗?

1 个答案:

答案 0 :(得分:1)

看来,posenet中tensorflow的依赖项要求tensorflow库为@ tensorflow / tfjs,所以我只是将文件重命名为tfjs.js即可正常工作。