system: [SYSTEM]

user: 3. 实验结果及分析 3.1. 实验设置 按2.2中的处理方法将数据集分别处理成224 × 224、800 × 600两种不同输入尺寸。此部分数据集均包含训练集1822张、验证集200张和测试集662张。再通过2.3所述的滑动窗口重采样的方法得到的512 × 512大小的数据集。共有训练集6484张，验证集922张，采用带动量因子(momentum)的小批量(mini-batch)随机梯度下降法(stochastic gradient descent， SGD) [ 20 ] 并加载ImageNet [ 21 ] 预训练模型对网络进行训练。对于不同输入尺寸大小的图片，网络初始学习率、每个训练批次图片数量以及训练轮次的设置如表1所示。 图10. 训练及测试过程的流程图 Table 1 Training parameter setting 输入尺寸 初始学习率(lr) 每个批次图片数量(batch size) 训练轮次(epoch) 224 × 224 0.001 32 30 800 × 600 0.001 16 30 512 × 512 (滑窗) 0.001 16 30 表1. 训练参数设置 对于表1中前两组数据训练所得模型，测试集分别缩放至同样的尺寸再进行测试。对于滑动窗口检测模型，测试集同训练集一样，每张2560 × 1920像素大小的原图由512 × 512大小的窗口用256步长采样得到小图。对小图分别进行测试，求他们为瑕疵类别的概率，再将概率大小前三的图片的预测概率求均值作为原图为瑕疵类别的概率。 本文所有实验均是在keras深度学习框架下进行的，电脑的操作系统为ubuntu16.04，CPU为因特尔I7处理器，32 G运行内存，GPU为TITAN X (12 GB)，使用GPU加速计算。 3.2. 结果分析 3.2.1. 评价指标 1) AUC (Area Under the Curve) ROC (Receiver Operating Characteristic)曲线是用于评价分类模型性能的常用标准之一。它的横坐标为伪正类率FPR (False Positive Rate)，即预测为正但实际为负的样本占所有负例样本的比例，纵坐标为真正类率TPR，(True Positive Rate)，即与预测为正且实际为正的样本占所有正样本的比例，FPR和TPR的计算公式如下： FPR = F P / ( T N + F P ) TPR = T P / ( T P + F N ) (5) 其中TP为被模型预测为正类的正类样本数；TN为被模型预测为负类的负样本数；FP为被模型预测为负类的正类样本数；FN为被模型预测为正类的负样本数。 对于二分类模型，通过分类得到每个实例属于正类的概率P，设定阈值θ，当P > θ时，该实例为正类，否则为负类，对应可以计算出一组(FPR， TPR)，从小到大调整阈值，将得到的点连接即得到ROC曲线。AUC为ROC曲线下的面积，单独看ROC曲线难以评判两个分类器的好坏，AUC的值越大，表明模型的泛化性能更好，可以通过比较AUC数值的大小来衡量分类模型的性能好坏。 2) F1-Score F1分数(F1 Score)，同样是衡量分类模型精度的重要指标，它同时兼顾了分类模型的精准率(Precision)和召回率(Recall)，可以看做是二者的加权平均，它的计算公式如下： F 1 = 2 ∗ Precision ∗ Recall Precision + Recall (6) 其中精准率表示被判定为正类的样本中实际为正类的比重，召回率表示被判定为正类且实际为正类的样本占总的正样本的比重，二者的计算公式如下： Precesion = T P / ( T P + F P ) Recall = T P / ( T P + F N ) (7) 3.2.2. 不同网络结构及输入图片尺寸的比较 对于缩放至224 × 224、800 × 600两种不同尺寸的数据集，按照表1中的参数设置分别用GoogleNet、VGG16和ResNet50网络进行训练、测试和比较。图11是三个网络在不同尺寸数据集上测试结果的ROC 图11. 模型对应于不同尺寸输入的ROC曲线 曲线，表2记录了图10中每条曲线的AUC值，即曲线下方所围成的面积，表3记录了不同模型对应的F1分数。从表2和表3可以看出，ResNet50训练所得的模型在测试集上的AUC值以及F1分数明显优于GoogleNet和VGG16，通过对比224 × 224与800 × 600两种不同图片输入尺寸所得的模型的测试结果，可以发现，增大输人图片的尺寸，减少原图在缩放过程中的特征丢失，有利于网络分类性能的提升。 Table 2 AUC test results of different networks for different input size 网络 输入尺寸 224 × 224 800 × 600 VGG16 0.853 0.873 GoogleNet 0.867 0.879 ResNet50 0.885 0.898 表2. 不同网络对于不同输入尺寸的AUC测试结果 Table 3 F1 scores of different networks for different input size 网络 输入尺寸 224 × 224 800 × 600 VGG16 0.763 0.775 GoogleNet 0.776 0.787 ResNet50 0.791 0.805 表3. 不同网络对于不同输入尺寸的F1分数 3.2.3. loss优化的检验 上述实验均采用交叉熵作为损失函数，此部分实验将损失函数替换成了2.4中重新定义的损失函数，图片输入尺寸大小统一设置为800 × 600，分别对三个网络重新进行训练和测试，测试结果的AUC值及F1分数如表4和表5所示。 改进的损失函数使得训练中更加关注那些较难学习的样本，从表3可以看出，使用改进的损失函数后，三个网络模型在AUC和F1分数上的表现均有上升，证明增大困难样本在训练过程中的损失，能够提高模型的分类性能。 Table 4 Comparison of AUC of model test obtained from different loss function trainin Loss VGG16 GoogleNet ResNet50 交叉熵 0.873 0.879 0.898 改进的损失函数 0.881 0.885 0.905 表4. 不同损失函数训练所得模型测试的AUC比较 Table 5 Comparison of F1 scores of models trained with different loss function Loss VGG16 GoogleNet ResNet50 交叉熵 0．775 0.787 0.805 改进的损失函数 0.781 0.79 0.81 表5. 不同损失函数训练所得模型的F1分数比较 3.2.4. 滑窗检测方法的测试结果 基于上述实验结果，本文将滑窗检测方法的采样块大小设置为512 × 512像素，网络为ResNet50，训练过程采用2.4中重新定义的损失函数，实验结果如表6所示： Table 6 Test results of sliding window mode AUC F1 Score 滑窗检测 0.935 0.841 表6. 滑动窗口模型的测试结果 滑窗检测方法的测试结果AUC高达0.935同时F1分数可以达到0.841。两个评价指标均是所有模型当中最高的。可见利用原图缩放后所得图片进行训练，会因为原图的部分特征丢失，影响模型对图像特征的学习效果，而基于滑窗检测的模型，更能关注图像中的细节，所以拥有更好的分类性能。 3.2.5. 模型分类速率的比较 网络的参数量、深度以及输入图片尺寸的大小等因素均会影响模型最终的分类速率，本文对不同网络结构、不同输入尺寸以及基于滑窗检测的模型分别进行了分类速率评估，表7是模型在测试集上处理图片的平均时间。结果显示模型的分类速率随着输入图片的尺寸增大而下降，此外增加滑窗操作后，模型的分类速率也会有一定程度上的下降。 Table 7 The average time for different models to process a picture (unit: second VGG16 GoogleNet ResNet 滑窗检测 224 × 224 800 × 600 224 × 224 800 × 600 224 × 224 800 × 600 512 × 512 0.008 0.039 0.015 0.03 0.017 0.045 1.08 表7. 不同模型处理一张图片的平均时间(单位：秒)