我有一组“goob”和“bad”图像,以灰度数组的形式呈现。我想从这些图像中提取“好”和“坏”特征并填充字典。这是我处理此任务的高级算法:
- 加载图像并呈现它们 NP 矩阵
img_mtx [ img_mtx.shape = (10, 255, 255)
] - 使用
image.PatchExtractor
overimg_mtx
获取每张图像的 1000 个补丁,总共 10000 个 7x7 像素patches
[patches.shape = (10000, 49)]
- 下一步,我假设我的
patches
矩阵有点像一袋单词,我想为每个图像创建一个稀疏的补丁矩阵,并为每个图像设置“好”或“坏”类。 - 现在我应该有非常经典的分类任务,比如垃圾邮件检测,只是在训练集中添加更多图像我应该有一个很好的结果。
但是我这里有一些问题:
- 如何实施第 3 步?我看过文本分类的例子,但不是图像分类的例子
- 当我需要对新图像进行分类时,我再次将其拆分为补丁,但现在我需要将这些补丁从新图像映射到我的“补丁字典”中。如何以最好的方式做到这一点,记住我可能永远不会收到 100% 匹配的字典?我看起来需要计算与字典特征的最近距离,但这听起来很昂贵。
...或者我对这项任务采取了完全错误的方法?