能否在Javascript中使用OpenCV或类似的库?

56

我们可以从Javascript中使用OpenCV吗?是否有这样的实现?

是否有可用于在图片或视频中检测面部元素的JS库?


jsfeat 做了很多类似的事情,非常轻量级,并且是纯 js。 - podperson
1
https://docs.opencv.org/master/opencv.js - crapthings
9个回答

29

OpenCV从未完整地移植到JavaScript,但是部分算法和模块已经有:

  • 对于人脸和面部元素检测(以及其他部分/对象),您可以使用js-objectdetectHAAR.js,它们是基于Haar特征级联的OpenCV对象检测的移植版。

  • 网上最早的人脸检测算法在ccv中也值得一提。它的分类器似乎比OpenCV提供的那个分类器less reliable

  • 用于人脸跟踪headtrackr库也可能很有用,因为它实现了在OpenCV中也找到的camshift算法。


1
+1 给 headtrackr:API 设计得非常好,提供了面部跟踪(位置、宽度、高度、角度)、头部跟踪(相对于摄像头的位置)和状态(getUserMedia 可用、流式传输、面部检测、重新检测等)的事件。 - Sam Dutton

19
我推荐使用OpenCVjs,这是一个JavaScript OpenCV库。

真遗憾,这全是日语!? - Domi
4
这是加州大学欧文分校提供的英文版本:https://github.com/ucisysarch/opencvjs - Kevin Wu
@Kevin Wu,很好!这应该是一个答案 :-) 我没有注意到问题已经关闭了 : / - arthur.sw

16

你知道如何从JS访问相机吗? - Bohdan
1
@BohdanVoloshyn 参考 getUserMedia(webrtc) - Ram
2
现在,OpenCV 也可以作为 opencv.js 在 JavaScript 中使用(通过 Emscripten 转换成 asm.js 格式),欲了解更多信息,请访问 https://docs.opencv.org/trunk/d5/d10/tutorial_js_root.html。 - flamelite

15

我不知道是否有完整的OpenCV Javascript实现,但其中许多算法在Javascript中的计算机视觉库JSFeat中被实现。

我相信使用emscripten编译OpenCV的部分代码是可能的,但据我所知,还没有人这样做过。


有用的库,但是当我想要检测脸部时,我不得不使用OpenCV。 - Bohdan
你可能更喜欢类似于http://neave.github.io/face-detection/的东西(尽管jsfeat中的haar检测器可用于人脸检测)。 - kybernetikos
还有一个运行示例:http://inspirit.github.io/jsfeat/sample_haar_face.html - Eran W

15

这应该是最佳答案。这是StackOverflow的一个缺点,技术/信息随着时间的推移而变化。 - Kind Contributor
https://groups.google.com/forum/#!topic/emscripten-discuss/uaRH2R62WOk - Kind Contributor

6

6

这里是一个很好的代码库:https://github.com/peterbraden/node-opencv 它似乎没有完整的opencv功能,但具有面部检测,并且对来自像ar-drone这样的源的图像流提供了极好的支持。


2
关于你的第二个问题,clmtrackr 看起来非常有前途。它是一个用于将面部模型拟合到视频或图像中的 JavaScript 库。目前,它是通过正则化地标均值漂移拟合约束本地模型的实现,就像 Jason M. Saragih 的论文所描述的那样。clmtrackr 跟踪一个面部并输出面部模型的坐标位置数组。试试这个例子,看看他们的模型吧。

2
除了上面提到的,还有一个名为“opencvjs”的仓库。 https://github.com/blittle/opencvjs 不太清楚它们中的哪一个(如果有任何)应该是规范的。

它们都不是自己的,它们都是第三方的。 - berak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接