Известные наборы данных — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м
м (rollbackEdits.php mass rollback)
 
(не показано 245 промежуточных версий 21 участника)
Строка 1: Строка 1:
Известные наборы данных
+
==Обзор==
 +
 
 +
Для многих алгоритмов машинного обучения требуется большое количество данных. Кроме того, что моделям нужны данные для обучения, нужно сравнивать эффективность разных моделей. Поскольку поиск хороших наборов данных и их разметка {{---}} трудная задача, на помощь приходят уже собранные и размеченные наборы данных, для которых зачастую уже опубликованы результаты каких-то алгоритмов, и можно оценить, насколько хорошо работает исследуемая модель.
 +
 
 +
В этой статье рассмотрены с примерами несколько популярных наборов данных. Другие классические наборы можно посмотреть, например, на википедии<ref>https://en.wikipedia.org/wiki/List_of_datasets_for_machine-learning_research[https://en.wikipedia.org/wiki/List_of_datasets_for_machine-learning_research]</ref>.
 +
 
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Набор данных
 +
! Какие объекты
 +
! Число объектов
 +
! Число классов
 +
! Доля ошибок лучшего опубликованного алгоритма
 +
|-
 +
| Iris
 +
| Данные измерений четырех параметров цветков ириса
 +
| 150
 +
| 3
 +
| N/A, малый размер набора данных
 +
|-
 +
| MNIST
 +
| Рукописные цифры, черно-белые изображения 32х32 пикселя
 +
| 70 000
 +
| 10
 +
| 0.18% <ref>https://arxiv.org/pdf/1805.01890.pdf[https://arxiv.org/pdf/1805.01890.pdf]</ref>
 +
|-
 +
| CIFAR-10
 +
| Фотографии объектов разных классов, цветные изображения 32х32 пикселя
 +
| 60 000
 +
| 10
 +
| 1.23% <ref>https://arxiv.org/pdf/1805.09501.pdf[https://arxiv.org/pdf/1805.09501.pdf]</ref>
 +
|-
 +
| ImageNet
 +
| Фотографии с указанием классов объектов на изображении и их позиций
 +
| Больше 14 миллионов
 +
| Больше 21 тысячи
 +
| Большое количество различных метрик, см. ImageNet Competition. 1-5% на классификацию
 +
|-
 +
| ADE20K
 +
| Фотографии с указанием семантической сегментации сущностей на них. Для каждого объекта также приведена его сегментация на части
 +
| 22 210 (434 826 вхождений объектов)
 +
| 3 169
 +
| 17.93% <ref>https://arxiv.org/pdf/2004.08955v1.pdf</ref>
 +
|-
 +
| Coco
 +
| Фотографии сложных повседневных сцен, содержащих объекты в их естественном окружении.
 +
| 328 000 изображений (более 2.5 миллионов вхождений объектов)
 +
| 91
 +
| Много метрик. Зависит, в частности, от площади, занимаемой объектом на изображении. <ref>http://cocodataset.org/#detection-leaderboard[http://cocodataset.org/#detection-leaderboard]</ref>
 +
|-
 +
| Fashion-MNIST
 +
| Черно-белые фотографии различных видов одежды, 28x28 пикселей.
 +
| 60000 изображений + 10000 тестовых изображений
 +
| 10
 +
| 3.3% (WRN40-4 8.9M params) <ref>https://github.com/zalandoresearch/fashion-mnist[https://github.com/zalandoresearch/fashion-mnist]</ref>
 +
|-
 +
|-
 +
| Boston housing
 +
| Данные о недвижимости в районах Бостона.
 +
| 506
 +
| 13
 +
| RMSE-1.33055
 +
|-
 +
| Caltech-UCSD Birds 200
 +
| Данные о видах птиц
 +
| 11788
 +
| 200
 +
| не описано
 +
|-
 +
| 102 Category Flower
 +
| Данные о видах цветов
 +
| 8189
 +
| 102
 +
| не описано
 +
|-
 +
| Visual Genome
 +
| Данные о связи объектов на картинке с текстом
 +
| 108077
 +
| 76340 объектов, 15626 атрибутов, 47 зависимостей
 +
| Слишком много метрик <ref>https://arxiv.org/pdf/1602.07332.pdf [https://arxiv.org/pdf/1602.07332.pdf]</ref>
 +
|-
 +
| CelebA
 +
| Изображения знаменитостей, охватывающие большие вариации поз
 +
| Больше 200 тысяч
 +
| 202 599 изображений лиц, 10 177 уникальных личностей, 5 ориентиров, 40 бинарных атрибутов
 +
| не описано
 +
|-
 +
| Cityscapes
 +
| Изображения городских улиц 50 городов с указанием семантической сегментации сущностей на них. Для каждого объекта также приведена его сегментация на части
 +
| 5000 изображений с разрешением 1024 * 2048, предварительно разделенных на наборы для обучения (2975), проверки (500) и тестирования (1525) + 20000 изображений с грубыми аннотациями
 +
| 30
 +
| не описано
 +
|-
 +
| ICDAR 2017 "COCO Text"
 +
| набор данных, основанный на датасете "MS COCO"<ref>https://vision.cornell.edu/se3/wp-content/uploads/2019/01/ICDAR2017b.pdf</ref>, где собраны обычные изображения ежедневных сцен, на которых, возможно, присутствует текст
 +
| 63686 изображений, 43686 {{---}} обучающая выборка,10000 {{---}} валидирующая выборка, 10000 {{---}} тестовая
 +
| 173589 слов
 +
| не описано
 +
|-
 +
| Pointing'04
 +
| Изображения лиц людей с разными углами поворота и наклона
 +
| 15 сетов по 186 изображений в каждом
 +
| 93
 +
| 7.9% <ref>https://www.researchgate.net/publication/221125207_Generalized_subspace_based_high_dimensional_density_estimation</ref>
 +
|-
 +
| FASSEG
 +
| Изображения лиц людей с разными углами поворота, как в оригинале, так и в сегментированном виде
 +
| Часть frontal01: 70, часть frontal02: 70, часть multipose01: 200
 +
| frontal01 и frontal02 {{---}} разделяют изображение на 6 различных сегментов, multipose01 {{---}} 13 углов поворота
 +
| 7.73% <ref>https://github.com/massimomauro/FASSEG-repository/blob/master/papers/multiclass_face_segmentation_ICIP2015.pdf</ref> для сегментации,  22.6% <ref>https://github.com/massimomauro/FASSEG-repository/blob/master/papers/pose_estimation_by_segmentation_ICME2017.pdf</ref> для определения поз
 +
|-
 +
| MPI
 +
| Изображения повседневной деятельности людей в различных позах
 +
| 25 тысяч
 +
| 410
 +
| ~10% <ref>http://human-pose.mpi-inf.mpg.de/#results</ref>
 +
|}
 +
 
 +
==Iris==
 +
 
 +
===Описание===
 +
 
 +
Iris {{---}} небольшой набор данных для задачи классификации, опубликованный еще в 1936 году Робертом Фишером, используя данные биолога Эдгара Андерсона. В этом наборе данных представлены по 50 описаний цветков одного из трех типов {{---}} Ирис щетинистый (Iris setosa), Ирис виргинский (Iris virginica) и Ирис разноцветный (Iris versicolor).
 +
 
 +
Для каждого цветка измерены четыре величины {{---}} длина чашелистника (англ. sepal length), ширина чашелистника (sepal width), длина лепестка (англ. petal length), ширина лепестка (англ. petal width). Все цветки промаркированы одним из трех типов, что позволяет тестировать на нем алгоритмы классификации. Интересное наблюдение {{---}} один из классов цветков линейно отделим от двух других.
 +
 
 +
===Пример===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Длина чашелистника
 +
! Ширина чашелистника
 +
! Длина лепестка
 +
! Ширина лепестка
 +
! Класс
 +
|-
 +
| 5.1
 +
| 3.5
 +
| 1.4
 +
| 0.2
 +
| setosa
 +
|-
 +
| 7.0
 +
| 3.2
 +
| 4.7
 +
| 1.4
 +
| versicolor
 +
|-
 +
| 6.3
 +
| 3.3
 +
| 6.0
 +
| 2.5
 +
| virginica
 +
|-
 +
|}
 +
 
 +
===Код===
 +
  from sklearn.datasets import load_iris
 +
  from sklearn.ensemble import RandomForestClassifier
 +
  from sklearn import metrics
 +
  iris=load_iris()
 +
  X = iris.data
 +
  Y = iris.target
 +
  n = len(iris.data)
 +
  train = n // 2
 +
  clf = RandomForestClassifier(n_estimators=100, max_depth=2, random_state=0)
 +
  clf.fit(X[:train], Y[:train])
 +
  expected = Y[train:]
 +
  predicted = clf.predict(X[train:])
 +
  print("Classification report for classifier %s:\n%s\n"
 +
  % (clf, metrics.classification_report(expected, predicted)))
 +
 
 +
      type  precision    recall  f1-score  support
 +
          0      1.00      1.00      1.00        28
 +
          1      0.95      0.88      0.91        24
 +
          2      0.88      0.96      0.92        23
 +
  avg / total    0.95      0.95      0.95        75
  
 
==MNIST==
 
==MNIST==
 
===Описание===
 
===Описание===
  
