もう絶望しない! ディープラーニングによる画像認識のビジネス活用事例:いまさら聞けないDeep Learning超入門(3)(1/2 ページ)
最近注目を浴びることが多くなった「Deep Learning」と、それを用いた画像に関する施策周りの実装・事例について、リクルートグループにおける実際の開発経験を基に解説していく連載。今回は、Deep Learning/CNN(Convolutional Neural Net)をどうビジネスに活用しているかに焦点を当て、その試行錯誤の過程を紹介します。
最近注目を浴びることが多くなった「Deep Learning(ディープラーニング)」と、それを用いた画像に関する施策周りの実装・事例について、リクルートグループにおける実際の開発経験を基に解説していく本連載。
- 第1回「ニューラルネットワーク、Deep Learning、Convolutional Neural Netの基礎知識と活用例、主なDeep Learningフレームワーク6選」
ニューラルネットワーク、Deep Learning、Convolutional Neural Netの基礎知識と活用例、主なDeep Learningフレームワークを紹介 - 第2回「Caffeで画像解析を始めるための基礎知識とインストール、基本的な使い方」
リクルートグループで画像解析において積極的に利用しているフレームワーク「Caffe」を中心にDeep Learningを利用した画像解析について解説
第3回の今回は、リクルートグループにおける画像解析の事例を紹介し、CNN(Convolutional Neural Net)をどうビジネスに活用しているかに焦点を当てます。また、ビジネスへの活用に当たり、CNNだけでは乗り超えられない壁を乗り越えるまでの試行錯誤の過程を紹介します。
CNNは、決して何でもできる銀の弾丸ではない
海外のサイトなどを含め、最近はCNNの使い方を紹介する記事や、CNNを用いた画像解析の事例を目にする機会が本当に増えました。これにより、「画像データにCNNを適応すれば、何かができる!」という期待感がジワジワと高まっているように思えます。しかし筆者の経験からすると、CNNは画像解析において物体認識などの大切な役割を担うものの、それだけではビジネスに活用できない場合がほとんどです。
前回紹介したCaffeのようなオープンソースソフトウエアが出現し、その使い方を説明するサイトや書籍が多少増えた現在、“CNNを動かすこと”自体は、そこまでハードルが高いことではありません。しかしCNNをビジネスに活用するために本当に大切なのは、活用の目的を明確にした上で、「いかにしてCNNでの解析をしやすく事前に準備するのか」「いかにしてCNNでの解析結果を利用するのか」の2点に尽きます。そして、これを実現するためには、CNN以外の画像解析における知識/技術も必要となります。
以降は、実際のリクルートグループの事例を見ながら、この2点をどう試行錯誤したかを紹介していきます。
「ホットペッパービューティー」における画像検索事例
ホットペッパービューティー(リクルートライフスタイル運営)では、画像解析を用いて二つのサービスを提供しています。一つ目は、類似ネイル検索機能で、二つ目は39色でのカラー検索機能です。今回は、類似ネイル検索機能について見ていきます。
目的
類似ネイル検索機能の目的は、類似するネイル画像をカスタマーに提示することによる回遊率の向上や、それに伴うCVR(コンバージョンレート)の上昇です。この機能を実現するためには、「類似するネイル」の定義が必要です。今回は、「ネイルのデザイン」と「ネイルの色」が似ていることを類似の定義としました。
初めはクライアントが付与しているタグを利用したが……
「ネイルのデザイン」の判別に当たり、初めはクライアントが付与しているタグを利用しました。1枚1枚のネイル画像に対して、約20種類のデザインタグのうちの1つが付与されています。まずは、このタグを正解データとしてCNNを実行していきましたが、全然精度が出ませんでした。未知の画像を投入し、その予測結果を見て、絶望して吐きそうになったことをよく覚えています。
この結果を受け、なぜかと自問したときに、「ネイル画像は単一のデザインで作られていないケースがかなりある」というところに着目しました。すなわち、人差し指はフラワーデザインだが中指は水玉デザイン、など複数のデザインからなるネイル画像に、単一のタグを付与すること自体に無理があるのだと考えたのです。
そこで、CNNを適応する前処理として、爪の箇所を特定する処理を実施することにしました。そして、爪の箇所として認識した画像に対してCNNでデザイン判別を実施し、ネイル画像にデザインAがX本、デザインBがY本映っている、といった形で認識して類似度を出そうと考えました。この「爪を特定する」行為がCNNでの解析を行いやすくする事前準備に、「爪ごとにデザイン判別して類似度を出す」行為がCNNの解析結果の活用方法に、それぞれ該当します。
CNNでの解析を行いやすくする事前準備
ネイルの爪箇所の特定には、HOG(Histograms of Oriented Gradients)特徴量で作る学習器と、その学習器を複数用意して一番精度の良い学習器の誤差率によって重みを更新するAdaBoostを用いた多数決で実現しています。ネイル画像の左上から順に局所画像をスライドし、その局所画像の勾配(勾配:色の変化が激しい箇所=エッジ)の角度を取得してヒストグラム化します。このヒストグラムを用いて、事前に学習しておいた複数の学習器にかけて爪かどうかを判別しています。これにより、ネイル画像全体の中で、どこに爪が映っているのかを特定します。
次に、特定した爪画像が何のデザインであるかをCNNで判別します。今度は、ネイル画像全体ではなく、爪画像一つ一つを対象とした学習が必要となります。そこで、HOG特徴量+AdaBoostで爪画像を大量に取得し、人目で1枚1枚を見て、適切な正解タグを付与していきました。これは非常に大きな負荷が掛かる作業でした。20人がそれぞれ1つのタグを担当し、業務の合間を縫ってタグ付け作業を辛抱強く実施していった結果、精度は飛躍的に高まり、CNNの持ち味がやっと引き出された形となりました。下記はネイル画像からデザイン判別までの流れです。
続いて、「ネイルの色」の判別です。色の判別もデザイン時同様、爪箇所の特定処理を前処理として実施しました。そして、残った爪と判別された箇所に関して、RGB値を取得し、1000個のカラービンに分けてヒストグラムを作成しました。本来、色とは、R:256 × G:256 × B:256の1677万7216通りがあるのですが、これを1000種類まで圧縮した形を利用しました。これにより、「爪の箇所の色が取得できる、やったぜ、楽勝!!」と思ったら、ここでも落とし穴がたくさんありました。
まず、ネイルの箇所を切り取っても、肌色がかなり多くの割合を占めることが判明しました。そのため、近い色を持つ検索をすると、肌色と肌色がマッチしてしまい、肝心のネイルを施している箇所の色が近い画像が検索できませんでした。これを回避するために、1000色のビンの中で、肌色を定義しました。これは、全ネイル画像をRGB値の1000ビン圧縮バージョンで頻度を取り、最多頻出のビンを抽出して肌色のビンを目視で追加/削除しながら、最適な肌色の定義をしていきました。
さらに、爪を四角形で特定するという処理上の理由により、背景が爪画像に混ざってしまいました。これにより、色の類似度を取ると、背景に影響されてしまう結果となってしまいました。これは、爪と識別した箇所とそうでない箇所の差分を取り、背景色を特定することで対処しました。つまり、爪と判断した箇所によく使われる色の中で、爪でないと判断した箇所でよく使われる色を背景色と断定し、これを類似検索時に利用しないことで背景色での類似性を外しています。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- グーグルの人工知能を利用できるWebインターフェースが登場
オズミックコーポレーションとイントロンワークスは7月7日、グーグルの人工知能アルゴリズム「Deep Dream」を利用できるWebインターフェースを公開した。 - 顔写真3Dモデル化、絶対フォント感、複数画像検索、観光写真無人化、陰影分離、簡単フォント自作、消失点自動作成――デザイナー/クリエイターが茫然自失で拍手喝采な最先端技術動画11連発
アドビ システムズは、2015年10月6日(現地時間)に開催した「Adobe MAX 2015 Sneak Peeks」で、11の新技術を披露。顔写真3Dモデル化、絶対フォント感、複数画像検索、観光写真無人化、陰影分離、簡単フォント自作、消失点自動作成naなど、今回もデザイナー/クリエイターのみならず、日常的にデジカメやスマホで写真を撮る人でも欲しくなるような機能が多数見られた。 - 米AlpacaDBがDeep-Learningを使った金融プラットフォームを開発へ
Deep-Learning技術による画像認識プラットフォームを展開してきたAlpacaDBが、資金調達に成功し、金融系の事業領域に本格進出する。 - セキュリティ対策に数学の力を――機械学習は先行防御の夢を見るか?
どうしても攻撃者の後手に回りがちなセキュリティ対策。ここに機械学習を活用することで、先手を打った対策を実現できないか――そんな取り組みが始まろうとしている。 - 個人と対話するボットの裏側――大衆化するITの出口とバックエンド
マシンラーニング、ディープラーニングなど、未来を感じさせる数理モデルを使ったコンピューター実装が注目されている。自ら学習し、機械だけでなく人間との対話も可能な技術だ。では、コンピューターはどのように人間との対話を図ればよいのだろうか。コンピューターの技術だけでなく、そこで実装されるべきインターフェースデザインを考えるヒントを、あるコンシューマーアプリ開発のストーリーから見ていく。 - 自動車を制御するロボットの思考と行動の仕組み――Google Carが現実世界を認識する際の3つのアルゴリズムと実用化への課題
本連載では、公開情報を基に主にソフトウエア(AI、アルゴリズム)の観点でGoogle Carの仕組みを解説していきます。今回は、制御AIの思考と行動のサイクル、位置推定の考え方「Markov Localization」における3つのアルゴリズムと、その使い分け、現実世界の認識における課題などについて。 - バンナム、スクエニ、東ロボ、MS――人工知能や機械学習はゲーム開発者に何をもたらすのか
8月26日に開催されたゲーム開発者向けイベントの中から、バンナム、スクエニ、東ロボ、MSなどによる人工知能や機械学習、データ解析における取り組みについての講演内容をまとめてお伝えする。