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