使用彩色和灰度图像训练数据集

Training dataset with coloured and grayscale images

我正在尝试训练用于面部性别和年龄检测的 cnn 模型。我的训练集包含彩色和灰度面部图像。如何规范化此数据集?或者如何处理混合了灰度和彩色图像的数据集?

要训练网络,您必须确保所有训练图像的大小相同,因此将所有图像都转换为灰度图像。要标准化,您可以从每个图像中减去训练集的平均值。对验证和测试图像执行相同操作。 详细流程看下面文章: https://becominghuman.ai/image-data-pre-processing-for-neural-networks-498289068258

请记住,网络只会尝试了解您的标签 (gender/age) 与您的训练数据之间的关系,以它们呈现给网络的方式。

最佳选择取决于您是否希望该模型将来适用于灰度或彩色图像。

如果只想对灰度图进行预测

您应该只训练灰度图像! 您可以使用多种方法将彩色图像转换为黑白图像:

  • 3 个 RGB 通道的简单平均值

  • 更复杂的变换使用圆柱颜色空间作为 HSV、HSL。在那里你可以使用其中一个频道,因为你变灰了。通常情况下,V 通道比 RGB 的平均值更符合人类感知 https://en.wikipedia.org/wiki/HSL_and_HSV

如果需要预测彩色图像

显然,从灰度图像重建颜色并不容易。那么你也必须在训练期间使用彩色图像。

如果您的模型在输入中接受 MxNx3 图像,那么它也会接受灰度图像,前提是您复制了 3 个 RGB 通道上的信息。

您应该仔细评估您拥有的示例数量,并将其与您要使用的模型所需的通常训练集大小进行比较。 如果您有足够多的彩色图像,根本不要使用灰度案例。 如果你没有足够的例子,请确保你有 gray/colored 个案例的平衡训练和测试集,否则你的网络将学会分别对灰度和彩色进行分类。

或者,您可以考虑使用遮罩,并用遮罩值替换缺失的颜色通道。

您可以考虑的其他选择: - 使用预训练的 CNN 进行特征提取,例如VGGs 大量在线可用,然后微调最后一层

对我来说,年龄和性别估计不会受到 presence/absence 颜色的很大影响,可能将问题减少到灰度图像只会帮助你收敛,因为会有要估计的参数要少得多。 您可能更应该考虑在姿势、方向等方面对图像进行标准化...