ImageNet データセット

1. ImageNet データセットとは [概要]

ImageNet とは,約1419万枚の大量の物体画像に対して「WordNetに沿った物体クラスラベル」と「画像中の物体ROIのバウンディンボックス」をアノテーションした,大規模な物体認識むけ画像データセットである.2010~2017に開催された,画像認識チャレンジ「 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)」向けに登場したデータセットである.ImageNetデータセットでは,全体のうち100万枚程度は,物体領域のアノテーションはない.物体クラス数は全体では21K(21,000)であるが,ILSVRCではそのうち汎用性の高い1K(1,000クラス)のみを対象にして,物体認識モデルを学習する.

この記事では,ImageNetのデータセット構成(2節)と,ILSVRCでの2つのベンチマーク(3節),ImageNetの課題と後継データセット(4節)について述べる.つまりは,ImageNetが登場した初期の話だけでなく,注目が他に映った時期や,またImageNetの物体認識が取り組まれている話なども含めた,「登場後の10年の話を順に紹介する記事」となっている.

ImageNetデータセットは,プリンストン大学のWordNet (Wikipedia)のうち,名詞語彙部分をもとに,画像認識向けの「画像入力・名詞・物体」版の,教師ラベルありの物体画像データセットを構築したものである.スタンフォード大のLi Fei Fei教授の研究室のチームによって,ImageNetは 作成・提案された WordNet の名前や語義を元に,その「画像版」をつくったものなので,ImageNet データセットと名付けられた(※ ちなみに,そのあと登場するActivityNet データセットは「動画入力・動詞・行動」版である).GloVeの主著者で,学生時にFei Fei先生のラボとのコラボが多かった Richard Socher も共著者である.

1.1 歴史的変遷

2節以降で,細かい話をするまえに,最初に,ImageNetの歴史的な変遷を話しておいた方が,俯瞰度が高くわかりよい.そこで,1.1節ではまず,「2009年から2017頃まで(1.1.1節)」と「2017年ごろ以降~2022年まで(1.1.2節)」の2つに分けて,ImageNet データセット に関する画像認識問題の大まかな流れを紹介しておきたい.

1.1.1 登場から2017年まで

ImageNetは2010年に開始された「ILSVRC チャレンジ」における物体認識(3.1節)・物体検出ベンチマーク(3.2節)において,教師あり学習用のデータセットとして使用された.そして,ILSVRCの最後の開催となる「ILSVRC2017」まで,物体認識(主にCNNバックボーン)の発展に大きく寄与することになった.

ImageNetが公開された2009年は,当時爆発的に増え始めていたインターネット上やスマートフォンの画像上に対して「これまでの画像識別のモデルを,どのように発展させてそのスケールの規模に対応させていこうか」というタイミングの時期であった (初代iphoneが2007年6月に発売).

そこに,スタンフォードのFei Fei Li (李飛飛)のビジョン研究室のチーム(Jia Deng, Olga Russakovsky [Wikipedia])は,自然言語処理ラボのRichard Socher(Google Scholar)ともコラボレーションし,「WordNetベースの単語階層を,そのまま画像のクラス階層に落とし込んだ」ImageNetを,新たな画像識別・物体検出ベンチマーク向けのデータセットとして提案した.

ただし,物体検出や,インスタンスセグメンテーションなどの「物体インスタンスレベルで識別する物体認識」に業界の主眼が移行して以降は,COCO Object チャレンジが ILSVRCの代わりに,画像認識の主戦場となった.ILSVRC自体もResNetの登場した2015年ごろ以降,CNNの画像認識精度向上が飽和してしまい,これ以上できることがなくなったためILSVRCは2017年に幕を閉じた.

1.1.2 2017年以降 〜 2022年現在まで:「派生ImageNet」の派生データセットの活用が続く

2017年以降も「ImageNetの派生版」データセットがいくつか登場し,引き続き画像認識研究で定番データセットとして頻繁に使用されている.

