生成網路的邊緣檢測Edge gan總結

2021-10-19 07:18:54 字數 4028 閱讀 5395

最近剛好在做分割,順手玩玩用gan做邊緣檢測. 本意是想在bsds輪廓分割資料集上做,同時驗證針對樣本極不平衡的損失函式挑選問題,簡單做個小結

整體結構為cgan,由於訓練資料太少,使用了預訓練的vgg16作為baseline. bsds訓練集只有200張影象,因此使用canny運算元生成了3萬張邊緣影象.使用標準二值交叉熵損失作為生成器損失函式. 訓練30輪.

結果如下:

實驗使用的訓練集影象均為室內房屋影象,未出現人. 結果而言,網路具有較強的泛化能力.

實驗之初,考慮到bsds訓練集太少,因此考慮使用遷移學習先生成canny邊緣檢測影象用以提公升邊緣檢測能力,再使用bsds訓練集fine-tune. 效果不太理想,放棄了. 但從實驗過程中驗證了針對樣本極不平衡情況下的損失函式效果對比.

對於bsds輪廓資料集,正負樣本比例應該在1:1000,甚至更高. 原始的二值交叉熵損失如理論而言失效,網路的生成結果全是一片黑. 然後嘗試了focal loss,但生成器損失迅速變為nan(原因有待考證). 然後選擇了類間平衡交叉熵損失,訓練的前幾輪輸出結果還能看見輪廓,之後就沒了. 最後實驗了帶權交叉熵損失,效果明顯提公升,能夠得到很清晰的輪廓,但是太清晰了?. 得不斷的嘗試不同的權重,很麻煩. 以下是幾個權值得到的分割結果對比圖. 調了幾個後放棄了bsds,由contour_gan的目標變為了edge_gana?

原文:

卷積神經網路與邊緣檢測

計算機視覺的三個應用場景 由畫素構成,一張的資料量很大,如果採用傳統的dnn其參數量巨大,難以處理。為此,需要進行卷積計算,它是卷積神經網路中非常重要的一塊。卷積運算是卷積神經網路最基本的組成部分,使用邊緣檢測作為入門樣例。這是乙個6 6的灰度影象。因為是灰度影象,所以它是6 6 1的矩陣,而不是6...

基於法線的邊緣檢測

在邊緣高亮效果 中我提到過兩種方法,各有優缺點吧 影象空間域的邊緣檢測效果比較好,中間沒有多餘的線條.缺點是ps中計算比較慢 第二種把模型 放大 其實是變胖 的做法,可以在vs中完成,不需要額外的rendertarget,適合低端顯示卡使用,適應性好.不如果模型法線資訊不對的話,會造成畫面錯亂.實際...

opencv的Canny邊緣檢測

前言 目標 去噪 邊緣對雜訊敏感,第一步先用高斯濾波器來濾波。尋找影象的密度梯度 對平滑後的影象進行濾波用sobel濾波器來求出x,y方向的導數。梯度方向總是垂直於邊緣 非極大值抑制 在得到梯度的值和方向後,對影象進行全面掃瞄,取出不需要的畫素,這些畫素可能不構成邊緣。對於這一點如果畫素是其梯度方向...