Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使用javascript在实时网络摄像头中检测手势?_Html_Javascript - Fatal编程技术网

Html 如何使用javascript在实时网络摄像头中检测手势?

Html 如何使用javascript在实时网络摄像头中检测手势?,html,javascript,Html,Javascript,我将实时网络摄像头嵌入html页面。现在我想找到手势。如何使用JavaScript实现这一点,我不知道。我在谷歌上搜索了很多,但没有找到任何好主意来完成这项工作。有人知道这件事吗?如何做到这一点。您需要一些运动检测设备(摄像头),并且可以使用kinect获取身体不同部位的运动。您必须在浏览器中发送数据,告知身体部位和位置,以便根据需要操作数据 在这里,你可以找到你如何做到这一点 关于kinect的更多信息这里是一个JavaScript手跟踪演示——它依赖于HTML5功能,这些功能尚未在所有典型浏

我将实时网络摄像头嵌入html页面。现在我想找到手势。如何使用JavaScript实现这一点,我不知道。我在谷歌上搜索了很多,但没有找到任何好主意来完成这项工作。有人知道这件事吗?如何做到这一点。

您需要一些运动检测设备(摄像头),并且可以使用kinect获取身体不同部位的运动。您必须在浏览器中发送数据,告知身体部位和位置,以便根据需要操作数据

在这里,你可以找到你如何做到这一点


关于kinect的更多信息这里是一个JavaScript手跟踪演示——它依赖于HTML5功能,这些功能尚未在所有典型浏览器中启用,它在这里根本不能很好地工作,我认为它不包括手势,但这可能是一个开始:

访问网络摄像头需要HTML5 WebRTC API,除了Internet Explorer或iOS之外,大多数现代浏览器都提供该API

手势检测可以在JavaScript中使用Haar级联分类器(从OpenCV移植)和或来完成

示例在JavaScript/HTML5中使用js objectdetect:Open vs.closed hand detection(美国手语字母表中的“A”手势)


虽然这是一个非常古老的问题,但有一些新的机会可以使用快速神经网络和网络摄像头中的图像进行手跟踪。和Javascript。我推荐使用Tensorflow.js的库就是为了这个目的

简单的用法示例

<!-- Load the handtrackjs model. -->
<script src="https://cdn.jsdelivr.net/npm/handtrackjs/dist/handtrack.min.js"> </script>

<!-- Replace this with your image. Make sure CORS settings allow reading the image! -->
<img id="img" src="hand.jpg"/> 
<canvas id="canvas" class="border"></canvas>

<!-- Place your code in the script tag below. You can also use an external .js file -->
<script>
  // Notice there is no 'import' statement. 'handTrack' and 'tf' is
  // available on the index-page because of the script tag above.

  const img = document.getElementById('img'); 
  const canvas = document.getElementById('canvas');
  const context = canvas.getContext('2d');

  // Load the model.
  handTrack.load().then(model => {
    // detect objects in the image.
    model.detect(img).then(predictions => {
      console.log('Predictions: ', predictions); 
    });
  });
</script>

//请注意,没有“import”语句“扶手”和“tf”是
//由于上面的脚本标记,在索引页上可用。
const img=document.getElementById('img');
const canvas=document.getElementById('canvas');
const context=canvas.getContext('2d');
//加载模型。
handTrack.load()。然后(模型=>{
//检测图像中的对象。
model.detect(img).then(预测=>{
log('预测:',预测);
});
});

另见类似的神经网络-


免责声明。。我维护这两个项目。

你需要在回答中说它只支持HTML5。。你暗示它将与JS一起工作。。这是不真实的。此外,这只适用于IE 9+chrome、FF和Safari,而且很可能只适用于使用.NET框架的Windows…HTML5是实现这一点所必需的。cam采集的数据有两种类型,一种是已经渲染的视频(图片),另一种是身体部位数据的文本数据(尺寸:X、Y、宽度、长度等)。这些数据可以用于在html5画布上渲染,也可以简单地以文本形式显示在某些div中?OP没有提到任何特定的摄像头,只是一个网络摄像头。是的,但我在回答“运动检测设备(摄像头)”时提到,如果没有它,检测手的运动是非常困难的。他可能需要改变相机类型来实现他想要的。这听起来很有趣。我们有一个公共信息亭系统(每个设备都内置了网络摄像头),如果我们能让拇指/手指向上/向下(以补充滚动箭头)、一些点击手势和1-2更多,我们会有一件很棒的事情,特别是在电晕恐惧的日子里。。。