こんにちは、株式会社NoveraのAIエンジニアの諸冨と申します。
本記事は、弊社で開発しているアプリ「viewty」の技術を紹介する連載「肌測定アプリviewtyのつくりかた」の第4回目である最終回、完結編です。
今回の記事では、セグメンテーションタスクに対する比較検討したモデルについて説明していきます。
これまでの記事はこちら
1.セグメンテーションモデル構造の話
経験上、今回のセグメンテーション系のタスクで気にするべきことは大きく分けて2つです。
1.学習時間
2.推論スピード
1.学習時間について
セグメンテーションでは、基本的にinputするデータとして、画像とそれに紐づくオブジェクトのマスク領域の情報が必要です。また、まともなモデルを作る場合かなりのデータ量が必要です。
この情報を学習させ、収束させるまでとてつもない時間がかかります。
なので、サーバのスペックは前提で、モデルの特性上、コスパの良いモデルを選ぶ必要があります。
2.推論スピードについて
セグメンテーションでは、ピクセルについて考える必要があるので、推論にもある程度の時間がかかります。
また、レスポンスの見せ方として連続値や離散値のみを出力する場合と、連続値や離散値+描写してユーザーに見せる場合とで、ユーザーがコールしてからレスポンスするまでにかかる時間が桁違いです。
サービスとして運用していく以上、ユーザーの負担にならないようなスピードのモデルを選ぶ必要があります。
今回は、この2点を念頭に置いてモデル選定を考える必要がありました。
2.モデル説明
2-1.FCN
FCNについての研究は、
「Fully Convolutional Networks for Semantic Segmentation」(https://arxiv.org/pdf/1411.4038.pdf)で述べられています。
構造的な特徴としては、非常にシンプルで、既存の CNN構造に対して、最後の全結合層を畳み込み層に可変させるというものです。
当然ですが、構造的にまだまだstrideのサイズ可変や深い層と浅い層の結合等の面白い取り組みもあります。
このあたりは、リクエストがあれば踏み込もうと思うので、一旦スルーします。
FCNは、
セグメンテーションなどのピクセル単位のタスクの高密度予測を効率的に学習できるようになります。
主に、論文内では、AlexNet, VGG, and GoogLeNetの構造可変を行い、FCN化を行う手法が提案されています。
中でも、FCN-VGG16が評価指標の中で良いモデルとして扱われています。
セグメンテーション系のモデルとしては、このモデルを基準的な位置づけで活用しています。
2-2.Mask R-CNN
Mask R-CNNについての研究は、「Mask R-CNN」(https://arxiv.org/pdf/1703.06870.pdf)で述べられています。
構造的な特徴としては、
Faster R-CNNの構造に対して、objectのmaskを0または1で予測する構造を追加している点です。つまり、Faster R-CNNを拡張したモデルということです。
メリットとしては、学習のさせ方が非常に簡単で、また別のタスクにも応用が可能なのだという点です。うまくいけば、ニキビやシワ等の複数のタスクにも同じ要領で学習ができ、
すぐに実用的なモデルが作れます。
2-3.U-net
U-netについての研究は、「U-Net: Convolutional Networks for Biomedical Image Segmentation
」(https://arxiv.org/pdf/1505.04597.pdf)で述べられています。
個人的にU-netはセグメンテーション系のモデルの中で、一番信頼度が高いモデルです。
このU-netは、セグメンテーションタスクを行う為に特化したモデルであり、医療の分野等でも活用されているモデルです。
構造的な特徴としては、2-1.FCNを基礎とた上で、前半の層での出力を後半の層で結合しています。
その結果、出力の精度が飛躍的に向上します。
2-4.Dilated FCN
Dilated FCNについての研究は、「DILATED FCN: LISTENING LONGER TO HEAR BETTER」(https://arxiv.org/pdf/1907.11956.pdf)で述べられています。
論文内では、音声データを扱う為に構築された構造のため、パラメータ数に対する受容野が広いDilated Convolutionを活用しており、実装的には、Dilated FCNの論文構造を参考にしながらもう少し層数を拡張しました。
3.まとめ
今回の、セグメンテーションタスクのモデルの中で、性能指標等を行なって、
一番ポテンシャルが高かった、U-netを活用した構造を採用しました。
Dilated FCNは、性能指標的には悪くはなかったですが、
実験的な要素が強かったため、採用するには至りませんでした。
最後に、3回、4回で分類とセグメンテーションの戦略について具体的に述べたので、
ぜひ参考にして開発に取り組んでいただければと思います。
--------------------------------------------------------------------------
・株式会社Novera コーポレートサイト
https://corporate.novera.co.jp/
・viewty アプリダウンロードサイト
・株式会社Novera 公式Twitter