Использование искусственного интеллекта для массового анализа изображений

В этой статье мы покажем, как использовать API-интерфейсы IIIF Presentation и Image для сбора входных данных, в том числе:

  • Поиск интересных изображений
  • Распознавание изображений и автоматическая маркировка
  • Цветовой анализ
  • Поиск похожих изображений
  • Срок извлечения
  • Лучший API для анализа изображений

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

Фон

Наше исследование было сосредоточено на анализе изображений и машинном обучении с использованием миллиона изображений, доступных из Qatar Digital Library, а также других репозиториев IIIF.

Мы начали с простой проблемы: как автоматически идентифицировать «визуально интересные» документы (т.е. документы с иллюстрациями и диаграммами) среди сотен тысяч, не имеющих этих функций.

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

Вот что мы сделали, результаты и чему научились ...

Поиск интересных изображений

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

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

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

Вы можете подумать, что мы могли бы просто использовать метаданные архивов, но для большинства этих визуально интересных изображений у нас нет информации об этих функциях. Базовые записи EAD или MODS иногда содержат описания этих визуально интересных частей, но ничего, что мы могли бы программно извлечь и использовать для поиска этих страниц.

Цветовая дисперсия

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

Мы классифицировали наши изображения, используя значение цветовой дисперсии, возвращаемое Imagga, так как мы думали, что визуально интересные изображения будут иметь высокие значения цветовой дисперсии.

Мы проверили эту теорию на случайном архиве и быстро поняли, что не сможем использовать такой подход. Хотя изображения сильно различались по цветовой дисперсии (от 7 до 49), визуально интересные изображения были разбросаны внутри него, поэтому не было очевидного порогового значения для использования.

Распознавание изображений и автоматическая маркировка

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

Лучшая особенность Clarifai - то, что вы можете создавать свои собственные концептуальные наборы. Сначала мы попытались использовать комбинацию существующих концепций «иллюстрация» и «рисунок», но у нас не было очень хороших результатов, вероятно, из-за того, что Clarifai собирала пятна и водяные знаки в качестве иллюстраций. Мы также пробовали противоположные негативные концепции с «текстом» и «рукописью», но все изображения (являющиеся страницами рукописей) имели высокий рейтинг текста и рукописи, независимо от того, были ли они визуально интересными.

Затем мы расширили Clarifai, создав наши собственные наборы: «arabic_manuscript» и «arabic_ manuscript_with_image», каждый со своими собственными обучающими изображениями. Имена этих наборов не имеют никакого значения, их определяет то, что каждый из них содержит примеры двух типов изображений, которые мы хотим устранить.

Мы написали скрипт Python для создания наборов, обучения их и тестирования на случайных изображениях.

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

Затем результаты отображаются с использованием шаблона Jinja2 в HTML. Изображения, для которых Clarifai придает более высокое значение набору «arabic_ manuscript_with_image» по сравнению с «arabic_ manuscript», обведены красной рамкой.

Щелчок по любому изображению автоматически добавит его к противоположному набору. Это используется для корректировки и тренировки сетов.

Даже с этими небольшими наборами Clarifai давала впечатляющие результаты.

На изображении выше мы видим, что на первых десяти изображениях было несколько ошибок, вызванных пятнами воды на страницах. Мы знали, что можем улучшить это, поэтому, используя страницу вывода HTML, мы исправили и повторно обучили Clarifai с обновленными наборами. В конце концов, мы смогли приблизиться к 100% точности, как показано ниже.

Мы взяли эти данные из Clarifai и создали специальный манифест IIIF, содержащий только визуально интересные изображения.

Следующими шагами для этого может быть использование этих результатов для повышения и / или фильтрации результатов поиска.

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

Я уверен, что вы можете придумать аналогичные вопросы / проблемы по поводу вашей собственной коллекции.

Цветовой анализ

Теперь мы поставили перед собой задачу отсортировать изображения по цвету.

Для исследования цветового анализа мы использовали изображения, предоставленные Интернет-архивом через экспериментальную службу IIIF, предоставленную ArchiveLabs. Мы получили около 84 000 изображений, из которых мы смогли извлечь 23 000 уникальных цветов.

На графиках выше показаны значения красного, зеленого и синего для этих цветов, построенные для 1000, 5000, 10 000 и 23 000 цветов. Из них вы можете увидеть, что появляется диагональная линия, вызванная всеми черно-белыми изображениями. Вы также можете видеть, что в финальной версии мы получили довольно хорошее покрытие цветового куба. Затем мы использовали эти данные для создания красивой радуги (ведь все любят радугу, верно?).

Попробуйте демо-версию Rainbow прямо сейчас

Поиск похожих изображений

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

Мы начали с изучения анализа изображений с помощью библиотеки обработки изображений Python Scikit-Image.

