繁体   English   中英

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

[英]How to detect the trained images in the neural network?

我使用卷积神经网络 (CNN) 来训练地图中的图例。 这些图例是圆形、椭圆形、菱形、十字形和正方形。 神经网络(灵感来自代码https://towardsdatascience.com/from-raw-images-to-real-time-predictions-with-deep-learning-ddbbda1be0e4 )在我的案例中运行良好。 输入图像是图例的单个裁剪图片,例如输入训练图像和 output 我想要的是在输入地图等地图中预测这些图例。 我的神经网络现在可以对图像进行分类并预测它们是正方形还是圆形。 例如,当我提供此图像diamondinput作为输入时,output 是 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)

Output 为程序:

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

如何让神经网络预测 map 中的这些图例以及map中的所有其他图例,就像这个输出图?

使用你得到的网络,可以将每个 map 拆分为一个网格,然后对网格中的每个段进行分类,但是这种方法存在很多问题。

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

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

https://github.com/matterport/Mask_RCNN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM