AI(ディープラーニング)による画像分類とその活用法【中級者向け】

 2020.08.25  株式会社システムインテグレータ

画像認識とは何でしょうか?まず画像とは物事を絵で表現したものですので、それをはっきり見分けて判断すること(認識)です。ここでは見分けて判断するといっても、①画像を何らかの特徴やルールに基づいてどのカテゴリ(モノの種類)に属するか分類する(画像分類)、②画像の中から特定の物体を見つけて位置と種類を判断する(物体認識)、③画像の中から文字を見つけて読み取る(文字認識)など、いろいろなモノ、いろんな方法での画像認識があります。

その中から「画像分類」をAIで行う手順やその用途などについてお話します。

AIの画像分類とは?

画像分類とは、画像がどのカテゴリに属するか分類することとありますが、もう少し詳しくお話しましょう。

下図1をご覧ください。

左に画像のカテゴリ(モノの種類)があり、その右側に画像が並んでいます。

画像分類では、何らかの画像(媒体)からその画像または画像の中にある特定物が飛行機なのか車なのか、あるいは鳥なのかをカテゴリ分けすることです。私たちが日常何の苦労もなく判別しているものですが、これをAI(システム)が分類するとなると、小さな子供と同じように「これは飛行機、そっちは車」と教えていかなければなりません。どのように学習させるのか、どうすれば早く覚えてくれるのかについて、このあと説明していきます。

 

006

図 1:画像分類のイメージ[1]  The CIFAR-10 datasetより

 

AI画像分類の仕組み(学習モデル)

実際にAI(システム)に画像を分類させるには、人間と同じようにそれぞれのモノを覚えてもらわないといけません。AIの世界では、覚え込ませた知能を学習モデルと言います。それでは、学習モデルを作成するとは具体的にどのようなことでしょうか?

大きく分けて1.画像データを用意する、2.特徴を学習する、3.性能を評価する、4.チューニングするの4ステップです。それぞれ詳細に見ていくことにします。

 

図1

 

画像認識にAIを使用する理由

  1. 画像データを用意する

    画像分類は、画像の中にある対象物が何か(種類が何か)を分類することが目的ですので、「この画像はA」「こっちの画像はB」と事前に教えてあげる必要があります。例えば、犬の画像を見たことがなければ、どのような特徴を見て犬と判定していいかわかりません。

    そのため、分類して欲しい種類の対象物画像をできるだけ多く集めて、カテゴリごとに分類してあげます。

    このとき、とにかく多くの画像を用意すればいいというわけではありませんが、用意した種類ごとの画像枚数に大きな差が出てしまう(カテゴリA100枚あるけど、カテゴリB20枚しか画像がない)こともあります。そのような場合には、画像を回転させる、拡大縮小するなどして学習させる画像の枚数を増やしてあげることもできます。

    また、集められた画像にはいくつかの使い方があります。1つ目は「学習用」と言い、すでに説明した「これは犬だよ」と教えてあげるための画像です。もう1つが「テスト用」です。テスト用は、学習させたあとに「これは何?」という風にテストするための画像です。学習用はテスト用と違うものではないと本当に分類できるかどうかを評価できません。

  2. 特徴を学習する

    用意した学習用の画像を使って特徴(“4本足”で“尻尾”があり“面長”な“茶色の毛”を持つものが犬)を覚え込ませます。

    このとき、茶色い点が1つあってもそれが犬の特徴とは言えないように、画像の中にある特徴はある1つのピクセルだけでは特徴を表すことができません。例えば茶色い点がしっぽに近い形で集まっているなど、その周辺にあるピクセルも含めたある程度の範囲で分類に必要な特徴を捉える必要があります。これを実現するためAIの世界では「畳み込み」や「プーリング」といった手法を使って覚え込ませていきます。

    そして、AIによる画像分類はいわゆる確率論で判別していきます。例えば犬と猿とキジを分類する場合、その画像の中にある特徴を捉えて、犬(の可能性):45%、猿(の可能性):35%、キジ(の可能性):20%というように判定が行われ、最も確率(可能性)の高い犬を答えとしています。

    学習では、最初に正解を覚えさせますが、評価フェーズでは実際の判定結果に対して間違ったときに正しい種類を教えてあげて再学習させます。

    【畳み込みとは】

    畳み込みは、画像を小さな四角形で切り抜き、その切り抜いた四角形の中に特定のパターンがどの程度強く表れれているかを特徴としてとらえる手法です。(この切り抜かれた四角形を専門的にカーネル(またはフィルタ)と呼びます。)

    下図2をご覧ください。カーネルを少しずつずらしながら犬の画像を切り抜いていきます。この切り抜かれた領域それぞれについて、特徴がどの程度強く表れているかを統計的な計算式を利用して1つの数値で表します。

    特徴の強さの数値を並べたものを特徴マップと呼びます。図3は、犬の左耳の特徴マップと切り抜かれた画像を重ねたものです。数値の大きいところを見ればどこに特徴が強く表れているかわかります。

     

    2

    2:犬の画像をカーネルで切り抜くイメージ

    3

    3:犬の左耳の特徴マップのイメージ

    【プーリングとは】

    プーリングは、カーネルで切り抜かれた四角形の領域の中で最も高い数値だけを残すことで、特徴を要約する手法です。下図4をご覧ください。先ほど抽出した犬の左耳の特徴マップに対して、2×2のカーネルで切り分け、特徴の値が最も高いものだけを残しています。

    左耳の特徴は画像の左側から右側に向かって高くなるという傾向を図3では8つの数値で表していましたが、これを2つの数値で表すことができ、特徴の要約(データ量を減らす)ができていることが分かります。

    44:プーリングのイメージ

  3. 性能を評価する

    今までは分類できるように学習用の画像を覚え込ませましたが、今度は学習させた画像とは異なるテスト用の画像で性能を評価してみます。

    画像分類の性能評価は、覚え込ませてできあがった学習モデルにテスト用画像を入力し、その結果を正しい種類と比較していきます。(学習モデルとは、画像を覚え込ませて分類できるようになった知能でしたね。)

    犬と猿を画像分類しようとする場合に、覚え込ませた画像の数量やそこに含まれていたそれぞれの特徴などによって、犬に対する分類性能が高くても猿については低いかもしれません。このような場合には、分類性能が低い猿に関してさらに追加で学習させる必要が出てきます。

  4. チューニングする

    次にテスト画像での性能評価結果を確認し、実際の利用目的と求められる精度に合うようチューニングを行っていきます。

    例えば、同じ犬と猿とキジを分類する学習モデルでも、犬は確実に分類を間違えないようにしたいが猿とキジは多少の誤りは許容できるという場合と、3種類それぞれを同程度の精度で分類したいという場合ではチューニングの方法が変わってきます。前者では学習モデルに入力する前に犬によくあらわれる色とそうでない色を切り分けて色を変えるなど犬の特徴を強調するよう画像を処理する、後者では全体的な精度が上がるようにモデルを作り直すなどが考えられます。

