茨城エンジニアのPython開発日記

茨城のITベンチャー企業ではたらく2年目エンジニア。Pythonで色々なものを作成中。

論文読んでAIつくるぞ会(第7回) ~モデル構築~

ブログから記事を見つけたい場合はこちら

 

ブログ地図 - 茨城エンジニアのPython開発日記

 

おはようございます。松原です。とても眠いです。
いま第8回の勉強会の最中なのですが、第7回のブログを書いていなかったため勉強会中に書いています。

 

0.今日の目標

 

今回の目標は、下記論文を真似てセマンティックセグメンテーションの性能向上をすることです。

 

https://openaccess.thecvf.com/content_cvpr_2015/papers/Long_Fully_Convolutional_Networks_2015_CVPR_paper.pdf

 

論文をまねて性能向上ができれば、ひとまずセマンティックセグメンテーション勉強会の目標は達成。次の目標に移っていきます。

 

1.モデルの説明

 

 

f:id:tottorisnow33:20210213075915p:plain

Jonathan Long. Evan Shelhamer.Trevor Darrell. Fully Convolutional Networks for Semantic Segmentation. https://openaccess.thecvf.com/content_cvpr_2015/papers/Long_Fully_Convolutional_Networks_2015_CVPR_paper.pdf

 

モデルは上記の通り、畳み込み層とプーリング層からできています。
畳み込み層ではパディングをしており、画像方向の次元削減はプーリングで行われています。

さてセマンティックセグメンテーションの問題として、画像の空間方向の次元を削減すると、アウトプットの画像解像度が落ちるというものがあります。


500×500の入力画像があったとして、500×500のすべてのピクセルに推論結果を出したい。
モデルの最中に空間方向の次元が5×5まで落ちたら、5×5の解像度の推論結果の画像になります。

 

f:id:tottorisnow33:20210213082700p:plain

上と同論文

でも空間次元も削減した方が精度の高い結果は出る……


そこで一番上の画像のように、途中で出来上がった浅い段階の解像度の高いの結果と深い段階の解像度の低い段階の結果を足し合わせます。
このとき、拡大することによって画像サイズは合わせておきます。


そうすることによって、解像度と精度の折り合いのついたモデルができるんですね。

 

2.モデルの説明

モデル作成は完了しました。

で、回してみると下記の結果に。

 

f:id:tottorisnow33:20210213083013p:plain

数字が変化しない

 

0.645から数値が一切変化しない……
どこかで失敗していますね。

今回は失敗したままなのでソースコードの掲載はしません。

今度はお見せできることを祈りつつ、また次回。