我正在尝试训练面部性别和年龄检测的cnn模型。我的训练集包含彩色和灰度的面部图像。如何规范化此数据集?或者我如何处理混合灰度和彩色图像的数据集?
答案 0 :(得分:2)
要训练网络,您必须确保所有训练图像中的大小相同,因此将全部转换为灰度。要标准化,您可以从每个图像中减去训练集的平均值。对验证和测试图像执行相同的操作。 有关详细步骤,请参阅以下文章: https://becominghuman.ai/image-data-pre-processing-for-neural-networks-498289068258
答案 1 :(得分:2)
请注意,网络只会尝试了解您的标签(性别/年龄)与培训数据之间的关系,以及它们呈现给网络的方式。
最佳选择取决于您是否希望模型在未来适用于灰度或彩色图像。
如果只想预测灰度图像
你应该只在灰度图像上训练! 您可以使用许多方法将彩色图像转换为黑白图像:
3个RGB通道的简单平均值
使用圆柱形颜色空间作为HSV,HSL的更复杂的变换。在那里你可以使用灰色的其中一个通道。通常,V通道对应于人类感知比RGB的平均值更好 https://en.wikipedia.org/wiki/HSL_and_HSV
如果您需要预测彩色图片
显然,从灰度图像重建颜色并不容易。然后你必须在训练期间使用彩色图像。
如果你的模型在输入中接受MxNx3图像,那么它也会接受灰度图像,只要你在3个RGB通道上复制信息。
您应该仔细评估您拥有的示例数量,并将其与您要使用的模型所需的通常训练集大小进行比较。 如果您有足够的彩色图像,则根本不要使用灰度图像。 如果您没有足够的示例,请确保您有灰色/彩色案例的平衡训练和测试集,否则您的网将学会分别对灰度和彩色进行分类。
或者,您可以考虑使用遮罩,并用掩蔽值替换缺少的颜色通道。
您可以考虑进一步替代: - 使用预先训练的CNN进行特征提取,例如VGG很大程度上可以在线获得,然后微调最后一层
对我来说,感觉年龄和性别估计不会受到颜色存在/不存在的影响,并且可能将问题减少到灰度图像只能帮助您收敛,因为参数会更少估计。 你应该考虑在姿势,方向等方面对图像进行标准化。