【问题标题】:Image preprocessing - Create a dataset for CNN图像预处理 - 为 CNN 创建数据集
【发布时间】:2020-09-10 13:22:55
【问题描述】:

我是 CNN 的新手,我需要构建一个管道来加载图像并让它们为 CNN 做好准备。问题是我需要构建一个由图像形成的数据集。图像分为三类:COVID-19、健康肺和肺炎。我拥有的文件是:

  • 1 个文件夹,其中包含带有 covid-19 的肺部图像
  • 1 个包含健康肺部图像的文件夹
  • 1 个包含肺炎图像的文件夹
  • 1 个 .txt 文件,其中包含将形成训练数据集的所有图像
  • 1 个 .txt 文件,其中包含将形成验证数据集的所有图像
  • 1 个 .txt 文件,其中包含将形成文本数据集的所有图像

我一直在互联网上搜索,但我没有找到一种方法来构建由所有图像组成的数据集,甚至没有找到如何将它们与 .txt 文件相关联并构建相关的训练、测试和验证数据集。有什么建议吗?请在下面找到 .txt 文件的结构作为示例:

2   PNEUMONIA/person888_bacteria_2812.jpeg
2   PNEUMONIA/person1209_bacteria_3161.jpeg
2   PNEUMONIA/person1718_bacteria_4540.jpeg
2   PNEUMONIA/person549_bacteria_2303.jpeg
2   PNEUMONIA/person831_bacteria_2742.jpeg
2   PNEUMONIA/person1571_bacteria_4108.jpeg
2   PNEUMONIA/person1310_bacteria_3300.jpeg

【问题讨论】:

  • 您可以编写自己的自定义数据生成器,但如果您不需要任何特殊的扩充或类似的东西,您可以使用 Keras 的 ImageDataGenerator 类。 flow_from_directory 方法是您要搜索的方法(循环子目录,将每个子目录视为不同的类)。 link_to_documentation
  • 这看起来很适合创建一个完整的图像数据集!完成此操作后,我需要创建一个用于训练、验证和测试的数据集,其中包含 .txt 文件中指定的图像。如何读取数据集,将其链接到 .txt 文件并创建一个新文件?
  • 3个选项:(1)如果你想使用这个类,你可以使用“validation_split”参数来设置要设置为验证集的数据量。 (2)但是如果您已经选择了自己的拆分并想使用它,您可以使用flow_from_dataframe方法,但您需要自己创建data_frame(3)自己保存测试和训练图像在不同的位置(并保持每个标签的子目录),并为每个数据角色创建不同的生成器。

标签: python tensorflow keras deep-learning conv-neural-network


【解决方案1】:

您是否需要按照 txt 文件来制作训练集和验证集?

如果没有,你可以

创建一个 train/ 目录 创建一个 train/covid 目录 创建一个 train/healthy 目录 制作一个火车/肺炎目录

将所有内容放在各自的目录中,然后将其中的总图像中的一小部分随机移动到它们的验证目录中

否则您应该阅读每个 txt 并选择特定文件并将其移动到目标文件夹。

【讨论】:

  • 是的,这是必要的。每个文件夹都必须包含 .txt 文件中包含的特定图像。如何读取 .txt 文件并移动图像?
  • 您可以创建一个列表并通过循环移动文件。这可能会有所帮助:stackoverflow.com/questions/3277503/…
猜你喜欢
  • 2016-08-05
  • 1970-01-01
  • 2020-07-21
  • 1970-01-01
  • 2017-03-19
  • 2022-01-18
  • 2021-06-09
  • 2019-08-09
  • 2021-03-13
相关资源
最近更新 更多