如何在scikit-learn(计算机视觉)中使用我自己的数据集?

pos*_*res 9 image machine-learning dataset feature-extraction scikit-learn

如何在scikit-learn中使用我自己的数据集?Scikit Tutorial总是以加载他的数据集为例(数字数据集,花卉数据集......)

http://scikit-learn.org/stable/datasets/index.html ie:来自sklearn.datasets import load_iris

我有我的图像,我不知道如何创建新的图像.

特别是,为了开始,我使用这个例子我发现(我使用库opencv):

img =cv2.imread('telamone.jpg')

# Convert them to grayscale
imgg =cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# SURF extraction
surf = cv2.SURF()
kp, descritors = surf.detect(imgg,None,useProvidedKeypoints = False)

# Setting up samples and responses for kNN
samples = np.array(descritors)
responses = np.arange(len(kp),dtype = np.float32)
Run Code Online (Sandbox Code Playgroud)

我想以一种有用的方式提取一组图像的特征来实现机器学习算法!

ogr*_*sel 5

您首先需要清楚地定义您要实现的目标:"以一种对实现机器学习算法有用的方式提取一组图像的特征!" 太过模糊,无法给你任何指导.

你想做什么:

  • 整个画面的图像分类(例如室内场景与室外场景)?

  • 在一组图片的子部分内的对象识别(例如,识别不同图片中的相同对象的几个实例),可能使用具有各种尺寸的窗口的扫描程序?

  • 物体检测和基于类别的分类(例如,在图片中找到所有出现的汽车或行人,并在每个类别的实例周围找到一个边界框)?

  • 全图片语义解析也就是像素的分割+每个片段的类别分类(构建,道路,人,树)......

每个任务都需要不同的管道(特征提取+机器学习模型组合).

您应该首先阅读有关该主题的书籍,例如:http://szeliski.org/Book/

另外作为旁注,stackoverflow可能不是问这样的开放式问题的最佳地方.

  • 如果您真的想使用SURF功能,则可能需要使用聚类算法在从语料库中提取的所有SURF特征向量上构建1000个可视单词(或更多)的词汇表.然后,对于每个图像,将提取的SURF特征向量分配给它们最接近的质心(量化),以使每个图像编码为一袋(视觉)字(BoW).但是,如果你不熟悉numpy/scikit-learn和计算机视觉,那么这将是一件非常复杂的事情. (2认同)