【画像認識の仕組み】研究の歴史から導入しやすいツールまでご紹介!
画像認識と聞くと、非常に難しいイメージや複雑な内容を想像するかもしれません。こちらでは、初学者の方でも分かりやすいように、まずは研究の背景と歴史、さらに画像認識自体を簡単に利用・導入できるようなツールの解説まで行っていきます。
画像認識とは?
画像認識技術は、人間が視覚によって判断している情報を画像や動画から機械に判断させ、処理させる技術です。例えば人間を個人個人で判別したり、動物の種類を特定したりすることができます。近年では自動運転技術に応用されています。
関連:データマイニングとは?その方法やツールなどを一挙ご紹介!
関連:ディープラーニングとは?活用シーンや入門者向けに学習方法・本をご紹介!
画像認識の仕組み・機械学習のアルゴリズム
画像認識の具体的な仕組みを解説します。一例として、教師有り学習を利用して、機械が手書きの数字をどのように学習、認識、判断するのかといった一連の流れを説明していきます。
まず各種数字の手書き画像と、その画像が示す数字とを機械に読み込ませます。例えば、”1”と言う数字が描かれた画像と、その画像が1を示しているという正解データを組にして、機械に読み込ませます。この組は、後の工程で非常に重要になってきます。
また、これは各数字一個のデータだけでは足りません。扱うモデルによっても変わってきますが、オープンソースライセンスで公開されているMNISTというデータセットでは合計7万文字を公開しているので、その程度必要になってくると考えられます。
(参照元:MNIST handwritten digit database)
次に、データセットを学習用とテスト用に分割します。学習用のデータセットで各数字をどのように識別すればいいかを機械に学習させることに使い、最終的にテスト用データで、そのモデルがどれだけ数字を認識できるようになったかを評価します。
事前に分けて公開されているデータセットではその必要はありませんが、そうではない場合もありますので注意が必要です。
いよいよ、画像認識の肝ともいえる学習をさせます。ここでは、モデルや分類器などと呼ばれる、画像の特徴を抽出する構造構築作業が行われています。
ここで、最初に説明した、画像とその画像の意味の組が必要になってきます。例えば、”1”と意味付けられた画像に、機械がその画像自体に存在している特徴を見出して記憶します。他にも少々曲がったり形に癖のある”1”から特徴を抽出していき、最終的に共通する特徴がある画像を”1”と認識することにします。これを他の数字も同様に処理していきます。
こうして出来上がった、それぞれの数字の特徴を持ったモデルが、今後入力された手書き数字を判別していきます。
今まで説明したデータセットの用意やその分割も、適切に学習させるうえで大切な工程ではありますが、ここでどのようなアルゴリズムを用いて画像の特徴を抽出するかが学習率や学習効率に大きな影響を与えます。
最後に、先ほど構築したモデルの評価をします。ここでの評価に、二番目で分割したデータのうち、テストデータを用います。
実際にテストデータを読み込ませて、機械が判断した結果と正解とを見比べ、その正解率が高ければ高いほど良い学習ができた、または良いモデルができたと言えるでしょう。
以上のような流れで画像認識のモデルが構築され、実際に機械が写真や動画を識別できる形になります。(参照元:HOG 特徴を使用した数字の分類 – MATLAB & Simulink – MathWorks)
画像認識の歴史
画像認識の最初の研究が行われたのは1960年代と、昔から研究が行われていました。しかし、初期のころはコンピューターは性能が良くなかったため、人工衛星で撮った画像の解析など、非常に限られた分野での研究のみ行われていました。
その後、コンピューターの性能が向上して一般に広く普及するようになると、画像認識の研究も他の分野で広く行われるようになりました。この頃には画像処理専用のプロセッサやソフトウェアも登場したことが、画像認識技術をより一般に普及させた要因とも言えるでしょう。
そして最近では、ディープラーニングと呼ばれる機械学習技術の向上や、CPU、GPUなども性能が向上したため、画像認識の精度も高まり、今では人間が判別していたようなタスクも取って代わられつつあります。
また、スマートフォンでは人の識別が行われていたり、顔認証や指紋認証にも画像認識技術が使われているように、普段の生活に深く根差した存在となっています。
画像認識技術に限らず、高精度が見込める今では、作成が難しいデータセットを少なくしても高精度に識別ができるアルゴリズムなど、更に扱いやすいモデルの研究が盛んになっています。(参照元:画像認識 – MATLAB & Simulink – MathWorks)
画像認識を手軽に導入できるフリーツール
今では、画像認識に関わるデータセットや、学習に用いるモデルがライブラリ化されて無料で使うことができるようになっています。こちらでは、それらをいくつかご紹介します。
データセット
・MNIST
手書き数字を画像として提供されています。それぞれの意味するデータも紐づけされて、6万枚の学習データ、1万枚のテストデータに分かれていますので初学者の第一歩に扱いやすいデータセットです。(参照元:MNIST handwritten digit database)
・rois-codh/kmnist
MNISTよりも崩れた数字や漢字のデータセットになります。より全般的な人間が書く文字のデータセットで学習させることができると言えるでしょう。(参照:Github – rois-codh/kminst Repository for Kuzushiji-MNIST, Kuzushiji-49, and Kuzushiji-Kanji)
・ImageNet
2万以上の種類、1400万以上の画像データが提供されています。MNISTでの手書き数字以外の実際の物体認識に扱えるデータセットサイトです。(参照元:ImageNet)
ライブラリ
・OpenCV
Intelが開発した、画像処理に特化した数値計算や機械学習が出来るライブラリです。画像を扱いやすく加工する機能や様々な機械学習のライブラリも揃っているので、有名な企業や研究チーム、政府機関でも多く利用されています。(参照元:Home – OpenCV)
・TensorFlow
Googleが開発した、機械学習全般に用いることができるライブラリです。画像認識でも強い能力を発揮し、簡易なモデル構築・様々な機械学習モデルを利用することができます。(参照元:TensorFlow)
画像認識をビジネス活用した事例
画像認識は、既に多くの現場で活用されています。事例を一つご紹介します。
画像認識で自社商品の利用実態調査
とある食品・飲料メーカーでは、自社商品のマーケティングを行うため、SNSへの投稿からより高い効果を発揮するデータを収集したいと考えていました。そこで、画像から自社商品のロゴ等を検出し、その画像に一緒に写っている背景・人物・物を読み取ることで商品の利用実態を解析しました。
これによって、商品が消費者によってどのように利用されているかを、より消費者に近い視点でのデータ収集を行うことができました。これによって、更に消費者の生活にフィットした商品開発を目指すことができます。(参照元:SNS投稿画像による商品利用実態の解析|人工知能(AI)・機械学習のサービス・コンサルティングならブレインパッド)
まとめ
以上のように、画像認識は難しい技術ではありながら、初心者から実際の現場まで、あらゆる場面であらゆる人に扱いやすく、高い効果を発揮してくれる技術です。
画像認識技術で開発にお悩みの方には、本記事でご紹介したツールや事例を参考にしていただけるとよいのではないでしょうか。
AIプロジェクト推進人材のための講座をお探しの方へ
「AIプロジェクトをリードできる人材がいない」
「AI技術開発の知識を持っている人材がいない」
などのお悩みを解決する、AIプロジェクトの実践に必要な知識を網羅的に得られる「AIマネジメント講座」「AIエンジニアリング講座」をご用意しました。
詳細につきましてはダウンロード資料よりご確認ください。
以下リンクよりフォーム入力ですぐにダウンロードいただけます。