提问者:小点点

OpenCV vs Mahout用于基于计算机视觉的机器学习?


一段时间以来,我一直在使用OpenCV。它满足了我对特征提取、匹配和聚类(到目前为止的k均值)以及分类(SVM)的所有需求。最近,我遇到了Apache Mahout。但是,大多数机器学习算法也已经在OpenCV中可用。如果工作涉及视频和图像,使用Mahout比OpenCV有什么优势吗?


共1个答案

匿名用户

这个问题可能会被搁置,因为它是基于意见的。我仍然想补充一个基本的比较。

OpenCV能够实现任何可能被研究或发明的关于视觉和ml的功能。视觉文学是以它为基础的,它是根据文学发展起来的。即使是诞生于MATLAB的新ml算法,如TLD(http://www.tldvision.com/)也可以使用OpenCV实现(http://gnebehay.github.io/OpenTLD/)付出了一些努力。

Mahout也很有能力,而且是ml特有的。它不仅包括众所周知的ml算法,还包括特定的算法。假设你偶然看到一篇论文“用K-的方向过滤处理苹果”。你可以在网上找到这篇论文的OpenCV实现。甚至实际的算法也可能是开源的,并使用OpenCV开发。对于OpenCV,假设它需要500行代码,但是对于Mahout,这篇论文可能已经用一个单一的方法实现了,使一切变得更容易

关于这种情况的一个例子是http://en.wikipedia.org/wiki/Canopy_clustering_algorithm,,它现在使用OpenCV很难实现。

由于您将使用图像数据集,因此您也需要了解HIPI。

综上所述,这里有一个简单的利弊表:

诀窍(学习曲线):OpenCV更容易,因为您已经了解了它。看象人HIPI需要更多的时间。

例子:文学视觉社区常用OpenCV。开源算法大多是用OpenCV的C api创建的。

ml算法:Mahout只有大约ml,而OpenCV更通用。OpenCV仍然可以使用基本的ml算法。

开发:就编码和时间复杂度而言,Mahout更容易使用(我不确定后者,但我认为是这样)。