Серия руководств по аннотации данных машинного обучения Логана Спирса, руководителя по инновациям Sixgill, LLC

Вступление

Классификация изображений, привет мир компьютерного зрения, присваивает изображениям классификации (или категории). Например, когда мы создаем модель машинного обучения (ML), которая вводит изображение акулы и выводит ее вид, это классификация изображений. HyperLabel включает рабочие процессы классификации изображений с помощью метки Выбрать. Поскольку HyperLabel - это загружаемый набор инструментов для маркировки данных, созданный Sixgill, LLC, мы будем использовать нашу тезку, шестужаберную акулу, в качестве темы этого руководства. Итак, давайте погрузимся и обучим классификатора акул, чтобы увидеть его в действии!

Сбор данных

Первым шагом обучения нашего классификатора акул является сбор данных, на основе которых мы впоследствии будем маркировать и обучать, но где мы можем найти изображения акул? Microsoft предоставляет разработчикам API поиска изображений Bing для ограниченного бесплатного использования, и это должно удовлетворить наши потребности.

Разработчики часто спрашивают: Могу ли я использовать материалы, защищенные авторским правом, для обучения моделей машинного обучения? Ответ из Верховного суда США - да! Таким образом, нет необходимости указывать критерии лицензии в вызовах API!

После регистрации в Bing’s Image Search API мы можем использовать их API для загрузки изображений по определенным условиям поиска. На данный момент мы почти закончили работу с Node SDK:

Не забудьте установить для параметра imageType значение Photo, чтобы мы не получали картинки или рисунки. Для параметра count также необходимо установить значение 150, чтобы мы получали максимальное количество изображений за запрос. После запроса API и получения результатов нам нужно сохранить thumbnailUrl каждого изображения в каталог. Как только каталог будет содержать изображения из поисковых запросов «большая белая акула», «шестужаберная акула» и «акула-молот», мы можем использовать HyperLabel для маркировки данных.

Маркировка данных

После сбора необработанного набора данных из API поиска изображений Bing мы можем использовать HyperLabel, чтобы пометить его для машинного обучения. Хотя поиск изображений вернул изображения, которые в основном являются соответствующими им типами, он также содержит ложные срабатывания, нерелевантные примеры и другие проблемные изображения, которые мы можем использовать HyperLabel для фильтрации. Если у вас еще нет HyperLabel, загрузите его из Mac App Store или получите в Microsoft.

После установки HyperLabel и регистрации учетной записи давайте создадим проект, нажав Создать проект на экране проекта. Введите «Классификатор акул» в поле Имя и нажмите Далее.

Теперь добавьте каталог изображений, созданных в разделе сбора данных, в качестве источника данных HyperLabel. Нажмите Локальное хранилище, установите для Имя значение «Изображения», используйте Finder, чтобы выбрать Путь к папке, созданный в Data Gathering, нажмите Сохранить. , а затем нажмите Схема метки на странице источников.

Теперь создайте схему для маркировки. Удалите ярлыки с примерами, нажав на значок корзины на каждом ярлыке. В разделе Добавить новую метку поместите «Акула» в поле Имя, выберите Выбрать для Тип, и добавьте Параметры: «Sixgill», «Great White» и «Hammerhead». Затем нажмите Сохранить и Начать разметку.

Теперь мы готовы к маркировке! Для каждого изображения выберите правильную классификацию в панели ярлыков слева, а затем нажмите Отправить (или Cmd + S), чтобы сохранить его и перейти к следующему ярлыку.

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

После маркировки всех изображений в нашем наборе данных мы можем просмотреть Dashboard, чтобы просмотреть нашу статистику. Мы пропустили 36 изображений, и на каждое изображение у нас ушла всего 1 секунда!

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

Обучение

Для обучения нашей модели мы воспользуемся инструментом Apple Create ML. Он может принимать выходной формат классификации изображений от HyperLabel и автоматически обучать модель классификации изображений. Для использования Create ML у вас должен быть установлен Xcode. В открытом Xcode щелкните значок Dock Xcode, удерживая клавишу Control, и выберите Открыть инструмент разработчикаCreate ML

После запуска Create ML выберите FileNew, выберите шаблон Image Classifier и нажмите Next. Назовите проект SharkClassifier на следующем экране и нажмите Далее.

Если вы назвали свой проект HyperLabel «Классификатор акул» и сохранили его на рабочем столе, перетащите папку «~ / Рабочий стол / Классификатор акул / Акула» в приложение Create ML, и оно автоматически загрузит данные. Затем нажмите Выполнить, чтобы обучить модель.

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

Точность 94% - отличный показатель для первого прохода! Если мы используем другое изображение Великой Белой за пределами нашего набора данных, модель легко классифицирует его.

Заключение

HyperLabel позволяет разработчикам очень быстро создавать наборы данных машинного обучения с небольшим количеством кода или без него (этот проект занял около часа от идеи до обученной модели). HyperLabel поддерживает множество других вариантов использования и процедур маркировки. Попробуйте бесплатно! Загрузите его из App Store или получите в Microsoft.

Об этой серии блогов: Сообщения об основах HyperLabel предназначены для предоставления практического руководства по использованию HyperLabel для решения реальных задач машинного обучения. В моем следующем посте я покажу вам, как использовать HyperLabel и обнаружение объектов, чтобы составлять покерные руки из изображения, определяя ранг и масть отдельных карт!

О компании Sixgill: ООО Sixgill обеспечивает мощную комплексную унифицированную автоматизацию данных, искусственный интеллект машинного зрения, управление устройствами, MLOps, проверку подлинности данных и развертывание от облака до границы для Интернета Все.