概要
とてもシンプルなネットワークだがなかなかの精度が出るPSPNet
a)画像を入力 b)ResNetで特徴を取り出す c)Pyramid Poolingで様々なスケールの特徴を学習し、画像サイズを合わせて結合する。d)1x1 convolutionで出力chanel数をclass数と一致させるsemantic mapを出力する。
githubにコード上げる予定です
https://github.com/yokosyun/SegNet
比較実験
-
max poolingよりaverage poolingの方が精度が高かったらしい。max poolingの方が特徴がはっきり残って良いと思ったのが、、、
-
B1236の方が複数サイズでpoolingしているのでB1より精度はもちろんの事高くなっている。
-
Poolingしたあとconvolutionで次元を削減する事で多少精度が上がっている。余分な次元が減って学習しやすくなったのではないかと。
auxiliary loss
(b)Feature Mapを生成する為のResNetの途中の層でもclassificationを行い、d)と同じくlossを計算する。深いネットワークを使う時に消失勾配を減少する事が出来そう。結果
入力 batch size8で23epochしかtrainingしてないのに良い感じ!
resnet50のpretrained weightを使ったからかな