首页 > 解决方案 > 节点js document.getElementById中的tensorflow-models/posenet null

问题描述

我是 js 和 nodejs 的新手。我已经使用posenet https://github.com/tensorflow/tfjs-models/tree/master/posenet进行了姿势估计

我已经在 HTML 代码中尝试了posenet,一切都按预期工作

<html>
  <head>
    <!-- Load TensorFlow.js -->
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
    <!-- Load Posenet -->
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/posenet"></script>
 </head>

  <body>
    <img id='cat' src='/images/cat.jpg '/>
  </body>
  <!-- Place your code in the script tag below. You can also use an external .js file -->
  <script>
    var flipHorizontal = false;

    var imageElement = document.getElementById('cat');

    posenet.load().then(function(net) {
      const pose = net.estimateSinglePose(imageElement, {
        flipHorizontal: true
      });
      return pose;
    }).then(function(pose){
      console.log(pose);
    })
  </script>
</html>

在此之后,我尝试使用节点 js

const posenet = require('@tensorflow-models/posenet');

async function estimatePoseOnImage(imageElement) {
  // load the posenet model from a checkpoint
  const net = await posenet.load();

  const pose = await net.estimateSinglePose(imageElement, {
    flipHorizontal: false
  });
  return pose;
}

const imageElement = document.getElementById('cat');

const pose = estimatePoseOnImage(imageElement);

console.log(pose);

这里的问题是“imageElement”始终为空。posnet 需要一个不为空的图像元素。

const imageElement = document.getElementById('cat');
   const pose = await net.estimateSinglePose(imageElement, {
    flipHorizontal: false
  });
  1. 我是否需要使用 puppeteer 或 htmlparser2 解析 HTML?
  2. 我是否需要使用 react 或 angular 作为前端才能工作?

谢谢

标签: javascripttensorflowtensorflow.jspose

解决方案


推荐阅读