簡體   English   中英

卷積神經網絡?

[英]Convolution neural network?

我正在為“情緒檢測”項目。

作為制作完整產品的第一步,我們從圖像處理開始。 我從互聯網上了解到卷積神經網絡是最好的方法。

import cv2
import numpy as np
def sum_cnn(image,x,y):
    x1,y1=np.shape(image)
    temp=image

    for i in range(0,x1-x):
        for j in range(0,y1-y):
            temp1=np.sum(image[i:i+x,j:j+y])/(x*y)
            if temp1 in range(850000,1100000):
                cv2.rectangle(temp, (i, j), (i+20, j+20), (0, 255, 0), 2)
                print "\n"


    return temp


image =cv2.imread('test.jpg')
image=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image=np.matrix(image)

temp=sum_cnn(image,95,95)

cv2.imshow('Processed Video', temp)
cv2.imwrite('1.jpg',temp)

print "Done"

上面是我編寫的代碼-值(850000,1100000)是Matrix的復雜范圍之和的值(抱歉,代碼非常粗糙,我從今天早上開始編寫)。

好吧,我要問的問題是如何設計或獲取要存儲權重的矩陣。

1)我可以僅使用一種矩陣來進行每種對象檢測(即粗略的單層CNN,這將為“汽車”和“面部”提供不同的值)還是應該為“汽車”和“面孔”?

2)如何處理不同大小的同一物體? 我在Internet上看到的一種解決方案是繼續調整原始圖像的大小。 我想知道是否有更快的方法?

3)在反向傳播中,為獲得最佳權重矩陣,我們給出了哪些粗略條件?

首先,如果您認真計划使用神經網絡,我建議您從基礎開始。 我想說,該頁面對於開始使用神經網絡真的很好。 一旦對神經網絡有了基本的了解,您就可以嘗試使用框架或Theano之類的東西來嘗試構建CNN。

老實說,我不太清楚您的代碼是關於什么的,但是我會盡力回答您的問題。

  1. 我想您在這里談論的是重量矩陣。 CNN在卷積層中的作用是:“提取特征”。 那就是大家所說的。 但是……這不是一個容易量化的值。 因此,您需要多少個過濾器圖(權重矩陣在CNN中稱為過濾器圖)取決於您的用例。 因此,您可能必須堅持使用測試和驗證集進行跟蹤和錯誤處理,以調整過濾器映射的數量,或者通常是調整超參數的數量。

  2. 這是Krizhevsky,Sutskever和Hinton的一篇很酷的論文 ,他們在GPU上做一些瘋狂的事情,並且將圖像固定為一定的大小。 如果您找到解決此限制的好方法,請告訴我。

  3. 您通常要做的是防止過度擬合。 研究人員想到了多種方法和方法來實現這一目標。 輟學,保持低體重或進行預訓練,僅舉幾例。

我再次建議您從給定的來源開始。 相比您在聽我講一些我可能不太了解的技術術語時,它更容易理解。

親切的問候,

PS:隨時糾正我

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM