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

Контур

  • Что такое трансферное обучение и как его можно применить к процессу аннотирования
  • Обучение новых нейронных сетей с помощью SuperAnnotate
  • Тестирование недавно обученной сети
  • Заключение

1. Что такое трансферное обучение (TL) и как его можно применить к процессу аннотирования.

В самых общих чертах трансферное обучение (TL) — это направление машинного обучения, которое фокусируется на хранении «знаний», полученных моделью для решения некоторой проблемы A, и использовании этих знаний для решения другая связанная проблема B.

Люди обладают естественной способностью применять знания, полученные при решении одной задачи, для решения совершенно другой. Музыкант, который научился играть на фортепиано, уже изучил теорию музыки и как читать ноты и может использовать эти знания для обучения игре на скрипке. Другими словами, если вы хотите научиться играть на скрипке, вам не нужно заново изучать теорию музыки. Трансферное обучение пытается решить аналогичную проблему в глубоком обучении.

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

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

Гипотеза состоит в том, что если у нас есть нейронная сеть (НС), которая может довольно точно делать прогнозы на входном изображении, то точная настройка ее прогнозов и аннотирование частей изображения, которые НС не смогла классифицировать, будет намного быстрее, чем аннотирование всего. изображение.

В приведенном выше примере я не пытался быть очень точным и показывать, что иногда аннотатору нужно будет подкорректировать и изменить размер ограничивающих рамок. Что, если бы у нас была нейронная сеть, которая могла бы очень эффективно находить объекты на этом изображении? Если мы используем эту сеть для прогнозирования ограничивающих рамок, нам останется при необходимости скорректировать их и сосредоточиться на случаях, когда сеть не удалась. Мы можем использовать платформу SuperAnnotate и выбрать для этого любые доступные нейронные сети.

После запуска данной модели прогнозирования аннотированное изображение выглядит следующим образом:

Улучшение скорости будет еще более заметным, когда нам нужно аннотировать всю семантическую маску, а не только ограничивающие рамки.

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

2. Обучение новой нейронной сети с использованием SuperAnnotate

В SuperAnnotate есть возможность использовать знания, полученные с помощью хорошо работающих современных предварительно обученных сетей, для создания новых сетей (или улучшения существующей сети), которые будут соответствовать вашим потребностям в аннотации.

Если вы зарегистрированы на платформе, рабочий процесс для передачи знаний из одной NN в другую будет следующим:

  1. Нажмите на вкладку «Нейронные сети».
  2. Нажмите «Новая модель».
  3. Заполните название модели и описание модели
  4. Выберите задачу аннотации и одну из доступных предварительно обученных моделей.
  5. Выберите проекты, которые вы хотите использовать для обучения (вы можете выбрать несколько проектов)
  6. Обновите некоторые гиперпараметры по умолчанию (необязательно).
  7. Выберите GPU для обучения новой модели
  8. Нажмите «Запустить обучение».

Среди 6 задач, которые описаны на cocodataset.org, мы предоставляем предварительно обученные модели для 5 из них`

Гиперпараметры

Существует довольно много гиперпараметров, которые можно настроить в процессе трансферного обучения. Если вы понятия не имеете, что они означают, вы можете использовать гиперпараметры по умолчанию, так как это обеспечит хорошее обучение для большинства случаев использования. Гиперпараметры, которые мы разрешаем настраивать, следующие: Размер пакета (количество изображений, используемых в одной итерации процедуры обучения), Число эпох, Скорость обучения. , Гамма (скорость обучения умножается на это значение после эпох «Эпохи для гаммы»), Шаги для гаммы, Изображений (ROI) на пакет(сколько областей интереса предложить на изображение) Период оценки(количество эпох, после которых контрольная точка модели сохраняется, а производительность контрольной точки оценивается на тесте set) Коэффициент разделения тестов для обучения (мы будем использовать этот процент изображений для обучения новой модели)

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

3. Тестирование вновь обученной сети

После обучения новой модели NN с заданными гиперпараметрами ее можно использовать для автоматизации аннотирования следующего набора изображений.

Чтобы качественно увидеть, как работает новая модель, вам нужно запустить «умное предсказание», используя только что обученную модель. Новая модель с именем, которое вы указали во время обучения, появится в раскрывающемся списке возможных NN для выбора.

После того, как мы создадим новую модель под названием «Новая модель FineTuned», используя нашу функциональность NN, она появится в раскрывающемся меню для «интеллектуального прогноза».

После завершения интеллектуального прогнозирования вы можете просмотреть результаты, щелкнув изображение и открыв инструмент аннотации.

Для одного из наших клиентов, используя точно настроенную модель, мы наблюдали улучшение точности примерно на 13% по сравнению с исходной моделью при попытке аннотировать экземпляры класса «Person».

4. Вывод

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

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

Автор:Ваагн Туманян, инженер по компьютерному зрению в SuperAnnotate

Первоначально опубликовано на https://blog.superannotate.com.

Следите за SuperAnnotate в LinkedIn, Twitter, Facebook

Подробнее читайте в SuperAnnotate: