テクノロジー

画像認識のデータセットImageNetとは?基本的な使い方をまとめてみた

画像認識のデータセットImageNetとは?基本的な使い方をまとめてみた

画像認識の話題になると、必ずと言ってよいほどImageNetって聞きますよね。ImageNetって画像認識に使うデータっていうことは知っているけど、どういった内容なのか、どうやって使えば良いか気になったことがある人もいるかもしれません。

ImageNetは画像認識をするためのデータセットの一つで、画像認識のベンチマークとしてよく使用されています。有名な画像認識のデータセットとしては、0から9までの手書き数字の画像を数万枚収録したMNIST(エムニスト)や、乗り物や動物などの10クラスに分類されたカラー画像を数万枚収録したCIFAR-10(サイファーテン)があります。ImageNetは1400万枚以上のカラー画像を収録しており、MINISTやCIFAR-10に比べても非常に大きなデータセットになります。ぜひ、この記事を通してImageNetを理解して、画像認識に使いましょう。

そこで今回は、ImageNetの基本的な使い方をできるだけわかりやすく紹介します。

画像認識のデータセットImageNetとは

ImageNetのイメージ

ImageNetは1400万枚以上のイメージ画像に、その画像が何を表しているのかラベルを付与したデータセットです。このセットはスタンフォード大学が管理し、画像は写真共有サイトのFlickrなどのWebから収集されて、ラベルはAmazon Mechanical Turk(アマゾンメカニカルターク)などのクラウドソーシングを活用して人手で付与されています。ImageNetは過去に大規模な画像認識コンペを開催して、画像認識技術の進歩には大きく貢献していると言われています。

ラベル付けされた画像は、画像認識をするための機械学習モデルのトレーニングデータとして使用できます。画像認識は、身近なところではクルマの自動運転や監視カメラ、工場での検品などのアプリケーションに応用されます。

ImageNetのラベルはWordNetと呼ばれる英語の概念辞書に基づいてつけられています。WordNetとは英語の概念を記述した辞書で、語彙の上位と下位の関係などが定義されています。このため、ImageNetで「salmon」(鮭)というラベルが付けれられた画像は上位概念の「fish」(魚 )というラベルも付けられることになります。このImageNetの上位、下位の関係はImageNet公式ページの検索機能で確認できます。

ImageNetは何ができるの?

できることのイメージ
それでは、ImageNetでどういったことができるのか見ていきましょう。

2010年から2017年の間、ILSVRC(ImageNet Large Scale Visual Recognition Challenge)というImageNetを使用した画像認識コンペが毎年開催されていました。2012年のILSVRCでは、Hintonが率いるチームがAlexNet(アレックスネット)というCNN(畳み込みニューラルネットワーク)を発表しました。AlexNetの登場以前は、SVM(サポートベクターマシン)を用いた手法が主流でしたが、機械学習モデルに人が特徴量を与える必要がありました。AlexNetは人が特徴量を与える必要がなく、しかもそれまで用いられてきたSVMの手法を大きく上回る性能を実現しました。結果、AlexNetはILSVRC 2012で優勝し、ディープラーニングが注目されるきっかけとなりました。

ILSVRCでは毎年異なる競技内容が提示されていました。ImageNetを使用する例として、2017年のILSVRCの競技を見てみましょう。

ILSVRC 2017では3つの競技が競われました。一つ目はObject localization for 1000 categories.(提示された画像に1000カテゴリの物体がどこにあるか判別する)です。二つ目はObject detection for 200 fully labeled categories.(提示された画像が200カテゴリの内何かを検出する)、三つ目はObject detection from video for 30 fully labeled categories. (提示された動画内で20カテゴリの物体を検出する)です。ディープラーニングの登場以降、ILSVRCで競われる画像認識の精度は急速に上昇し、人間の精度を超えるほどになりました。

このようにImageNetはいろいろなバリエーションの画像認識に使用することができます。

ImageNetを使う前に準備しておくこと

準備のイメージ

続いて、実際にImageNetを使う準備をしましょう。基本的にはImageNetは画像へのリンクURLとsynsetと呼ばれる画像に付与されたラベルのセットが公開されています。これは、ImageNetの画像はWebから集められたものであり、著作権は第三者にあるためです。データセットはImageNet公式サイトのダウンロードページから入手可能です。一部の画像でURLのリンクが切れている場合があるため、注意が必要です。

一方で、あなたが画像認識の研究者であれば、研究用途としてオリジナルの画像をImageNet公式サイトからダウンロードできます。ただし、あらかじめImageNet公式サイトでアカウントを作成し、ダウンロードの許可を得ておきましょう。

また、画像とsynset以外にもSHIFT(Scale-Invariant Feature Transform)やバウンディングボックスを入手できます。SHIFTはスケールに不変な特長を持つ画像の特徴量で、バウンディングボックスは画像の中で物体を囲む長方形の枠です。最近ではそれに加えてオブジェクトの属性も入手できるようになりました。オブジェクトの属性には物体の色やパターン、形、テクスチャが含まれています。

ImageNetの実際の使い方

使い方のイメージ
それでは、実際にImageNetを使って機械学習モデルを作成しましょう。機械学習用のライブラリであるTensorFlow(テンサーフロー)にはImageNetを簡単に使用するためのインターフェースが用意されています。

TensorFlowにはデータセット読み込み用のライブラリであるtensorflow_datasets(TFDS)が用意されていて、ILSVRC 2012で使用されたデータセットであるimagenet2012をサポートしています。ただし、ILSVRC 2012のデータセットはあらかじめ手動でダウンロードして指定する必要があります。

>> import tensorflow_datasets as tfds
>> datasets = tfds.load(‘imagenet2012′, data_dir=’FILEPATH’)

TFDSを使用するとデータの分割やシャッフル、特徴量の抽出などを簡単に実行できます。詳しくはTFDSのマニュアルを参照しましょう。TFDSに読み込ませた後はAlexNetやGoogLeNet(グーグルネット)、ResNet(レズネット)といった画像認識用の機械学習モデルに入力し、学習させます。

また、TFDSはimagenet2012の他にimagenet2012_corruptedやimagenet_resizedといったデータセットもサポートしています。imagenet2012_corruptedはimagenet2012にガウスぼかし、飽和、スパッタ、スペックルノイズといった破損を追加したものになります。imagenet2012_corruptedはimagenet2012と同様に手動でデータセットのダウンロードが必要になります。imagenet_resizedはimagenet2012を8×8、16×16、32×32、64×64ピクセルにリサイズしたものです。imagenet_resizedについては、TFDSから自動でダウンロードできます。

ImageNetを使う上での注意点

注意点のイメージ

最後にImageNetの注意点についてお伝えします。これまでImageNetは画像認識のベンチマークに使われてきましたが、今後状況が変わるかもしれません。2020年6月にGoogleのAI研究チームであるGoogle Brainから” Are we done with ImageNet?”という論文が発表されました。この論文はこれまで画像認識の性能評価に使われたきたImageNetに対して疑問を投げかけるものでした。

この論文の中ではImageNetの画像へのラベルの付け方の問題を指摘しています。1つの画像に複数の物体が含まれているにも関わらずImageNetでは1つのラベルを付けることしかできないことや、似たような分類クラスが複数あることなどを挙げています。

これらの問題を解消するために、論文ではImageNetのラベルを付けなおしてReaLというデータセットを作成しています。ReaL では複数物体を含む画像には複数のラベルを付与したり、人手のラベル付与をより厳密に行うといった工夫をしています。TensorFlowのTFDS はReaL をサポートしていて、imagenet2012_realを指定することで使用できます。

今後、画像認識でImageNetを使用しようとしたときは、” Are we done with ImageNet?”で指摘されているような問題があることを覚えておきましょう。作成した機械学習モデルをより厳密に評価する場合は、ReaLを使用することも検討した方が良いかもしれません。

まとめ
さて、今回はImageNetについてご紹介しました。ImageNetについてお伝えした内容は以下です。

  • ImageNetは画像認識に使用される大規模なデータセット
  • ImageNetを使用した画像認識コンペであるILSVRCでAlexNetが優勝したことでディープラーニングが注目された
  • ImageNetのデータセットは公式ページからダウンロードできるが、画像は著作権があるため研究者以外はリンクURLのみ入手可能
  • TensorFlowのTFDSを使用するとILSVRC 2012で使用されたデータセットを簡単に使うことができる
  • ImageNetは画像のラベルの付け方の問題が指摘されていて、新たなラベルを付与したReaLが提案されている

いずれImageNetの使用は終わりを迎える可能性があります。しかしながら、ReaLを使用することで当面は役割を果たすでしょう。今後、画像認識をする際は、データセットの動向に注視しましょう。

【お知らせ】

当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。

御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。

お多福ラボコーポレートサイトへのバナー

トップへ戻る
タイトルとURLをコピーしました