我的图像数据集来自http://www.image-net.org。数据集中包含了各种不同事物的集合,如植物、动物、人等。
我需要训练一个分类器,如果图像属于植物集合,则预测为1,否则为0。
属于植物集合的图像可以在http://www.image-net.org/explore查看,通过在左侧面板点击植物、植物群、植物生命选项来查看。
这些图像包括了多种植物 – 如树木、草本植物、灌木、花朵等。我无法确定使用哪些特征来训练分类器。这些图像中有很多绿色,但也有许多花朵图像,绿色成分不多。另一个特征是叶子和花瓣的形状。
如果有人能建议如何提取这种形状特征并用于训练分类器,将会很有帮助。还请建议可以用于训练分类器的其他特征。
在提取特征后,应使用哪种算法来训练分类器?
回答:
不确定形状信息是否适合您链接的数据集。
我快速浏览了一些图像后,有几点分类建议:
- 自然场景中很少有直线 – 线条检测
- 您可以排除那些包含大片“非自然”颜色的场景。
- 如果您想尝试更高级的,我建议使用熵/模式识别之间的混合方法作为分类器,因为自然场景中包含很多这两种元素。
- 尝试对叶子/花瓣进行模板匹配/形状匹配会让您失望 – 您需要使用更通用的方法。
至于使用哪种分类器…我通常建议先使用K-means,一旦您得到一些结果,再决定是否值得付出额外的努力来实现贝叶斯或神经网络。
希望这对您有帮助。
T.
扩展内容:
“非自然颜色”可能是高度饱和的颜色,超出了绿色和棕色的范围。它们适合检测自然场景,因为即使花朵位于中心,场景中也应该有大约50%的绿色/棕色光谱。
此外,直线检测在自然场景中应该很少有结果,因为自然界中直边很少。在基本层面上,生成边缘图像,对其进行阈值处理,然后搜索线段(近似直线的像素)。
熵需要一些机器视觉知识。您可以通过确定局部熵并对结果进行直方图处理来处理场景,这里是一个类似的方法,您需要使用它。
如果您要尝试模式识别,则需要在机器视觉方面有高级知识,因为这是一个困难的主题,不是您可以简单地在代码样本中实现的。我建议只有在颜色和边缘信息(线条)已经用尽后,才尝试实现这些作为分类器。
如果这是商业应用,则应咨询机器视觉专家。如果这是大学作业(除非是论文),颜色和边缘/线条信息应该足够了。