🙌

ImageNet(ILSVRC2012)を公式サイトから直接ダウンロードする方法

2021/07/03に公開

深層学習(ディープラーニング)の研究をしている駆け出し研究者・学生向けに,ImageNet(ILSVRC2012)のダウンロード方法を記します.この記事は2021年7月3日に執筆されております.

ImageNet とは

ImageNet とは,一言で言えば超巨大な画像データベースです.画像数は1400万枚以上であり,2万種類以上のクラスにカテゴリ分けされています.[1]画像認識のベンチマークや,DNNの事前学習のために,ImageNetのサブセット(一部)がよく使われています.

ImageNet自体の詳しい解説は他の記事に譲るとして,この記事では 2021年7月時点で最も簡単にベンチマーク用データセットをダウンロードする方法 を記載します.

「ImageNetをベンチマークとして使い性能を評価した」とは

この記事は,主にImageNetを分類問題のベンチマークテストとして使いたい場合を想定しています.

論文やインターネット上の記事で,「ImageNetをベンチマークとして使い性能を評価した」という旨の文を見かけます.一点注意点なのですが,この場合は, 「ImageNet(の中で,ILSVRC2012という画像認識コンペで使われたサブセット)をベンチマークとして使い性能を評価した.」 という意味の文であることがほとんどです.
1400万枚以上の画像と2万種類以上のラベルで構成されたImageNet全体のデータセットではない のでご注意ください.深層学習コミュニティでの暗黙の了解ですね.[2]
ちなみにILSVRC2012は,AlexNetが圧倒的な精度で優勝し,深層学習が一世を風靡するきっかけとなった伝説のコンペです.

ImageNet(ILSVRC2012)のダウンロード方法

以降の本記事でImageNetと指す場合は,すべてImageNetのうち,ILSVRC2012で使用されたサブセットを指すものとします.

筆者がうまくダウンロード出来なかった方法

筆者がImageNetをダウンロードした方法を説明する前に,参考として筆者が試した(試そうとした)けど上手く行かなかった方法について記します.手っ取り早くダウンロードだけしたい方は,読み飛ばしてください.

ImageNetをダウンロードする方法は,いろいろあります.いろいろありすぎて,筆者がダウンロード方法を調べるとき苦労しました・・・.苦労したから,このように記事にまとめているという経緯があります.

おそらくなのですが,ライセンスの条項が変わったりと,時代時代によって最適なダウンロード方法が違うんだと思います.以下に,筆者がうまくいかなかったダウンロード方法を箇条書きします.厳密にいえば,うまくいかなくて面倒になってやめてしまった方法です.

  • PyTorchやTensorFlowでのダウンロード
    PyTorchやTensorFlowには標準でダウンロードするためのクラス(メソッド)があります.筆者が最近試したところではエラーが起きて上手く行きませんでした.それを直す,またはなんとか使うには少々面倒だったのでこの方法はあきらめました.
  • URLだけ取得してスクレイピング
    画像のURLリストを取得して,そのリストを元にPython等のスクリプト言語で取得してくる方法です.基本的にこのような方法では,一部の画像の取得に失敗することがほとんどです.筆者は研究のためにImageNetを使うので,厳密な評価のためにこの方法はやめました.
  • Kaggleからダウンロード
    ImageNetの公式サイトをみると,どうやらKaggleからダウンロード出来るらしいのです.ただ,筆者はKaggleの経験がないのでよくわからず,また調べるのも手間だなと思ってやめました.

結局筆者がImageNetをダウンロードした方法

結局筆者は, 本家公式サイトにリクエストしてImageNet(ILSVRC2012)の全ファイルが入ったtarファイルをダウンロードしました.

リクエストしてから承認されるまで1週間程度はかかるかもしれないというデメリットはありますが,一番簡単で確実な方法です.
以降では,その手順を細かく画像を使って説明していきます.

1. ImageNetの公式サイトにユーザ登録

以下のURLから,ImageNet公式サイトでユーザ登録をしてください.
https://image-net.org/signup.php
このとき, 以下の点に注意してください.

  • hotmail や gmail等のフリーのアドレスは使わないこと.このあとのリクエストが承認されないそうです.学校や会社のアドレスを使いましょう.
  • Full NameとOrganizaiton(所属組織) も入力しておきましょう.これを入力しておかないと,承認されないかもしれません.
    sign_up

2. ログイン

以下のURLからログインしてください.もしくは公式サイト内右上のリンク(Loginという薄い文字)からアクセスしてください.
https://image-net.org/login.php
login

3. ダウンロードページからリクエスト

ログインしてから以下のURLにアクセスすると,ImageNetのリクエストを送るページが現れます.もしくは,画面上の「Download」からもアクセスできます.
https://image-net.org/request

