image-processing - 图像分类/识别开源库

标签 image-processing computer-vision image-recognition

我有一组引用图像(200 张)和一组这些图像的照片(数万张)。我必须以半自动的方式对每张照片进行分类。您建议我使用哪种算法和开源库来完成这项任务?对我来说最好的办法是在照片和引用图像之间进行相似性度量,这样我就可以向人类运算符(operator)展示从最相似到最不相似的图像,让她的工作更容易。

为了提供更多背景信息,引用图像是品牌包装,照片是相同的包装,但带有各种噪音:闪光灯反射,低光,不完美的视角等。照片已经(手动)分段:仅包可见。

回到我使用图像识别的时代(比如 15 年前),我可能会尝试用引用图像训练神经网络,但我想知道现在是否有更好的方法来做到这一点。

最佳答案

我建议您使用 Python,并使用 NumPy/SciPy 库进行数值计算。一些用于处理图像的有用库是 Mahotas 库和 scikits.image 库。

此外,您将需要使用 scikits.learn,它是 Libsvm 的 Python 包装器,Libsvm 是一种非常标准的 SVM 实现。

困难的部分是选择您的描述符。描述符将是您从每个图像计算的特征,旨在计算与引用图像集的相似距离。一组很好的尝试是定向梯度直方图、SIFT 特征和颜色直方图,并尝试使用各种方法对图像的不同部分进行分箱并将这些描述符连接在一起。

接下来,留出一些数据用于训练。对于这些数据,您必须根据它们所属的真实引用图像手动标记它们。您可以将这些标签提供给 scikits.learn 中的内置函数,它可以训练多类 SVM 来识别您的图像。

之后,您可能需要查看 MPI4Py,这是 Python 中的 MPI 实现,以便在对数以万计的剩余图像进行大型描述符计算和分类时利用多处理器。

您描述的任务非常困难,以高精度解决它很容易导致计算机视觉领域的研究级出版物。我希望我已经为您提供了一些起点:在 Google 上搜索上述任何概念都会找到有用的研究论文以及有关如何使用各种库的更多详细信息。

关于image-processing - 图像分类/识别开源库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10090514/

相关文章:

pdf - 如何以编程方式将包含文本的 SVG 文件转换为 PDF 文件(特别是在 CentOS 5.3 x86_64 上)?

python - OpenCV轮廓检测

camera - 关于利用单目相机实现视觉里程计的建议

machine-learning - 特定层与其感受野之间的关系

java - Android 中乐谱图像的线检测

python - 同一位置周围多次出现边界框

tensorflow - ArcFace 严格来说是损失函数还是激活函数?

python - 使用 SVM Python 进行图像分类

c# - 如何在 C# 中搜索屏幕上的图像?

algorithm - 如何识别周围的矩形