Автоматическая разметка данных |
||||||||||||||||||||||||||||||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-10-05 09:00 Введение В задачах машинного обучения значительную часть времени занимает процесс подготовки данных. К этапу подготовки относятся: сбор, фильтрация, разметка и предобработка данных.В данной статье я буду рассматривать процесс автоматической разметки данных для задач компьютерного зрения. Процесс разметки данных может быть организован как:
Процесс разметки может быть:
Более подробно про эти подходы можно прочитать в статье Разметка данных в машинном обучении: процесс, разновидности и рекомендации. В данной статье мы остановимся на подходе с автоматической разметкой. На текущий момент данный тип разметки является одним из самых быстрых, но он имеет существенный недостаток - точность. Поэтому есть смысл использовать его совместно с другими типами разметки - это сэкономит время и затраченные ресурсы. Автоматическую разметку можно делать несколькими способами, один из наиболее удобных - это использование данного функционала в CVAT. CVAT предоставляет возможность использовать готовые модели для разметки ваших данных. Но готовые модели не всегда содержат классы, которые необходимы для решения вашей задачи. 09.03.2023 была представлена модель Grounding DINO. Данная модель позволяет детектировать объекты на изображениях по текстовому описанию. Согласно аннотации к статье Grounding DINO, модель достигает значения 52,5 AP на бенчмарке "Zero-Shot Object Detection on MS-COCO". Далее мы рассмотрим как использовать эту модель для автоматической разметки данных. Вдохновением для данной работы послужила статья Grounding DINO:SOTA Zero-Shot Object Detection и туториал в формате jupyter ноутбука. В моем проекте реализованы:
Установка и запуск Для запуска потребуется видеокарта nvidia с объемом памяти более 3 Гб. Для запуска проекта необходимо установить docker с поддержкой nvidia. Для работы требуется загрузить проект с GItHub: Реализованы два варианта запуска проекта - как докер контейнер и как сервис. Для запуска через docker контейнер необходимо выполнить сборку: И запустить контейнер: Параметр JUPYTER_TOKEN устанавливает постоянное значение токена для входа в jupyter lab. Флаги -v монтируют папки с данными, с ноутбуком и с питоновскими скриптами в запущенный контейнер. Второй вариант запуска, на мой взгляд, более удобный: В результате запустится jupyter lab, доступный по ссылке: Использование Перед началом работы необходимо расположить нужные данные в директории data. Далее требуется установить нужные настройки, ниже перечислены основные из них:
Далее необходимо выполнить все ячейки ноутбука. В разделе "Отрисовка детекций" можно увидеть результат работы нейронной сети. Если результат вас не устроит, то можно изменить пороги в значении CLASSES и повторить обработку. Раздел "Создание архива для загрузки в CVAT" подготавливает детекции в формате, пригодном для загрузки в CVAT. Скорость обработки одного изображения будет зависеть от количества классов и мощности видеокарты, на которой вы работаете. Ниже приведена таблица с тестированием скорости на изображениях с разрешением 2448 x 2048.
На обработку набора данных, состоящего из 32 тысяч изображений с разрешением 2448x2048 и 1920х1080, при детектировании 10 классов на видеокарте RTX 4090 потребовалось 11 часов. Ниже приведены примеры детектирования объектов разных классов: Видно, что модель справляется с детектированием большинства объектов. При этом стоит отметить, что модель может ошибаться - выдавать ложные детекции и пропускать нужные. Поэтому для дальнейшего использования данных требуется дополнительная проверка и корректировка разметки. Загрузка данных в CVAT CVAT - это интерактивный инструмент аннотирования видео и изображений для компьютерного зрения. Его используют десятки тысяч пользователей и компаний по всему миру. Инструмент имеет облачную и серверную версии. Инструкция по установке серверной версии доступна в официальной документации. Для загрузки подготовленной разметки в CVAT требуется выполнить несколько шагов:
При создании проекта необходимо указать все классы, которые требуется разметить: При создании задачи на разметку важно, чтобы формат разметки был установлен в значение YOLO: Пример созданной задачи: Для загрузки разметки требуется выполнить следующие шаги Actions - Upload annotations - YOLO 1.1: Разметка появится в выбранной задаче: Заключение Подходы с автоматической разметкой данных способны выдавать хороший результат. Этого результата может быть достаточно для решения не очень сложных задач, а также для ускорения процесса ручной разметки. Источник: habr.com Комментарии: |
|||||||||||||||||||||||||||||