大量データからの事前学習向けの,ImageNet-21K データセットが登場した(4.1節).例えば,2020年以降に研究が盛んな,巨大画像認識モデルであるViT(Vision Transformer)系のネットワークの事前学習に,ImageNet-21Kは用いられている.

一方,敵対的サンプルへの対応や,その対応を利用してのロバスト性向上を狙った ImageNet-A, ImageNet-C も登場している (4.2, 4.3節).

1.2 記事の構成

2節以降,以下の構成で,ImageNetの内容と,派生データセット,および課題について紹介する:

  • 2節 ImageNetデータセットの構成
  • 3節 ImageNetのILSVRC向けベンチマーク (物体認識.物体検出)
  • 4節 ImageNetを拡張したデータセット (ImageNet-21K, ImageNet-A, ImageNet-C)
  • 5節 ImageNetの課題と,物体単位での認識への移行
  • 6節 まとめ

2. ImageNet データセットの構成

2.1 ILSVRC での使用

図1 ImageNet .トップ階層における各クラスの画像

ImageNet では,各クラスにつき500枚〜1000枚の画像が,256 ×256 のサイズで用意され,合計約14Million(1400万枚)の画像から構成されている(図1).クラスごとにサンプル数がある程度均一化されており,出力ラベル数のバランスがとれたデータセット分布から,識別モデルを学習できるようにデータセットが構築された.

ImageNetは,前世代の物体認識の標準データセットであった, Pascal VOC チャレンジに基づいたアノーテーション方式を採用している.よって,1画像につき,中央に映っている1物体に対してのみ,「物体クラス」と「物体ROIのバウンディンボックス」がアノーテーションされている.しかし,背景にも2個目以上の物体が映っている画像も多く,物体検出目的には向かないことがわかっていく(5.1.2節).

また,著者らチームはImageNetを用いた大規模物体画像認識のチャレンジである ILSVRC(ImageNet Large Scale Visual Recognition Challenge)を,2010年から2017年まで毎年開催した(ImageNet HP内での紹介).ILSVRCでは,ImageNetの全物体クラスのうち「1000クラス」が識別対象として選定され,ベンチマークとして用いられた.

2.2 データセットの構築(アノテーション作業)

ImageNet研究チームは,ImageNetの大量の画像に,クラスラベルとバウンディンボックスをアノテーションするチームを,Amazon Mechanical Turk で構成して作業を行った

当時は,このような大量データにアノテーションをつける例が,画像認識分野ではまだなかった.先行研究としてMITのAntonio Torralbaや,Kevin P. Murphy (MLaPPの著者) らによるLabel Me []や,80 Million Tiny Images (Wikipedia) []などで,アノテーションの負担軽減の初期研究が行われていたが,このImageNetが,最初の「超大量のラベルを,人力でアノテーションする」を最初に実行した例である.

2.2.1 ラベル付けの請負業が持つ「搾取工場」的な性質への注意

ただし, AMTなどの,低賃金な単純労働請負に特化したクラウドソーシングサービスは「搾取工場のインターネット現代版である」という批判がつきまとっている.AMTのWikipedia記事でも,「6 批判」において,この話題が触れられている.

近年のデータセントリックなAIの視点で言うと,機械学習・パターン認識モデルの価値を生み出すのは,モデル設計よりは「質の高いアノテーション作業」であることも多い.今では専門の企業も多く高い価値でアノテーション作業への対価が国内でも支払われているが,そのアノテーション作業が,かつては軽視され,安価に海外に外注されていたわけである.しかし,作業価値がわからない素人のかたから,国内のクラウドソーシングへ,非常に安価なアノテーション案件の募集を見かけることもあるのが現実ではある.

個人的にも,アノテーションを安価に外注するのは,モラル面であまりよろしくないと思う.皆様も,ときに無自覚で,そうした行為を行っていないかし,自らの襟を正すのは,良いかもしれない.そもそも,ImageNet などの,オープンな(他人の構築した)大規模データセットを使用する場合には,そうした AMTなどによる「安価なクラウドソーシングに外注した結果のラベル」を自分も使用している場合も多いことを忘れないようにしたい.

2.3 WordNet と,画像との連携 

ImageNetでは,図1のように,各物体クラスの総称とその種別が,WordNet (のシソーラスの)ツリー構造を通して,階層的に配置されており,ImageNetのデータセットを特徴づけている.例えば,WordNet側では,「dog」クラスの下に,もう少し具体的な「各犬種のクラス」が,それぞれ下位ノードとして存在している.このクラス間の階層構造を活用した予測モデル学習や,サブツリーごとに(例えば生物種類ごとに)クラス間のWordNet上距離も加味した学習を行うことも可能である.

しかし現実解としては,AlexNet以降の,画像識別用のCNNバックボーン の多くでは,(ImageNet-1Kの) 1000クラスを,全て平等に取り扱ってone-hot符号化し,1000クラス識別CNNを学習するのが通例であった.よって,WordNetの木構像グラフどおりの出力を学習させるなど,WordNet上の単語の「意味的な階層構造」や「単語間距離」を積極的に利用することはあまりなかった.

一方で,Few-shot学習やZero-shot学習などの,「単語間の距離や構造」に助けられて,画像認識モデルを作る「少数ラベル学習」の場合には,こうした「物体単語間の距離」がうまく活用できる.同様に,Vision and Languageでも,Image-Text間で2モーダルのJoint Embeddingを学習する際に,画像間の距離と,文章間や単語間の距離を,双方活用することになる.

3. ImageNet のILSVRC向けベンチマーク

ImageNetでは,ILSVRC 2010(第一回)向けに,以下2つの画像認識タスクが競われた.

  1. 物体認識(1000クラス)
  2. 物体検出

2.1節と2.2節で,これら2つのベンチマークについて紹介する.

初期のILSVRCでは「2.物体検出」も盛んでSelective Searchの提案などにもつながった.しかし,多数の物体が多様に写る COCO データセットが登場した以降は,ImageNetの物体検出ラベルの出番が減っていき,ImageNetは,1.の1000クラス物体認識のみに特化されたデータセットとなった.

ただし,物体検出などの他のタスクでも,たまにImageNetの出番がある例が見受けられる.(たとえば,YOLO v2の研究における,「YOLO9000」の学習での ImageNet併用など).

3.1 物体画像認識

ISLVRC2012の物体画像認識において,AlexNetが圧倒的勝者になって以降,物体画像認識むけのCNNバックボーンの発展を支えることにもなったので,「ディープラーニングの発展」の視点でもImageNetは非常に重要なデータセットであるといえる.

また,小さい画像のCIFRA-10,CIFAR-100とImageNet-1000は,[10,100,1000]というクラス数]になっている.これは,予備実験したあと,1000クラスで普通サイズ画像のImageNetで本番実験しやすい .これにより,CIFAR-10/100とImageNet-1000は,ペアとして用いて新規アイデアを,以下のように2段階に分けた効率的な実験計画に使いやすくなった:

  1. 小サイズ画像で小クラス数の,CIFARによる小規模実験 :少ない学習時間で済むし,学習や結果画像の様子をデバッグ・可視化もしやすい.
  2. CIFARでの学習がある程度うまくいったら,今度はImageNetで,普通サイズ画像大規模クラスによる,本格的な実験 :予備実験で仮説モデルがある程度うまく行くとわかってから,大規模実験で長い学習時間をかけられる.

この「小さい画像データセット→うまくいったら大きな画像データセット」という2段階の実験規模変更の戦略はは,画像認識問題だけではなく,深層生成モデルを用いた画像生成でも,有効であり,基礎研究はMNIST CIFAR-10などで行わたのちに,大きな画像のデータセットで発展版や応用の研究が出て行くというパターンも多い.

3.2 物体画像からの物体検出