画面下部の「Submit Request」ボタンをクリックしてリクエストを送りましょう.
request

4. 承認されるまで待機

リクエストを送った後は,以下の2つのパターンに別れます.

  1. 即時承認される場合
  2. しばらくしてから手動で承認される場合.

即時承認の場合は,3.で「Submit Request」ボタンをクリック後,すぐに以下のような画面が出てきます.
approved

即時承認の条件はわかりません.おそらく,メールアドレスのドメインや組織名を見ているのでしょうか.
筆者は実は会社のアドレスと,所属している大学のアドレスの2つで登録しています.会社のアドレスで登録した場合は即時承認されなかったです.この記事を書くように大学のアドレスでも登録してリクエストしてみたのですが,この場合では即時承認されました.上のスクリーンショットはその時の画面です.

しばらくしてから承認される場合は,おそらく,別の画面になります.おそらく,というのは,その画面を現在の私の手持ちのアカウントでは表示できないためです.上述しましたが,会社のアドレスで登録したときはこのパターンでした.その際,指定された日数(たしか1週間)が経っても承認されなかったので,8日目にメールで催促しました.その時のメールの文面は以下の通りなので,筆者と同じようなケースの方は送ってみてください.メールアドレスは,公式サイトの一番下に書かれています.(Gmailのアドレスです)

To Whom It May Concern,

I have submitted a request to download the ImageNet dataset on Apr 19. I'm waiting for eight days, but I have not received the notification yet. Is there something wrong with my request?

If you can approve my request, please allow me to download the ImageNet dataset.

Hidetoshi

筆者は英語に自信はないのですが,ひとまずはこれを送るとすぐに承認されました.英語が得意な方がいれば,添削してほしいです.

5. 承認メールの受け取り

ダウンロードリクエストが承認されると,以下のようなメールが届きます.メールに記載されているURLをクリックして,作業を続けましょう.
mail

14日以内にアクセスしないとリンク切れになるそうなので気をつけてください.

6. 利用規約への同意

続いて,利用規約に同意します.画面下の「Agree and Sign」をクリックしましょう.
基本的に, 研究または教育目的に利用は限られます.商用利用はできないのでお気をつけください.
agree_and_sign

7. ダウンロードページへの移動

ImageNetに関連するあらゆるデータを自由にダウンロードがすることができるようになりました.本記事の目的は,ImageNetのうち,ILSVRC2012のデータセットをダウンロードすることなので,以下の画像に示す「2012」と書かれているところをクリックしましょう.
download_1

8. ImageNetのILSVRC2012データセットのダウンロード

ILSVRC2012といっても,実はタスクが3つくらいあります.しかし,ベンチマークとして基本的に使うのはタスク1のみです.ベンチマークのために必要なファイルは以下の通りです.

  • Development kit (Task 1 & 2): 評価データのラベルデータ等のメタ情報. 2.5MB
  • Training images (Task 1 & 2): 訓練データとして用いる画像.138GB
  • Validation images (all tasks): 評価用データとして用いる画像.6.3GB

他のデータは使わなくても大丈夫です.Test Imagesのラベルは公開されていません.推測ですが,Kaggleで公正に評価するためです.そういった事情もあり,ベンチマークのためにはValidation images を使います.

訓練データ(Training images) はクラスを示すラベル毎にフォルダ分けされて画像が保存されています.評価データ(Validation images)はそのようなフォルダ分けはされていないのですが,Development kit内の情報を参照することでラベルを取得できます.
詳しくは,Development kin 内にある README をご覧ください.

download_2

訓練データは138GBとかなりの大容量です.ダウンロードが途中で停止してやり直しになった場合,かなりショックだと思います.そこで,その悲劇を回避する方法を紹介します.
continue オプションをつけたwget コマンドでダウンロードしましょう.正確には,1回目は continue はなくてもいいですが,2回目以降につけると,途中からダウンロードできます.

wget --continue <データのリンクのアドレス>

幸いなことに,ダウンロードページにアクセスするまではリクエストと承認は必要ですが,データのリンク自体にアクセス制限はありません.上の画面のリンクを右クリックして,リンクのアドレスをコピーして実行しましょう.

まとめ

以上でImageNet(ILSVRC2012)を公式サイトからダウンロードする方法の紹介を終わります.筆者はダウンロードするまでかなり手間取ったので,これを読まれた方の時間の節約に少しでもなれば幸いです.

気が向けば,PyTorchでのDatasetの組み方を紹介する記事も書こうと思います.

脚注
  1. 機械学習でいうと,1400万枚以上の画像それぞれに,2万種類以上のクラスのいずれかがラベル付けされている ↩︎

  2. 筆者は身近に詳しい人がいなかったので,この暗黙に気づき確信するまで結構な時間がかかりました. ↩︎

Discussion