Практикум по машинному обучению: классификация изображений

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

Предпосылки

  • курс по машинному обучениюили аналогичный опыт работы с основами машинного обучения

  • Знание основ программирования и некоторый опыт написания кода на Python

Введение

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

скриншот из Google Фото, показывающий поиск сиамских кошек Рисунок 1. Поиск сиамских кошек в Google Фото дает результат!

Эта функция, позже включенная в Google Фото в 2015 году, широко воспринималась как изменившая правила игры, доказательство того, что программное обеспечение компьютерного зрения может классифицировать изображения в соответствии с человеческими стандартами, добавляя ценность несколькими способами:

  • Пользователям больше не нужно было помечать фотографии ярлыками, такими как «пляж», для категоризации содержимого изображения, устраняя ручную задачу, которая могла стать довольно утомительной при управлении наборами из сотен или тысяч изображений.
  • Пользователи могли исследовать свою коллекцию фотографий по-новому, используя условия поиска для поиска фотографий с объектами, которые они, возможно, никогда не отмечали. Например, они могут выполнить поиск по слову «пальма», чтобы отобразить все фотографии из отпуска, на фоне которых были пальмы.
  • Программное обеспечение может потенциально «видеть» таксономические различия, которые сами конечные пользователи могут не заметить (например, различать сиамских и абиссинских кошек), эффективно расширяя знания пользователей в предметной области.

Как работает классификация изображений

Классификация изображений — это задача обучения под наблюдением: определите набор целевых классов (объектов для идентификации на изображениях) и обучите модель распознавать их, используя помеченные фотографии-примеры. Ранние модели компьютерного зрения полагались на необработанные пиксельные данные в качестве входных данных для модели. Однако, как показано на рис. 2, сами по себе необработанные пиксельные данные не обеспечивают достаточно стабильного представления, чтобы охватить множество вариаций объекта, захваченного на изображении. Положение объекта, фон за объектом, окружающее освещение, угол камеры и фокус камеры — все это может привести к колебаниям необработанных данных пикселей; эти различия достаточно значительны, чтобы их нельзя было скорректировать, взяв средневзвешенные значения RGB пикселей.

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

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