2016-05-07 237 views
11

我有3个彩色图像文件夹。文件夹的名称是内部图像的标签。Keras loading彩色图像

cls1 
    |____img_0.png 
    |____ ... 
    |____img_n.png 
cls2 
    |____img_0.png 
    |____ ... 
    |____img_n.png 
cls3 
    |____img_0.png 
    |____ ... 
    |____img_n.png 

我想用Keras库创建分类卷积神经网络,但我找不到,如何创建彩色图像数据集。 你能帮我吗?

回答

11

请考虑这个gist of pre-trained VGG-16 model with example usage我觉得这说明:

总结:

  1. 负载OpenCV的或scikit,图像等您的图像(L58)
  2. 调整大小和/或裁剪你图像以适合输入尺寸(对于VGG-16为224 * 224)(L58)
  3. 计算并为每幅图像减去均值(L59〜L61)
  4. 将色彩维度高度和宽度尺寸(L62)
  5. 如果使用scikit图像,需要交换的3个颜色通道的OpenCV因为负载的图像作为BGR通道但scikit图像加载它作为RGB通道。
  6. 添加批量大小尺寸(L63)
  7. 洗牌,分区和将它们连接起来(沿着维度0),以形成训练数据X_train,测试数据等X_test随着地面实况Y_trainY_test
  8. 如果您的数据集太大而不适合内存,请使用生成器并使用功能fit_generator来进行培训。 (凯拉斯也有evaluate_generatorpredict_generator
  9. 你现在已经准备好接受培训了。
+0

谢谢!我正在寻找这种简短的概述。好答案。 –

+1

第三步将删除图像的颜色不相似性。这个例子在所提出的例子中起作用,因为它试图分类一只猫,它将继续是一只猫,而不管图像中的颜色变化。如果您认为这些信息对您很重要(例如,在白天/夜晚;室内/室外进行决定;将作品分类为作者),那么您应该保留它。在这种情况下,“全局”标准化可能是解决方案(即'(image-dataset_mean)/ dataset_std')。 – ldavid