TRAINING DATA


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

Алексей Корнилов, Project manager

Разметка данных — это уже широко известная в технических сферах ниша, она служит основой для обучения нейронных сетей. В последние месяцы все обсуждают LLM и создание данных, но в то же время технологии искусственного интеллекта активно развиваются и в промышленности.
Меня зовут Алексей Корнилов, я менеджер проектов по сбору и разметке данных в Training Data, и я хочу рассказать о том, как сбор и разметка данных используется ML разработчиками в горнодобывающей компании. Около года назад я завершил проект по подготовке датасетов с разметкой пузырьков во время флотации. Звучит сложно, но обо всем по порядку.

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

О том, как именно отдел инноваций проводил обучение нейронных сетей, можно прочитать в статье Алексея Клокова. Я же хочу рассказать об этапах и специфике такой разметки данных, организации работы команды разметчиков/AI-тренеров и поделиться выводами в работе с промышленными данными. Статья будет интересна проджект менеджерам, дата-саентологам, ML-инженерам и всем, кто работает в области разметки данных для задач машинного обучения.




Постановка задачи и ТЗ

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

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

На изображении ниже приведен пример данных для разметки. Цветом выделены 3 потока (области интереса) движения пузырьков в резервуаре.



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

Но на самом деле для AI-тренеров все равно, что нужно размечать. Технически все задачи по сегментации одинаковые, неважно, работаете ли вы с людьми, овощами или пузырьками. Но проект имел особенности и сложности, которые выявились на этапе проведения пилота (пилот - тест проекта для определения метрик и уточнения ТЗ).

Итак, по ТЗ на пилоте мы выполнили два типа работ:
1. Семантическая сегментация - выделение полигонами каждого пузырька по контуру для определения характеристик пузырьковой пены
2. Трекинг объектов - разметка пузырька bounding box, присвоение боксу уникального номера и отслеживание положения ID каждого пузырька на протяжении всех последующих кадров.


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

  1. Как размечать момент взрыва пузырька?
  2. Как размечать форму без пузырька?
  3. Какой минимальный размер пузырька для разметки? Что значит “мелкий” пузырек?

Качественные данные –- это 80% корректной работы нейронной сети, поэтому мы всегда детально изучаем инструкции, задаем вопросы и сдаем разметку итерациями, чтобы разработчики получали желаемый и предсказуемый результат. Можно сказать, мы работаем по методологии Agile, то есть гибкому подходу к управлению проектами.


Пузырьки, видеокарты и цвета: особенности проекта
Второй особенностью данных было количество пузырьков. Наверняка вы уже спросили себя, сколько пузырьков нужно выделать на 1 изображении.

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

  1. Один из AI - тренеров в моей команде так усердно работал, что в какой-то момент он увидел битые пиксели на экране. Да, у него сгорела видеокарта во время разметки изображения. Предвосхищая вопросы, это была - nvidia geforce 3060 ti.
  2. Но все закончилось хорошо, так как у него была гарантия.
  3. Мы написали код для присваивания каждому пузырьку уникального цвета. По умолчанию мы поставили ограничение в 1000 цветов. Буквально на второй выгрузке данных скрипт перестал работать. Да, из-за ограничения, так как разброс пузырьков на 1 фото от 2 до 1500.
(пример размеченных изображений)
Команда: три главных качества
С запуском проекта начался процесс по работе с командой: обучение, выдача данных, постановка метрик, контроль качества и психологическая поддержка, то есть работа с усталостью.

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

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

1. Высокий уровень владения CVAT. Несмотря на всё обучение и инструкции, человек без большого опыта разметки в computer vision annotation tool не выходил на нужные метрики по скорости и качеству.
2. Усидчивость и внимательность — это база для скрупулезной разметки. Когда перед тобой 1500 объектов в 50 оттенках серого, нужно очень внимательно относится к каждому пикселю. Порой, на 1 изображение может уходить 2-3 часа, что не так просто на проекте, длиной в несколько месяцев.
3. Саморегуляция - про отдых и осознанность. Между тренировкой насмотренности и замыленным глазом существует тонкая грань. В команде мы выработали правило, что необходимо отрываться от экрана, заваривать новую чашку чая и разминаться каждые 4 часа. Только при таком подходе можно не терять качество.

Данный проект требовал от менеджера не столько настойчивости, сколько понимания и внимания к людям.

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

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

А второе решение было связано с изображениями, на которых было от 500 до 1500 пузырьков. Мы делили каждый кадр на 4 квадрата, рисовали крестик для сохранения границ, размечали каждую часть отдельно, а потом сшивали их обратно в 1 изображения, корректируя разметку на стыках при необходимости. Тест показал, что это экономило до 8 часов разметки! На тот момент мне казалось, что я придумал гениальное решение, так как раньше мы такого еще не делали.

Смогла бы нейронная сеть разметить такой тип изображений? Да, но здесь встает вопрос качества. Сами сырые данные –- это кадры из видео, на котором пузырьки двигаются с большой скоростью. При приближении все видно очень плохо и, вероятно, нейронка не смогла бы определить границы объектов из-за пикселизации.


Что мы смогли выяснить во время этого проекта?

Этот кейс помог нам сделать несколько интересных выводов: Количество пузырьков оказалось неожиданной проблемой. При работе с изображениями серьезно нагружались рабочие компьютеры разметчиков. Опыт разметки в CVAT и технические характеристики компьютеров ограничивали круг специалистов, допущенных к работе над проектом. Теперь при формировании команд под проект мы всегда интересуемся компьютерами и видеокартами AI - тренеров.

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