ImageNetの各画像は,なるべく画像の中央に,1つの物体だけが収まって写っている画像が選定されている.これにバウンディンボックスがアノテーションされ,物体画像内の,(中心に写っている)主たる物体の検出を行う予測モデルの学習も,ILSVRCで行われた.ILVSRC2010では,この物体検出ベンチマークから,Selective Search の研究もエントリーされるなどした.

2009年当時は,そもそもFaster R-CNNYOLOのような,多数クラス物体検出の技術が確立できておらず,単一クラスの物体検出しかまだ存在しなかった.よって,Pascal VOC データセット(2007から登場)などと同じく,ImageNetも「まず画像中に1物体写っている設定から,徐々に問題設定を難しくしていって,解けるようにしていきましょう」という発想であり,「沢山の物体を写す画像で解く問題設定」は,解くのは難しいからまだ避けていた時代である(詳しくは物体検出の記事の前半「単一物体検出」やDPMの章を参照).

4. ImageNet を拡張したデータセット

一方,ILSVRCの1000クラス識別は,CNNバックボーンの発展により性能が飽和したのもあり,2017で終了した.しかし,ディープラーニングの各課題向けの拡張されたImageNetデータセットとして,ImageNet A(3.1)やImageNet B(3.2節)などが登場し,近年あらためてそれらのデータセットを対象にして画像認識ネットワークの研究がされている.

4.1 ImageNet-21K

ImageNet-21K は21,000クラスで画像認識を行うためのものである.ViTやMLP-mixerなどの,Transformer・MLPベースの巨大画像認識モデルを事前学習する際に,よく用いられている.

これまでILSVRC以降に主に使われていた1000クラス版のImageNet-1Kと区別するために,ImageNet-21Kと呼ばれる.ImageNet-1Kはクラスごとのサンプル数もバランスが取れていて,クラス数も代表的な物体クラス1000種類に限定されていたので,画像の数も130万枚であった.それが,ImageNet-21Kは,アノテーションされている全21,000(21K)クラスの画像全てを用いるので,画像総数も1400万枚(14M)に増え,クラスの種類も非常に多様になり,かつ各クラスのサンプル数のバランスも崩れていて悪くなっている特徴がある(※ ViTの事前学習では,ImageNet-21Kで事前学習したあと,更にJFTデータセットの18,000クラス,3億枚の画像で学習する).

4.2 ImageNet-C と ImageNet-P

逆に,CNNが誤り識別しやすい隙を突く「敵対的サンプル(Adversarial Example)」でImageNet画像を拡張しておくと,Corruptした苦手な画像に対しても性能が上がることがわかった.

そこでImageNetの画像に人為的に「Corruption」や「Perturbation」を加えた画像で,ベンチマーキングを行うために,ImageNetの画像にブラーやノイズなどを加えたデータセットとして, ImageNet-C ,ImageNet-P が公開された [Hendrycks and Dietterich, 2019] .

このうち,ImageNet-Cが,その後の研究によく用いられている.

4.2 ImageNet-A と ImageNet-O

ImageNet-C, Pの主著者 Hendrycks氏は,「Natural Adversarial Examples」と銘打った続編研究をすぐ発表した.その中で,著者らは,(通常の)ImageNetで学習済みのResNetが,ご識別する自然画像から構成される,ImageNet-A (AdversarialのA) ,ImageNet-O(Out-of-DistributionのO)の2つのテスト用データセットを,新たに公開した[Hendrycks et al., 2019].

このうち,ImageNet-A が,その後の研究によく用いられている.

5. ImageNetの課題と,物体単位での認識への移行

5.1 ImageNetが抱える課題

ImageNetは,大学チーム(主にスタンフォードやプリンストン大)で作成されたデータセットで,なおかつ初めて行われた先進的な研究であった事もあり,5.1.1~5.1.3にあげる以下のような課題があることが,のちのち指摘されたり,研究開発で用いられるなかで判明していった:

  • プライバシー確保・公平性確保(バイアス)ができていなかった課題(5.1.1節)
  • 物体検出アノーテーションの不安定さ(5.1.2節)
  • (上述のデータセットとしての出来の悪さから生じる) 他タスクへのファインチューニングでの問題(5.1.3節)

