データセット「Open Images Dataset」について説明。物体検知用の境界ボックスや、セグメンテーション用のマスク、視覚的な関係性、Localized Narrativesといったアノテーションが施された、約900万枚と非常に膨大な数の画像データセット。その概要と使い方を紹介する。
Open Images Dataset(以下、Open Images)は主に、
といった種類のアノテーション(=教師ラベル付け)が施された画像データセットである。
物体検知用の境界ボックスと、セグメンテーション用のマスクは、画像認識でよくあるアノテーション種別なので、説明不要だろう。
視覚的な関係性(Visual relationship)とは、あるオブジェクト(※「投げる」などの行為を含む)と視覚的な関係性があるオブジェクトをペアにするアノテーションが付与されたデータである。例えば[Category](カテゴリー)として「throw(投げる)」オブジェクトを選択した場合、それと視覚的な関係性がある「Cricket ball(クリケットボール)」や「Volleyball(バレーボール)」、「Football(フットボール)」といったオブジェクトが含まれる画像群がデータセットとして取得できる。このアノテーション種別は、例えば「ギターを弾く女性」「テーブルの上のビール」といったように、関連性のある2つのオブジェクトに対するキャプションを生成するといった目的などで役立つだろう。なお、ペアとなる2つのオブジェクトは、境界ボックスで示される(前掲の図2を参照)。
物体検知/セグメンテーション/視覚的な関係性は、Exploreページから閲覧/体験できる。
また、位置表示させた口頭説明(Localized Narratives)とは、Open Images V6(後述)で新たに提案されたアノテーション種別で、「一人の話者が対象画像の内容を、マウスカーソルによって位置を示しながら口頭で説明する」というアノテーションが付与された画像データである。ちなみにNarratives(ナラティブ)は、口頭で説明する物語のことで、例えば「今日、お買い物中に起こった珍事」を一人の話者が主体性を持って友人/知人に説明することなどである。Localized(ローカライズド)は、通常は文章内容を翻訳で地域化することだが、ここでは口頭説明している内容をマウスカーソルで位置表示することを示している。厳密には、元論文「Connecting Vision and Language with Localized Narratives」(arXiv:1912.03098 [cs.CV])を参照してほしい。
位置表示させた口頭説明がなかなかイメージできない場合は、専用のExploreページで体験してみてほしい。
以上、4種類のアノテーションがあるわけだが、これは2020年2月26日に公開された「Open Images V6」の内容である点に注意してほしい(※V6は、2020年11月9日の執筆時点で最新のバージョン)。最初のV1が2016年に登場してから、V1〜V6と6つのバージョンが既に公開されている。各バージョンの内容については、下記のリンク先を参照してほしい。
Open Imagesデータセットの画像枚数(V6時点)は、上記リンク先ページの説明に基づくと、以下の通りだ(※1枚の画像に複数のシーンが含まれている場合が多々あるため、画像枚数とアノテーション数は、一致するとは限らない)。
このデータセットは、基本的に自由に使用できる(※アノテーションはCC BY 4.0ライセンスで、画像自体はCC BY 2.0ライセンス。厳密には各バージョンの公式ページの「Licenses」欄を確認してほしい)。
引用情報を以下にまとめておく。厳密には公式ページの「Publications」欄を参照してほしい。
物体検知用の境界ボックスや視覚的な関係性を利用する場合は、引用内容は次のようになる。なお、V4となっているが、V5やV6でも同じとのこと。
セグメンテーションを使用する場合は、下記のように。
Localized Narratives(位置表示させた口頭説明)を使う場合は以下のようになる。
Open Imagesの各バージョンのデータセットは、下記のリンク先でダウンロードできる。
TensorFlow Datasetsでは、
という2種類のデータセットが提供されている(※2020年11月9日の執筆時点)。そこで実際にデータセットをロードするためのコード例をリスト1に示しておく。
# !pip install tensorflow tensorflow-datasets # ライブラリ「TensorFlow」と「TensorFlow Datasets」をインストール
import tensorflow_datasets as tfds
openimages_train = tfds.load(name="open_images_v4", split="train")
load()メソッドの引数nameに'open_images_v4'や'open_images_challenge2019_detection'を指定すればよい。
ただし、それぞれ500GB超えと、ダウンロードするデータセット全体の容量が非常に大きい点に注意してほしい。例えばGoogle Colab環境では、ディスクの空き領域が足りずにエラーになってしまう。
Copyright© Digital Advantage Corp. All Rights Reserved.