Открыть сервис

Custom Vision

Custom Vision — это облачный сервис компьютерного зрения, предоставляемый корпорацией Microsoft в составе платформы Azure. Он позволяет пользователям без глубоких знаний в области машинного обучения создавать, обучать и развёртывать собственные модели классификации изображений и обнаружения объектов. Сервис ориентирован на решение узкоспециализированных задач, для которых стандартные, предварительно обученные модели (например, распознавание лиц или универсальных объектов) не подходят или требуют донастройки.

История и развитие

Сервис Custom Vision был анонсирован и запущен в публичную предварительную версию в 2017 году на конференции Microsoft Build. Он стал частью более широкой стратегии Microsoft по демократизации искусственного интеллекта (AI) — предоставлению инструментов, доступных не только специалистам по data science, но и разработчикам, аналитикам и бизнес-пользователям. В 2018 году сервис стал общедоступным (GA — General Availability) и был интегрирован в портфель когнитивных сервисов Azure (Azure Cognitive Services).

В последующие годы функциональность расширялась: были добавлены улучшенные алгоритмы обучения, поддержка экспорта моделей в различные форматы (TensorFlow, ONNX, CoreML, Docker), а также возможность использования собственных вычислительных мощностей (Azure GPU) для ускорения обучения. В 2023 году, в рамках реорганизации сервисов Azure, Custom Vision был переведён в категорию «Azure AI Services» и продолжает развиваться как самостоятельный продукт, а также как часть платформы Azure AI Studio.

Архитектура и принцип работы

Custom Vision реализован по модели «программное обеспечение как услуга» (SaaS). Пользователь взаимодействует с сервисом через веб-интерфейс (портал Azure или специализированный портал Custom Vision) или через REST API.

Этапы работы с сервисом

  1. Создание проекта: Пользователь создаёт проект в портале Azure, выбирая тип задачи (классификация изображений или обнаружение объектов) и домен (например, «Общий», «Еда», «Достопримечательности», «Розничная торговля»). Домен определяет предварительно обученную нейронную сеть, которая будет использоваться в качестве основы для дальнейшего обучения (трансферное обучение).
  1. Загрузка и маркировка данных: Пользователь загружает набор изображений (обучающую выборку). Для задачи классификации каждому изображению присваивается одна или несколько меток (тегов). Для задачи обнаружения объектов на изображении вручную выделяются прямоугольные области (bounding boxes), каждой из которых присваивается метка класса.
  1. Обучение модели: После загрузки и маркировки данных пользователь запускает процесс обучения. Сервис автоматически выбирает архитектуру нейронной сети, разбивает данные на обучающую, проверочную и тестовую выборки, и выполняет обучение. Процесс может занимать от нескольких минут до нескольких часов в зависимости от размера набора данных и выбранного вычислительного тарифа.
  1. Оценка и итерация: По завершении обучения сервис предоставляет метрики качества модели: точность (Precision), полноту (Recall), среднюю точность (mAP — mean Average Precision) для задач обнаружения, а также матрицу ошибок (Confusion Matrix) для классификации. Пользователь может просмотреть результаты на тестовой выборке, выявить проблемные классы и, при необходимости, добавить больше изображений для улучшения модели.
  1. Публикация и использование: Удовлетворительно обученная модель публикуется как конечная точка API. Для этого ей присваивается имя и версия. После публикации разработчик может отправлять на эту конечную точку новые изображения (через HTTP-запрос) и получать в ответ предсказания (метки классов и вероятности, или координаты обнаруженных объектов и их классы).
  1. Экспорт модели (опционально): Custom Vision позволяет экспортировать обученную модель в форматы для запуска на устройствах с ограниченными ресурсами:
  • TensorFlow (для мобильных и встраиваемых устройств)
  • ONNX (Open Neural Network Exchange) — для кроссплатформенного использования
  • CoreML (для устройств Apple)
  • Docker-образ (для запуска в контейнере на любом сервере или на граничных устройствах)

