Поделиться через


Обучение модели с помощью Пользовательского визуального распознавания

В предыдущей части этого руководства описаны предварительные условия, которые нужно выполнить перед созданием собственных приложения и модели Windows Machine Learning, а также показано, как скачать требуемый набор изображений. Теперь мы узнаем, как использовать веб-интерфейс Пользовательского визуального распознавания, чтобы преобразовать наш набор изображений в модель классификации изображений.

Пользовательское визуальное распознавание Azure — это когнитивная служба распознавания изображений, которая позволяет создавать, развертывать и улучшать пользовательские идентификаторы изображений. Служба пользовательского визуального распознавания доступна в виде набора собственных пакетов SDK, а также через веб-интерфейс на ее веб-сайте.

Создание проекта и ресурса Пользовательского визуального распознавания

Создание ресурса Пользовательского визуального распознавания

Чтобы использовать Службу пользовательского визуального распознавания, потребуется создать ресурсы Пользовательского визуального распознавания в Azure.

  1. Перейдите на главную страницу учетной записи Azure и выберите Create a resource.

Azure resources selection

  1. В поле поиска введите строку Custom Vision, чтобы открыть Azure Marketplace. Щелкните Create Custom Vision, чтобы открыть диалоговое окно на странице создания Пользовательского визуального распознавания.

Packages selection

  1. На диалоговой странице Пользовательского визуального распознавания сделайте следующее.
  • Выберите ресурсы Training и Prediction.
  • Выберите подписку для управления развернутыми ресурсами. Если нужная подписка Azure не отображается в меню, выйдите из учетной записи Azure и снова войдите в нее с теми учетными данными, которые использовали для открытия учетной записи.
  • Создайте новую группу ресурсов и присвойте ей имя. В этом учебнике мы использовали имя MLTraining, но вы можете выбрать любое другое или даже применить уже существующую группу ресурсов.
  • Присвойте имя проекту. В этом учебнике мы используем имя classificationApp, но вы можете использовать любое другое на свой выбор.
  • Для ресурсов Training и Prediction настройте расположение (США) Восточная часть США, а для параметра Ценовая категория укажите значение Free FO (Бесплатная FO).
  1. Щелкните Review + create, чтобы развернуть ресурсы Пользовательского визуального распознавания. Процесс развертывания ресурсов может занять несколько минут.

Deploy a new Custom Vision resource

Создание проекта в Пользовательском визуальном распознавании

Завершив создание ресурса, переходите к созданию проекта обучения с использованием Пользовательского визуального распознавания

  1. В окне веб-браузера откройте страницу Пользовательского визуального распознавания и щелкните Sign in. Войдите с помощью той же учетной записи, что и на портале Azure.

  2. Щелкните New Project, чтобы открыть диалоговое окно создания проекта.

Create a new project

  1. Создайте новый проект со следующими параметрами.
  • Name: FoodClassification.
  • Description: классификация разных продуктов и блюд.
  • Resource: здесь оставьте выбранным открытый ранее ресурс ClassificationApp [F0].
  • Project Types: classification
  • Classification Types: Multilabel (Multiple tags per image)
  • Domains: Food (compact).
  • Export Capabilities: Basic platforms (Tensorflow, CoreML, ONNX, ...)

Примечание.

Чтобы экспортировать модель в формат ONNX, выберите домен Food (compact). Другие типы доменов не поддерживают экспорт в формат ONNX.

Важно!

Если учетная запись, с которой вы вошли в систему, связана с учетной записью Azure, в раскрывающемся списка Resource Group (Группа ресурсов) будут отображаться все группы ресурсов Azure, в которых есть ресурс Пользовательской службы визуального распознавания. Если группы ресурсов недоступны, подтвердите, что вы вошли в customvision.ai с помощью той же учетной записи, которая использовалась для входа на портал Azure.

  1. Заполнив данные в диалоговом окне, щелкните Create project.

Finalize your project

Отправка учебного набора данных

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

  1. Выберите проект FoodClassification, чтобы открыть веб-интерфейс на веб-сайте Пользовательского визуального распознавания.

  2. Нажмите кнопку Add images и выберите Browse local files.

Add images dialog

  1. Перейдите к папке, в которой размещен набор данных, и выберите папку для обучения: vegetable-fruit. Выберите все изображения в папке и щелкните open. Откроется интерфейс для ввода тегов.

  2. Введите vegetable-fruit в поле My Tags и нажмите Upload.

Upload images

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

Image upload progress

  1. Когда отправка первой группы изображений успешно завершится, повторите процесс еще дважды для изображений десертов и супов. Не забудьте указать для них правильные теги.

После этого у вас будут готовы три разные группы изображений для обучения.

Image tags display

Обучение классификатора модели

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

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

Train button

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

В этом учебнике мы оставим для порога вероятности значение 50 %.

  1. Здесь мы применим процесс Quick Training. В Advanced Training больше доступных настроек, и вы можете явным образом указать выделенное на обучение время, но такой уровень детализации нам пока не нужен. Нажмите Train, чтобы запустить процесс обучения.

Choose training type

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

Training process

Оценка и тестирование

Оценка результатов

Когда обучение завершится, вы увидите сводные данные по первой итерации обучения. В этих данных указаны оценки эффективности модели: Точность и Полнота.

  • Точность обозначает долю правильно определенных классов. Для нашей модели точность составляет 98,2 %, то есть классификация изображений выполняется очень точно.
  • Полнота обозначает долю правильно определенных фактических классов. Для нашей модели полнота составляет 97,5 %, то есть классификация выполняется почти для всех предложенных изображений.
  • AP здесь обозначает "Дополнительная производительность" (Additional Performance). Здесь вы видите дополнительную метрику, которая суммирует точность и полноту по разным порогам.

Model training evaluation

Тестирование модели

Прежде чем экспортировать модель, вы можете проверить ее эффективность.

  1. Выберите Quick Test в верхнем правом углу на панели меню сверху, чтобы открыть новое окно тестирования.

Test button

В этом окне вы можете ввести URL-адрес изображения для тестирования или нажать Browse local files для использования локально сохраненной версии.

Select image for testing

  1. Щелкните Browse local files, перейдите к набору данных о продуктах и откройте папку проверки. Выберите из папки fruit-vegetable произвольное изображение и нажмите open.

На экране отобразится результат тестирования. В нашем примере модель успешно классифицирует изображение с уверенностью 99,8 %.

Test classification results

Вы можете использовать прогнозы для обучения на вкладке Predictions, чтобы повысить эффективность модели. Дополнительные сведения см. в статье Как улучшить модель пользовательского визуального распознавания.

Примечание.

Вам нужно больше информации об API Пользовательского визуального распознавания? Сведения о пакетах SDK и веб-портале пользовательского визуального распознавания есть в документации по Пользовательскому визуальному распознаванию.

Экспорт модели в ONNX

Итак, мы обучили нашу модель и теперь можем экспортировать ее в формат ONNX.

  1. Выберите вкладку Performance и щелкните Export, чтобы открыть окно экспорта.

Export button

  1. Щелкните ONNX, чтобы экспортировать модель в формат ONNX.

Choose your format

  1. Если потребуется, вы можете выбрать гибкий формат ONNX 16, но в рамках этого учебника не нужно менять настройки. Выберите Export and Download.

Choose your platform

  1. Откройте скачанный ZIP-файл и извлеките из него файлmodel.onnx. Этот файл содержит модель классификатора.

Поздравляем! Вы успешно создали и экспортировали модель классификации.

Дальнейшие действия

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