Кейс annotate

Аннотирование данных для крупного российского разработчика систем беспилотного автотранспорта

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


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


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


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


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


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

Описание кейса

В компанию Annotate обратился крупный разработчик систем беспилотного автотранспорта с запросом на решение следующей задачи: для обучения ML-модели восприятия окружающей среды необходимо было построить единое дерево классификатора с подробной детализацией по классам объектов.

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

Клиент предоставил данные с закрепленных на автомобиле видеокамер, с 6 разных ракурсов, в формате видео раскадровок с частотой 1 кадр в 5 секунд. Полученные «сырые» 2D данные необходимо было разметить стандартными ограничивающими прямоугольниками (Bounding Box) по трём классам объектов: автомобили, пешеходы и все прочие объекты движения такие как светофор, строительная техника, велосипед, сугроб и т. д. — всего более 20 типов объектов.

Параллельно первой задаче была поставлена вторая, по иному набору данных, а именно: осуществить детальную семантическую сегментацию (Semantic Segmentation), с учетом всех пересечений и наслоений, путем классификации по более чем 100 классам объектов. Например, «мусорный контейнер», «дерево», «дорожный знак», «островок безопасности», в том числе по более чем 20 классам транспортных средств: «мотоцикл», «автобус», «трамвай» и т. д.

Аннотирование 2D данных постепенно необходимо было сопроводить дополнительным атрибутированием — особый вид задачи, когда каждый тип объектов нужно классифицировать на подтипы. Например, светофоры классифицировать по всем их подвидам, дорожную разметку классифицировать на отдельные подвиды строго согласно ПДД, и т. п. Задача имела высокий приоритет, потому как беспилотному транспорту необходимо по дорожной разметке проанализировать и понять характер местности и окружения.

На более зрелом этапе проекта клиентом была поставлена задача по аннотированию 3D облака точек (3D Point Cloud Annotation) с лидаров, закрепленных на крыше автомобиля. Аннотирование и разметка данных лидара по сути очень похожи на разметку изображений, но отличаются на практике тем, что это 3D-модель на плоском экране, где приходится иметь дело с огромным количеством точек (порядка миллионов), которые не ограничены конкретными поверхностями или границами.

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

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

Были выстроены процессы под аннотирование таких объемных датасетов по принципу нескольких параллельных потоков данных.

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

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

Экспертиза специалистов компании Annotate была также прямым образом задействована при исследовании рынка существующего ПО для аннотирования облаков точек. Выбор остановили на свежем open-source решении от китайских Data Science специалистов 3D Point Cloud Annotation Platform for Autonomous Driving — SusTechPoints. Данное решение обладает удобным интерфейсом и эффективным инструментарием, а написание разработчиками Annotate программного кода под отдельный branch позволило адаптировать функционал SusTechPoints строго под задачи клиента.

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

Проекты по аннотированию ограничивающими прямоугольниками (Bounding Box), семантической сегментации с атрибутированием (Semantic Segmentation) и аннотированию облака точек с лидаров (3D Point Cloud Annotation) длятся более 2 лет, идут параллельно и дополняют друг друга, так как это данные с разных датчиков.

Единовременно на проектах задействовано порядка 50 асессоров, которые аннотируют 386 000 объектов в месяц, однако при пиковых нагрузках штат асессоров расширяется до 150 и более человек, а количество объектов аннотации увеличивается до 500 000 в месяц.

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

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

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

Проникновение ML в нашу жизнь можно существенно ускорить, если компании, занимающиеся разработкой AI, будут ориентироваться на подготовку данных с той же степенью внимания, что и на создание ML моделей. С учетом того, что 80% объема работ по разработке AI — это подготовка данных, эффективнее сосредоточиться на совершенствовании качества данных, а не на привычном улучшении кода.

Компания Annotate с радостью поможет вам решить эту задачу.