项目介绍:Stylized-ImageNet
Stylized-ImageNet 是一个专注于深入研究卷积神经网络(CNNs)的项目,通过为 ImageNet 数据库赋予不同风格,使得 CNNs 学习更加关注于物体的形状特征,而不是局部的纹理。这个项目由 Robert Geirhos 等人在他们的研究中提出,其目的是提高模型在不同样式数据上的准确性和鲁棒性。
样例图片
在 Stylized-ImageNet 中,同一张 ImageNet 图像可以被转换为不同的风格。这种转化主要在于改变图像的局部纹理,同时保留全局物体形状。这种特性使得 Stylized-ImageNet 成为一个有效的数据集,用以引导 CNNs 更多地学习物体形状特征,而不是简单的纹理识别。
使用方法
要创建 Stylized-ImageNet,需要执行以下步骤:
-
获取风格图像:首先,从 Kaggle 的”painter-by-numbers”数据集中下载并解压绘画图像。
-
获取 ImageNet 图像及设置路径:如果已有 ImageNet 图像,可以设置相应的路径到
code/general.py
。否则,需要从 ImageNet 网站获取图像,并根据需求设置路径。 -
创建 Stylized-ImageNet:在有 GPU 的情况下,执行
create_stylized_imagenet.sh
脚本以生成 Stylized-ImageNet。 -
可选清理步骤:在创建完成后,可以删除临时文件以节省空间。
Docker 镜像
为了简化环境搭建,项目提供了 Docker 镜像,避免用户手动安装所需的所有库。
CNNs 在 Stylized-ImageNet 上的预训练
项目提供了已经在 Stylized-ImageNet 上训练好的 CNNs 模型,供研究人员直接使用与测试。
训练细节
在训练模型时,Stylized-ImageNet 可以直接作为 ImageNet 的替代品,并使用相同的均值和标准差进行标准化处理。
风格化任意数据集
虽然本项目主要针对 ImageNet 数据集,但可以通过推荐的代码库将其应用于其他图像数据集,以生成不同风格的数据。
数据集的获得
由于法律原因,项目无法直接提供 Stylized-ImageNet 数据集的下载链接。用户需要自行生成或寻找相关人员以获取此数据集。
致谢
项目代码大量借鉴了 Naoto Inoue 开发的 AdaIN PyTorch 实现,这是 X. Huang 和 S. Belongie 的实时风格转化方法的实现。
引用
如果 Stylized-ImageNet 对您的研究有所帮助,请考虑引用相关论文,以表感谢。
综上所述,Stylized-ImageNet 为研究人员提供了一种创新的方式去探寻 CNN 在各种样式下的表现,同时提高了模型在未知分布下的泛化能力。