当前位置: 首页 > 知识库问答 >
问题:

如何在神经网络中检测训练过的图像?

杨腾
2023-03-14

我使用了卷积神经网络(CNN)来训练地图中的图例。这些图例包括圆形、椭圆形、菱形、十字架和正方形。神经网络(受代码启发https://towardsdatascience.com/from-raw-images-to-real-time-predictions-with-deep-learning-ddbbda1be0e4)对我来说效果很好。输入图像是图例(如输入训练图像)的单独裁剪图片,我想要的输出是在地图(如输入地图)中预测这些图例。我的神经网络现在可以对图像进行分类,并预测它们是正方形还是圆形。例如,当我提供此图像diamondinput作为输入时,输出为diamond。

from keras.models import model_from_json
import numpy as np

EMOTIONS_LIST = ["circle","cross","diamond","oval","square"]
def predict_emotion(img):
        preds = model.predict(img)
        return EMOTIONS_LIST[np.argmax(preds)]
import cv2
import numpy as np
from google.colab.patches import cv2_imshow
import keras
#model =  keras.models.load_model('/content/drive/MyDrive/model_weights_updated.h5')
fr=cv2.imread('/content/drive/MyDrive/Images/train/diamond/Copy of 0076.tif')
gray_fr = cv2.cvtColor(fr, cv2.COLOR_BGR2GRAY)
roi = cv2.resize(gray_fr, (48, 48))
pred = predict_emotion(roi[np.newaxis, :, :, np.newaxis])
print(pred)

程序输出:

[[1.7809551e-06 2.4862277e-07 9.9999583e-01 2.1272169e-06 8.9550163e-09]],钻石

如何使神经网络预测地图中的这些传说以及地图中的所有其他传说,就像这个outputmap一样?。

共有1个答案

督劲
2023-03-14

使用您获得的网络,可以将每个地图拆分为一个网格,然后对网格中的每个部分进行分类,但这种方法存在许多问题。

对您来说,更好的解决方案是使用进行语义分割的神经网络。这样,您的网络会为地图上的每个形状回归一个似然图。有了这个似然图,您将知道每个类有多少个以及它们在哪里。

为此,可以从以下MaskRCNN实现开始。

https://github.com/matterport/Mask_RCNN

 类似资料:
  • 我有一个关于卷积神经网络()训练的问题。 我成功地使用tensorflow训练了一个网络,它获取一个输入图像(1600像素),然后输出三个匹配的类中的一个。 使用不同的培训课程测试网络,效果良好。然而当我给它一个不同的第四个图像(不包含任何经过训练的3个图像)时,它总是返回一个随机匹配到其中一个类。 我的问题是,如何训练网络来分类图像不属于这三个训练图像中的任何一个?类似的例子是,如果我针对mni

  • 在本章中,我们将了解可以使用TensorFlow框架实现的神经网络训练的各个方面。 以下几个建议,可以评估 - 1. 反向传播 反向传播是计算偏导数的简单方法,其中包括最适合神经网络的基本形式的合成。 2. 随机梯度下降 在随机梯度下降中,批处理是示例的总数,用户用于在单次迭代中计算梯度。到目前为止,假设批处理已经是整个数据集。最好的例子是谷歌规模; 数据集通常包含数十亿甚至数千亿个示例。 3.

  • 第 10 章介绍了人工神经网络,并训练了第一个深度神经网络。 但它非常浅,只有两个隐藏层。 如果你需要解决非常复杂的问题,例如检测高分辨率图像中的数百种类型的对象,该怎么办? 你可能需要训练更深的 DNN,也许有 10 层或更多,每层包含数百个神经元,通过数十万个连接相连。 这可不像公园散步那么简单,可能碰到下面这些问题: 你将面临棘手的梯度消失问题(或相关的梯度爆炸问题):在反向传播过程中,梯度

  • 第 10 章介绍了人工神经网络,并训练了我们的第一个深度神经网络。 但它是一个非常浅的 DNN,只有两个隐藏层。 如果你需要解决非常复杂的问题,例如检测高分辨率图像中的数百种类型的对象,该怎么办? 你可能需要训练更深的 DNN,也许有 10 层,每层包含数百个神经元,通过数十万个连接来连接。 这不会是闲庭信步: 首先,你将面临棘手的梯度消失问题(或相关的梯度爆炸问题),这会影响深度神经网络,并使较

  • 我们现在将学习如何训练神经网络。 我们还将学习Python深度学习中的反向传播算法和反向传递。 我们必须找到神经网络权重的最佳值,以获得所需的输出。 为了训练神经网络,我们使用迭代梯度下降法。 我们最初从权重的随机初始化开始。 在随机初始化之后,我们使用前向传播过程对数据的某个子集进行预测,计算相应的成本函数C,并将每个权重w更新为与dC/dw成比例的量,即成本函数的导数。重量。 比例常数称为学习

  • 这是我的问题。我训练了一个卷积神经网络,用tensorflow将图像分为两类。我现在想知道如何使用神经网络的权重,并在未标记的随机图像上进行测试。tensorflow中是否有这样的函数,或者我现在应该自己运行卷积吗?