對於卷積神經網路中垂直和水平特徵過濾器的理解

2021-10-09 12:00:13 字數 2270 閱讀 8031

1、首先是sobel運算元,用於檢測影象的輪廓

開始使用的是垂直特徵檢測的過濾器,可以識別影象輪廓

後來使用了水平特徵檢測的過濾器,也可以識別影象輪廓

# 可能是因為對於大的來說,垂直特徵過濾器和水平特徵過濾器能起到類似作用,

# 因為對於顏色變化的區域,很少是非常垂直或者平行的,都存在斜角,並且畫素點的顯示是矩形,也就是會有在水平和垂直方向都有顏色的變化(下降幅度不同),能檢測出對應特徵,但可以發現對相應的特徵檢測更明顯

# filter = tf.variable(tf.constant([[-1.0,-1.0,-1.0],[0,0,0],[1.0,1.0,1.0],[-2.0,-2.0,-2.0],[0,0,0],

#                                   [2.0,2.0,2.0],[-1.0,-1.0,-1.0],[0,0,0],[1.0,1.0,1.0]],shape=[3,3,3,1]))

filter = tf.variable(tf.constant([[-1.0,-1.0,-1.0],[-2.0,-2.0,-2.0],[-1.0,-1.0,-1.0],[0,0,0],[0,0,0],

[0,0,0],[1.0,1.0,1.0],[2.0,2.0,2.0],[1.0,1.0,1.0]],shape=[3,3,3,1]))

​op = tf.nn.conv2d(inputfull,filter,strides=[1,1,1,1],padding='same')

o = tf.cast(((op - tf.reduce_min(op))/(tf.reduce_max(op)-tf.reduce_min(op))) * 255,tf.uint8)

​with tf.session() as sess:

sess.run(tf.global_variables_initializer())

t,f = sess.run([o,filter],feed_dict=)

t = np.reshape(t,[566,500])

plt.imshow(t,cmap="greys_r")

plt.axis("off")

plt.show()

2、個人理解

可能是因為對於大的來說,垂直特徵過濾器和水平特徵過濾器能起到類似作用,因為對於顏色變化的區域,很少是非常垂直或者平行的,都存在斜角,並且畫素點的顯示是矩形,也就是會有在水平和垂直方向都有顏色的變化(下降幅度不同),能檢測出對應特徵,但可以發現對相應的特徵檢測更明顯

3、總結

首先可以發現垂直特徵檢測和水平特徵檢測雖然都得到了人物的大致輪廓,但是輪廓的細節是存在不同的,即對於原圖中色彩變化是很水平或者垂直的,則必須要在相應的特徵檢測器中才能識別出。

從原圖放大的細節來看,只要不是絕對水平或者垂直的色彩變化,都是想兩個方向(水平和垂直)共同變化的,只是變化的幅度不同(即色差不同)。考慮到畫素點在螢幕上的顯示是乙個個小方塊,呈矩形狀,而過濾器就是以畫素點為單位組成的方塊,便能對兩個方向的色差變化做出識別(卷積操作)。而對於絕對水平的區域,垂直過濾器自然無法識別出特徵(無法通過卷積得到分界線)。

卷積神經網路和神經網路

在神經網路中,每一層的每個神經元都與下一層的每個神經元相連 如下圖 這種連線關係叫全連線 full connected 如果以影象識別為例,輸入就是是每個畫素點,那麼每乙個畫素點兩兩之間的關係 無論相隔多遠 都被下一層的神經元 計算 了。這種全連線的方法用在影象識別上面就顯得太 笨 了,因為影象識別...

一維卷積神經網路 卷積神經網路中的計算

卷積的基本介紹 卷積操作後張量的大小計算 卷積參數量的計算 卷積flops的計算 感受野的計算 卷積神經網路中的卷積是指定義好卷積核 kernel 並對影象 或者特徵圖,feature map 進行滑動匹配,即對應位置相乘再相加。其特點就在於能夠捕捉區域性的空間特徵。具體過程如下圖所示 圖1 二維卷...

深度可分離卷積神經網路和標準卷積神經網路

深度可分離卷積神經網路是有moblienet引出來的概念。mobilenet是為了在手機等嵌入式上可以執行計算所提出的一種卷積神經網路。這種網路的特點是參數量少,對硬體資源要求相對低。參數量少是因為使用了深度可卷積神經網路代替了標準卷積神經網路。雖然計算量降低了,但是同時準確性也降低了。這是在準確性...