IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第66回 機械学習でナンバープレート認識の謎を解く?!(その1) (中井悦司) 2015年5月

はじめに

 今回は、機械学習がテーマです。最近の「ビッグデータ」の流行と共に、オープンソースとして提供される機械学習用のツールやライブラリーが豊富になり、データ分析を専門としないエンジニアの間でも機械学習の話題に触れる機会が増えました。しかしながら、これらのツールやライブラリーが内部でどのような計算をしているのかという仕組みについては、敷居が高くて手がでないという方も多いのではないでしょうか。まずは手始めに、機械学習の面白さが感じられる例として、文字認識のアルゴリズムについて解説してみたいと思います。

 実は、この話には少し背景があります。昨年、ビッグデータをテーマにしたセミナーで、ナンバープレートの画像認識システムの紹介があり、このような画像がスライドで紹介されていました。上段にある低解像度の画像に対してある処理を施すと、下段にある鮮明な画像に変換されるというのです。これは画像の持つ情報量があきらかに増加しており、通常の画像処理としてはありえない変換です。会場でも一部で驚きの声があがっていました。しかしながら、機械学習の仕組みが分かれば、魔法のような処理ではないことが理解できます。

 この種明かしをするために、ここでは、もう少し簡単な画像認識の例を説明していきます。まずは、その準備として、k平均法による減色処理を解説します。

k平均法による減色処理

 たとえば、図1左の写真について、代表的な色を3色選び出すように指示されたとします。図1右のように、すべてのピクセルを類似の代表色に置き換えることで、減色処理を行おうというわけです。人間の目で見れば、「赤」「緑」「白」が代表色になりそうなことが直感的に分かりますが、なんらかのアルゴリズムで機械的に選択するにはどうすればよいでしょうか? 実際の画像処理ソフトウェアでも利用される、比較的単純なアルゴリズムに「k平均法」があります。

fig01

図1 代表色の抽出による減色処理

 これは、図2のように散らばったデータ群について、互いに近いデータを集めたグループを見つけ出して、各グループの中心点を決定します。図2の例では、3つのグループに分類していますが、分類するグループの数は任意に指定することができます。具体的な計算手順については、セミナー資料を参考にしてください(*1)。

fig02

図2 k平均法によるグループ化

 そして、このグループ化の処理は、画像の色データに応用することができます。たとえば、画像ファイルのそれぞれのピクセルの色を「RGB」の3つの数値で表現します。すると、それぞれのピクセルの色は、「RGB」をxyz軸とする3次元空間の点になります。すべてのピクセルのデータをこの3次元空間にばらまいておき、k平均法で3つのグループに分ければ、それぞれのグループの中心点が3つの代表色になるという寸法です。

 実際に画像の減色処理を行うコードは、筆者のBlogで公開しています(*2)。好みの画像で試してみるとよいでしょう。

次回予告

 今回、画像認識のアルゴリズムを解説する準備として、データのグループ化を行う「k平均法」を紹介しました。このようなグループ化のアルゴリズムが、画像認識とどのように関連するのでしょうか? 実は、k平均法を一般化した「EMアルゴリズム」を用いると画像データの分類が可能になります。そして、画像データの分類によって、画像の認識や復元処理が実現できるというわけです。EMアルゴリズムと画像認識については、次回にあらためて解説を行います。

 また、今回紹介した資料(*1)をテキストにしたセミナー「ソフトウェアエンジニアのための『機械学習理論』入門」が、来月(6月26日)、国立情報学研究所で開催されることになりました。機械学習の本格的な学習の「第一歩」となる内容ですので、興味のある方は、セミナー概要を参照の上、ぜひご参加ください。

参考資料

*1ソフトウェアエンジニアのための『機械学習理論』入門

*2k-means法で画像を減色するサンプルコード

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes