Новое приложение Create ML, только что анонсированное на WWDC 2019, - это невероятно простой способ обучить ваши собственные персонализированные модели машинного обучения. Все, что требуется, - это перетащить папку, содержащую данные о тренировках, в инструмент, а Create ML сделает остальную тяжелую работу.

Итак, как мы подготовим наши данные?

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

В дополнение к нашим изображениям нам нужен annotations.json с координатами того, где находятся объекты. Аннотации должны соответствовать следующему формату:

[
    {
        "image": "image1.jpg",
        "annotations": [
            {
                "label": "carrots",
                "coordinates": {
                    "x": 120
                    "y": 164
                    "width": 230
                    "height": 119
                }
            },
            {
                "label": "orange",
                "coordinates": {
                    "x": 230
                    "y": 321
                    "width": 50
                    "height": 50
                }
            }
        ]
    },
    ...
]

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

Как мы сгенерируем этот json? (Я определенно не хочу делать все вручную)

Apple сообщает нам

«Вы можете загрузить инструменты из Интернета, которые помогут вам создавать эти [аннотации]»

Итак, какой инструмент мы должны использовать? Облачные аннотации!

Облачные аннотации - это инструмент, который я создал именно для этой цели. Он позволяет нам быстро рисовать прямоугольники на изображениях и дает нам annotations.json в формате, требуемом Apple.

Создание экземпляра объектного хранилища

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

IBM Cloud предлагает облегченный уровень объектного хранилища, который включает в себя бесплатное хранилище объемом 25 ГБ. (это то, что мы будем использовать на протяжении всего урока)

Чтобы создать экземпляр, нам сначала нужно войти или зарегистрироваться в IBM Cloud.

После входа в систему вы должны найти свою панель управления IBM Cloud. Здесь мы можем создавать ресурсы IBM Cloud и управлять ими.

Мы хотим создать новый экземпляр Cloud Object Storage, поэтому нажмите кнопку Создать ресурс.

Найдите и выберите вариант Хранилище объектов.

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

Реквизиты для входа

Когда у нас есть экземпляр объектного хранилища, нам нужен способ доступа к нашим данным извне IBM Cloud. Чтобы сделать это, нам нужно создать набор учетных данных для нашего ресурса.

Это можно сделать, перейдя на вкладку Учетные данные службы и нажав кнопку Новые учетные данные.

Вы можете оставить большинство параметров пустыми, но убедитесь, что учетные данные имеют роль Writer, и добавьте следующие параметры встроенной конфигурации:

{"HMAC": true}

После добавления щелкните раскрывающееся меню Просмотреть учетные данные ▾ и обратите внимание на свои apikey, access_key_id, secret_access_key и resource_instance_id.

{
  "apikey": "...",
  "cos_hmac_keys": {
    "access_key_id": "...",
    "secret_access_key": "..."
  },
  "endpoints": "...",
  "iam_apikey_description": "...",
  "iam_apikey_name": "...",
  "iam_role_crn": "...",
  "iam_serviceid_crn": "...",
  "resource_instance_id": "..."
}

Облачные аннотации

Чтобы использовать этот инструмент, просто перейдите к Cloud Annotations Tool и добавьте свои учетные данные для хранилища объектов.

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

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

Лучшие практики данных для обучения

  • Модель, которую мы будем обучать, оптимизирована для фотографий объектов в реальном мире. Они вряд ли подойдут для рентгеновских снимков, рисунков от руки, сканированных документов, квитанций и т. Д.
  • Данные обучения должны быть как можно ближе к данным, на основе которых должны быть сделаны прогнозы. Например, если ваш вариант использования включает размытые изображения с низким разрешением (например, с камеры наблюдения), ваши данные обучения должны состоять из размытых изображений с низким разрешением. В общем, вам также следует подумать о том, чтобы использовать разные ракурсы, разрешения и фоны для ваших тренировочных изображений.
  • Модель, которую мы будем тренировать, обычно не может предсказывать ярлыки, которые люди не могут присвоить. Итак, если человека нельзя обучить назначать ярлыки, глядя на изображение в течение 1-2 секунд, модель, скорее всего, тоже нельзя обучить этому.
  • Мы рекомендуем по крайней мере 50 обучающих изображений на этикетку для используемой модели, но использование 100 или 1000 даст лучшие результаты.
  • Модель, которую мы будем обучать, изменяет размер изображения до 300x300 пикселей, поэтому помните об этом при обучении модели с изображениями, в которых одно измерение намного длиннее другого.

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

Чтобы пометить изображения:

  1. Загрузите видео или много изображений
  2. Создайте желаемые ярлыки
  3. Начать рисовать ограничивающие рамки

Получение аннотаций

После того, как мы собрали и пометили наш первый раунд изображений, мы готовы приступить к обучению нашей модели!

Установка

Чтобы получить доступ к нашим аннотациям, нам нужно установить CLI Cloud Annotation:

npm install -g cloud-annotations

Примечание. Вам потребуется установить Node 10.13.0 или более позднюю версию. Вы можете использовать nvm (macOS / Linux) или nvm-windows, чтобы легко переключать версии узла между разными проекты.

Скачать аннотации

Чтобы загрузить аннотации, все, что нам нужно сделать, это выполнить следующую команду

cacli export --create-ml

По завершении должна появиться папка с именем exported_buckets с вашим ведром внутри. Все, что вам нужно сделать, это перетащить эту папку в приложение Create ML, и готово!

Спасибо за прочтение! Если у вас есть какие-либо вопросы, напишите по адресу [email protected], свяжитесь со мной в LinkedIn или подпишитесь на меня в Medium и Twitter.

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