ML в животноводстве. Как ГК «Русагро» училось считать поголовье свиней

Привет, Хабр! В сентябре мы провели конференцию «Инфраструктура для ML и AI, виды дрифтов ML-моделей, Computer Vision в животноводстве». Обсудили, как разные компании используют машинное обучение в работе, поговорили о трендах и инструментах построения production ML-систем в бизнесе. На митапе было четыре интересных доклада, и мы решили поделиться ими.

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

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


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

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

image2


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

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

zxoshbsx2rsjkr6i2hqiop4f-hq.png


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

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

ylvrxk3nzxo2hatk_n3n5rvw77c.png

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


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

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

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

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


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

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

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


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

urgj9aa-29ynzxlayp_haiauybu.png

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

rjkbohbm7u6k6mtgxffivillzl8.png


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

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

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

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


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


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

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

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

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

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

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

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

Возможно, эти тексты тоже вас заинтересуют:

→ Ноутбук Qingyun L540 от Huawei с китайским процессором: что за девайс?
→ Новый процессор из Китая в 4 раза быстрее предшественника: SW26010 Pro с 13,8 Тфлопс
→ Чего не знают айтишники? Как мы провели IT-кроссворд и нашли ответы на все вопросы

© Habrahabr.ru