基于卷积神经网络的辛普森角色识别( 二 )


3 实验
为了验证本文建立的卷积神经网络模型的有效性,在展开实验时,除基本模型训练外,还对其进行改进与优化 。
3.1 基本模型训练
在本次实验训练中,将迭代200个epoch的训练集批次,每个批处理大小为32 。由于数据集规模限制,采用数据增强对图片进行一些随机变化,确保模型不会有相同图片重复出现的问题 。这样也更好地防止过拟合,帮助模型实现更优地泛化 。
实验编程开发环境为.8.8, 计算设备为个人计算机,CPU为Intel i5-9300H,主频为2.40GHz,内存为16GB,显卡为GTX 1650,显存为8GB 。训练数据和测试数据的划分比例为9:1 。
3.2 实验结果与算法改进
3.2.1 基本训练结果
通过输出分类结果如图xx
图3-1 四层卷积网
图3-2 准确度可视化
如图所示,每个角色的准确率都在90%以上 。但其中丽萨的精度是82% 。根据猜测和推理,由于丽萨经常和巴特总是同时出现,因此丽萨的图片中常会有巴特的身影,导致影响结果的精准度 。
3.2.2 增加阈值
为提高精确度,通过增加一个阈值来适当降低召回率 。
首先对丽萨和巴特两个角色的数据集分别计算最大概率预测、最佳候选对象和标准结果之间的概率差,即正确预测和错误预测结果 。
同时,为避免出现预测角色的概率过低、预测的标准差太高或者两个最可能的角色之间的概率差太低的情况,我们对测试集绘制以上三个值,以找到一条线或超平面来区分正确和错误的预测结果 。同样对两个角色都进行相同工作,如图所示 。
图3-3正误预测及分割超平面
如图上图所示,在正确和错误的预测之间不可能找到完全的线性分离超平面,并且不可能找到一个简单的阈值 。当然,我们可以看到每张图片的左下角部分,正确预测的概率很大,因此我们可以在这部分选取一个阈值 。为了提高准确度且对召回率影响较小,可以对每个角色或者低精度的角色(如丽萨)绘制如上图表 。同样,对数据集中任何一类角色都适用 。
通常,召回率和精确度无法同时达到最佳,需要根据不同结果有不同侧重面 。对于预测类的最小概率,我们可以绘制和召回率、精确度 。由于我们关注角色丽萨,那么我们为该类预测添加概率最小值,但这个个性化的阈值并非适用于大众 。因此我们的结论是,可以为预测类的概率最小值添加一个大约0.2~0.4的阈值 。
3.2.3 改进CNN模型
上述实验我们构建了一个四卷积层模型,为了使神经网络学习更多的细节和复杂性,我们尝试深入增加更多的卷积层,构建六个卷积层并深入 。
具体的,输出空间的维度为32,64,,64,256,1024 。改进后的模型提高了精度和召回率,如下图所示 。

基于卷积神经网络的辛普森角色识别

文章插图
图3-4六层卷积网
3.2.4 实验结果
图3-5 12类角色的预测结果和真实结果
如图所示,本实验对数据集中图像有很好的预测结果且预测速度足够快 。同样,在视频中预测角色也呈现出不错的结果 。
4 结论
本文采用卷积神经网络模型建立辛普森角色识别模型,用于自动识别《辛普森一家》中每个角色 。首先,在《辛普森一家》第4至第24季节中逐帧截取20个角色图像共16503幅,并标记每个图片的角色;使用Keras训练构建卷积神经网络,因为辛普森一家人中人物过于相似且人物形态不一,人脸分布在不同的区域,所以需要我们细致的提取特征,以达到区分的能力,最终能得到给定一个角色的图片,模型返回此图像上的字符的结果,测试集上的识别准确度可达96%,神经网络在识别和分类字符方面非常准确 。然后,预测视频中的人物,预测速度足够快(预测图片不到0.1秒),每秒可以预测多帧 。