Оценка BlazePose на видео

#pose-estimation

#поза-оценка

Вопрос:

Я попытался использовать оценку BlazePose для видео, но это дает мне хороший результат только для первого кадра и не дает никакого результата для других кадров. Я думаю _poses.length , что должно быть равно количеству кадров, но, к сожалению, в моем коде вывод _poses.length равен единице. Я был бы признателен вам за помощь.

 lt;htmlgt;  lt;headgt;  lt;script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core"gt;lt;/scriptgt;  lt;script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter"gt;lt;/scriptgt;  lt;script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-webgl"gt;lt;/scriptgt;  lt;script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/pose-detection"gt;lt;/scriptgt;  lt;script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm"gt;lt;/scriptgt;  lt;/headgt;  lt;bodygt;  lt;video id="video" src="./film1.mp4"gt;  lt;scriptgt;   let detector = null; let _videoElement = null; let _poses = null;   async function InitPage() {  // Init pose detector  const model = poseDetection.SupportedModels.BlazePose;  const detectorConfig = { runtime: 'tfjs', enableSmoothing: true, modelType: 'full' };  detector = await poseDetection.createDetector(model, detectorConfig);  console.log("Detector created...");   const video = document.getElementById('video');  video.width =1280;  video.height =720;  _videoElement = video; // cache video element  console.log(_videoElement);   BeginRefreshingKeypoints();  }    let hasHitVideoReady = false;  async function BeginRefreshingKeypoints()  {  // ESTIMATE POSES  const estimationConfig = {maxPoses: 1,flipHorizontal: false};  const timestamp = (performance || Date).now();  const warmUpTensor =  tf.fill([video.height, video.width, 3], 0, 'float32');  await detector.estimatePoses(warmUpTensor,estimationConfig);  warmUpTensor.dispose();    _poses = await detector.estimatePoses(_videoElement, estimationConfig);  console.log(_poses)  console.log("ok")  //if (_poses.lengthgt;0)  //{  //for(i=0;i  ;poses.length)  //{  //var data = "text/json;charset=utf-8,"   encodeURIComponent(JSON.stringify(_poses[i]["keypoints"]));  //console.log(typeof data);  //var a = document.createElement('a');  //a.href = 'data:'   data;  //a.download = 'data.json';  //a.innerHTML = 'download JSON';  //a.click();  //}   //}    await asyncPause(100); // less console spam for now  }  window.onload = (event) =gt; { InitPage() };  /* Helper function, simple promise to await x milliseconds */ function asyncPause(delay) { return new Promise(function(resolve) { setTimeout(resolve, delay); }); }  lt;/scriptgt;  lt;div id="container"gt;lt;/divgt;  lt;/bodygt; lt;/htmlgt;  

Комментарии:

1. вы можете получить большее влияние, если будете использовать правильные теги для своего вопроса: какой язык вы используете, какие библиотеки?