Tensorflow 如何识别放大的图像?

Tensorflow 如何识别放大的图像?,tensorflow,machine-learning,keras,deep-learning,computer-vision,Tensorflow,Machine Learning,Keras,Deep Learning,Computer Vision,有没有什么方法可以用来识别“假”4K图像?i、 e.从720p/1080p放大到4K的图像 我尝试过搜索,但我主要只找到了使用不同方法(如比线性、双三次、Lanczos、SRCNN和EDSR)来放大图像的方法 然后,我如何识别这些从“真正的4K”图像的较低分辨率放大的图像 我目前有一个200个“真实”4K图像的数据集,我将使用上面提到的方法之一再次缩小和放大。有没有一种方法可以训练模型来区分给定图像数据集中的这些图像?这应该给我至少400张图片,有两个类别。真正的4K和放大的4K 我是否应该使用

有没有什么方法可以用来识别“假”4K图像?i、 e.从720p/1080p放大到4K的图像

我尝试过搜索,但我主要只找到了使用不同方法(如比线性、双三次、Lanczos、SRCNN和EDSR)来放大图像的方法

然后,我如何识别这些从“真正的4K”图像的较低分辨率放大的图像

我目前有一个200个“真实”4K图像的数据集,我将使用上面提到的方法之一再次缩小和放大。有没有一种方法可以训练模型来区分给定图像数据集中的这些图像?这应该给我至少400张图片,有两个类别。真正的4K和放大的4K

我是否应该使用机器学习模型?到目前为止,我是计算机视觉、数字图像处理、机器学习等领域的新手,并且只拥有卷积神经网络图像分类器的经验。CNN可以用来训练模型识别这样的图像吗?还是机器学习方法不适合这种情况

谢谢你抽出时间

编辑:根据@CAFEBABE的建议,我将这些4K图像(真实、lanczos放大和双三次放大,从1080p放大)拆分为每个类别的51200张240x135的图像,并将它们放入CNN,如下所示

model = Sequential() 

model.add(Conv2D(32, (3,3), input_shape = (135, 240, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))

# 2 hidden layers
model.add(Flatten())
model.add(Dense(64))
model.add(Activation("relu"))

model.add(Dense(64))
model.add(Activation("relu"))

# The output layer with 3 neurons, for 3 classes
model.add(Dense(3))
model.add(Activation("softmax"))

# Compiling the model using some basic parameters
model.compile(loss="sparse_categorical_crossentropy"
              ,optimizer="adam"
              ,metrics=["accuracy"])
然而,我的模型似乎并不是在向上扩展的基础上学习,而是试图根据图像的内容进行分类;我得到33%的准确率(纯粹随机)


CNN能解决这个问题吗,或者我的模型有什么遗漏吗?

试试看。它将帮助您解决此问题

为此尝试GAN。它将帮助您解决此问题

您应该试试

短消息你可以通过CNN来做,CNN接受过关于两类问题升级/不升级的培训。实际上,我会训练它,甚至识别方法,因为这似乎是一个更容易的问题。我想你需要更多的图片。其次,在如此高分辨率的图像上训练CNN是一件令人头疼的事

因此,我将遵循以下方法:

(步骤1)在大比例尺图像的低分辨率面片上构建数据集。那么4096 × 2160基本上由16个1024x540图像数据集组成,以此类推。为了使其切实可行,从任何来源建立分辨率为227x240的图像数据集

(第2步)像处理高分辨率图像一样,缩小和放大这些图像。对于这一步,我不会使用补丁本身,而是使用原始的高分辨率图像

(步骤3)训练NN以识别

(第4步)计算每个图像中有助于解决问题的人(熵好与坏)

(步骤5)建立分割模型,从图像中选择最佳区域来解决问题。因此,哪个227x240补丁ouf a 4k图像可以帮助您确定缩小的范围。分割不需要在全分辨率图像上进行训练。假设您将无法识别均匀彩色图像区域上的某些放大方法

(循环)但在步骤1中使用分割模型来识别面片。

您应该尝试

短消息你可以通过CNN来做,CNN接受过关于两类问题升级/不升级的培训。实际上,我会训练它,甚至识别方法,因为这似乎是一个更容易的问题。我想你需要更多的图片。其次,在如此高分辨率的图像上训练CNN是一件令人头疼的事

因此,我将遵循以下方法:

(步骤1)在大比例尺图像的低分辨率面片上构建数据集。那么4096 × 2160基本上由16个1024x540图像数据集组成,以此类推。为了使其切实可行,从任何来源建立分辨率为227x240的图像数据集

(第2步)像处理高分辨率图像一样,缩小和放大这些图像。对于这一步,我不会使用补丁本身,而是使用原始的高分辨率图像

(步骤3)训练NN以识别

(第4步)计算每个图像中有助于解决问题的人(熵好与坏)

(步骤5)建立分割模型,从图像中选择最佳区域来解决问题。因此,哪个227x240补丁ouf a 4k图像可以帮助您确定缩小的范围。分割不需要在全分辨率图像上进行训练。假设您将无法识别均匀彩色图像区域上的某些放大方法


(循环)但是在步骤1中使用分割模型来识别补丁。

在过去的一个小时里一直在阅读关于GAN的文章,似乎这正是我想要的。干杯这正是我说的一个男人应该如何帮助这件事?GANs将帮助您建立一种方法,以一种使用CNN或任何其他NNIt都无法识别的方式来放大图像。我似乎弄错了-我认为鉴别器(在GAN中使用生成器进行训练)可以单独使用,以识别放大的图像是否为“真正的4K图像”.GAN特性描述符可用于做出此预测在过去的一个小时里,我一直在阅读关于GAN的文章,似乎这正是我想要的。干杯这正是我说的一个男人应该如何帮助这件事?GANs将帮助您建立一种方法,以一种使用CNN或任何其他NNIt都无法识别的方式来放大图像。我似乎弄错了-我认为鉴别器(在GAN中使用生成器进行训练)可以单独使用,以识别放大的图像是否为“真正的4K图像”.GAN特征描述符可用于进行此预测在第2步中,在我缩小并放大原始高分辨率图像后,我还应将这些放大的图像分割为16个1024x520图像,以便我有步骤1和步骤2中的类似图像?我会选择更多/更小的补丁。训练一个1024x5的NN