ディープラーニングを使用してファッションアイテムの画像を分類する(前編)

はじめに

本記事では、ディープラーニングを使った画像の分類について説明します。前編では、画像分類とは何か、どの様なビジネスシーンで活用されるのかについて書き、後編では実際に実装を試した内容について解説します。

画像分類とは

本記事における「画像分類」とは、特定の画像をあらかじめ定められた複数の種別に分類することを指しています。例えば、様々な動物が写った写真群を、写っている動物の種類によって分類するといったものです。画像内の動物の位置の検出などは行いませんが、複数の動物が写っている場合には、複数の種類に分類したり、片方のみに分類したりすることもできます。

画像分類モデルのイメージ

人間であれば、写真に写っている動物が犬であるか猫であるかを判断するのは容易ですが、コンピュータにとっては非常に高度な問題になります。画像データから写っているものの特徴を定義・抽出する必要がありますが、非常に複雑なアルゴリズムになることが想像できます。しかし、2012年にディープな畳み込みニューラルネットワーク(Deep Convolutional Neural Network)による画像分類モデルが発表されると状況は変わりました。CNNは人の視覚や脳のニューロンを参考に作られていますが、それを何重にも重ね(ディープにし)、大量の画像によって「学習」させることにより、自ら画像の特徴を捉えて高い精度で分類することが可能になりました。その後年々より高い精度のモデルが登場するようになり、数年間で人間よりも高いと言われるほどの精度での画像分類が可能になりました。
近年話題の自動運転にもディープニューラルネットワーク、ディープラーニングの技術は使われており、このような技術が基礎となっています。
より詳細な仕組みを知りたい方は、本文末尾の「参考リンク」にてわかりやすい解説が載っているウェブサイトを紹介しておりますので、そちらをご覧ください。

画像分類モデルの実装

詳しくは後編にて解説しますが、画像分類を行う機械学習モデルは次のような手順で作成します。

データセットの作成

画像分類問題におけるデータセットとは、画像データとラベル(分類付け)データが対になったものを指します。学習に利用する学習用データセットと、テストに利用するテスト用データセットを別々に用意する必要があります。

モデル(ネットワークの作成)

ディープラーニングモデルの構造を定義します。今回行う実装では、すでに構築・学習済みのモデルを使用するため、この工程は行いません。

損失関数や最適化手法の設定

解決したい問題に合わせて、学習を行う際の最適な数学的な指標を設定します。

学習

設定した損失関数や最適化手法によって、学習用データセットをモデルに学習させます。後段のテストとセットで何回も行います。

テスト

テスト工程では、将来的に実際に入力されるであろう学習用データセット以外のデータを入力し、正しい出力が行われるかを確認します。学習したときの検証では高い精度が出ているにもかかわらずテストでは精度が出ない場合、実際のソリューションでは役に立ちません。
これは学習用データに過剰に適合してしまっている、「過学習」と呼ばれる状態になってしまっています。モデルを作成する際には、様々なデータに対して高い精度を発揮する「汎化性能が高い」モデルを目指します。

ビジネス活用例

それでは画像分類アルゴリズムはどのようにビジネスに活用されているのでしょうか?以下にいくつか活用例を紹介したいと思います。

不動産情報サイト

不動産情報サイトにおいて、不動産仲介業者などがアップロードする物件の画像には「キッチン」や「風呂場」などの説明がつけられますが、登録者がそこまで手が回らず、多くの画像のカテゴリが「その他」になっているという課題があったそうです。機械学習のアルゴリズムを利用することで、自動でカテゴリ分けをすることが可能になり、サイトの利便性が向上したという事です。
株式会社LIFULL の導入事例:物件画像のカテゴリー分類を AutoML で自動化。数十秒かかっていた分類を自動化で 2 秒に | Google Cloud Blog

レシピ記録アプリ

レシピ記録アプリで、携帯端末の中の画像フォルダから料理の画像のみを抽出する機能に画像分類のアルゴリズムが使われています。
料理きろくにおける料理/非料理判別モデルの詳細 - クックパッド開発者ブログ

がんの画像診断

内視鏡画像から胃がんを検出する取り組みにも画像分類が使われているものがあります。内視鏡画像を細かく分割して画像分類モデルにかけることによって、患部の箇所を検出することを可能にしているそうです。
AIで早期胃がん領域の高精度検出に成功|国立がん研究センター


投稿者プロフィール
渡邊 洋一

渡邊 洋一

先端技術部 DX技術課所属 インフラエンジニア→クラウド、機械学習等

執筆記事一覧