图像分类/识别开源库

Dan*_*ini 4 image-processing image-recognition computer-vision

我有一组参考图像(200)和一组这些图像的照片(数万).我必须以半自动方式对每张照片进行分类.你会建议我使用哪种算法和开源库来完成这项任务?对我来说最好的事情是在照片和参考图像之间进行相似性测量,这样我就可以向操作人员展示从最相似的图像到最少的图像,以使她的工作更轻松.

为了给出更多的背景,参考图像是品牌包装,照片是相同的包装,但有各种噪音:来自闪光灯的反射,低光,不完美的视角等.照片已经(手动)分段:只有包可见.

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

ely*_*ely 5

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

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

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

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

之后,您可能希望查看MPI4Py(Python中的MPI实现),以便在对大量描述符计算和数万个剩余图像进行分类时利用多处理器.

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