Мы исследовали различные фильтры для анализа изображений, показанные на изображении выше. Слева направо:

  • Исходное изображение: http://www.qdl.qa/en/archive/81055/vdc_100023491125.0x000037
  • Логический формат: конвертирует изображение в логический формат.
  • Скелетонизация: уменьшает двоичные объекты до представлений шириной 1 пиксель. Это может быть полезно для извлечения признаков и / или представления топологии объекта.
  • Censure: это масштабно-инвариантный центрально-объемный детектор.
  • DAISY: локальный дескриптор изображения на основе гистограмм градиентной ориентации.

Все это действительно хорошо для поиска изображений, которые были изменены (например, повернуты или содержат шум), но мы не смогли заставить их отображать похожие изображения.

Мы также пробовали использовать среднеквадратичную ошибку и структурное подобие.

Среднеквадратичная ошибка вычисляется путем вычисления квадрата разницы между пикселями в изображении A и изображения B, их суммирования и деления результата на количество пикселей. Индекс структурного сходства (SSIM) используется для измерения качества изображения по сравнению с оригиналом. Итак, мы попробовали эти двое.

На последнем изображении выше система предположила, что изображения Эйфелевой башни и Статуи Свободы были одинаковыми. Мы быстро поняли, что не сможем использовать это для определения похожих изображений.

Scikit-Learn

Мы рассмотрели возможность создания собственного алгоритма машинного обучения с использованием Scikit-Learn, но поняли, что машинное обучение - это непростая задача, особенно начиная с нуля и для этой проблемы. Нашим основным ограничением было время, поэтому нам пришлось пересмотреть свое решение, чтобы у нас было что-то интересное, что можно было бы показать на конференции IIIF в Ватикане.

Тем не менее, в ближайшем будущем мы будем исследовать это, возможно, с использованием предварительно обученных моделей.

Срок извлечения

Пришло время для другого подхода, поэтому мы начали изучать извлечение терминов и вместо этого использовать полученные теги для поиска похожих изображений. Мы протестировали три основных сервиса: Clarifai, Google Vision API и Microsoft Computer Vision. Вот пример извлечения для каждой службы одного и того же изображения.

Чтобы проверить это, мы использовали 2000 изображений наших друзей из Национального музея Швеции, найденных через Europeana API. Мы извлекли термины для всех изображений с помощью Clarifai, Google Vision API и Microsoft Computer Vision. Затем, если достоверность этих терминов была выше 0,75, мы индексировали их в Elasticsearch и визуализировали с помощью Searchkit.

Вы можете попробовать это сами здесь http://labs.cogapp.com/iiif-ml.

Немного повеселиться

Microsoft Computer Vision также пытается добавить заголовок к изображениям. Иногда это дает действительно хорошие результаты:

Заголовок Microsoft начинается с «Эмануэль Сведенборг…». Мы были впечатлены, потому что это действительно так, Эмануэль Сведенборг:

Но затем Microsoft добавляет дополнительную информацию, и все становится немного странно:

Подпись MS Computer Vision для этого изображения: Эмануэль Сведенборг сидит перед ноутбуком. Это вызвано изображениями, которые Microsoft использовала для обучения своего алгоритма, которые, очевидно, являются современными фотографиями, и поэтому она пытается найти ноутбуки, телефоны, людей, делающих селфи и т. Д. Таким же образом Глубокая мечта Google пытается найти найди повсюду лица и кошек.

Вы можете увидеть больше подписей, отфильтровав с помощью Microsoft Computer Vision: http://labs.cogapp.com/iiif-ml.

Лучший API для анализа изображений

Изучив Clarifai, Google Vision API и Microsoft Computer Vision, мы обнаружили, что эти три API во многом схожи.

Преимущество Clarifai в том, что его можно обучить, поэтому, если он не может что-то обнаружить, все, что вам нужно сделать, это создать набор и обучить его так же, как мы делали это для поиска визуально интересных изображений, о чем говорилось в начале этой статьи.

MS Computer Vision предлагает базовую подпись к изображению. Это может быть очень полезно, но может давать странные подписи в зависимости от ваших изображений. Хотя это может быть очень весело.

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

У каждого ИИ есть своего рода «личность». Как всегда с машинным обучением, идентификация хороша ровно настолько, насколько хороши данные обучения, хотя для лучших результатов вы можете комбинировать их с человеческим вводом (например, помечать неправильные элементы или сравнивать с существующими метаданными).

В заключение, компьютерное зрение становится все более точным, простым в использовании и стало еще одним инструментом, который разработчики могут использовать для осмысления своих данных.

Мы выступили с этим докладом в рамках конференции International Image Interoperability Framework (IIIF) 2017 в Ватикане. Вы также можете просмотреть PDF-файл со слайдами из выступления, который включает несколько дополнительных снимков экрана и множество забавных подписей (перейдите на страницу 49).

Если вы хотите, чтобы Cogapp проанализировал вашу коллекцию, пожалуйста, свяжитесь с нами.