Ключевые возможности и характеристики

  • Трансферное обучение: Использование предварительно обученных моделей (ResNet, EfficientNet и др.) позволяет добиться высокой точности даже при относительно небольшом объёме обучающих данных (рекомендуется не менее 50 изображений на класс).
  • Автоматическое управление данными: Сервис автоматически разделяет загруженные изображения на обучающую, проверочную и тестовую выборки (по умолчанию 80/10/10). Пользователь может переопределить это распределение.
  • Интеллектуальное добавление данных: Custom Vision может предлагать пользователю изображения из его набора, которые модель классифицирует с наибольшей неуверенностью, что помогает эффективно дополнять обучающую выборку.
  • Поддержка нескольких языков: API сервиса доступен на нескольких языках программирования (C#, Python, Java, Go, Node.js, Ruby) через SDK.
  • Интеграция с другими сервисами Azure: Модель может быть легко интегрирована с Azure Logic Apps, Azure Functions, Power Automate и другими сервисами для построения автоматизированных бизнес-процессов.
  • Безопасность и соответствие: Как и все сервисы Azure, Custom Vision соответствует стандартам безопасности (ISO 27001, SOC 2, HIPAA) и позволяет управлять доступом через Azure Active Directory.

Применение

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

  • Промышленность: Контроль качества продукции на конвейере (обнаружение дефектов, сортировка деталей). Например, обучение модели на фотографиях бракованных и качественных микросхем.
  • Сельское хозяйство: Мониторинг состояния растений (выявление болезней, вредителей), подсчёт плодов, сортировка урожая по сортам и степени зрелости.
  • Розничная торговля: Автоматизация учёта товаров на полках (проверка выкладки), распознавание товаров на кассе самообслуживания, анализ покупательского поведения.
  • Медицина (вспомогательные задачи): Анализ медицинских изображений (рентгеновских снимков, снимков МРТ) для выявления признаков заболеваний, классификация гистологических препаратов. Важно отметить, что Custom Vision не сертифицирован как медицинское устройство, и его использование в клинической практике требует дополнительной валидации.
  • Логистика: Сортировка посылок, распознавание штрих-кодов и маркировки, проверка целостности упаковки.
  • Безопасность и мониторинг: Обнаружение посторонних предметов, подсчёт людей в зоне, распознавание типов транспортных средств на парковке.

Ограничения и критика

Несмотря на широкие возможности, Custom Vision имеет ряд ограничений, которые критически важны для понимания при выборе инструмента.

  • Зависимость от качества данных: Качество обученной модели напрямую зависит от качества и репрезентативности обучающей выборки. Несбалансированные данные (один класс представлен значительно большим количеством изображений, чем другие) или изображения с низким разрешением приводят к низкой точности.
  • Ограничения по типу задач: Сервис не поддерживает сегментацию изображений (попиксельное выделение объектов), а только классификацию и обнаружение объектов с помощью прямоугольных рамок.
  • Сложность с мелкими и перекрывающимися объектами: Модели могут испытывать трудности с точным обнаружением очень мелких объектов или объектов, которые сильно перекрывают друг друга.
  • Стоимость: Обучение и хранение моделей, а также каждый вызов API для предсказания тарифицируются. Для проектов с большим количеством изображений или высокой частотой запросов затраты могут быть значительными.
  • Проблемы с конфиденциальностью: Поскольку данные обрабатываются в облаке Microsoft, для некоторых отраслей (например, оборонной или с особыми требованиями к хранению данных) это может быть неприемлемо. Экспорт модели в Docker-контейнер для локального запуска частично решает эту проблему, но не полностью.
  • Отсутствие полного контроля: Пользователь не может напрямую изменять архитектуру нейронной сети, настраивать гиперпараметры (кроме нескольких базовых) или применять сложные методы аугментации данных. Это ограничивает возможности для тонкой настройки модели специалистами в области машинного обучения.

Альтернативы

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

  • Google Cloud AutoML Vision: Аналогичный сервис от Google, также использующий трансферное обучение и автоматическое проектирование архитектуры нейронной сети (AutoML).
  • Amazon Rekognition Custom Labels: Сервис от Amazon Web Services (AWS), позволяющий обучать собственные модели на основе платформы Amazon Rekognition.
  • IBM Watson Visual Recognition: Сервис от IBM, предоставляющий инструменты для классификации и обнаружения объектов.
  • Открытые фреймворки: Для специалистов, которым требуется полный контроль над процессом, существуют открытые библиотеки, такие как TensorFlow, PyTorch, Keras, позволяющие создавать модели с нуля или с использованием трансферного обучения вручную.

Источники

  1. Документация Microsoft по Azure Custom Vision (Microsoft Learn).
  2. Официальный блог Microsoft Azure (анонсы и обновления сервиса).
  3. Материалы конференций Microsoft Build и Microsoft Ignite.
  4. Сравнительные обзоры облачных сервисов компьютерного зрения (например, от Gartner, Forrester, аналитические статьи на Habr, Medium).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →