JavaScript中的相机对象检测

时间:2012-07-02 13:02:38

标签: javascript html5

假设用户拥有Chrome等现代浏览器并支持必要的HTML5相机设置(以便getUserMedia正常工作),如何使用JavaScript检测网络摄像头中显示的特定预定义对象?

例如,HTML5/ JS-based face detection效果很好,我看到了另一个hand detection演示(这里效果不好;我可能做错了)。训练相机检测(开发者)选择的其他对象的必要步骤是什么?说,我希望凸轮识别红笔的位置;或许是最黑暗的物体;或许黑色的iPhone挥动进相机等。

谢谢!

2 个答案:

答案 0 :(得分:5)

对象检测本身就是一件非常棘手的事情。你必须知道你的物体是什么,它是否平滑,有弹性,有很多颜色对比,快速移动,以及许多其他问题,然后才能确定最佳方法。

此外,这取决于你是否只想检测一个物体,或者你想在相机前移动跟踪它

我只会在这里命名一些方法,因为我没有时间详细说明。一旦你知道这些名字,你就可以在Google上找到很多文档,但要注意,如果你必须自己实现它们,你可能需要一些数学技能。所以,这通常涉及:

  • 计算描述符在有趣的地方。查看Google上的 SIFT HoG (Gragraients直方图)描述符,这些是最常用的描述符。
  • 构建某种识别结构,根据您的对象和描述符,这种结构可能会发生很大变化。常用方法包括神经网络支持向量机。对于移动对象,通常可以添加与图形相关的技术,例如 Graph Cuts

同样,根据对象,这些可能甚至不接近正确的方法。

据我所知,JavaScript中的所有软件都很少,但如果你找到了什么,我会很高兴知道它。同样,这里有几点建议:

  • 您的人脸检测示例正在使用非常流行的名为级联分类器的内容,该内容可在更受欢迎的OpenCV库中使用,并且大多数人认为< em>面部检测的首选方法。
  • 如果您可以考虑将部分处理移至服务器,则可以使用 OpenCV ,其中包含大量可用算法。

我希望我能帮助你开始一点点;)

答案 1 :(得分:1)

除FX的答案外,一旦您训练了分类器或选择a freely available one from the web,您就可以使用js-objectdetectHAAR.js等OpenCV端口进行实际检测。< / p>