图像数据需要进行标注、裁剪、归一化等预处理步骤,以消除噪声和背景干扰,并提取出与植被识别相关的关键特征。数据预处理是数据分析和机器学习等任务中非常重要的一步,其质量直接影响到后续分析的准确性和可靠性。因此,在进行数据预处理时,需要仔细考虑每一步的处理方法和参数设置,以确保得到高质量的数据集。同时,也需要不断尝试和优化预处理步骤,以提高数据的质量和模型的性能。
在数据预处理阶段,为了降低数据集的冗余并提升处理效率,我们首先遍历特定目录DIR下的所有文件。每个文件都根据其内容或文件名中的信息被赋予了一个特定的标签tree\_type。接着,我们读取这些图像文件,并将它们的大小调整至一个统一的尺寸,以便于后续的模型训练。同时,为了实时追踪数据加载的进度,我们引入了tqdm库来展示一个清晰的进度条。
在实际操作过程中,我们定义了两个全局列表$X$和$Z$,分别用于存储调整大小后的图像数据和相应的tree\_type标签。通过遍历DIR目录下的文件,我们不仅能够有效地加载数据,还能通过tqdm库提供的进度条功能,让用户直观地了解数据加载的进度情况。
为了可视化数据集中的一部分图片,我们使用了matplotlib和seaborn库来创建一个4x2的子图网格。在选择要显示的图片之前,我们首先使用LabelEncoder对象来处理标签数据。具体而言,我们实例化一个LabelEncoder对象,并调用其fit\_transform方法将包含字符串的标签列表Z转换为对应的整数标签列表Y。这一步骤是数据预处理的一部分,它有助于后续的模型训练或分析工作。完成标签编码后,我们随机选择了一些图片,并利用之前创建的子图网格进行展示。
然后对数据进行数据归一化处理,也就是将图像像素值从0-255缩放到0-1,以改善神经网络的训练效果。整个数据集中测试集将包含原始数据的 25\%,剩下的 75\% 将用作训练集。训练集用于训练机器学习模型,而测试集用于评估模型的性能。通过这种方式,可以确保模型在未见过的数据上具有良好的泛化能力。
在处理图像时将图像处理为150×150和224×224两种,150×150用于训练简化模型的数据集,224×224用于训练经典复杂模型的数据集。