逆に言うと,ImageNetで出てきたこれらの知見・課題が,のちのデータセットや,アノーテーションでよく活かされるようになっていったのがImageNetの功績であると捉えられる.つまり,「ImageNetには問題があった」とネガティブに批判するのではなく,「問題点をあぶり出していくための,不完全なデータセットを最初に作ってくれた」というポジティブな見方もできる.多くの人が使用してきた先駆者かつ王者であるImageNetデータセットであるからこそ,これらの課題をあぶり出すことができたという側面もある.

5.1.1 プライバシー確保・公平性確保(バイアス)ができていなかった課題

画像認識系の膨大な近年の論文で,特によく指摘されてきたのは,以下の2つのImageNetの難点である:

  1. 画像に映っている人物のプライバシーの確保ができていない:
    • 画像データに,プライバシー面の配慮が足りないものがある.
    • 著作権的に微妙な画像も混ざっていたり「顔がそのまま写っている画像」も多く含まれている.
  2. データとラベルのバイアス(偏り)が大きい:
    • 「性差バイアス」や「人種バイアス」などが多く.
      • 例1:白人の画像ばかりで,黒人など,データが足りない他人種をうまく予測できない.
      • 例2:「キャビンアテンダント」は女性ばかりで,「パイロット」は男性ばかりである
    • 差別防止の観点以外にも,そもそもデータ(分布)として含まれている人種や性別以外では,うまく認識されないモデルができあがる問題も生じる.

正直,もし私が最初にImageNetをつくったとしても,上記2つの課題を先につぶした良いデータセットを,設計してかつ実行できた自信はなく,Fei Fei先生たちも,素直に(WordNetのラベルに従って)とりあえず最初のデータセットを作っただけであると思う.ただ,これらは実用では解決したほうがよい課題であるので,解決するべき問題として活発に研究開発されることにはなった.

5.1.2 物体検出アノーテーションの不安定さ

アノーテーションをクラウドソーシングしたこともあってか,ImageNetの物体検出バウンディンボックスには,一貫性の足り無さ,つまりは「正解ボックスの不安定さ=誤差の多さ」が含まれている問題がある.

クラス認識にだけ使用すれば,バウンディンボックスの質の悪さは関わってこないところであるが,ImageNetの画像には背景にも物体クラスとしてラベルづけすべきものが写っていることが多い.したがって,本来は,5.2節でこのあと述べるCOCOやOpenImagesのようなデータセットを用いて,「全ての物体ボックスに,ボックスの正解とラベルの正解がアノーテーションされている」という,マルチラベル,マルチボックス設定で学習すべき画像もImageNet中には非常に多い.(※ これは自己教師有り学習をImageNetで行う場合にも,考慮すべき問題である)

5.1.3 他タスクへのファインチューニングでの問題

物体検出やインスタンスセグメンテーション向けに,ImageNetで事前学習したCNNバックボーンを,ファインチューニングすることが多々ある.

よって,その事前学習に用いるデータが,5.1.1や5.1.2節のような問題を抱えていると,ImageNet-1Kで事前学習したモデルを,物体検出向けデータセットでファインチューニングしたときに,(1) プライバシー保護されていないモデルなので,商用しづらくなる問題や,(2)事前学習モデルの質が悪いとファインチューニング後の別タスクモデルの性能も悪くなる,という問題も抱える

5.2 Open Images やCOCOなどの登場

ImageNet 1Kの登場当時やILSVRCの前半の頃(2010~2013年)は,業界の画像認識研究の主眼はクラス識別であった.それが,R-CNNの登場の頃から,物体検出とインスタンスセグメンテーションも,大きな研究対象となる.それに伴い MS COCOデータセットや,Googole の Open Images データセット (※ バージョン更新が活発で,データ量もラベルも増えていく)などが登場し,物体領域単位での画像認識がよく研究されるように主眼が移ったと言える.

