Как настроить видеоаналитику — ML в Русагро

Как оптимизировать видеоаналитические сервисы. Пример ГК «Русагро»

Анастасия Ткачева
Анастасия Ткачева Продуктовый редактор
28 декабря 2023

В животноводстве приходится регулярно считать поголовье скота. Чтобы не заниматься этим вручную и повысить поточность подсчета, ГК «Русагро» при помощи ML создал видеоаналитический сервис. Что из этого вышло — в докладе Павла Ширяева, руководителя группы компьютерного зрения «Русагро Тех».

Изображение записи

ГК «Русагро» — ведущий вертикально интегрированный агрохолдинг России, представленный в категориях: сахар, мясная продукция, масла и жиры, молочные продукты и сельскохозяйственная культура. Это третий российский производитель свинины с долей рынка 5,4 %. Об этом направлении, свиноводстве, и пойдет речь.

Видеоаналитические сервисы в ГК «Русагро»

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

Ежедневно системы сбора данных получают тысячи фотографий и видео, а затем используют их для обучения нейросетей. Не потеряться в таком объеме данных им помогает S3-совместимое хранилище MinIO и базы данных — в них лежат файлы с метаданными по каждому видео и фото. Таким образом, сотрудники знают, что и где было снято, когда, на какой сенсор, для какого проекта и где это хранится. Это позволяет оперативно фильтровать данные, генерировать новые датасеты, забирать новые фото и видео в сервисы ГК «Русагро».

Хранилище данных занимает центральное место в двух рабочих процессах: в инференсе и трейнинге:

Как устроены рабочие процессы.
Схема организации рабочих ML-процессов.

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

Как устроено обучение сервисов

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

Все эксперименты для трейнинг-пайплайнов организованы в ClearML. В нем «Русагро Тех» обучает и оптимизирует модели, собирает метрики и затем оценивает, как изменилась скорость инференса и не упала ли точность. Все это объединяют в одну таблицу и дальше от эксперимента к эксперименту следят за изменениями.

Процесс инференса строится при помощи оркестратора Prefect — он легко разворачивается и настраивается, в нем удобно планировать и управлять задачами для сервисов по видеоаналитике. То есть фактически результаты работы модели генерируются на одном из шагов Prefect-пайплайна. Также в работе помогают Grafana, Prometheus и телеграм-боты для мониторинга и оперативного реагирования на возникающие инциденты.

Пример проекта  «Инвентаризация животных»

А теперь конкретный кейс — как ГК «Русагро» научился подсчитывать поголовье свиней в загонах с точностью не ниже 99%.

Подсчет животных — типовая задача в животноводстве. Она позволяет компании планировать производство, оценивать количество корма или узнавать, сколько голов ушло в мясопереработку. Для человека это не самая простая задача: свиньи разбегаются, приходится тратить много времени, в результатах бывают ошибки, а главное — это стресс для животных. Поэтому вместо ручного труда ГК «Русагро» решила использовать роботизированную каретку для перемещения видеокамеры и, силами «Русагро Тех», разработала сервис по распознаванию и подсчету животных по видео.

Как работает система видеоаналитики

Схема выглядит так:

Схема системы видеоаналитики.

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

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

Сложности при подсчете

На работу камеры влияют внешние факторы — их нужно учитывать при обучении и настройке системы.

Освещение. В загонах есть не только искусственное освещение, но и естественное — от окон. А так как естественный свет меняется в течение дня и календарного года, сотрудникам «Русагро Тех» приходится подбирать настройки для камер.

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

Загрязнение камеры. В загонах с животными этого не избежать, поэтому камеры приходится протирать.

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

Дальние животные. Особенно сложно считать в дальних углах загона, потому что таких животных хуже видно. 

Как настраивали систему

Группа компьютерного зрения «Русагро Тех» провела исследование и установила, что для человека точность подсчета поголовья свиней составляет 96–97%. У сервиса видеоаналитики этот показатель должен был стать не менее 99%.

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

Практически сразу сервис по подсчету показал точность 97%. Оставалось только снизить количество ошибок.

Еще один процент точности дал тюнинг гиперпараметров после оптимизации пороговых значений для алгоритмов детекции, трекинга и счета животных

Настройка активной зоны прибавила 0,5%. Активная зона — это область на изображении, в котором подсчитывается животное с уникальным ID. Для разных по размерам загонов нужна разная область. Но так как сервис знает, какой загон снят, то может выбрать необходимую.

Активная область выделена зеленым:

И последнее — усреднение данных. Группа компьютерного прокатывает каретку три раза в день, а данные усредняет.

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

99% — точность после настройки и обучения сервисов.

Заключение и советы

ГК «Русагро» до сих пор находится в активной фазе разработки своих ML-процессов и выбора инструментов. В ближайшем будущем силами «Русагро Тех» планируется реализовать полную синхронизацию и автоматизацию процесса обучения и инференса. Но уже сейчас у них есть опыт и советы для тех, кто еще не приступал к организации MLOps-системы.

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

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

И главное, не бойтесь и просто начните собирать свою MLOps-платформу

Вы можете использовать инфраструктуру Selectel для обучения и развертывания ML-моделей. Мы даем две недели бесплатного тестового периода, чтобы вы попробовали поработать с ML-платформой, выбрать интересующие модели GPU и провести несколько экспериментов.

Платформа позволяет организовать полный цикл обучения и использования ML-модели в кластере Kubernetes, а также адаптирована под установку системы управления ML-экспериментами ClearML. Вы можете полностью настроить ее под цели и задачи своей компании — наши сотрудники помогут определиться с конфигурацией, научат работать с платформой и будут помогать в процессе ее использования.

Интересна тема ML? Вступайте в Telegram в сообщество ML- и MLOps-инженеров. Обсуждайте production ML, читайте полезные статьи и обменивайтесь опытом с комьюнити.