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



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

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?。

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

对你来说,一个更好的解决方案是使用一个进行语义分割的神经网络。这样,你的网络会为地图上的每个形状回归一个可能性图。有了这个可能性图,你就会知道每个班级有多少人,他们在哪里。

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

https://github.com/matterport/Mask_RCNN

最新更新