我知道使用深度卷积神经网络在图像识别、图像分类等方面取得了很多进展。
但是,如果我在 PNG 图像上训练一个网络,它是否只适用于如此编码的图像?还有哪些其他图像属性会影响这一点?(阿尔法通道,隔行扫描,分辨率等?)
我知道使用深度卷积神经网络在图像识别、图像分类等方面取得了很多进展。
但是,如果我在 PNG 图像上训练一个网络,它是否只适用于如此编码的图像?还有哪些其他图像属性会影响这一点?(阿尔法通道,隔行扫描,分辨率等?)
简短的回答是NO。
图像编码的格式与其质量有关。神经网络本质上是执行大量操作(矩阵乘法、元素加法和映射函数)的数学模型。神经网络将张量视为其输入(即多维数组)。它的形状通常是 4-D(每批次的图像数量、图像高度、图像宽度、通道数)。
不同的图像格式(尤其是有损格式)可能会产生不同的输入数组,但严格来说,神经网络在其输入中看到的是数组,而不是图像。
虽然 Djib2011 的答案是正确的,但我理解您的问题更侧重于图像质量/属性如何影响神经网络学习。这个主题(afaik)的研究很少,但未来可能会有更多的研究。我只在上面找到了这篇文章。目前的问题是,这更多是在实际应用中出现的问题,而不是在学术研究领域中出现的问题。我记得当前的一个播客中,研究人员观察到,即使是用来拍照的相机也会产生很大的影响。
这是对 Djib2011 的第一个答案的重复。简短的回答必须是否定的。更长 - 首先照片总是被编码为如下的张量。图像是许多像素。如果认为照片有 m 行和 n 列,则每个像素由其行和列位置指定,即由 (m,n) 对指定。特别是有 m*n 像素,即使对于“小”照片来说也非常大。如果照片是黑白的,则照片的每个像素都由零到一之间的数字(黑度强度)编码。如果照片是彩色的,它由三个数字(RGB 强度)编码。所以最终得到一个 1xmxn 或 3xmxn 的张量。图像识别是通过 CNN 完成的,它利用照片在像素之间没有太大变化的事实,压缩通过过滤器和池化数据。因此,关键在于 CNN 的工作是将照片中数量惊人的数据点(或特征)压缩成数量较少的值。因此,无论您以何种格式开始,CNN 都会从进一步压缩照片数据开始。因此,它本身独立于照片表示的大小。
但是,CNN 将要求通过它运行的所有图像都具有相同的大小。因此,这种依赖关系会根据图像的保存方式而改变。此外,由于相同大小的不同文件格式会产生不同的张量值,因此无法使用相同的 CNN 模型来识别不同方法存储的照片。
虽然训练后相机或图像压缩的变化可能很严重,但如果相同,问题就会少得多。当然,噪声越大,性能就越差,但我从未听说标准 JPEG 压缩会产生很大的不同。但这将取决于应用程序。
如果你在训练后改变一些东西,这在很大程度上取决于。例如,对于某些网络,更改分辨率根本不起作用。对其他人来说是可能的。它非常特定于网络。一般来说,任何变化(甚至是镜头、照明、背景等)都需要进行评估,并且需要从理论的角度纳入培训。
一般来说,拥有质量不同的训练数据并不是一个好主意。如果您想对 PNG 和 JPG 进行分类,那么最好同时对两者进行训练。其他图像属性也是如此。
CNN 无法推断,它通常只在训练集空间内工作。其他模型可以做到这一点,例如基于规则的模型。