机器不学习:卷积神经网络CNN与图像解决方法论(1)

作者 : 开心源码 本文共3891个字,预计阅读时间需要10分钟 发布时间: 2022-05-12 共171人阅读

【导读】传统的肉眼识别方法是很难直接识别出 NIs (自然图像) 和 CG (计算机生成的图像)。本文中提出了一种高效的、基于卷积神经网络 (CNN) 的图像识别方法。通过大量的试验来评估模型的性能。试验结果表明,该方法优于现有的其余识别方法,与传统方法中采用 CNN 模型来识别图像,此方法还能借助高级可视化工具。

▌ 摘要

考虑到对现有的 CCNs 从头开始训练或者微调预训练网络都具备肯定的局限性,这个研究提出了一种更合适的想法:设计阶段在 CNN 模型的底部添加了两个级联卷积层。该网络能够根据不同大小的图像输入,进行自适应地调整,同时保持固定的深度,以稳固 CNN 结构并实现良好的识别体现。对于所提出的模型,我们采用一种称为“局部到全局”的策略,即 CNN 能够获取局部图像的识别决策,而全局的识别决策可通过简单的投票方式取得。我们通过大量的试验来评估模型的性能。试验结果表明,该方法优于现有的其余识别方法,且在后解决的图像上也具备较好的鲁棒性。此外,相比于传统方法中采用 CNN 模型来识别图像,我们的方法还能借助高级可视化工具,进一步可视化地理解 NIs 与 CG 之间的差异。

▌简介

当前,对 NIs 和 CG 的图像识别研究已经得到了广泛的关注。处理这个问题的主要挑战在于 NIs 与 CG 有近乎相同的写实性及图像模式。先前的研究通常都是人工设计少量可判别的特征,来区别 NIs 和 CG。但这些方法普遍存在的问题是人为设计的特征对于给定的图像识别问题来说,并不肯定是最适合的,特别对于少量复杂的数据库而言,该方法的识别效果更差。

相比于需要先验知识和假设条件的传统方法,卷积神经网络 (CNN) 能够自动地从数据中学习目标的特征及其笼统表征,这使得它能够更广泛适用于少量复杂的数据库。本文,我们提出一种基于 CNN 的框架来识别 NIs 和 CG。这是一种以端到端的方式进行自动特征学习,而无需进行人为设计图像特征的框架。我们的工作主要总结如下:

提出了一种基于 CNN 的 NIs 与 CG 的通用识别框架,通过微调它能够自适应于不同尺寸的图像输入块。

对微调训练后的 CNN 模型,我们针对性地设计了一种改进方案以改进我们的识别体现,这两种基于 CNN 的方案都优于目前最先进的方法。

我们的方法在 Google 和 PRCG 数据库上都体现出良好的识别性能,而且对调整图像大小和压缩 JPEG 等后解决操作有强大的鲁棒性。

利用可视化工具,我们进一步地理解 CNN 模型是如何区分 NIs 和 CG。

▌数据集

我们使用的试验数据包括 Columbia Photo-graphic 与 PRCG 数据库。数据库由三组图像组成:(1) 从40个 3D 图形网站中获取的800张 PRCGs 数据;(2) 我们所采集的800张 NIs;以及 (3) 从 Google 搜索中获取的795张摄影图像。

我们所采集的300张 NIs 是通过小型数码相机拍摄的。先前研究的方法都没有在 Google 与 PRCG 数据库上进行过测试,这是由于 Google中的 NIs 与PRCG中的CG图像起源不同。而我们的研究不仅尝试处理这个问题,而且还将在 Personal 与 PRCG ,以及 Personal+Google 与 PRCG 两种不同数据库组合条件下进行测试。

▌框架

我们将 NIs 与 CG 的图像识别问题视为是一个二元分类问题。针对此问题,提出了两种不同的图像识别标准框架,如图1所示:其中,f 是特征提取器,c 代表一个分类器 (如 SVM) 。我们的框架是一个二阶段模型,其核心在于特征提取器。通常,特征的提取过程不仅需要耗费大量的时间,且提取出来的特征不肯定是我们任务所需要的,而我们的 CNN 框架能够以端到端的方式自动学习并提取所需特征,这为处理特征提取问题提供了一种思路。因而,我们提出了一种适用的 CNN 模型,并采用以下三种不同的训练方法:(1) 遵循现有的网络结构,并从头开始训练 CNN 模型;(2) 微调一个预先在其余数据集或者另外一个任务中训练好的、现成的 CNN 网络;(3) 设计一个新的网络,并从头开始训练。

图1 两种不同的图像识别框架

局部到全局策略

考虑到模型的计算成本,图片尺寸的多样性以及图像识别的性能要求,我们采用一种由局部到全局的策略,来对局部图像进行训练并使用简单的投票规则再对全局的图像进行分类。这种由局部到全局的策略是一种基于数据加强的思想,也是扩展训练中的常用技巧,尤其是在深度学习领域。

对于图像分类问题,局部策略 (即高精度的局部图像) 对于图像识别来说是非常重要的;另一方面,从 CG 上裁剪下来的图像本质仍是 CG,而对 Nis 而言也是如此。因而,我们引入数据加强的方法,也就是说,从每次训练中选择少量固定尺寸的图像去加强训练数据集,并且尽可能地去获取更高精度的图像。在实践阶段,我们使用 Maximal Poisson-disk 从每次训练中随机裁剪肯定数量的图像来构建新的训练数据集。在测试阶段,从每个测试图像中裁剪肯定数量的局部图像,并给每张局部图像加上特定的标签 ( CG 属于0,而 NI 属于1 ),编号较高的标签作为该图像的预测结果。

