簡體   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