ImageNet-1Kが中心の時代(2010~2013年)は,物体が1つだけ写っている画像を解こうとする時代であった.それが, Faster R-CNNやYOLO, SSDが登場した2015年前後以降は,COCOやOpen Imagesなどのように,物体インスタンス領域単位でのROI単位のタスクが多く取り組まれる時代になってきた.実際,ILSVRC終盤の時期(2016, 2017年)は,COCO object detection チャレンジの方が盛り上がっていった.COCO やOpen Imagesには,画像キャプションや人物キーポイントなど,ラベルだけ追加で増えていったこともあり,更にImageNetからの移行が早まった.

また,バックボーンをResNetにした物体検出では, ImageNet事前学習は省略して,スクラッチからの学習のみで済むようことがわかってきており [He et al., 2019],(データの規模の大きさが確保できるか次第であるが)ImageNet事前学習は,クラス識別以外のタスクだと不要となりつつもある (詳しくは,スクラッチからの学習の記事の,3.2節を参照のこと).

6. まとめ

ImageNetデータセット,その性質や課題や,後継のデータセットについて紹介した.

2節では,初の「大規模画像データセットをクラウドソーシングで作成」し,これはその後多くの研究開発者が,大規模なコンピュータビジョン向けデータセットを構築する際の,礎となったことを述べた.一方で,アノーテーション作業の外注は「現代の搾取工場となりうること」への注意喚起も書いた.

3節ではImageNet・ILSVRCの2つのベンチマークタスクは,物体画像クラス識別と,物体検出であることを話した.4節では,ILSVRCが役割を終えて以降も,拡張されたImageNetがよく使われていることを示した.ImageNet-21KがViTの事前学習で使われている事と,敵対的サンプル界隈でも用いられているImageNet-A, ImageNet-C について紹介した(いずれの拡張データセットも,詳細は子記事で述べる予定).

5節では,ImageNetについてわかってきた課題をまとめた.オリジナルのImageNetでは,データやラベルのバイアスの問題がある.また,物体検出や複数物体認識目的にも不十分でうまく使えない「1画像-1物体ラベルのみ」の設定である.物体認識の記事で述べたように,物体認識の問題設定は物体中心画像に限定する処理なので,ImageNetは,シーン画像から多数の物体を検出・認識する用途では使えない.

物体インスタンスで予測するタスクへに,研究者の主眼が推移していった時期の話をし,それらのタスクでは,事前学習にImageNetを用いており,かつてはImageNet事前学習への依存度が高かったことも話した.一方,ResNetをバックボーンに使用するようになってからの時代では,物体検出・インスタンスセグメンテーションなどの物体ROI単位の予測タスクでは,ImageNet事前学習がもはや不要なことがわかってきて,スクラッチからの学習を行うのが標準的になったことも述べた.

関連書籍

References

  • [Deng et al.,2009] Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. Imagenet: A large-scale hierarchical image database. In CVPR, 2009.
  • [He et al., 2019] Kaiming He, Ross Girshick, and Piotr Dollar. Rethinking ImageNet pre-training. In ICCV, 2019. 
  • [Hendrycks and Dietterich, 2019] Dan Hendrycks and Thomas Dietterich. Benchmarking neural network robustness to common corruptions and perturbations. arXiv preprint arXiv:1903.12261, 2019.
  • [Hendrycks et al., 2019] Dan Hendrycks, Kevin Zhao, Steven Basart, Jacob Steinhardt, and Dawn Song. Natural adversarial examples. In ICLR, 2019.
  • [Russakovsky et al., 2015] Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause, San-jeev Satheesh, Sean Ma, Zhiheng Huang, Andrej Karpathy, Aditya Khosla, Michael Bernstein, Alexander C. Berg, and Li Fei-Fei. ImageNet Large Scale Visual Recognition Challenge. IJCV, 2015.

参照外部リンク