网络结构

我们所采用的网络结构由 ConvFilter 层,3个卷积层组,2层 FC 层以及1个softmax 分类层组成,模型的输入是二进制的图片格式。其结构如下图2所示:我们的输入是一张233*233的 RGB 图像,用绿色方块表示;红色方块代表卷积核,靠近它的数字代表该卷积核的尺寸,左侧的红色方块代表一个7*7的卷积核;特征图则由阴影部分的长方体所示。

图2 我们的网络结构

▌试验结果

试验设置与细节

我们使用了双三次插值来调整所有图像的大小,调整后的图片的较短边像素值为512,以此确保所有图像的大小一致性。基于原始数据集,我们以 3:1 的分离率来设置训练集和测试集,并用 MPS 从每张训练数据中裁剪出 200 张,以满足局部到全局策略的需要并达到扩充训练数据的目的。同样地,从每张测试数据中裁剪出 30 张来作为测试集。在训练时,我们采用128的批次大小,学习率设置为0.001,每 30k 次迭代学习率就除以10,直到迭代完 90k 次为止。此外,除了 60×60 和 30×30 图像块大小的正则化设置为 5e-5 和 1e-5 外,其他的正则化权重的默认值为 1e-4。

微调 CaffeNet 和卷积滤波器层的性能分析

微调后的 CaffeNet 的测试结果如下表 1 所示。我们可以看到,微调后网络 (C-1 到 C-7) 的测试性能要优于从头开始训练的网络 (C-S) 试验结果,这可能是因为预训练期间学习大量 NI 对模型的特征学习是有益的。而相比于传统方法 (精确率最高80.65%),通过微调后,我们的网络性能更佳,精确率更高。

表1 模型的分类精度,其中 C 表示 CaffeNet,”C-S” 表示从头开始训练网络 CaffeNet,”C-N” 表示微调 CaffeNet 后的前 N 层网络,N 从1到7。

此外,我们还对 ConvFilter 层进行了四种不同的配置: (1) 两个级联卷积层;(2) 删除 convFilter 层;(3) convFilter 层之后接 ReLU 激活层;以及(4) convFilter 层中加入高通滤波器。下表2 显示了这四种配置相对应的模型性能,其中使用两个级联卷积层时模型的精确率最高。

表2 四种不同配置下的 convFilter 的分类精度

不同尺寸图像块上的分类性能

下图 3 展现了我们的方法与三种人工设计特征的方法在不同尺寸图像块上的分类精度。与其余三种方法相比较,我们的方法在任何图像块尺寸上的精确率都更高,且随着图像块尺寸的缩小,网络的分类精确率会降低。

图3 我们的方法与三种人工设计特征的方法在不同尺寸图像块上的分类精度体现

后解决的鲁棒性分析

有效的图像识别算法不仅能解决原始数据,还应该在后解决数据中具备良好的鲁棒性。本文的研究中,我们针对图像缩放和 JPEG 压缩这两种典型的后解决进行鲁棒性分析。下图 4 展现了四种分类方法在五种后解决中的分类精确率体现 (实线部分)。可以看到,我们的模型对于后解决的数据具备更强的鲁棒性。

图4 不同分类方法在后解决数据上的分类精度体现

局部到全局策略的分析

进一步地,我们还分析了局部到全局策略在全尺寸图像上的分类精度体现。如下表3所示,试验结果表明在全尺寸图像上的模型精度,比在图像块上的模型精度要高,并且采用图像块投票的方式取得的全尺寸分类精度要高于直接在全尺寸上图像得到的分类精度。而投票精确性对后解决操作的稳健性由上图4中的虚线表示。

表3 局部到全局策略对六种方法的分类精确率的影响

可视化

在计算机视觉任务中,CNN 的训练普遍存在一种现象:即模型在第一层学习的卷积核相似于 Gabor 滤波器和 color blobs。我们在下图 5 展现了模型的卷积可视化结果,其中 (a) 表示我们模型的第一层卷积核的傅里叶变换 (FFT) 结果, (b) 表示预训练的 CaffeNet 的结果,(c) 是对应于 CaffeNet 中第一层的前96个卷积核的可视化结果,而 (d) 则对应于最后的96个结果。滤波器根据三个颜色通道 B,G 和 R 被分为3个组,而像素越亮则代表所对应的B,G,R的值越高。

图 5 卷积可视化结果

结论

本文,我们提出了一种基于 CNN 的通用框架来区别自然图像 NIs 与计算机生成图像 CG 之间的差异,这种方法不仅能够在 Google 和 PRCG 的数据集中进行测试,而在后解决时也体现出较好的鲁棒性。这些优点对于现实生活中的图像识别任务是非常有效且重要的。

未来的工作中,我们将尝试通过引入语义级别的 CNN 集成模型来进一步改进我们的模型性能。此外,我们还将扩展我们的方法,并应用于视频数据的差异性探究。

有想学习Python的同学可以加一下学习交流扣扣群:862672474

文档与视频资料都已经准备好,欢迎进群一起交流学习!

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 机器不学习:卷积神经网络CNN与图像解决方法论(1)

发表回复