我想将存储在YUV422 (YUYV)格式的图像输入到卷积神经网络中。YUV422表示两个像素由四个字节表示,基本上两个像素共享色度但有各自的亮度值。
我了解到对于卷积神经网络来说,空间性起着重要作用,即滤波器需要同时“看到”亮度像素及其对应的色度像素。那么,应该如何处理这个问题呢?还是说这根本不是问题?
为了性能考虑,我希望避免额外的预处理步骤。
回答:
在TensorFlow、PyTorch等常见框架中实现的卷积神经网络是以平面方式存储通道数据的。也就是说,每个通道(R、G、B或Y、U、V)都以连续区域存储图像中的所有像素(宽度 x 高度)。这与通道数据在每个像素内交错存储的格式形成对比。因此,您需要将子采样的UV通道上采样到与Y通道相同的大小,然后以与RGB数据相同的方式输入到网络中。
其他人发现这种方法可以正常工作,但性能不如RGB。请参见https://github.com/ducha-aiki/caffenet-benchmark/blob/master/Colorspace.md和图像颜色空间对卷积神经网络性能的影响,作者为K Sumanth Reddy; Upasna Singh; Prakash K Uttam。
不太可能YUV到RGB的转换会成为瓶颈。RGB的一个显著优势是可以重用许多优秀的预训练模型(迁移学习)。