最近在做項目的時候,涉及到了小目標的圖像語義分割,一張圖象中往往只有一個目標,且目標占圖像的面積比例非常的小,直接訓練圖像分割二分類,得到的分割效果十分的差,有時候還得不到結果,我知道是樣本不均衡的原因,有什麼有效的方法,可以解決小目標的語義分割嗎?只有一個類別,不包括背景。


一個大 trick 是初始化的時候把負樣本那一維的 bias 設成一個比較大的正數,比如 sigmoid 可以設成 4.6 於是開始所有的 pixel 都會被 99% confidence 分為 background。此 trick 配合 [loss normalization 的時候除以 正樣本 pixel 數量] 有奇效。


哪天benchmark的評價指標都捨棄了mIoU這種重視大物體輕視小物體的指標,小目標分割才會發展得快一些吧。


我的幾個想法:

1. 最簡單的,前景的loss增加一個權重係數,防止前景loss被背景loss淹沒。

2. 使用難負樣本挖掘,即挑出背景像素中loss最大的前n個計算loss,類似ssd的思路。

3. 使用實例分割,得到前景roi之後再分割,相當於一個attention機制,比如mask rcnn。


1.既然是類別不均衡問題,從損失函數上修改應該會有一定的提升。建議使用dice作為損失函數,對像素不平衡沒有那麼敏感了。我一般做的都是醫學影響的分割,病灶點區域和背景相比也是存在較大的不均衡,使用dice一般效果都還可以。

2.我認為除了類別不均衡問題之外,還要解決前景目標尺寸過小的問題。模型上盡量減少下採樣次數,避免目標區域經過多次下採樣之後信息損失過多。然後還可以使用滑塊的方式進行訓練和測試,雖然會損失全局信息,但是增大了目標區域在輸入patch中的佔比,降低了分割難度。

語義分割來做的話focal loss?。。


推薦你看我的專欄裡面的一篇文章

頹小費:圖像分割中從Loss上解決數據集imbalance的方法?

zhuanlan.zhihu.com圖標


兩次分割或者一次檢測一次分割,就是先定位再分割,剔除背景。


難道不能先做一下檢測,得到ROI之後再分割么。。。


最近在做眼底圖病變的分割,使用了focal loss來緩解類別不平衡,但是發現特異度挺高的,靈敏度很低,有大佬知道是怎麼回事嗎


如何解決假陽性的問題呢,個人覺得面向class-unbalanced得損失函數普遍存在一個問題,對假陽性結果得懲罰過小,訓練出的結果預測也是假陽性偏多


這最直接的是對圖像切割,同時把不含目標的子圖排除掉,做到均衡


過小的目標,比如十幾像素或者更低,沒有檢測的意義,或者說檢測難度太大,因為此時判定這個小目標,主要是根據所在場景來判定的


推薦閱讀:
相关文章