[[Файл:MnistExamples.png|мини]]
+
[[Файл:MnistExamples.png|мини| Рисунок 1. Примеры изображений из датасета MNIST [https://en.wikipedia.org/wiki/MNIST_database#/media/File:MnistExamples.png Оригинал]]]
  
Датасет MNIST {{---}} большой (порядка 60 000 тренировочных и 10 000 проверочных объектов) набор картинок с рукописными цифрами, часто используемый для тестирования различных алгоритмов распознавания образов. Он содержит черно-белые картинки размера 28x28 пикселей, исходно взятые из набора образков из бюро переписи населения США, к которым были добавлены тестовые образцы, написанные студентами американских университетов.
+
Набор данных MNIST {{---}} большой (порядка 60 000 тренировочных и 10 000 проверочных объектов, помеченных на принадлежность одному из десяти классов {{---}} какая цифра изображена на картинке) набор картинок с рукописными цифрами, часто используемый для тестирования различных алгоритмов распознавания образов. Он содержит черно-белые картинки размера 28x28 пикселей, исходно взятые из набора образцов из бюро переписи населения США, к которым были добавлены тестовые образцы, написанные студентами американских университетов. На рисунке 1 представлены примеры рукописных цифр из данного датасета.
  
 
===Результаты===
 
===Результаты===
  
На сайте<ref>[http://yann.lecun.com/exdb/mnist/]</ref> датасета можно найти список лучших результатов, достигнутых алгоритмами на это наборе данных. Так, худший из записанных результатов достигнут простым линейным классификатором (12% ошибок), а подавляющее большинство лучших результатов получены алгоритмами на основе нейронных сетей. Так, ансамбль из 35 сверточных нейронных сетей в 2012 году сумел получить всего 0.23% ошибок на датасете, что является очень хорошим результатом, вполне сравнимым с человеком.
+
На сайте<ref>http://yann.lecun.com/exdb/mnist/[http://yann.lecun.com/exdb/mnist/]</ref> MNIST можно найти список лучших результатов, достигнутых алгоритмами на это наборе данных. Так, худший из записанных результатов достигнут простым линейным классификатором (12% ошибок), а подавляющее большинство лучших результатов получены алгоритмами на основе нейронных сетей. Так, ансамбль из 35 сверточных нейронных сетей в 2012 году сумел получить всего 0.23% ошибок на наборе данных, что является очень хорошим результатом, вполне сравнимым с человеком.
  
 
===Код===
 
===Код===
 +
Простой пример, скачивающий набор данных и запускающий на нем один из классификаторов. Даже с уменьшением набора данных в сто раз и не самым подходящим классификатором точность выше половины угаданных цифр {{---}} заметно лучше, чем случайная разметка. С результатом работы данного кода можно ознакомиться на рисунке 2.
  
Ага.
 
  
==Iris==
+
  from sklearn.datasets import fetch_openml
 +
  from numpy import arange
 +
  import random
 +
  from sklearn.tree import DecisionTreeClassifier
 +
  from sklearn import datasets, svm, metrics
 +
 
 +
[[Файл:Mnist-predict.png|мини|Рисунок 2. Результат работы классификатора]]
 +
 
 +
  mnist = fetch_openml('MNIST_784')
 +
  indices = arange(len(mnist.data))
 +
  randidx = random.sample(list(indices), 500)
 +
  mnist.data = mnist.data[randidx]
 +
  mnist.target = mnist.target[randidx]
 +
  X = mnist.data
 +
  Y = mnist.target
 +
  train = len(X)//2
 +
  clf = DecisionTreeClassifier(criterion="entropy", max_depth=5)
 +
  clf.fit(X[:train], Y[:train])
 +
  expected = Y[train:]
 +
  predicted = clf.predict(X[train:])
 +
  print("Classification report for classifier %s:\n%s\n" % (clf, metrics.classification_report(expected, predicted)))
 +
 
 +
    digit    precision    recall  f1-score  support
 +
        0        0.68      0.58      0.62        26
 +
        1        0.71      0.87      0.78        23
 +
        2        0.29      0.24      0.26        25
 +
        3        0.64      0.28      0.39        25
 +
        4        0.50      0.54      0.52        28
 +
        5        0.46      0.46      0.46        24
 +
        6        0.47      0.62      0.54        24
 +
        7        0.66      0.78      0.71        27
 +
        8        0.32      0.60      0.42        15
 +
        9        0.59      0.39      0.47        33
 +
  avg/total      0.54      0.53      0.52      250
 +
 
 +
==CIFAR-10==
  
 
===Описание===
 
===Описание===
 +
[[Файл:Cifar-10.png|мини|Рисунок 3. Примеры изображений из датасета CIFAR-10 [https://medium.com/@jannik.zuern/training-a-cifar-10-classifier-in-the-cloud-using-tensorflow-and-google-colab-f3a5fbdfe24d Источник]]]
 +
CIFAR-10 (Canadian Institute For Advanced Research) {{---}} еще один большой набор изображений, который обычно используется для тестирования алгоритмов машинного обучения. Он содержит 60 000 цветных картинок размером 32х32 пикселя, размеченных в один из десяти классов: самолеты, автомобили, коты, олени, собаки, лягушки, лошади, корабли и грузовики. В наборе данных по 6000 картинок каждого класса, примеры некоторых из них приведены на рисунке 3. CIFAR-10 является размеченным подмножеством заметно большего набора данных, состоящего примерно из восьмидесяти миллионов изображений.
  
Iris {{---}} небольшой набор данных для задачи классификации, опубликованный еще в 1936 году Робертом Фишером, используя данные биолога Эдгара Андерсона. В этом наборе данных представлены по 50 описаний цветков одного из трех типов {{---}} Ирис щетинистый (Iris setosa), Ирис виргинский (Iris virginica) и Ирис разноцветный (Iris versicolor).  
+
===Результаты===
 +
 
 +
С момента публикации CIFAR-10 вышло много статей, авторы которых пытаются добиться максимальной точности на этом наборе данных. В среднем более хорошие результаты показывают различные сверточные нейронные сети с различными вариантами настройки и дополнительной предобработки данных.
 +
 
 +
На википедии<ref>https://en.wikipedia.org/wiki/CIFAR-10#Research_Papers_Claiming_State-of-the-Art_Results_on_CIFAR-10[https://en.wikipedia.org/wiki/CIFAR-10#Research_Papers_Claiming_State-of-the-Art_Results_on_CIFAR-10]</ref>  можно найти таблицу лучших публикаций с процентами ошибки на этом наборе данных. Так, лучший на сегодняшний момент алгоритм, опубликованный в мае 2018 года, допускает ошибку всего порядка 1.48%.
  
Для каждого цветка измерены четыре величины {{---}} sepal length, sepal width, petal length, petal width. Все цветки промаркированы одним из трех типов, что позволяет тестировать на нем алгоритмы классификации. Интересное наблюдение {{---}} один из классов цветков линейно отделим от двух других.
 
  
 
===Код===
 
===Код===
 +
Простой код, скачивающий CIFAR-10 из интернета и запускающий на нем стандартный классификатор.
 +
 +
  from keras.datasets import cifar10
 +
  from sklearn.utils import shuffle   
 +
 +
  (x_train, y_train), (x_test, y_test) = cifar10.load_data()
 +
  X, Y = shuffle(x_train, y_train)
 +
  n = 1000
 +
  X, Y = X[:n], Y[:n]
 +
  X, Y = X.reshape((n, -1)), Y.reshape((n,))
 +
  train = n // 2
 +
  clf = DecisionTreeClassifier(criterion="entropy", max_depth=5)
 +
  clf.fit(X[:train], Y[:train])
 +
  expected = Y[train:]
 +
  predicted = clf.predict(X[train:])
 +
  print("Classification report for classifier %s:\n%s\n"
 +
  % (clf, metrics.classification_report(expected, predicted)))
 +
  
 
==ImageNet==
 
==ImageNet==
 +
 +
===Описание===
 +
[[Файл:Imagenet.png|мини| Рисунок 4. Пример разметки объектов в датасете ImageNet [http://www.image-net.org/challenges/LSVRC/2014/ Источник]]]
 +
 +
База данных Imagenet {{---}} проект по созданию и сопровождению массивной базы данных аннотированных изображений. Аннотация изображений происходит путем краудсорсинга сообществом. Из-за этого достигается большое количество размеченных данных.
 +
 +
Особенность данного набора данных {{---}} про каждую картинку известно несколько фактов вида "в этом прямоугольнике есть автомобиль" (см. рис. 4), что в совокупности с индексом по типам объектов, которые есть на изображениях, позволяет обучить алгоритм для распознавания объектов какой-то конкретной категории. На август 2017 года в ImageNet 14 197 122 изображения, разбитых на 21 841 категорию.
 +
 +
===Imagenet Challenge===
 +
 +
[[Файл:Imagenet-contest.png|мини| Рисунок 5. Лучшие результаты на Imagenet Challenge за различные годы [https://en.wikipedia.org/wiki/File:ImageNet_error_rate_history_(just_systems).svg Оригинал]]]
 +
 +
Вместе с публикацией набора данных стартовал конкурс ImageNet Large Scale Visual Recognition Challenge (ILSVRC<ref>http://www.image-net.org/challenges/LSVRC/[http://www.image-net.org/challenges/LSVRC/]</ref>). В его рамках участникам предлагается достигнуть наибольшей точности при классификации набора изображений. Организаторы использовали около тысячи различных категорий объектов, которые нужно классифицировать. На примере этого конкурса хорошо видно, как в 2010-е годы люди научились заметно лучше распознавать образы на изображениях, уже в 2017 году большинство участвующих команд преодолели порог в 95% правильных ответов. История улучшения результатов представлена на рисунке 5. Эта задача, проблема компьютерного зрения, имеет огромное практическое значение во многих прикладных областях.
 +
 +
==ADE20K==
 +
 +
===Описание===
 +
[[Файл:ADE20K_merged.png|мини|300px|Рисунок 6. Изображение из ADE20K и его разбиение на части.]]
 +
ADE20K {{---}} набор изображений с размеченными сущностями, который хорошо подходит для задачи [[Сегментация изображений|семантической сегментации данных]] в компьютерном зрении, пример разметки приведен на рисунке 6. Особенность этого набора состоит в том, что кроме объектов приводится также информация об их составных частях: например, если на изображении находится человек, то в дополнение к местоположению его фигуры будет также приведено положение его глаз и носа.
 +
 +
Подобные наборы данных часто страдают от несогласованности меток при их разметке сообществом. Для ADE20K эта проблема была решена {{---}} все изображения размечал только один человек, что обусловило высокую согласованность меток.
 +
 +
===Структура данных <ref>https://groups.csail.mit.edu/vision/datasets/ADE20K/#Description</ref>===
 +
Всего в наборе данных находится 22 210 изображений, из них 20 210 составляют набор для обучения, а 2 000 {{---}} набор для проверки. Максимальный размер изображения {{---}} 4500x6000p. Минимальный {{---}} 130x96p. Средний размер изображений равен 1.5Мп. К каждому изображению прилагается его RGB-оригинал (*.jpg), сегментация на сущности (*_seg.png), несколько изображений с сегментацией на части (*_seg_N.png, где N {{---}} это число) и описание признаков на изображении (*.txt).
 +
 +
ADE20K также содержит дополнительный файл на языке MATLAB, который позволяет загрузить изображения и информацию об их признаках.
 +
 +
===Результаты===
 +
 +
Основными метриками для этого набора данных являются пиксельная точность (англ. Pixel accuracy), которая состоит из доли корректно классифицированных пикселей, и [[Оценка качества в задаче кластеризации#Индекс Жаккара (англ. Jaccard Index)|индекс Жаккара]]. На момент создания ADE20K, лучшие алгоритмы машинного обучения давали пиксельную точность равную ~76% и индекс Жаккара равный ~0.34 на проверочном множестве<ref>https://arxiv.org/pdf/1608.05442.pdf</ref>. Сейчас лучшей нейронной сетью для этого набора данных является [https://arxiv.org/pdf/2004.08955v1.pdf ResNeSt], который позволяет достичь 82.07% пиксельной точности и индекс Жаккара 46.91%.
 +
 +
==COCO==
 +
 +
===Описание===
 +
 +
[[Файл:Coco-examples.jpg|мини|400px| Рисунок 7. Пример изображений из MS Coco [http://cocodataset.org/images/coco-examples.jpg Оригинал]]]
 +
 +
MS COCO (англ. ''Common Objects in Context'') {{---}} большой набор изображений. Состоит из более чем 330000 изображений (220000  {{---}} размеченных), с более чем 1.5 милионов объектов на них. Примеры изображений приведены на рисунке 7. Все объекты находятся в их естественном окружении (контексте). Изображения, как правило, содержат объекты разных классов (только 10% имеют единственный класс). Все изображения сопровождаются аннотациями, хранящихся в json формате. Подробнее о структуре аннотаций можно прочитать [http://cocodataset.org/#format-data здесь].
 +
 +
COCO имеет пять типов аннотаций для разных задач:
 +
* [[Задача нахождения объектов на изображении]]<tex>^\star</tex>
 +
* Обнаружение ключевых точек. Обнаружение объектов и локализация их ключевых точек.
 +
* Сегментация окружения (англ. ''Stuff Segmentation''). В отличии от задачи обнаружения объектов (человек, кот, машина), здесь внимание фокусируется на том, что его окружает (трава, стена, небо). Метки классов организованы в иерархическом порядке (напр., ''stuff → outdoor-stuff → sky → clouds''). Чтобы добиться совместимости с задачей обнаружения объектов, используются следующие идентификаторы категорий:
 +
 +
{| class="wikitable"
 +
|-
 +
! Идентификатор
 +
! Соответствие
 +
|-
 +
|1-91 || категории объектов (не используются в сегментации окружения)
 +
|-
 +
|92-182 || категории окружения
 +
|-
 +
|183 || категория "другое" (выбирается для "объектов")
 +
|}
 +
* Паноптическая сегментация (англ. ''Panoptic Segmentation'') {{---}} обединение задач семантической сегментации ([[Сегментация изображений]]) и обнаружения объектов. Задача состоит в том, чтобы классифицировать все пиксели изображения на принадлежность к некоторому классу, а также определить, к какому из экземпляров данного класса они относятся.
 +
* Аннотирование изображения (англ. ''Caption Evaluation''). Генерация сопроводительной подписи к изображению.
 +
 +
===Результаты===
 +
Результат задачи зависит от многих факторов. Например, для задачи обнаружения объекта, наилучшие результаты алгоритмы показывают на крупных объектах.
 +
Более подробно с метриками можно ознакомиться [http://cocodataset.org/#detection-leaderboard здесь].
 +
Приведем лишь результаты детектора [https://arxiv.org/abs/1512.03385 ResNet] (bbox) - победителя 2015 Detection Challenge.
 +
Графики, изображенные на рисунках 8 и 9, представляют из себя семейство кривых Pressision Recall для различных метрик.
 +
 +
{|align="center"
 +
|-valign="top"
 +
|[[Файл:Detection-analysis-person.jpg|мини| Рисунок 8. PR кривые для класса "Person" [http://cocodataset.org/images/detection-analysis-person.jpg Оригинал]]]
 +
|[[Файл:Detection-analysis-all.jpg|мини|Рисунок 9. Усредненные значения для всех классов [http://cocodataset.org/images/detection-analysis-all.jpg Оригинал]]]
 +
|}
 +
 +
<br>
 +
 +
===Код===
 +
 +
Пример использования [https://github.com/cocodataset COCO API] на python:
 +
 +
  %matplotlib inline
 +
  from pycocotools.coco import COCO
 +
  import numpy as np
 +
  import skimage.io as io
 +
  import matplotlib.pyplot as plt
 +
  import pylab
 +
  pylab.rcParams['figure.figsize'] = (8.0, 10.0)
 +
 
 +
 
 +
  dataDir='..'
 +
  dataType='val2017'
 +
  annFile='{}/annotations/instances_{}.json'.format(dataDir,dataType)
 +
 
 +
  coco=COCO(annFile)
 +
 
 +
  cats = coco.loadCats(coco.getCatIds())
 +
  nms=[cat['name'] for cat in cats]
 +
  print('COCO categories: \n{}\n'.format(' '.join(nms)))
 +
 
 +
  nms = set([cat['supercategory'] for cat in cats])
 +
  print('COCO supercategories: \n{}'.format(' '.join(nms)))
 +
 
 +
  # get all images containing given categories, select one at random
 +
  catIds = coco.getCatIds(catNms=['person','dog','skateboard']);
 +
  imgIds = coco.getImgIds(catIds=catIds );
 +
  imgIds = coco.getImgIds(imgIds = [324158])
 +
  img = coco.loadImgs(imgIds[np.random.randint(0,len(imgIds))])[0]
 +
 
 +
  # load and display image
 +
  # I = io.imread('%s/images/%s/%s'%(dataDir,dataType,img['file_name']))
 +
  # use url to load image
 +
  I = io.imread(img['coco_url'])
 +
  plt.axis('off')
 +
  plt.imshow(I)
 +
  plt.show()
 +
 +
[[Файл:Coco-1.png |мини| center|Рисунок 10. Пример изображения из датасета COCO [https://github.com/cocodataset/cocoapi/blob/master/PythonAPI/pycocoDemo.ipynb Оригинал]]]
 +
 +
  # load and display instance annotations
 +
  plt.imshow(I); plt.axis('off')
 +
  annIds = coco.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
 +
  anns = coco.loadAnns(annIds)
 +
  coco.showAnns(anns)
 +
 +
[[Файл:Coco-2.png|мини|center|Рисунок 11. Пример обнаруженного объекта [https://github.com/cocodataset/cocoapi/blob/master/PythonAPI/pycocoDemo.ipynb Оригинал]]]
 +
 +
==Fashion-MNIST==
 +
 +
===Описание===
 +
[[Файл:FMNIST.png|мини|Рисунок 12. Пример изображений из Fashion-MNIST]]
 +
Fashion-MNIST {{---}} это набор изображений, взятых из статей [https://jobs.zalando.com/en/tech/?gh_src=nevh2y1 Zalando], состоящий из обучающего набора из 60000 примеров и тестового набора из 10000 примеров. Каждый пример представляет собой черно-белое изображение 28x28 (см. рис. 12), связанное с меткой из 10 классов. Создатели Fashion-MNIST предложили его в качестве прямой замены исходного набора данных MNIST, состоящего из рукописных цифр, для сравнительного анализа алгоритмов машинного обучения. Он имеет одинаковый размер изображения и структуру разделений для обучения и тестирования. Аргументировали необходимость такой замены тем, что исходный набор данных MNIST действительно хорошо отражает возможность алгоритма хоть что-то классифицировать, но если алгоритм работает на стандартном MNIST, он все равно может не сработать на других примерах данных. Также на наборе данных MNIST научились достигать слишком высоких результатов точности (97% для классических алгоритмов машинного обучения и 99.7% для сверточных нейронных сетей), в то время как MNIST не отражает современных сложных проблем компьютерного зрения. Это позволило сделать предположение о том, что набор данных MNIST слишком простой по современным меркам и его требуется заменить.
 +
 +
===Результаты===
 +
 +
На сайте<ref>https://github.com/zalandoresearch/fashion-mnist</ref> набора данных можно найти список лучших результатов, достигнутых алгоритмами на этом наборе данных. Так как задача классификации набора данных Fashion-MNIST сложнее, чем в случае стандартного набора MNIST, в таблице представлены только алгоритмы глубокого обучения, т.к. только для них эта задача имеет смысл. Так, худший из записанных результатов достигнут сверточной нейронной сетью с 3 сверточными слоями и одним слоем пулинга (12.4% ошибок), а подавляющее большинство лучших результатов получены боле сложными архитектурами. Лучший результат был достигнут WRN сетью и составляет всего 3.3% ошибки.
 +
 +
===Код===
 +
 +
Простой код, скачивающий Fashion-MNIST с использованием NumPy и запускающий на нем стандартный классификатор.
 +
 +
  import mnist_reader
 +
  from sklearn.datasets import load_iris
 +
  from sklearn.ensemble import RandomForestClassifier
 +
  from sklearn.utils import shuffle
 +
  x_train, y_train = mnist_reader.load_mnist('data/fashion', kind='train')
 +
  x_test, y_test = mnist_reader.load_mnist('data/fashion', kind='t10k')
 +
  X, Y = shuffle(x_train, y_train)
 +
  n = 1000
 +
  X, Y = X[:n], Y[:n]
 +
  X, Y = X.reshape((n, -1)), Y.reshape((n,))
 +
  train = n // 2
 +
  clf = DecisionTreeClassifier(criterion="entropy", max_depth=5)
 +
  clf.fit(X[:train], Y[:train])
 +
  expected = Y[train:]
 +
  predicted = clf.predict(X[train:])
 +
  print("Classification report for classifier %s:\n%s\n"
 +
  % (clf, metrics.classification_report(expected, predicted)))
 +
 +
==Boston Housing==
 +
 +
===Описание===
 +
 +
Boston Housing содержит данные, собранные Службой переписи населения США (англ. ''U.S Census Service''), касающиеся недвижимости в районах Бостона. Набор данных состоит из 13 признаков и 506 строк и также предоставляет такую информацию, как уровень преступности (CRIM), ставка налога на недвижимость (TAX), возраст людей, которым принадлежит дом (AGE), соотношение числа учащихся и преподавателей в районе (PTRATIO) и другие. Данный набор данных используется для предсказания следующих целевых переменных: средняя стоимость дома (MEDV) и уровень закиси азота (NOX).
 +
 +
===Результаты===
 +
 +
Для решения задачи предсказания средней стоимости дома используется множественная линейная регрессия. Метрикой качества модели выступает корень из среднеквадратичной ошибки ([[Оценка качества в задачах классификации и регрессии|англ. ''root-mean-square error, RMSE'' ]]). В среднем, значение RMSE на данном наборе данных находится в районе 3,5-5 в зависимости от выбранной модели. Однако на соревновании на сайте [https://www.kaggle.com/sagarnildass/predicting-boston-house-prices Kaggle] пользователь [https://www.kaggle.com/c/boston-housing/leaderboard MayankSatnalika] получил результат 1.33055.
 +
 +
===Код===
 +
 +
Простой код, загружающий набор данных из библиотеки sklearn с использованием NumPy и Pandas и запускающий на нем алгоритм линейной регрессии.
 +
  import pandas as pd
 +
  import numpy as np
 +
  from sklearn.datasets import load_boston
 +
  from sklearn.model_selection import train_test_split
 +
  from sklearn.linear_model import LinearRegression
 +
  from sklearn.metrics import mean_squared_error
 +
  boston_dataset = load_boston()
 +
  boston = pd.DataFrame(boston_dataset.data, columns=boston_dataset.feature_names)
 +
  boston['MEDV'] = boston_dataset.target
 +
  X = pd.DataFrame(np.c_[boston['LSTAT'], boston['RM']], columns=['LSTAT', 'RM'])
 +
  Y = boston['MEDV']
 +
  X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=5)
 +
  lin_model = LinearRegression()
 +
  lin_model.fit(X_train, Y_train)
 +
  y_train_predict = lin_model.predict(X_train)
 +
  rmse = (np.sqrt(mean_squared_error(Y_train, y_train_predict)))# 5.6371293350711955
 +
  y_test_predict = lin_model.predict(X_test)
 +
  rmse = (np.sqrt(mean_squared_error(Y_test, y_test_predict)))# 5.13740078470291
 +
 +
==Caltech-UCSD Birds 200 (CUB)==
 +
[[Файл:cub_dataset_logo.jpg |мини|Рисунок 13. Пример изображений из CUB [http://www.vision.caltech.edu/visipedia/collage.jpg Оригинал]]]
 +
===Описание===
 +
Caltech-UCSD Birds 200 {{---}} это набор данных, содержащий изображения птиц. Данный набор включает в себя фотографии 200 видов птиц. Большинство видов птиц, представленных в наборе данных, являются североамериканскими. Общее количество категорий птиц составляет 200. В набор данных 2010 года включены 6033 изображения, а в набор данных 2011 года {{---}} 11 788 изображений, некоторые из них приведены на рисунке 13.
 +
 +
===Поиск и аннотация изображений===
 +
Изображения для набора данных были получены с сайта [https://www.flickr.com/ Flickr] и отфильтрованы с помощью [https://www.mturk.com/ Amazon Mechanical Turk]. Каждое изображение аннотировано границей области, содержащей птицу, грубой сегментацией птиц, набором меток атрибутов и текстовым описанием. Примеры аннотированных изображений представлены на рисунке 14.
 +
 +
{|align="center"
 +
|-valign="top"
 +
|[[Файл:birds_annotations.png|мини|600px|Рисунок 14. Изображения и аннотации из CUB-200 [https://www.researchgate.net/profile/Serge_Belongie/publication/46572499/figure/fig1/AS:669472046206977@1536625982259/Images-and-annotations-from-CUB-200-Each-example-image-is-shown-with-a-rough-outline.png Оригинал]]]
 +
|}
 +
 +
==102 Category Flower==
 +
===Описание===
 +
[[Файл:flowers-examples.jpg|мини|Рисунок 15. Примеры изображений из Oxford Flowers 102 [https://www.researchgate.net/profile/Zhiwu_Lu2/publication/318204948/figure/fig7/AS:512607066439687@1499226456587/Examples-of-images-in-the-Oxford-Flower-102-Dataset-Corresponding-categories-are-given.png Оригинал]]]
 +
Oxford Flowers 102 {{---}} набор данных, состоящий из цветов, встречающихся в Соединенном Королевстве. Набор стоит состоит из 102 видов цветов и содержит от 40 до 258 изображений каждого вида. Примеры изображений из данного датасета приведены на рисунке 15. Цветы представлены в различных ракурсах и вариациях освещения. Кроме того, в наборе присутствуют виды цветов тяжело отличимые друг от друга. Графы соседства цветков по различным признакам представлены на рисунках 16 и 17.
 +
 +
Набор данных делится на обучающий набор, проверочный набор и тестовый наборы. Каждый обучающий и проверочный наборы состоят из 10 изображений на класс (всего 1020 изображений). Тестовый набор состоит из оставшихся 6149 изображений (минимум 20 изображений на класс).
 +
 +
{|align="center"
 +
|-valign="top"
 +
|[[Файл:cad_Shapeiso.jpg|мини|Рисунок 16. Граф соседства по форме [https://www.robots.ox.ac.uk/~vgg/data/flowers/102/shapeiso.jpg Оригинал]]]
 +
|[[Файл:cad_Colouriso.jpg|мини|Рисунок 17. Граф соседства по цвету [https://www.robots.ox.ac.uk/~vgg/data/flowers/102/colouriso.jpg Оригинал]]]
 +
|}
 +
 +
==Visual Genome==
 +
[[Файл:Visual_Genome_учфьзду.png|мини|Рисунок 18. Результат визуализации [http://visualgenome.org/api/v0/region_visualization_demo/ Оригинал]]]
 +
===Описание===
 +
Visual Genome {{---}} это набор данных, связывающий изображения со словесным описанием их содержимого. Является исчерпывающим набором данных для обучения и тестирования моделей компьютерного зрения, обеспечивает обширный анализ изображений с учетом зависимостей между объектами. Это позволяет использовать набор данных для решения большого количества различных задач: поиск объектов, поиск отношений, требующих дальнейшего вывода, задачи, связанные с ответами на вопросы.
 +
 +
Изображение часто представляет сложную картину, которую невозможно полностью раскрыть одним предложением. Существующие наборы данных, такие как Flickr 30K, ориентированы на высокоточное описание всего изображения в целом. Вместо этого для каждого изображения в Visual Genome собираются более 50 описаний для разных регионов изображения, обеспечивая тем самым намного более полный набор описаний.
 +
 +
Набор данных содержит более 108К изображений, каждое из которых имеет в среднем 35 объектов, 26 атрибутов и 21 парное отношение между объектами. В данном наборе данных происходит преобразование объектов, атрибутов, отношений и словосочетаний в описаниях регионов и пар вопрос-ответ в синсеты из [https://ru.wikipedia.org/wiki/WordNet WordNet]. Cинсет {{---}} это набор данных, элементы в котором считаются семантически эквивалентными для поиска или восстановления информации. Visual Genome является самым большим набором данных с описаниями изображений, объектов, атрибутов, отношений и пар вопрос-ответ.
 +
 +
===Код===
 +
Пример использования [https://visualgenome.org/api/v0/api_home.html Visual Genome API] на python:
 +
 +
  import matplotlib.pyplot as plt
 +
  from matplotlib.patches import Rectangle
 +
  from src import api as vg
 +
  from PIL import Image as PIL_Image
 +
  import requests
 +
  %matplotlib inline
 +
  from StringIO import StringIO
 +
  ids = vg.GetImageIdsInRange(startIndex=0, endIndex=1)
 +
  image_id = ids[0]
 +
  image = vg.GetImageData(id=image_id)
 +
  regions = vg.GetRegionDescriptionsOfImage(id=image_id)
 +
  fig = plt.gcf()
 +
  fig.set_size_inches(18.5, 10.5)
 +
  def visualize_regions(image, regions):
 +
      response = requests.get(image.url)
 +
      img = PIL_Image.open(StringIO(response.content))
 +
      plt.imshow(img)
 +
      ax = plt.gca()
 +
      for region in regions:
 +
          ax.add_patch(Rectangle((region.x, region.y),
 +
                                region.width,
 +
                                region.height,
 +
                                fill=False,
 +
                                edgecolor='red',
 +
                                linewidth=3))
 +
          ax.text(region.x, region.y, region.phrase, style='italic', bbox={'facecolor':'white', 'alpha':0.7, 'pad':10})
 +
      fig = plt.gcf()
 +
      plt.tick_params(labelbottom='off', labelleft='off')
 +
      plt.show()
 +
  visualize_regions(image, regions[:8])
 +
Результат работы кода представлен на рисунке 18.
 +
 +
==CelebA==
 +
[[Файл:CelebA.jpg|мини|Рисунок 19. Пример изображений из CelebA [http://mmlab.ie.cuhk.edu.hk/projects/CelebA/overview.png Оригинал]]]
 +
===Описание===
 +
CelebA (англ. CelebFaces Attributes Dataset) {{---}} это крупномасштабный набор данных атрибутов лиц, содержащий более 200 тысяч изображений знаменитостей (см. рис. 19). Изображения в этом наборе данных охватывают лица людей с разных ракурсов. Более подробная характеристика датасета: 10 177 уникальных личностей, 202 599 изображений лиц и 5 ориентиров, 40 бинарных аннотаций атрибутов на изображение. Эти данные были первоначально собраны исследователями из MMLAB<ref>http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html[http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html]</ref>, Китайского университета Гонконга.
 +
 +
Набор данных можно использовать в качестве обучающих и тестовых наборов для следующих задач [[Компьютерное зрение|компьютерного зрения]]: распознавание атрибутов лица, обнаружение лиц и локализация ориентиров (или части лица).
 +
 +
===Пример атрибутов===
 +
Ниже приведен список бинарных атрибутов в CelebA, где отдельный атрибут {{---}} одна из характеристик лица.
 +
Более подробно со всеми атрибутами можно ознакомиться [https://www.tensorflow.org/datasets/catalog/celeb_a здесь]
 +
 +
{| class="wikitable"
 +
|-
 +
! Индекс атрибута
 +
! Наименование
 +
! Пояснение
 +
|-
 +
| 1
 +
| 5oClockShadow
 +
| щетина, появшившаяся в течение дня
 +
|-
 +
| 2
 +
| ArchedEyebrows
 +
| изогнутые брови
 +
|-
 +
| 3
 +
| Attractive
 +
| привлекательный/ая
 +
|-
 +
| 4
 +
| BagsUnderEyes
 +
| мешки под глазами
 +
|-
 +
| 5
 +
| Bald
 +
| лысый
 +
|-
 +
| 6
 +
| Bangs
 +
| челка
 +
|-
 +
| 7
 +
| BigLips
 +
| большие губы
 +
|-
 +
| 8
 +
| BigNose
 +
| большой нос
 +
|-
 +
| 9
 +
| BlackHair
 +
| темные волосы
 +
|-
 +
| 10
 +
| BlondHair
 +
| блондинистые волосы
 +
|-
 +
| 11
 +
| Blurry
 +
| размытый
 +
|-
 +
| 12
 +
| BrownHair
 +
| русые волосы
 +
|-
 +
| 13
 +
| BushyEyebrows
 +
| густые брови
 +
|-
 +
| 14
 +
| Chubby
 +
| полный
 +
|-
 +
| 15
 +
| DoubleChin
 +
| второй подбородок
 +
|-
 +
| 16
 +
| Eyeglasses
 +
| очки
 +
|-
 +
| 17
 +
| Goatee
 +
| козлиная бородка/эспаньолка
 +
|-
 +
| 18
 +
| GrayHair
 +
| седые волосы
 +
|-
 +
| 19
 +
| HeavyMakeup
 +
| много макияжа
 +
|-
 +
| 20
 +
| HighCheekBones
 +
| высокие скулы
 +
|-
 +
| 21
 +
| Male
 +
| мужчина
 +
|-
 +
| 22
 +
| MouthSlighltyOpen
 +
| слегка приоткрытый рот
 +
|-
 +
| 23
 +
| Mustache
 +
| усы
 +
|-
 +
| 24
 +
| NarrowEyes
 +
| узкий разрез глаз
 +
|-
 +
| 25
 +
| NoBeard
 +
| отсутствет борода
 +
|-
 +
| 26
 +
| OvalFace
 +
| овальное лицо
 +
|-
 +
| 27
 +
| PaleSkin
 +
| бледная кожа
 +
|-
 +
| 28
 +
| PointyNose
 +
| заостренный нос
 +
|-
 +
| 29
 +
| RecedingHairline
 +
| залысина
 +
|-
 +
| 30
 +
| RosyCheeks
 +
| розовые щеки
 +
|-
 +
| 31
 +
| Sideburns
 +
| бакенбарды
 +
|-
 +
| 32
 +
| Smiling
 +
| улыбка
 +
|-
 +
| 33
 +
| StraightHair
 +
| прямые волосы
 +
|-
 +
| 34
 +
| WavyHair
 +
| волнистые волосы
 +
|-
 +
| 35
 +
| WearingEarrings
 +
| присутствует серьга/серьги
 +
|-
 +
| 36
 +
| WearingHat
 +
| присутствует шляпа
 +
|-
 +
| 37
 +
| WearingLipstick
 +
| накрашены губы
 +
|-
 +
| 38
 +
| WearingNecklace
 +
| присутствует ожерелье
 +
|-
 +
| 39
 +
| WearingNecktie
 +
| присутствует галстук
 +
|-
 +
| 40
 +
| Young
 +
| молодой/ая
 +
|}
 +
 +
==CityScapes==
 +
[[Файл:CityscapesZuerich.jpg|мини|Рисунок 20. Пример изображения из CityScapes [https://www.cityscapes-dataset.com/examples/ Источник]]]
 +
===Описание===
 +
CityScapes<ref>https://www.cityscapes-dataset.com/</ref> {{---}} это набор данных, состоящий из разнообразных городских уличных сцен в 50 разных городах в разное время года. Данный набор хорошо подходит для задач компьютерного зрения, таких как: [[Сегментация изображений|семантическая сегментация данных]], сегментация на уровне экземпляра и вывод несоответствия стереопар. Пример изображения из данного датасета представлен на рисунке 20.
 +
 +
===Структура данных <ref>https://www.cityscapes-dataset.com/dataset-overview/#features</ref>===
 +
Всего в наборе данных находится 25 000 изображений, из них 5000 составляют набор с более детальными аннотациями изображений с разрешением 1024 * 2048, предварительно разделенных на наборы для обучения {{---}} 2975, проверки {{---}} 500 и тестирования {{---}} 1525. Оставшиеся 20 000 изображений имеют грубые аннотации, позволяющие применять методы, использующие большие объемы данных со слабой маркировкой.
 +
 +
===Результаты===
 +
 +
Основной метрикой для этого набора данных является [[Оценка качества в задаче кластеризации#Индекс Жаккара (англ. Jaccard Index)|индекс Жаккара]]. Также, хорошо известно, что глобальная мера Ыеиндекса Жаккара смещена в сторону экземпляров объектов, которые покрывают большую область изображения. В уличных сценах с их сильным изменением масштаба это может быть проблематично.
 +
Чтобы решить эту проблему, создатели датасета дополнительно оценивают семантическую маркировку, используя метрику пересечения по объединению на уровне экземпляра <math>
 +
iIoU = \dfrac{iTP}{iTP + FP + iFN}
 +
</math>, где <math>iTP</math>, <math>FP</math> и <math>iFN</math> обозначают количество истинно положительных, ложноположительных и ложно отрицательных пикселей соответственно. Сейчас лучшей нейронной сетью для этого набора данных в задаче семантической сегментации данных является [https://www.cityscapes-dataset.com/benchmarks/#scene-labeling-task DAHUA-ARI], которая позволяет достичь индекс Жаккара 85.8% и iIoU 70.6% для классов, индекс Жаккара 93.2% и iIoU 85.4% для категорий, соответственно.
 +
 +
==ICDAR==
 +
[[Файл:ICDAR2017.png|мини|Рисунок 21. Пример изображения из датасета ICDAR2017 Competition on Multi-lingual Scene Text Detection and Script Identification (MLT) [https://arxiv.org/pdf/1812.05219.pdf Источник]]]
 +
===Описание===
 +
ICDAR<ref>https://rrc.cvc.uab.es/</ref> (англ. International Conference on Document Analysis and Recognition) {{---}} это международная конференция по анализу и распознаванию текста и одноименное семейство набора данных, состоящее из фотографий (см. рис. 21, 22 и 23), на которых изображен текст на разных языках. Данные наборы создаются для соревнований RRC (англ. Robust Reading Competition), где требуется решить следующие задачи: обнаружение текста, сегментация текста, распознавание символов, сквозное распознавание, распознавание скриптов, ответы на вопросы, связанные с изображениями.
 +
Ниже приведен анализ наборов данных ICDAR2013, ICDAR2015, ICDAR2017, ICDAR2019.
 +
 +
===ICDAR 2013===
 +
'''ICDAR 2013 "Born Digital Images"''' {{---}} датасет, который содержит изображения, извлеченные с веб-страниц и сообщений электронной почты. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов.
 +
 +
'''ICDAR 2013 "Focused Scene Text"'''  {{---}} датасет c изображениями с текстом на вывесках, логотипах и так далее. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов.
 +
 +
 +
{| class="wikitable"
 +
|-
 +
! Наименование датасета
 +
! Количество объектов
 +
! Количество обучающих объектов
 +
! Количество тестовых объектов
 +
! Количество слов
 +
! Количество обучающих слов
 +
! Количество тестовых слов
 +
|-
 +
| ICDAR 2013 "Born Digital Images"
 +
| 561
 +
| 420
 +
| 141
 +
| 5003
 +
| 3564
 +
| 1439
 +
|-
 +
| ICDAR 2013 "Focused Scene Text"
 +
| 462
 +
| 229
 +
| 233
 +
| 1943
 +
| 848
 +
| 1095
 +
|}
 +
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:ICDARBDI.png|thumb|alt=ICDAR "Born Digital Images"|x200px|center|Рисунок 22. ICDAR "Born Digital Images". [https://arxiv.org/pdf/1812.05219.pdf Источник]]]</div>
 +
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:ICDARFST2.png|x150px|center|thumb|Рисунок 23. ICDAR "Focused Scene Text". [https://arxiv.org/pdf/1812.05219.pdf Источник]]]</div>
 +
 +
 +
 +
 +
===ICDAR 2015===
 +
'''ICDAR 2015 "Born Digital Images"''' {{---}} датасет, который содержит изображения, извлеченные с веб-страниц и сообщений электронной почты. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов, сквозное распознавание .
 +
 +
'''ICDAR 2013 "Focused Scene Text"'''  {{---}} датасет c изображениями с текстом на вывесках, логотипах и так далее. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов , сквозное распознавание.
 +
 +
'''ICDAR 2015 "Incidental Scene Text"''' {{---}} датасет c изображениями, на которых текст попал в поле зрения камеры Google Glass случайно<ref>https://rrc.cvc.uab.es/?ch=4</ref>. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов , сквозное распознавание.
 +
 +
{| class="wikitable"
 +
|-
 +
! Наименование датасета
 +
! Количество объектов
 +
! Количество обучающих объектов
 +
! Количество тестовых объектов
 +
! Количество слов
 +
! Количество обучающих слов
 +
! Количество тестовых слов
 +
|-
 +
| ICDAR 2015 "Born Digital Images"
 +
| 561
 +
| 420
 +
| 141
 +
| 5003
 +
| 3564
 +
| 1439
 +
|-
 +
| ICDAR 2015 "Focused Scene Text"
 +
| 462
 +
| 229
 +
| 233
 +
| 1943
 +
| 848
 +
| 1095
 +
|-
 +
| ICDAR 2015 "Incidental Scene Text"
 +
| 1670 (1500 публичных)
 +
| 1000
 +
| 500
 +
| 17548
 +
| -
 +
| -
 +
|}
 +
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:ICDARIST.png |x150px|center|thumb|Рисунок 24. ICDAR "Incidental Scene Text". [https://arxiv.org/pdf/1812.05219.pdf Источник]]]</div>
 +
 +
===ICDAR 2017===
 +
 +
'''ICDAR 2017 "COCO-Text"''' {{---}} набор данных, основанный на датасете "MS COCO"<ref>https://vision.cornell.edu/se3/wp-content/uploads/2019/01/ICDAR2017b.pdf</ref>, где собраны обычные изображения ежедневных сцен, на которых, возможно, есть текст. Текст на изображениях на английском, немецком, французском и других языках. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, распознавание символов , сквозное распознавание.
 +
 +
'''ICDAR 2017 "Multi-lingual Scene Text"''' {{---}} набор данных, где собраны изображения с текстом на 9 языках. Текст на изображениях на арабском, английском, немецком, бенгальском, китайском, японском, французском, корейском языках. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста.
 +
 +
'''ICDAR 2017 "French Street Name Signs"''' {{---}} набор данных с изображениями, на которых есть названия французских улиц. Текст на изображениях на французском языке. Датасет предназначен для следующих задач оптического распознавани символов: сквозное распознавание.
 +
 +
{| class="wikitable"
 +
|-
 +
! Наименование датасета
 +
! Количество объектов
 +
! Количество обучающих объектов
 +
! Количество тестовых объектов
 +
! Количество слов
 +
! Количество обучающих слов
 +
! Количество тестовых слов
 +
|-
 +
| ICDAR 2017 "COCO-Text"
 +
| 63686
 +
| 43686
 +
| 10000 {{---}} валидирующая выборка, 10000 {{---}} тестовая
 +
| 173589
 +
| -
 +
| -
 +
|-
 +
| ICDAR 2017 "Multi-lingual Scene Text"
 +
| 18 000
 +
| -
 +
| -
 +
| 107 547(тренировочные + валидирующие слова)
 +
| -
 +
| -
 +
|-
 +
| ICDAR 2017 "French Street Name Signs"
 +
| 1 081 422, где каждое изображение содержит до 4 объектов с названией улицы
 +
| -
 +
| -
 +
| -
 +
| -
 +
| -
 +
|}
 +
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:ICDARCOCO.png |x250px|center|thumb|Рисунок 25. ICDAR "COCO-Text". [https://arxiv.org/pdf/1812.05219.pdf Источник]]]</div>
 +
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:ICDARMSTD.png |x250px|center|thumb|Рисунок 26. ICDAR "Multi-lingual Scene Text". [https://arxiv.org/pdf/1812.05219.pdf Источник]]]</div>
 +
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:ICDARFS2.png |x150px|center|thumb|Рисунок 27. ICDAR "French Street Name Signs". [https://arxiv.org/pdf/1812.05219.pdf Источник]]]</div>
 +
 +
===ICDAR 2019===
 +
 +
'''ICDAR 2019 "COCO-Text"''' {{---}} набор данных, основанный на датасете "MS COCO"<ref>https://vision.cornell.edu/se3/wp-content/uploads/2019/01/ICDAR2017b.pdf</ref>, где собраны обычные изображения ежедневных сцен, на которых, возможно, есть текст. Текст на изображениях на английском, немецком, французском и других языках. Датасет предназначен для следующих задач оптического распознавани символов: сквозное распознавание.
 +
 +
'''ICDAR 2019 "Multi-lingual Scene Text"''' {{---}} набор данных, где собраны изображения с текстом на 10 языках. Текст на изображениях на арабском, английском, деванагари, немецком, бенгальском, китайском, японском, французском, корейском языках. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, идентификация скрипта, сквозное распознавание.
 +
 +
'''ICDAR 2019 "Scene Text Visual Question Answering"''' {{---}} набор данных, включающий 23 038 изображений с 31 791 парой вопросов и ответов, где ответ всегда основан на присутствующих текстовых экземплярах на изображении. Текст на изображениях на янглийском языке. Датасет предназначен для следующих задач оптического распознавани символов: ответ на вопрос, связанный с изображением.
 +
 +
 +
{| class="wikitable"
 +
|-
 +
! Наименование датасета
 +
! Количество объектов
 +
! Количество обучающих объектов
 +
! Количество тестовых объектов
 +
! Количество слов
 +
! Количество обучающих слов
 +
! Количество тестовых слов
 +
|-
 +
| ICDAR 2019 "COCO-Text"
 +
| 63686
 +
| 43686
 +
| 10000 {{---}} валидирующая выборка, 10000 {{---}} тестовая
 +
| 173589
 +
| -
 +
| -
 +
|-
 +
| ICDAR 2019 "Multi-lingual Scene Text"<ref>https://arxiv.org/pdf/1907.00945.pdf</ref>
 +
| 20 000 (2 000 для каждого языка) + 277 000 сгенерированных изображения
 +
| 10 000
 +
| 10 000
 +
| -
 +
| -
 +
| -
 +
|-
 +
| ICDAR 2019 "Scene Text Visual Question Answering"
 +
| 23 038
 +
| -
 +
| -
 +
| -
 +
| -
 +
| -
 +
| -
 +
|}
 +
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:ICDAR2019Sample.png |x1400px|center|thumb|Рисунок 28. ICDAR 2019 "Scene Text Visual Question Answering". [https://arxiv.org/pdf/1907.00490.pdf Источник]]]</div>
 +
 +
==Pointing'04==
 +
 +
===Описание===
 +
 +
Pointing'04 <ref>http://crowley-coutaz.fr/FGnet/reports/Pointing04-Proceedings.pdf</ref> {{---}} база данных изображений лиц в разных положениях для 15-ти человек. Для каждого человека представлено 93 положения головы, при этом каждая фотография предложена в двух вариантах освещения и масштаба (две разные сессии). Снимки, сделанные во время первого сеанса, используются в качестве обучающих данных, а изображения из второго сеанса используются в качестве данных тестирования. 93 положения включают комбинации 13-и вариантов поворота и 7-и вариантов наклона вместе с двумя крайними случаями наклона при отсутствии поворота.
 +
 +
===Пример сета изображений===
 +
 +
{|align="center"
 +
|-valign="top"
 +
|[[Файл:Pointing.png|600px|thumb|Рисунок 29. Пример сета изображений Pointing'04 [https://www.researchgate.net/publication/221545772_Evaluation_of_Head_Pose_Estimation_for_Studio_Data Источник]]]
 +
|}
 +
 +
==FASSEG==
 +
 +
===Описание===
 +
 +
Репозиторий FASSEG <ref>http://massimomauro.github.io/FASSEG-repository/</ref> (англ. FAce Semantic SEGmentation ) состоит из двух наборов данных (Frontal01 и Frontal02) для сегментации лиц в фронтальном положении и одного набора данных (Multipose01) с лицами в нескольких определенных положениях.
 +
 +
Frontal01 содержит 70 сегментированных изображений лиц и исходные изображения RGB. Исходные лица в основном взяты из наборов данных [http://cbcl.mit.edu/software-datasets/FaceData2.html MIT-CBCL] и [http://www.fei.edu.br/~cet/facedatabase.html FEI].
 +
 +
Frontal02 {{---}} это «высокоточный» Frontal01. Он содержит те же изображения, что и Frontal01, но с гораздо более точной сегментацией.
 +
 +
Multipose01 содержит более 200 размеченных лиц в 13-ти положениях с углом поворота от -90 градусов до 90 градусов включительно. Исходные лица взяты из базы данных [http://crowley-coutaz.fr/FGnet/reports/Pointing04-Proceedings.pdf Pointing'04].
 +
 +
===Сегментация===
 +
 +
{|align="right"
 +
|-valign="top"
 +
|[[Файл:FASSEG3.png|300px|thumb|Рисунок 30. Сегментация изображения [https://github.com/massimomauro/FASSEG-repository/blob/master/papers/multiclass_face_segmentation_ICIP2015.pdf Источник]]]
 +
|}
 +
 +
Изображение размечается на 6 сегментов (см. рис. 30):
 +
*глаза;
 +
*нос;
 +
*рот;
 +
*волосы (вместе с бровями);
 +
*фон изображения;
 +
*кожа.
 +
 +
===Примеры изображений===
 +
 +
 +
{|align="center"
 +
|-valign="top"
 +
|[[Файл:FASSEG1.png|300px|thumb|Рисунок 31. Пример изображений из датасетов Frontal01 и Frontal02 [https://raw.githubusercontent.com/massimomauro/FASSEG-dataset/master/other/V1V2_diff.png Оригинал]]]
 +
|[[Файл:FASSEG2.png|400px|thumb|Рисунок 32. Пример изображений из датасета Multipose01 [https://github.com/massimomauro/FASSEG-repository/blob/master/papers/pose_estimation_by_segmentation_ICME2017.pdf Источник]]]
 +
|}
 +
 +
==MPI==
 +
 +
===Описание===
 +
 +
MPI Human Pose <ref>http://human-pose.mpi-inf.mpg.de/</ref> (англ. Max Planck Institute) {{---}} это набор данных, позволяющий определять различные виды активности человека по позам на изображениях и аннотациям к ним. Набор данных включает около 25 тысяч изображений, содержащих более 40 тысяч людей с указанным положением отдельных частей тела. Изображения систематически собирались с использованием установленной таксономии повседневной деятельности человека. В целом набор данных охватывает 410 видов деятельности человека, каждое изображение снабжено меткой активности. Каждое изображение было извлечено из видео с YouTube и снабжено предшествующими и последующими кадрами без аннотации. Кроме того, для тестового набора приложены более детальные аннотации, включая сгибы частей тела и ориентации туловища и головы.
 +
 +
===Структура датасета и примеры изображений===
 +
 +
{|align="right"
 +
|-valign="top"
 +
|[[Файл: MPI1.jpg|500px|thumb|Рисунок 33. Пример изображений из подкласса датасета MPI [http://human-pose.mpi-inf.mpg.de/#dataset Источник]]]
 +
|}
 +
 +
Датасет представлен двадцатью различными классами активности: езда на велосипеде, упражнения, танцы, рыбалка и охота, домашняя активность, ремонт, отдых, активность на природе, игра на музыкальных инструментах, религиозная деятельность, бег, самоуход, спорт, передвижение на транспорте, волонтерство, прогулки, активность на воде, зимние виды активности, разное.
 +
 +
Каждый класс также разделен на уникальные подклассы. Пример такого разделения приведен на рисунке 33.
 +
 +
Датасет снабжен документацией с описанием структуры объектов и методами взаимодействия с ними, всю необходимую информацию по датасету, как и сами исходники, можно получить по [http://human-pose.mpi-inf.mpg.de/ ссылке].
 +
 +
==См.также==
 +
* [[Общие понятия]]
 +
* [[Сегментация изображений]]
 +
* [[Задача нахождения объектов на изображении]]
 +
* [[Оценка качества в задачах классификации и регрессии]]
 +
 +
==Примечания==
 +
[[Категория: Машинное обучение]]
 +
[[Категория: Компьютерное зрение]]
 +
[[Категория: Классификация и регрессия]]

Текущая версия на 19:27, 4 сентября 2022

Обзор

Для многих алгоритмов машинного обучения требуется большое количество данных. Кроме того, что моделям нужны данные для обучения, нужно сравнивать эффективность разных моделей. Поскольку поиск хороших наборов данных и их разметка — трудная задача, на помощь приходят уже собранные и размеченные наборы данных, для которых зачастую уже опубликованы результаты каких-то алгоритмов, и можно оценить, насколько хорошо работает исследуемая модель.

В этой статье рассмотрены с примерами несколько популярных наборов данных. Другие классические наборы можно посмотреть, например, на википедии[1].


Набор данных Какие объекты Число объектов Число классов Доля ошибок лучшего опубликованного алгоритма
Iris Данные измерений четырех параметров цветков ириса 150 3 N/A, малый размер набора данных
MNIST Рукописные цифры, черно-белые изображения 32х32 пикселя 70 000 10 0.18% [2]
CIFAR-10 Фотографии объектов разных классов, цветные изображения 32х32 пикселя 60 000 10 1.23% [3]
ImageNet Фотографии с указанием классов объектов на изображении и их позиций Больше 14 миллионов Больше 21 тысячи Большое количество различных метрик, см. ImageNet Competition. 1-5% на классификацию
ADE20K Фотографии с указанием семантической сегментации сущностей на них. Для каждого объекта также приведена его сегментация на части 22 210 (434 826 вхождений объектов) 3 169 17.93% [4]
Coco Фотографии сложных повседневных сцен, содержащих объекты в их естественном окружении. 328 000 изображений (более 2.5 миллионов вхождений объектов) 91 Много метрик. Зависит, в частности, от площади, занимаемой объектом на изображении. [5]
Fashion-MNIST Черно-белые фотографии различных видов одежды, 28x28 пикселей. 60000 изображений + 10000 тестовых изображений 10 3.3% (WRN40-4 8.9M params) [6]
Boston housing Данные о недвижимости в районах Бостона. 506 13 RMSE-1.33055
Caltech-UCSD Birds 200 Данные о видах птиц 11788 200 не описано
102 Category Flower Данные о видах цветов 8189 102 не описано
Visual Genome Данные о связи объектов на картинке с текстом 108077 76340 объектов, 15626 атрибутов, 47 зависимостей Слишком много метрик [7]
CelebA Изображения знаменитостей, охватывающие большие вариации поз Больше 200 тысяч 202 599 изображений лиц, 10 177 уникальных личностей, 5 ориентиров, 40 бинарных атрибутов не описано
Cityscapes Изображения городских улиц 50 городов с указанием семантической сегментации сущностей на них. Для каждого объекта также приведена его сегментация на части 5000 изображений с разрешением 1024 * 2048, предварительно разделенных на наборы для обучения (2975), проверки (500) и тестирования (1525) + 20000 изображений с грубыми аннотациями 30 не описано
ICDAR 2017 "COCO Text" набор данных, основанный на датасете "MS COCO"[8], где собраны обычные изображения ежедневных сцен, на которых, возможно, присутствует текст 63686 изображений, 43686 — обучающая выборка,10000 — валидирующая выборка, 10000 — тестовая 173589 слов не описано
Pointing'04 Изображения лиц людей с разными углами поворота и наклона 15 сетов по 186 изображений в каждом 93 7.9% [9]
FASSEG Изображения лиц людей с разными углами поворота, как в оригинале, так и в сегментированном виде Часть frontal01: 70, часть frontal02: 70, часть multipose01: 200 frontal01 и frontal02 — разделяют изображение на 6 различных сегментов, multipose01 — 13 углов поворота 7.73% [10] для сегментации, 22.6% [11] для определения поз
MPI Изображения повседневной деятельности людей в различных позах 25 тысяч 410 ~10% [12]

Iris

Описание

Iris — небольшой набор данных для задачи классификации, опубликованный еще в 1936 году Робертом Фишером, используя данные биолога Эдгара Андерсона. В этом наборе данных представлены по 50 описаний цветков одного из трех типов — Ирис щетинистый (Iris setosa), Ирис виргинский (Iris virginica) и Ирис разноцветный (Iris versicolor).

Для каждого цветка измерены четыре величины — длина чашелистника (англ. sepal length), ширина чашелистника (sepal width), длина лепестка (англ. petal length), ширина лепестка (англ. petal width). Все цветки промаркированы одним из трех типов, что позволяет тестировать на нем алгоритмы классификации. Интересное наблюдение — один из классов цветков линейно отделим от двух других.

Пример

Длина чашелистника Ширина чашелистника Длина лепестка Ширина лепестка Класс
5.1 3.5 1.4 0.2 setosa
7.0 3.2 4.7 1.4 versicolor
6.3 3.3 6.0 2.5 virginica

Код

 from sklearn.datasets import load_iris
 from sklearn.ensemble import RandomForestClassifier
 from sklearn import metrics
 iris=load_iris()
 X = iris.data
 Y = iris.target
 n = len(iris.data)
 train = n // 2
 clf = RandomForestClassifier(n_estimators=100, max_depth=2, random_state=0)
 clf.fit(X[:train], Y[:train])
 expected = Y[train:]
 predicted = clf.predict(X[train:])
 print("Classification report for classifier %s:\n%s\n"
  % (clf, metrics.classification_report(expected, predicted)))
      type  precision    recall  f1-score   support
         0       1.00      1.00      1.00        28
         1       0.95      0.88      0.91        24
         2       0.88      0.96      0.92        23
 avg / total     0.95      0.95      0.95        75

MNIST

Описание

Рисунок 1. Примеры изображений из датасета MNIST Оригинал

Набор данных MNIST — большой (порядка 60 000 тренировочных и 10 000 проверочных объектов, помеченных на принадлежность одному из десяти классов — какая цифра изображена на картинке) набор картинок с рукописными цифрами, часто используемый для тестирования различных алгоритмов распознавания образов. Он содержит черно-белые картинки размера 28x28 пикселей, исходно взятые из набора образцов из бюро переписи населения США, к которым были добавлены тестовые образцы, написанные студентами американских университетов. На рисунке 1 представлены примеры рукописных цифр из данного датасета.

Результаты

На сайте[13] MNIST можно найти список лучших результатов, достигнутых алгоритмами на это наборе данных. Так, худший из записанных результатов достигнут простым линейным классификатором (12% ошибок), а подавляющее большинство лучших результатов получены алгоритмами на основе нейронных сетей. Так, ансамбль из 35 сверточных нейронных сетей в 2012 году сумел получить всего 0.23% ошибок на наборе данных, что является очень хорошим результатом, вполне сравнимым с человеком.

Код

Простой пример, скачивающий набор данных и запускающий на нем один из классификаторов. Даже с уменьшением набора данных в сто раз и не самым подходящим классификатором точность выше половины угаданных цифр — заметно лучше, чем случайная разметка. С результатом работы данного кода можно ознакомиться на рисунке 2.


 from sklearn.datasets import fetch_openml
 from numpy import arange
 import random
 from sklearn.tree import DecisionTreeClassifier
 from sklearn import datasets, svm, metrics
Рисунок 2. Результат работы классификатора
 mnist = fetch_openml('MNIST_784')
 indices = arange(len(mnist.data))
 randidx = random.sample(list(indices), 500)
 mnist.data = mnist.data[randidx]
 mnist.target = mnist.target[randidx]
 X = mnist.data
 Y = mnist.target
 train = len(X)//2
 clf = DecisionTreeClassifier(criterion="entropy", max_depth=5)
 clf.fit(X[:train], Y[:train])
 expected = Y[train:]
 predicted = clf.predict(X[train:])
 print("Classification report for classifier %s:\n%s\n" % (clf, metrics.classification_report(expected, predicted)))
   digit    precision    recall  f1-score   support
       0         0.68      0.58      0.62        26
       1         0.71      0.87      0.78        23
       2         0.29      0.24      0.26        25
       3         0.64      0.28      0.39        25
       4         0.50      0.54      0.52        28
       5         0.46      0.46      0.46        24
       6         0.47      0.62      0.54        24
       7         0.66      0.78      0.71        27
       8         0.32      0.60      0.42        15
       9         0.59      0.39      0.47        33
 avg/total       0.54      0.53      0.52       250

CIFAR-10

Описание

Рисунок 3. Примеры изображений из датасета CIFAR-10 Источник

CIFAR-10 (Canadian Institute For Advanced Research) — еще один большой набор изображений, который обычно используется для тестирования алгоритмов машинного обучения. Он содержит 60 000 цветных картинок размером 32х32 пикселя, размеченных в один из десяти классов: самолеты, автомобили, коты, олени, собаки, лягушки, лошади, корабли и грузовики. В наборе данных по 6000 картинок каждого класса, примеры некоторых из них приведены на рисунке 3. CIFAR-10 является размеченным подмножеством заметно большего набора данных, состоящего примерно из восьмидесяти миллионов изображений.

Результаты

С момента публикации CIFAR-10 вышло много статей, авторы которых пытаются добиться максимальной точности на этом наборе данных. В среднем более хорошие результаты показывают различные сверточные нейронные сети с различными вариантами настройки и дополнительной предобработки данных.

На википедии[14] можно найти таблицу лучших публикаций с процентами ошибки на этом наборе данных. Так, лучший на сегодняшний момент алгоритм, опубликованный в мае 2018 года, допускает ошибку всего порядка 1.48%.


Код

Простой код, скачивающий CIFAR-10 из интернета и запускающий на нем стандартный классификатор.

 from keras.datasets import cifar10
 from sklearn.utils import shuffle    
 (x_train, y_train), (x_test, y_test) = cifar10.load_data()
 X, Y = shuffle(x_train, y_train)
 n = 1000
 X, Y = X[:n], Y[:n]
 X, Y = X.reshape((n, -1)), Y.reshape((n,))
 train = n // 2
 clf = DecisionTreeClassifier(criterion="entropy", max_depth=5)
 clf.fit(X[:train], Y[:train])
 expected = Y[train:]
 predicted = clf.predict(X[train:])
 print("Classification report for classifier %s:\n%s\n"
  % (clf, metrics.classification_report(expected, predicted)))


ImageNet

Описание

Рисунок 4. Пример разметки объектов в датасете ImageNet Источник

База данных Imagenet — проект по созданию и сопровождению массивной базы данных аннотированных изображений. Аннотация изображений происходит путем краудсорсинга сообществом. Из-за этого достигается большое количество размеченных данных.

Особенность данного набора данных — про каждую картинку известно несколько фактов вида "в этом прямоугольнике есть автомобиль" (см. рис. 4), что в совокупности с индексом по типам объектов, которые есть на изображениях, позволяет обучить алгоритм для распознавания объектов какой-то конкретной категории. На август 2017 года в ImageNet 14 197 122 изображения, разбитых на 21 841 категорию.

Imagenet Challenge

Рисунок 5. Лучшие результаты на Imagenet Challenge за различные годы Оригинал

Вместе с публикацией набора данных стартовал конкурс ImageNet Large Scale Visual Recognition Challenge (ILSVRC[15]). В его рамках участникам предлагается достигнуть наибольшей точности при классификации набора изображений. Организаторы использовали около тысячи различных категорий объектов, которые нужно классифицировать. На примере этого конкурса хорошо видно, как в 2010-е годы люди научились заметно лучше распознавать образы на изображениях, уже в 2017 году большинство участвующих команд преодолели порог в 95% правильных ответов. История улучшения результатов представлена на рисунке 5. Эта задача, проблема компьютерного зрения, имеет огромное практическое значение во многих прикладных областях.

ADE20K

Описание

Рисунок 6. Изображение из ADE20K и его разбиение на части.

ADE20K — набор изображений с размеченными сущностями, который хорошо подходит для задачи семантической сегментации данных в компьютерном зрении, пример разметки приведен на рисунке 6. Особенность этого набора состоит в том, что кроме объектов приводится также информация об их составных частях: например, если на изображении находится человек, то в дополнение к местоположению его фигуры будет также приведено положение его глаз и носа.

Подобные наборы данных часто страдают от несогласованности меток при их разметке сообществом. Для ADE20K эта проблема была решена — все изображения размечал только один человек, что обусловило высокую согласованность меток.

Структура данных [16]

Всего в наборе данных находится 22 210 изображений, из них 20 210 составляют набор для обучения, а 2 000 — набор для проверки. Максимальный размер изображения — 4500x6000p. Минимальный — 130x96p. Средний размер изображений равен 1.5Мп. К каждому изображению прилагается его RGB-оригинал (*.jpg), сегментация на сущности (*_seg.png), несколько изображений с сегментацией на части (*_seg_N.png, где N — это число) и описание признаков на изображении (*.txt).

ADE20K также содержит дополнительный файл на языке MATLAB, который позволяет загрузить изображения и информацию об их признаках.

Результаты

Основными метриками для этого набора данных являются пиксельная точность (англ. Pixel accuracy), которая состоит из доли корректно классифицированных пикселей, и индекс Жаккара. На момент создания ADE20K, лучшие алгоритмы машинного обучения давали пиксельную точность равную ~76% и индекс Жаккара равный ~0.34 на проверочном множестве[17]. Сейчас лучшей нейронной сетью для этого набора данных является ResNeSt, который позволяет достичь 82.07% пиксельной точности и индекс Жаккара 46.91%.

COCO

Описание

Рисунок 7. Пример изображений из MS Coco Оригинал

MS COCO (англ. Common Objects in Context) — большой набор изображений. Состоит из более чем 330000 изображений (220000 — размеченных), с более чем 1.5 милионов объектов на них. Примеры изображений приведены на рисунке 7. Все объекты находятся в их естественном окружении (контексте). Изображения, как правило, содержат объекты разных классов (только 10% имеют единственный класс). Все изображения сопровождаются аннотациями, хранящихся в json формате. Подробнее о структуре аннотаций можно прочитать здесь.

COCO имеет пять типов аннотаций для разных задач:

  • Задача нахождения объектов на изображении[math]^\star[/math]
  • Обнаружение ключевых точек. Обнаружение объектов и локализация их ключевых точек.
  • Сегментация окружения (англ. Stuff Segmentation). В отличии от задачи обнаружения объектов (человек, кот, машина), здесь внимание фокусируется на том, что его окружает (трава, стена, небо). Метки классов организованы в иерархическом порядке (напр., stuff → outdoor-stuff → sky → clouds). Чтобы добиться совместимости с задачей обнаружения объектов, используются следующие идентификаторы категорий:
Идентификатор Соответствие
1-91 категории объектов (не используются в сегментации окружения)
92-182 категории окружения
183 категория "другое" (выбирается для "объектов")
  • Паноптическая сегментация (англ. Panoptic Segmentation) — обединение задач семантической сегментации (Сегментация изображений) и обнаружения объектов. Задача состоит в том, чтобы классифицировать все пиксели изображения на принадлежность к некоторому классу, а также определить, к какому из экземпляров данного класса они относятся.
  • Аннотирование изображения (англ. Caption Evaluation). Генерация сопроводительной подписи к изображению.

Результаты

Результат задачи зависит от многих факторов. Например, для задачи обнаружения объекта, наилучшие результаты алгоритмы показывают на крупных объектах. Более подробно с метриками можно ознакомиться здесь. Приведем лишь результаты детектора ResNet (bbox) - победителя 2015 Detection Challenge. Графики, изображенные на рисунках 8 и 9, представляют из себя семейство кривых Pressision Recall для различных метрик.

Рисунок 8. PR кривые для класса "Person" Оригинал
Рисунок 9. Усредненные значения для всех классов Оригинал


Код

Пример использования COCO API на python:

 %matplotlib inline
 from pycocotools.coco import COCO
 import numpy as np
 import skimage.io as io
 import matplotlib.pyplot as plt
 import pylab
 pylab.rcParams['figure.figsize'] = (8.0, 10.0)
 
 
 dataDir='..'
 dataType='val2017'
 annFile='{}/annotations/instances_{}.json'.format(dataDir,dataType)
 
 coco=COCO(annFile)
 
 cats = coco.loadCats(coco.getCatIds())
 nms=[cat['name'] for cat in cats]
 print('COCO categories: \n{}\n'.format(' '.join(nms)))
 
 nms = set([cat['supercategory'] for cat in cats])
 print('COCO supercategories: \n{}'.format(' '.join(nms)))
 
 # get all images containing given categories, select one at random
 catIds = coco.getCatIds(catNms=['person','dog','skateboard']);
 imgIds = coco.getImgIds(catIds=catIds );
 imgIds = coco.getImgIds(imgIds = [324158])
 img = coco.loadImgs(imgIds[np.random.randint(0,len(imgIds))])[0]
 
 # load and display image
 # I = io.imread('%s/images/%s/%s'%(dataDir,dataType,img['file_name']))
 # use url to load image
 I = io.imread(img['coco_url'])
 plt.axis('off')
 plt.imshow(I)
 plt.show()
Рисунок 10. Пример изображения из датасета COCO Оригинал
 # load and display instance annotations
 plt.imshow(I); plt.axis('off')
 annIds = coco.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
 anns = coco.loadAnns(annIds)
 coco.showAnns(anns)
Рисунок 11. Пример обнаруженного объекта Оригинал

Fashion-MNIST

Описание

Рисунок 12. Пример изображений из Fashion-MNIST

Fashion-MNIST — это набор изображений, взятых из статей Zalando, состоящий из обучающего набора из 60000 примеров и тестового набора из 10000 примеров. Каждый пример представляет собой черно-белое изображение 28x28 (см. рис. 12), связанное с меткой из 10 классов. Создатели Fashion-MNIST предложили его в качестве прямой замены исходного набора данных MNIST, состоящего из рукописных цифр, для сравнительного анализа алгоритмов машинного обучения. Он имеет одинаковый размер изображения и структуру разделений для обучения и тестирования. Аргументировали необходимость такой замены тем, что исходный набор данных MNIST действительно хорошо отражает возможность алгоритма хоть что-то классифицировать, но если алгоритм работает на стандартном MNIST, он все равно может не сработать на других примерах данных. Также на наборе данных MNIST научились достигать слишком высоких результатов точности (97% для классических алгоритмов машинного обучения и 99.7% для сверточных нейронных сетей), в то время как MNIST не отражает современных сложных проблем компьютерного зрения. Это позволило сделать предположение о том, что набор данных MNIST слишком простой по современным меркам и его требуется заменить.

Результаты

На сайте[18] набора данных можно найти список лучших результатов, достигнутых алгоритмами на этом наборе данных. Так как задача классификации набора данных Fashion-MNIST сложнее, чем в случае стандартного набора MNIST, в таблице представлены только алгоритмы глубокого обучения, т.к. только для них эта задача имеет смысл. Так, худший из записанных результатов достигнут сверточной нейронной сетью с 3 сверточными слоями и одним слоем пулинга (12.4% ошибок), а подавляющее большинство лучших результатов получены боле сложными архитектурами. Лучший результат был достигнут WRN сетью и составляет всего 3.3% ошибки.

Код

Простой код, скачивающий Fashion-MNIST с использованием NumPy и запускающий на нем стандартный классификатор.

 import mnist_reader
 from sklearn.datasets import load_iris
 from sklearn.ensemble import RandomForestClassifier
 from sklearn.utils import shuffle
 x_train, y_train = mnist_reader.load_mnist('data/fashion', kind='train')
 x_test, y_test = mnist_reader.load_mnist('data/fashion', kind='t10k')
 X, Y = shuffle(x_train, y_train)
 n = 1000
 X, Y = X[:n], Y[:n]
 X, Y = X.reshape((n, -1)), Y.reshape((n,))
 train = n // 2
 clf = DecisionTreeClassifier(criterion="entropy", max_depth=5)
 clf.fit(X[:train], Y[:train])
 expected = Y[train:]
 predicted = clf.predict(X[train:])
 print("Classification report for classifier %s:\n%s\n"
  % (clf, metrics.classification_report(expected, predicted)))

Boston Housing

Описание

Boston Housing содержит данные, собранные Службой переписи населения США (англ. U.S Census Service), касающиеся недвижимости в районах Бостона. Набор данных состоит из 13 признаков и 506 строк и также предоставляет такую информацию, как уровень преступности (CRIM), ставка налога на недвижимость (TAX), возраст людей, которым принадлежит дом (AGE), соотношение числа учащихся и преподавателей в районе (PTRATIO) и другие. Данный набор данных используется для предсказания следующих целевых переменных: средняя стоимость дома (MEDV) и уровень закиси азота (NOX).

Результаты

Для решения задачи предсказания средней стоимости дома используется множественная линейная регрессия. Метрикой качества модели выступает корень из среднеквадратичной ошибки (англ. root-mean-square error, RMSE ). В среднем, значение RMSE на данном наборе данных находится в районе 3,5-5 в зависимости от выбранной модели. Однако на соревновании на сайте Kaggle пользователь MayankSatnalika получил результат 1.33055.

Код

Простой код, загружающий набор данных из библиотеки sklearn с использованием NumPy и Pandas и запускающий на нем алгоритм линейной регрессии.

 import pandas as pd
 import numpy as np
 from sklearn.datasets import load_boston
 from sklearn.model_selection import train_test_split
 from sklearn.linear_model import LinearRegression
 from sklearn.metrics import mean_squared_error
 boston_dataset = load_boston()
 boston = pd.DataFrame(boston_dataset.data, columns=boston_dataset.feature_names)
 boston['MEDV'] = boston_dataset.target
 X = pd.DataFrame(np.c_[boston['LSTAT'], boston['RM']], columns=['LSTAT', 'RM'])
 Y = boston['MEDV']
 X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=5)
 lin_model = LinearRegression()
 lin_model.fit(X_train, Y_train)
 y_train_predict = lin_model.predict(X_train)
 rmse = (np.sqrt(mean_squared_error(Y_train, y_train_predict)))# 5.6371293350711955
 y_test_predict = lin_model.predict(X_test)
 rmse = (np.sqrt(mean_squared_error(Y_test, y_test_predict)))# 5.13740078470291

Caltech-UCSD Birds 200 (CUB)

Рисунок 13. Пример изображений из CUB Оригинал

Описание

Caltech-UCSD Birds 200 — это набор данных, содержащий изображения птиц. Данный набор включает в себя фотографии 200 видов птиц. Большинство видов птиц, представленных в наборе данных, являются североамериканскими. Общее количество категорий птиц составляет 200. В набор данных 2010 года включены 6033 изображения, а в набор данных 2011 года — 11 788 изображений, некоторые из них приведены на рисунке 13.

Поиск и аннотация изображений

Изображения для набора данных были получены с сайта Flickr и отфильтрованы с помощью Amazon Mechanical Turk. Каждое изображение аннотировано границей области, содержащей птицу, грубой сегментацией птиц, набором меток атрибутов и текстовым описанием. Примеры аннотированных изображений представлены на рисунке 14.

Рисунок 14. Изображения и аннотации из CUB-200 Оригинал

102 Category Flower

Описание

Рисунок 15. Примеры изображений из Oxford Flowers 102 Оригинал

Oxford Flowers 102 — набор данных, состоящий из цветов, встречающихся в Соединенном Королевстве. Набор стоит состоит из 102 видов цветов и содержит от 40 до 258 изображений каждого вида. Примеры изображений из данного датасета приведены на рисунке 15. Цветы представлены в различных ракурсах и вариациях освещения. Кроме того, в наборе присутствуют виды цветов тяжело отличимые друг от друга. Графы соседства цветков по различным признакам представлены на рисунках 16 и 17.

Набор данных делится на обучающий набор, проверочный набор и тестовый наборы. Каждый обучающий и проверочный наборы состоят из 10 изображений на класс (всего 1020 изображений). Тестовый набор состоит из оставшихся 6149 изображений (минимум 20 изображений на класс).

Рисунок 16. Граф соседства по форме Оригинал
Рисунок 17. Граф соседства по цвету Оригинал

Visual Genome

Рисунок 18. Результат визуализации Оригинал

Описание

Visual Genome — это набор данных, связывающий изображения со словесным описанием их содержимого. Является исчерпывающим набором данных для обучения и тестирования моделей компьютерного зрения, обеспечивает обширный анализ изображений с учетом зависимостей между объектами. Это позволяет использовать набор данных для решения большого количества различных задач: поиск объектов, поиск отношений, требующих дальнейшего вывода, задачи, связанные с ответами на вопросы.

Изображение часто представляет сложную картину, которую невозможно полностью раскрыть одним предложением. Существующие наборы данных, такие как Flickr 30K, ориентированы на высокоточное описание всего изображения в целом. Вместо этого для каждого изображения в Visual Genome собираются более 50 описаний для разных регионов изображения, обеспечивая тем самым намного более полный набор описаний.

Набор данных содержит более 108К изображений, каждое из которых имеет в среднем 35 объектов, 26 атрибутов и 21 парное отношение между объектами. В данном наборе данных происходит преобразование объектов, атрибутов, отношений и словосочетаний в описаниях регионов и пар вопрос-ответ в синсеты из WordNet. Cинсет — это набор данных, элементы в котором считаются семантически эквивалентными для поиска или восстановления информации. Visual Genome является самым большим набором данных с описаниями изображений, объектов, атрибутов, отношений и пар вопрос-ответ.

Код

Пример использования Visual Genome API на python:

 import matplotlib.pyplot as plt
 from matplotlib.patches import Rectangle
 from src import api as vg
 from PIL import Image as PIL_Image
 import requests
 %matplotlib inline
 from StringIO import StringIO
 ids = vg.GetImageIdsInRange(startIndex=0, endIndex=1)
 image_id = ids[0]
 image = vg.GetImageData(id=image_id)
 regions = vg.GetRegionDescriptionsOfImage(id=image_id)
 fig = plt.gcf()
 fig.set_size_inches(18.5, 10.5)
 def visualize_regions(image, regions):
     response = requests.get(image.url)
     img = PIL_Image.open(StringIO(response.content))
     plt.imshow(img)
     ax = plt.gca()
     for region in regions:
         ax.add_patch(Rectangle((region.x, region.y),
                                region.width,
                                region.height,
                                fill=False,
                                edgecolor='red',
                                linewidth=3))
         ax.text(region.x, region.y, region.phrase, style='italic', bbox={'facecolor':'white', 'alpha':0.7, 'pad':10})
     fig = plt.gcf()
     plt.tick_params(labelbottom='off', labelleft='off')
     plt.show()
 visualize_regions(image, regions[:8])

Результат работы кода представлен на рисунке 18.

CelebA

Рисунок 19. Пример изображений из CelebA Оригинал

Описание

CelebA (англ. CelebFaces Attributes Dataset) — это крупномасштабный набор данных атрибутов лиц, содержащий более 200 тысяч изображений знаменитостей (см. рис. 19). Изображения в этом наборе данных охватывают лица людей с разных ракурсов. Более подробная характеристика датасета: 10 177 уникальных личностей, 202 599 изображений лиц и 5 ориентиров, 40 бинарных аннотаций атрибутов на изображение. Эти данные были первоначально собраны исследователями из MMLAB[19], Китайского университета Гонконга.

Набор данных можно использовать в качестве обучающих и тестовых наборов для следующих задач компьютерного зрения: распознавание атрибутов лица, обнаружение лиц и локализация ориентиров (или части лица).

Пример атрибутов

Ниже приведен список бинарных атрибутов в CelebA, где отдельный атрибут — одна из характеристик лица. Более подробно со всеми атрибутами можно ознакомиться здесь

Индекс атрибута Наименование Пояснение
1 5oClockShadow щетина, появшившаяся в течение дня
2 ArchedEyebrows изогнутые брови
3 Attractive привлекательный/ая
4 BagsUnderEyes мешки под глазами
5 Bald лысый
6 Bangs челка
7 BigLips большие губы
8 BigNose большой нос
9 BlackHair темные волосы
10 BlondHair блондинистые волосы
11 Blurry размытый
12 BrownHair русые волосы
13 BushyEyebrows густые брови
14 Chubby полный
15 DoubleChin второй подбородок
16 Eyeglasses очки
17 Goatee козлиная бородка/эспаньолка
18 GrayHair седые волосы
19 HeavyMakeup много макияжа
20 HighCheekBones высокие скулы
21 Male мужчина
22 MouthSlighltyOpen слегка приоткрытый рот
23 Mustache усы
24 NarrowEyes узкий разрез глаз
25 NoBeard отсутствет борода
26 OvalFace овальное лицо
27 PaleSkin бледная кожа
28 PointyNose заостренный нос
29 RecedingHairline залысина
30 RosyCheeks розовые щеки
31 Sideburns бакенбарды
32 Smiling улыбка
33 StraightHair прямые волосы
34 WavyHair волнистые волосы
35 WearingEarrings присутствует серьга/серьги
36 WearingHat присутствует шляпа
37 WearingLipstick накрашены губы
38 WearingNecklace присутствует ожерелье
39 WearingNecktie присутствует галстук
40 Young молодой/ая

CityScapes

Рисунок 20. Пример изображения из CityScapes Источник

Описание

CityScapes[20] — это набор данных, состоящий из разнообразных городских уличных сцен в 50 разных городах в разное время года. Данный набор хорошо подходит для задач компьютерного зрения, таких как: семантическая сегментация данных, сегментация на уровне экземпляра и вывод несоответствия стереопар. Пример изображения из данного датасета представлен на рисунке 20.

Структура данных [21]

Всего в наборе данных находится 25 000 изображений, из них 5000 составляют набор с более детальными аннотациями изображений с разрешением 1024 * 2048, предварительно разделенных на наборы для обучения — 2975, проверки — 500 и тестирования — 1525. Оставшиеся 20 000 изображений имеют грубые аннотации, позволяющие применять методы, использующие большие объемы данных со слабой маркировкой.

Результаты

Основной метрикой для этого набора данных является индекс Жаккара. Также, хорошо известно, что глобальная мера Ыеиндекса Жаккара смещена в сторону экземпляров объектов, которые покрывают большую область изображения. В уличных сценах с их сильным изменением масштаба это может быть проблематично. Чтобы решить эту проблему, создатели датасета дополнительно оценивают семантическую маркировку, используя метрику пересечения по объединению на уровне экземпляра [math] iIoU = \dfrac{iTP}{iTP + FP + iFN} [/math], где [math]iTP[/math], [math]FP[/math] и [math]iFN[/math] обозначают количество истинно положительных, ложноположительных и ложно отрицательных пикселей соответственно. Сейчас лучшей нейронной сетью для этого набора данных в задаче семантической сегментации данных является DAHUA-ARI, которая позволяет достичь индекс Жаккара 85.8% и iIoU 70.6% для классов, индекс Жаккара 93.2% и iIoU 85.4% для категорий, соответственно.

ICDAR

Рисунок 21. Пример изображения из датасета ICDAR2017 Competition on Multi-lingual Scene Text Detection and Script Identification (MLT) Источник

Описание

ICDAR[22] (англ. International Conference on Document Analysis and Recognition) — это международная конференция по анализу и распознаванию текста и одноименное семейство набора данных, состоящее из фотографий (см. рис. 21, 22 и 23), на которых изображен текст на разных языках. Данные наборы создаются для соревнований RRC (англ. Robust Reading Competition), где требуется решить следующие задачи: обнаружение текста, сегментация текста, распознавание символов, сквозное распознавание, распознавание скриптов, ответы на вопросы, связанные с изображениями. Ниже приведен анализ наборов данных ICDAR2013, ICDAR2015, ICDAR2017, ICDAR2019.

ICDAR 2013

ICDAR 2013 "Born Digital Images" — датасет, который содержит изображения, извлеченные с веб-страниц и сообщений электронной почты. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов.

ICDAR 2013 "Focused Scene Text" — датасет c изображениями с текстом на вывесках, логотипах и так далее. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов.


Наименование датасета Количество объектов Количество обучающих объектов Количество тестовых объектов Количество слов Количество обучающих слов Количество тестовых слов
ICDAR 2013 "Born Digital Images" 561 420 141 5003 3564 1439
ICDAR 2013 "Focused Scene Text" 462 229 233 1943 848 1095
ICDAR "Born Digital Images"
Рисунок 22. ICDAR "Born Digital Images". Источник
Рисунок 23. ICDAR "Focused Scene Text". Источник



ICDAR 2015

ICDAR 2015 "Born Digital Images" — датасет, который содержит изображения, извлеченные с веб-страниц и сообщений электронной почты. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов, сквозное распознавание .

ICDAR 2013 "Focused Scene Text" — датасет c изображениями с текстом на вывесках, логотипах и так далее. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов , сквозное распознавание.

ICDAR 2015 "Incidental Scene Text" — датасет c изображениями, на которых текст попал в поле зрения камеры Google Glass случайно[23]. Текст на изображениях на английском языке. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста, распознавание символов , сквозное распознавание.

Наименование датасета Количество объектов Количество обучающих объектов Количество тестовых объектов Количество слов Количество обучающих слов Количество тестовых слов
ICDAR 2015 "Born Digital Images" 561 420 141 5003 3564 1439
ICDAR 2015 "Focused Scene Text" 462 229 233 1943 848 1095
ICDAR 2015 "Incidental Scene Text" 1670 (1500 публичных) 1000 500 17548 - -
Рисунок 24. ICDAR "Incidental Scene Text". Источник

ICDAR 2017

ICDAR 2017 "COCO-Text" — набор данных, основанный на датасете "MS COCO"[24], где собраны обычные изображения ежедневных сцен, на которых, возможно, есть текст. Текст на изображениях на английском, немецком, французском и других языках. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, распознавание символов , сквозное распознавание.

ICDAR 2017 "Multi-lingual Scene Text" — набор данных, где собраны изображения с текстом на 9 языках. Текст на изображениях на арабском, английском, немецком, бенгальском, китайском, японском, французском, корейском языках. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, сегментация текста.

ICDAR 2017 "French Street Name Signs" — набор данных с изображениями, на которых есть названия французских улиц. Текст на изображениях на французском языке. Датасет предназначен для следующих задач оптического распознавани символов: сквозное распознавание.

Наименование датасета Количество объектов Количество обучающих объектов Количество тестовых объектов Количество слов Количество обучающих слов Количество тестовых слов
ICDAR 2017 "COCO-Text" 63686 43686 10000 — валидирующая выборка, 10000 — тестовая 173589 - -
ICDAR 2017 "Multi-lingual Scene Text" 18 000 - - 107 547(тренировочные + валидирующие слова) - -
ICDAR 2017 "French Street Name Signs" 1 081 422, где каждое изображение содержит до 4 объектов с названией улицы - - - - -
Рисунок 25. ICDAR "COCO-Text". Источник
Рисунок 26. ICDAR "Multi-lingual Scene Text". Источник
Рисунок 27. ICDAR "French Street Name Signs". Источник

ICDAR 2019

ICDAR 2019 "COCO-Text" — набор данных, основанный на датасете "MS COCO"[25], где собраны обычные изображения ежедневных сцен, на которых, возможно, есть текст. Текст на изображениях на английском, немецком, французском и других языках. Датасет предназначен для следующих задач оптического распознавани символов: сквозное распознавание.

ICDAR 2019 "Multi-lingual Scene Text" — набор данных, где собраны изображения с текстом на 10 языках. Текст на изображениях на арабском, английском, деванагари, немецком, бенгальском, китайском, японском, французском, корейском языках. Датасет предназначен для следующих задач оптического распознавани символов: обнаружение текста, идентификация скрипта, сквозное распознавание.

ICDAR 2019 "Scene Text Visual Question Answering" — набор данных, включающий 23 038 изображений с 31 791 парой вопросов и ответов, где ответ всегда основан на присутствующих текстовых экземплярах на изображении. Текст на изображениях на янглийском языке. Датасет предназначен для следующих задач оптического распознавани символов: ответ на вопрос, связанный с изображением.


Наименование датасета Количество объектов Количество обучающих объектов Количество тестовых объектов Количество слов Количество обучающих слов Количество тестовых слов
ICDAR 2019 "COCO-Text" 63686 43686 10000 — валидирующая выборка, 10000 — тестовая 173589 - -
ICDAR 2019 "Multi-lingual Scene Text"[26] 20 000 (2 000 для каждого языка) + 277 000 сгенерированных изображения 10 000 10 000 - - -
ICDAR 2019 "Scene Text Visual Question Answering" 23 038 - - - - - -
Рисунок 28. ICDAR 2019 "Scene Text Visual Question Answering". Источник

Pointing'04

Описание

Pointing'04 [27] — база данных изображений лиц в разных положениях для 15-ти человек. Для каждого человека представлено 93 положения головы, при этом каждая фотография предложена в двух вариантах освещения и масштаба (две разные сессии). Снимки, сделанные во время первого сеанса, используются в качестве обучающих данных, а изображения из второго сеанса используются в качестве данных тестирования. 93 положения включают комбинации 13-и вариантов поворота и 7-и вариантов наклона вместе с двумя крайними случаями наклона при отсутствии поворота.

Пример сета изображений

Рисунок 29. Пример сета изображений Pointing'04 Источник

FASSEG

Описание

Репозиторий FASSEG [28] (англ. FAce Semantic SEGmentation ) состоит из двух наборов данных (Frontal01 и Frontal02) для сегментации лиц в фронтальном положении и одного набора данных (Multipose01) с лицами в нескольких определенных положениях.

Frontal01 содержит 70 сегментированных изображений лиц и исходные изображения RGB. Исходные лица в основном взяты из наборов данных MIT-CBCL и FEI.

Frontal02 — это «высокоточный» Frontal01. Он содержит те же изображения, что и Frontal01, но с гораздо более точной сегментацией.

Multipose01 содержит более 200 размеченных лиц в 13-ти положениях с углом поворота от -90 градусов до 90 градусов включительно. Исходные лица взяты из базы данных Pointing'04.

Сегментация

Рисунок 30. Сегментация изображения Источник

Изображение размечается на 6 сегментов (см. рис. 30):

  • глаза;
  • нос;
  • рот;
  • волосы (вместе с бровями);
  • фон изображения;
  • кожа.

Примеры изображений

Рисунок 31. Пример изображений из датасетов Frontal01 и Frontal02 Оригинал
Рисунок 32. Пример изображений из датасета Multipose01 Источник

MPI

Описание

MPI Human Pose [29] (англ. Max Planck Institute) — это набор данных, позволяющий определять различные виды активности человека по позам на изображениях и аннотациям к ним. Набор данных включает около 25 тысяч изображений, содержащих более 40 тысяч людей с указанным положением отдельных частей тела. Изображения систематически собирались с использованием установленной таксономии повседневной деятельности человека. В целом набор данных охватывает 410 видов деятельности человека, каждое изображение снабжено меткой активности. Каждое изображение было извлечено из видео с YouTube и снабжено предшествующими и последующими кадрами без аннотации. Кроме того, для тестового набора приложены более детальные аннотации, включая сгибы частей тела и ориентации туловища и головы.

Структура датасета и примеры изображений

Рисунок 33. Пример изображений из подкласса датасета MPI Источник

Датасет представлен двадцатью различными классами активности: езда на велосипеде, упражнения, танцы, рыбалка и охота, домашняя активность, ремонт, отдых, активность на природе, игра на музыкальных инструментах, религиозная деятельность, бег, самоуход, спорт, передвижение на транспорте, волонтерство, прогулки, активность на воде, зимние виды активности, разное.

Каждый класс также разделен на уникальные подклассы. Пример такого разделения приведен на рисунке 33.

Датасет снабжен документацией с описанием структуры объектов и методами взаимодействия с ними, всю необходимую информацию по датасету, как и сами исходники, можно получить по ссылке.

См.также

Примечания

  1. https://en.wikipedia.org/wiki/List_of_datasets_for_machine-learning_research[1]
  2. https://arxiv.org/pdf/1805.01890.pdf[2]
  3. https://arxiv.org/pdf/1805.09501.pdf[3]
  4. https://arxiv.org/pdf/2004.08955v1.pdf
  5. http://cocodataset.org/#detection-leaderboard[4]
  6. https://github.com/zalandoresearch/fashion-mnist[5]
  7. https://arxiv.org/pdf/1602.07332.pdf [6]
  8. https://vision.cornell.edu/se3/wp-content/uploads/2019/01/ICDAR2017b.pdf
  9. https://www.researchgate.net/publication/221125207_Generalized_subspace_based_high_dimensional_density_estimation
  10. https://github.com/massimomauro/FASSEG-repository/blob/master/papers/multiclass_face_segmentation_ICIP2015.pdf
  11. https://github.com/massimomauro/FASSEG-repository/blob/master/papers/pose_estimation_by_segmentation_ICME2017.pdf
  12. http://human-pose.mpi-inf.mpg.de/#results
  13. http://yann.lecun.com/exdb/mnist/[7]
  14. https://en.wikipedia.org/wiki/CIFAR-10#Research_Papers_Claiming_State-of-the-Art_Results_on_CIFAR-10[8]
  15. http://www.image-net.org/challenges/LSVRC/[9]
  16. https://groups.csail.mit.edu/vision/datasets/ADE20K/#Description
  17. https://arxiv.org/pdf/1608.05442.pdf
  18. https://github.com/zalandoresearch/fashion-mnist
  19. http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html[10]
  20. https://www.cityscapes-dataset.com/
  21. https://www.cityscapes-dataset.com/dataset-overview/#features
  22. https://rrc.cvc.uab.es/
  23. https://rrc.cvc.uab.es/?ch=4
  24. https://vision.cornell.edu/se3/wp-content/uploads/2019/01/ICDAR2017b.pdf
  25. https://vision.cornell.edu/se3/wp-content/uploads/2019/01/ICDAR2017b.pdf
  26. https://arxiv.org/pdf/1907.00945.pdf
  27. http://crowley-coutaz.fr/FGnet/reports/Pointing04-Proceedings.pdf
  28. http://massimomauro.github.io/FASSEG-repository/
  29. http://human-pose.mpi-inf.mpg.de/