一、前言
使用特征包方法进行图像类别分类。这种技术通常也被称为词袋。视觉图像分类是为受测图像分配类别标签的过程。类别可能包含代表几乎任何东西的图像,例如狗、猫、火车、船。
二、加载图像数据集
解压缩要用于此示例的图像集合。使用 加载图像集合以帮助您管理数据。由于对图像文件位置进行操作,因此不会将所有图像加载到内存中,因此可以安全地用于大型图像集合。
您可以轻松检查每个类别的图像数量以及类别标签,如下所示:
请注意,标签派生自用于构造图像数据存储的目录名称,但可以通过手动设置对象的标签属性来自定义。接下来,显示一些图像以了解正在使用的图像类型。
请注意,要使特征袋方法有效,大部分对象必须在图像中可见。
三、准备训练和验证图像集
将集分为训练数据和验证数据。从每组图像中选择 60% 的图像作为训练数据,其余 40% 的图像用于验证数据。随机化拆分以避免结果偏差。
上面的调用返回两个准备用于训练和验证任务对象。
四、创建视觉词汇表并训练图像类别分类器
词袋是一种适应自然语言处理世界的计算机视觉的技术。由于图像实际上不包含离散词,因此我们首先构建代表每个图像类别特征的“词汇表”。
此外,对象提供了一种计算图像中可视单词出现次数的方法。它产生了一个直方图,该直方图成为图像的新简化表示。
此直方图构成了训练分类器和实际图像分类的基础。本质上,它将图像编码为特征向量。
来自每个类别的编码训练图像被馈送到函数调用的分类器训练过程中。请注意,此函数依赖于统计和机器学习工具箱™中的多类线性 SVM 分类器。
五、评估分类器性能
现在我们有一个经过训练的分类器,让我们来评估它。作为健全性检查,让我们首先使用训练集对其进行测试,它应该产生近乎完美的混淆矩阵,即对角线上的混淆矩阵。
接下来,让我们评估分类器,该分类器在训练期间未使用。默认情况下,该函数返回混淆矩阵,这是分类器性能良好的初始指标。
六、在测试图像上尝试新训练的分类器
现在,您可以应用新训练的分类器对新图像进行分类。