AI画像分類の活用方法

それでは、私たちの日常やビジネスシーンで画像分類を使って何ができるかいくつか見ていきましょう。

  1. 製品の仕分け
    生産ライン上を流れる複数の種類の製品画像を撮像し、その画像を分類することで、どの種類の製品がいくつ作られたのか数量をカウントし、それら製品の種類によって生産ラインの流れや行き先を変えて仕分けを行えます。さらに、このような画像分類の仕組みとロボットアームを組み合わせることにより、アームで自動的にピッキングしそれぞれ決まった箱に詰めることもできます。そうなると人が目で見て仕分け、手で箱詰めしていた作業が完全に自動化されることになります。
  2. 画像による検索
    画像がアップロードされたときに、画像分類によってカテゴリを求めてそのカテゴリで検索することで、類似品の検索を行うことができます。
    製品開発をする際、他社の意匠権などの知的財産権を侵していないことを確認しなくてはなりません。そんなとき、ブランドのロゴなど様々な意匠の特徴を覚えこませておき、自分たちが新たに作ったモノの画像を分類してみることで類似のものが存在しないことを確認できます。
  3. 在庫の管理
    「冷蔵庫の中をスマホで撮影して、どんな食材が保管されているか一瞬でわかる」なんていうことが少し前に紹介されていたのをご存知ですか?野菜や飲み物などの画像を覚え込ませて冷蔵庫の中のものを分類識別するのも画像分類のAI機能が活用されています。これをビジネスシーンに置き換えると棚卸です。企業や店舗の棚卸は短時間に大量の作業を正確に行う必要があります。そんなときに。製品や部品の画像覚え込ませておくと倉庫や棚にあるモノを分類して自動的にカウントすることで、短時間で在庫数の確認を行うことができます。

AI画像分類を活用するときの注意点

便利な画像分類の技術ですが、企業で使うにあたって気をつけるべきことは何でしょうか。

  1. 求める性能をきちんと定める

    ・その分類結果を何に使うのか。

    ・多種のものの中から特定カテゴリだけを抜き出し分類したいのか、あるいは複数のカテゴリに(ある意味)汎用的に分類したいのか。

    ・分類に使える時間はどのくらいなのか。

    そういった種々の条件を踏まえ、求める性能を定めた上で学習モデルの設計を行います。

    求める性能の決め方については ⇒ こちら

  2. 撮像環境を整え画像品質を安定させる

    対象物への光の当たり方や解像度など画像の品質にばらつきが大きいと、その影響で抽出したい特徴を見つけ出すのが難しくなります。撮像環境を整え、撮像品質を安定させることでこれらの影響を少なくすることができます。

    撮像に使うカメラの選び方については ⇒ こちら

    光の当て方については ⇒ こちら

  3. 特徴を抽出しやすい画像を用意する

    分類したいモノがはっきり映っていて、余計な情報がない画像のほうが特徴を抽出しやすくなります。

    例えば以下のように、画像を修正したり撮像を工夫したりすることによって特徴を抽出しやすい画像を用意するのも大事です。

    ・季節ごとにパッケージが変わる製品であれば、図柄が特徴としてとらえられないように赤外線カメラを使って図柄の映らない画像を用意する

    ・画像が暗くて背景とモノの境目がはっきりしないのであれば、光量を増やしてコントラストをはっきりさせる

     

新規CTA

新規CTA
新規CTA

RELATED POST関連記事


RECENT POST「AIの技術」の最新記事


この記事が気に入ったらいいねしよう!