ailia Tech BLOG

InceptionV3 : 画像に何が映っているかを判定する

ailia SDKで使用できる機械学習モデルである「InceptionV3」のご紹介です。エッジ向け推論フレームワークであるailia SDKailia MODELSに公開されている機械学習モデルを使用することで、簡単にAIの機能をアプリケーションに実装することができます。


InceptionV3とは

InceptionV3はGoogleが開発したImageNetの1000クラス分類向けのネットワークアーキテクチャです。InceptionV3では、読み込まれた画像の中になにが含まれているか判定することができます。

ailia-ai/ailia-modelsAilia input shape: (1,3,299,299) Range: [0.0, 255.0] class_count=3 + idx=0 category=409[ analog clock ]…github.com

このモデルは、画像ファイルを入力として、1000のカテゴリの中から何が最もふさわしいかを確率順に表示します。

例として、ルリノジコ(indigo)を読み込ませてみようと思います。

読み込ませるルリノジコの画像 (pixaboy)

実行結果

このように、一番上のカテゴリの中にindigo bunting, indigo finch, indigo bird, Passerina cyaneaと表示されました。indigoはルリノジコのことなので、この画像の認識は成功です。

次に画像を取り替えて赤単色で表現されたルリノジコの画像を読み込ませてみましょう。

読み込ませるルリノジコの画像

赤以外の色の要素を0にしたもの

実行結果

実行結果は、candle,taper,wax light、とすべて「ろうそく」のことを示しています。赤以外の色の要素が抜けたことによって判別ができなくなっていると思われます。

次に、ルリノジコに多く使われる青単色の画像を読み込ませて結果を出力してみようと思います。

読み込ませるルリノジコの画像

青以外の要素を0にしたもの

実行結果

第一候補にplastic bag(ビニール袋)と表示されました。おそらく、ルリノジコの青と左側にある木の中の要素の青が合致したため、ビニール袋という結果が表示されたと思われます。

次に赤の要素のみを無くした青と緑の2色で表現されたルリノジコの画像を読み込ませてみましょう。

読み込ませたルリノジコの画像

青と緑で表現されたルリノジコ

実行結果

実行結果はもとの画像を読み込ませたときと同じになりましたした。最初の実行結果とprobの値が異なるのは、ルリノジコの要素である青が強く反映されたため、青と緑の二色で表現されたほうが合致率が上がりました。余計な赤の要素がなくなったためと思われます。

InceptionV3のモデルアーキテクチャ

InceptionV3はGoogLeNetのInceptionモジュールにスケーラビリティをもたせたモデルアーキテクチャになっています。

Rethinking the Inception Architecture for Computer VisionConvolutional networks are at the core of most state-of-the-art computer vision solutions for a wide variety of tasks…arxiv.org

2012年に登場したAlexNetがImageNetで劇的な性能改善を見せてから、CNNはオブジェクトディテクション、セグメンテーション、ヒューマンポーズエスティメーション、ビデオクラシフィケーション、オブジェクトトラッキング、スーパーレゾリューションと、成功例を広げてきました。これらは、高性能なCNNのモデルアーキテクチャの探索に拍車をかけました。2013年には、VGGNetやGoogLeNetが提案されました。

VGGNetはシンプルなアーキテクチャですが演算量が大きいという問題があります。GoogLeNetのInceptionアーキテクチャはメモリと演算量を抑制します。具体的に、5 millionのパラメータであり、AlexNetの60 millionのパラメータに比べて12倍、効率的です。VGGNetはAlexNetの3倍のパラメータが必要です。Inceptionの演算量はVGGNetに比べて効率的であり、特にモバイルにおいては重要です。

しかし、ネットワークアーキテクチャを単純にスケールアップすると、演算量の優位性は失われていまします。例えば、より大きな問題を解くために、Inception-styleのモデルのフィルタバンクを2倍にすると、演算量とパラメータの数は4倍になります。この論文では、スケーリングアップを効率的にする方法を説明するとともに、Inceptionモジュールにフレキシビリティを与えます。

(出典:https://arxiv.org/abs/1512.00567

GoogLeNetのInceptionモジュールは下記の構造になっています。直線的なVGGに比べて、入力が横に広がって、集約されるという構造を持っています。

(出典:https://arxiv.org/abs/1512.00567

InceptionV3ではカーネルサイズ5のConvolutionを、カーネルサイズ3のConvolutionを2段に置き換えています。

(出典:https://arxiv.org/abs/1512.00567

また、カーネルサイズをnとしてInceptionモジュールを一般化しています。

(出典:https://arxiv.org/abs/1512.00567


アイリア株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。アイリア株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。