Распространение данных с помощью копирования и вставки
Уменьшите путаницу в модели между похожими классами
Изображение использовано с разрешения Shutterstock.com © Аднан Ахмад Али/shutterstock.com
В Doma одной из главных тем науки о данных является обобщаемость. Благодаря нашим обширным источникам данных, а также поддержке быстрого подключения новых клиентов (например, проблем с холодным запуском) это важно для успешного внедрения моделей машинного обучения в наши продукты. Ложные срабатывания могут стать серьезным препятствием на пути улучшения производительности модели. Проще говоря, ложные срабатывания возникают в прогнозах модели машинного обучения, когда вычисления определяют, что экземпляр содержит функции, которые заставляют модель путать его с тем, чем экземпляр не является. Простой пример — путать кошек с собаками. Оба четвероногие, пушистые животные, так что можно простить, что математический алгоритм не распознает разницу. Однако, учитывая, что каждый заказ Doma должен обрабатывать документы, которые могут содержать до 100 страниц или около того, мы должны обеспечить низкий уровень ошибок.
В этом сообщении блога я сосредоточусь на использовании дополнения данных, чтобы уменьшить беспорядок ложных срабатываний в моделях компьютерного зрения. Недавно мы независимо друг от друга обнаружили, что так называемые методы увеличения данных «копирование-вставка» очень эффективны для повышения производительности моделей компьютерного зрения, обученных на небольших наборах данных. Методы копирования-вставки расширяют набор данных путем копирования и вставки фрагментов изображения, соответствующих определенным объектам, которые должны быть обнаружены или распознаны на других изображениях, что позволяет получить дополнительные обучающие данные (подробнее см. ниже). Почти сразу же, как мы узнали, Google BrainarxivИсследователи недавно опубликовали статью о технике копирования-вставки [1]. Статьи по arxiv в основном сосредоточены на общей производительности модели в эмпирическом смысле. Здесь я сосредоточусь на использовании этой техники, чтобы специально уменьшить количество ложных срабатываний из-за запутанных классов.
Создайте набор данных
В качестве демонстрации этой техники мы создали небольшой набор данных из набора данных с открытым исходным кодом Common Objects in Context (COCO) [2].: https://coco DataSet.org. Это очень большой стандартный набор данных, используемый для сравнительного анализа нескольких задач компьютерного зрения. Для текущего варианта использования основное внимание будет уделяться обнаружению объектов для категорий, которые легко спутать. В качестве конкретного примера я сосредоточусь на велосипедах и мотоциклах. С визуальной точки зрения объекты явно похожи: автомобили с двумя колесами, часто в похожей среде, и часто на них едут один или два человека.
Мы создали единый обучающий набор данных, состоящий из 200 изображений велосипедов, включая аннотации ограничительной рамки. Однако мы выполним технику копирования-вставки, используя аннотации маски (т. е. многоугольники, представляющие, какие пиксели изображения содержат интересующий объект) из набора данных COCO. Чтобы увидеть, как добавление скопированных данных может уменьшить беспорядок в модели, мы создадим два дополнительных обучающих набора, дополненных изображениями из техники копирования и вставки, но с двумя разными типами фоновых изображений. Это позволит нам изучить, как выбор метода копирования и вставки влияет на общую производительность.
Используйте метод копирования-вставки
Мы можем построить расширенный набор данных велосипедов, но с использованием масок, предоставленных COCO. Сначала мы выбрали 200 аннотированных изображений велосипедов и отфильтровали их с помощью инструментов COCO, чтобы убедиться, что на этих изображениях нет мотоциклов. Затем, используя маску, предоставленную для каждого изображения аннотацией COCO, мы можем найти все пиксели, принадлежащие каждому велосипеду. Используя это, мы можем сделать вырезанные изображения каждого велосипеда для каждой картинки. В выбранном наборе данных из 200 изображений всего 491 экземпляр велосипеда. Затем мы отобрали 500 изображений с мотоциклами, но велосипеды были отфильтрованы.
Рис. 1. Слева: примеры изображений с велосипедами в COCO. Посередине: Маска велосипеда. Справа: изображение велосипеда, извлеченное (вырезанное) с использованием маски. Следует отметить, что маски в COCO не имеют самого высокого уровня точности. Обычно они содержат много фоновых пикселей (обратите внимание на дополнительные пиксели справа от велосипедной шины). быть адаптированы изоригинальное фото, авторские права на которые принадлежатComradeCosmobotвсе, и сОбщая лицензия Attribution 2.0 (CC BY 2.0)поставка.
Рисунок 2. Слева: изображения мотоциклов из COCO со случайным изображением велосипедов, извлеченным перед вставкой на изображение. Правильный образ. Маска, созданная из нашего кода вставки, показывающая расположение вставленного велосипеда. быть адаптированы изоригинальное фото, авторские права на которые принадлежатPaul Sablemanвсе и вЛицензия Attribution 2.0 Common (CC BY 2.0)предоставлено ниже; иоригинальное фото, авторские права на которые принадлежатComradeCosmobotвсе и вЛицензия Attribution 2.0 Common (CC BY 2.0)предоставлено ниже.
В процессе расширения данных был отобран 491 экземпляр велосипеда из выбранного нами набора данных из 200 изображений из COCO, и каждый экземпляр был вставлен по отдельности в пять различных изображений, содержащих мотоциклы без велосипедов. Для тех, кто хочет узнать, как обрабатывать изображения в python, см.: https://автоматизировать его и скучные вещи.com/chapter17/. На рис. 2 показано несколько примеров результатов этого процесса. Поскольку некоторые изображения мотоциклов меньше, чем скопированные изображения мотоциклов, этот процесс иногда дает сбой. Одним из решений является уменьшение размера велосипеда. Однако мы решили просто игнорировать эти относительно редкие случаи.
Каждая итерация создает дополнительное изображение и дополнительный экземпляр велосипеда. После обработки 500 изображений мотоциклов скопированный расширенный набор данных содержит 2557 изображений с 2848 экземплярами велосипедов.
Детали эксперимента
Региональная сверточная нейронная сеть (RCNN)
Региональные сверточные нейронные сетиВпервые представлен в 2014 году [3]. С тех пор было сделано много итераций, и многие современные современные модели обнаружения объектов и сегментации экземпляров основаны на этой архитектуре. Это делает RCNN хорошим выбором для демонстрации того, как методы увеличения данных копирования и вставки могут использоваться для уменьшения ложных срабатываний при обнаружении объектов. Используйте быстрее в работе здесьметод RCNN[4].
Для общего ознакомления с RCNN я рекомендую начать с серииСообщение блогаНачинается первая глава, она быстрее знакомит с развитием оригинальной RCNN до RCNN. Для разработчиков мы строимфреймворк детектрон2выше.
тренироваться
Мы обучили три разных быстрых RCNN. Один — обучение на 200 изображениях велосипедов без аугментации копипастом. Во время тренировки мы делаем только простой случайный метод увеличения горизонтального флипа. Это увеличивает эффективный размер обучающего набора данных до 400 изображений, что также увеличивает количество экземпляров велосипеда с 491 до 982. С этого момента мы будем называть ее «ванильной моделью».
Вторая модель Faster RCNN была обучена на тех же 400 изображениях, но мы также включили дополненные изображения, полученные путем копирования и вставки велосипеда на изображение мотоцикла. Также разрешены случайные перевороты, в результате чего получается 5696 экземпляров велосипеда. Однако следует иметь в виду, что они не единственные в смысле ванильной модели. Эта модель будет называться скопированной моделью мотоцикла.
Наконец, третья модель Faster RCNN обучается точно так же, как и скопированная модель мотоцикла, с одним отличием. Фоновое изображение использует не мотоцикл, чтобы прикрепить велосипед, а фоновое изображение тех собак, у которых нет велосипеда.
Для честного сравнения все модели были обучены на 5000 итераций с размером пакета 2. В следующем разделе мы представляем результаты этих моделей. Сводную информацию о трех моделях см. в Таблице 1 ниже.
Таблица 1: Модели, обученные для сравнения. авторский образ
Оценка
Чтобы проверить, насколько хорошо каждая модель путает класс мотоциклов с классом велосипедов, оцениваются 200 изображений, содержащих как велосипеды, так и мотоциклы. Общее количество экземпляров велосипедов в этом наборе данных составляет 965. Как и ожидалось, в ванильной модели большое количество мотоциклов было спутано с велосипедами, в то время как модель «копипаста» редко предсказывала мотоциклы как велосипеды.
Для простоты наблюдения мы показываем пять пар результатов, где ванильная модель путает вполне очевидный мотоцикл с велосипедом.
Пример 1. Слева: скопируйте и вставьте результаты велосипеда, обнаруженного моделью. Справа: результаты ванильной модели обнаружили два велосипеда, один из которых — мотоцикл. быть адаптированы изоригинальное фото, авторские права на которые принадлежатKenвсе, и сАтрибуция — некоммерческий общий формат 2.0 (CC BY-NC 2.0)поставка.
Пример 2. Слева: результаты копирования и вставки модели обнаружили велосипед. Справа: результаты ванильной модели обнаружили 5 велосипедов, 4 из которых мотоциклы. быть адаптированы изоригинальное фото, авторское правоPSliceofNYCвсе, и сОбщая лицензия Attribution 2.0 (CC BY 2.0)поставка.
Пример 3. Слева: результаты копирования и вставки модели обнаружили велосипед. Справа: результаты ванильной модели обнаружили два велосипеда, один из которых — мотоцикл. быть адаптированы изоригинальное фото, авторские права на которые принадлежатKenвсе, и сОбщая версия Attribution-NonCommercial-ShareAlike 2.0 (CC BY-NC-SA 2.0)поставка.
Пример 4. Слева: результаты копирования и вставки модели обнаружили велосипед. Справа: результаты ванильной модели обнаружили два велосипеда, один из которых — мотоцикл. быть адаптированы изоригинальное фото, авторские права на которые принадлежатbrittвсе, и сОбщий формат Attribution-NonCommercial-ShareAlike 2.0 (CC BY-NC-SA 2.0)поставка.
Пример 5. Слева: результаты копирования и вставки модели обнаружили велосипед. Справа: результаты ванильной модели обнаружили два велосипеда, один из которых — мотоцикл. быть адаптированы изоригинальное фото, авторские права на которые принадлежатStefano Arteconiвсе, и сОбщий формат Attribution-NonCommercial-ShareAlike 2.0 (CC BY-NC-SA 2.0)поставка.
В целом, ванильная модель правильно обнаружила 321 велосипед (истинные срабатывания) и 130 мотоциклов (ложноположительные срабатывания), которые были ошибочно приняты за велосипеды. Для скопированной модели мотоцикла 206 велосипедов были правильно идентифицированы, а 11 мотоциклов были неправильно идентифицированы как велосипеды. Обратите внимание, что мы не учитывали никаких ложных срабатываний для классов, которые на самом деле не являются мотоциклами в этих двух моделях. По сути, то, на что мы смотрим, — это скорость путаницы, при которой мотоциклы помечаются как велосипеды. На этих фронтах у модели копирования и вставки коэффициент путаницы составлял всего 0,05, в то время как у ванильной модели коэффициент путаницы был гораздо выше — 0,29. Конечно, чем меньше путаницы, тем лучше. Модель собаки с копированием и вставкой также имела низкий уровень ложных срабатываний — она ошибочно идентифицировала только 38 мотоциклов как велосипеды. Однако количество истинных положительных результатов было наименьшим из трех моделей — 193. Эти результаты обобщены в таблице 2.
Таблица 2: Оценка модели. рисунок. авторский образ
Последние мысли
Наша демонстрация техники копирования-вставки показывает, что это дополнение уменьшает путаницу между велосипедами и мотоциклами, и показывает, что это многообещающая техника, которую можно применять к ситуациям в других категориях, которые склонны к путанице. Стоимость выполнения этого метода — дополнительная работа по созданию дополнительного набора данных изображений класса (в данном случае мотоцикла), который модель ожидает спутать с обнаруживаемым классом (в данном случае велосипед). Однако этот дополнительный набор данных не требует каких-либо аннотаций и, следовательно, его создание относительно недорого.
Мы также можем видеть, что уменьшение путаницы с помощью методов улучшения копирования и вставки сильно зависит от выбора изображения для вставки экземпляра. В случае наклеивания велосипеда на изображения только мотоциклов или только собак мы обнаружили, что у модели было больше истинных срабатываний и меньше ложных срабатываний для первого — и то, и другое желательно. При вставке на собаку количество ложных срабатываний действительно заметно уменьшилось по сравнению с ванильной моделью, но не так сильно, как у копипастенной модели мотоцикла. На самом деле, вероятность путаницы с скопированными моделями собак более чем в 3 раза выше, чем с скопированными моделями мотоциклов.
Наконец, как упоминалось выше, маски аннотаций набора данных COCO не так чисты, как можно было бы надеяться. Ожидается, что метод копирования-вставки даст лучшие результаты, если используется набор данных с более точными масками, поскольку модель может меньше узнать о специфике, присущей методу аннотации, и больше об особенностях реального объекта, который необходимо обнаружить. Однако, несмотря на это, наши эксперименты показывают, что метод копирования-вставки может значительно снизить уровень ложных срабатываний.