Архив рубрики ~Лента новостей~

Компьютерное зрение против рутины: как мы ускорили анализ поведения лабораторных мышей

Компьютерное зрение против рутины: как мы ускорили анализ поведения лабораторных мышей
Компьютерное зрение против рутины: как мы ускорили анализ поведения лабораторных мышей

Наверняка вы слышали, что большинство биомедицинских исследований в мире проводится на лабораторных грызунах. Это неслучайно: ДНК мыши и человека совпадают на 97,5%, у нас около 30 000 общих генов. Именно мыши помогают находить лекарства от рака, исследовать болезнь Альцгеймера и, как в нашем случае, изучать механизмы стресса и агрессии.

Учёные из Института цитологии и генетики (ИЦиГ) СО РАН в новосибирском Академгородке ведут масштабное исследование. Его цель — понять связь между хроническим стрессом, иммунитетом и патологической агрессией. Но есть проблема: чтобы оценить результаты экспериментов, нужно отсмотреть сотни часов видеозаписей поведения животных.

Ручная обработка таких данных — долгий и кропотливый труд. На разметку 10 минут видео у научного сотрудника уходит около часа напряжённой работы: нужно сидеть с секундомером, ставить видео на паузу и фиксировать каждое действие мыши в таблицу.

Совместными усилиями команд Центра технологий для общества Yandex Cloud и Yandex Crowd Solutions мы решили помочь автоматизировать этот процесс. В результате нам удалось сэкономить учёным более 500 часов рутинной работы, освободив это время для настоящей науки. В статье расскажем, как объединили облачные технологии, краудсорсинг и энтузиазм, чтобы решить неочевидную, но критически важную проблему фундаментальной науки: собрали команду из студентов и экспертов, организовали разметку специфических данных, внедрили open‑source‑модель компьютерного зрения DeepLabCut и докрутили её собственными ML‑эвристиками.

Что и зачем изучают учёные

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

Для изучения этих процессов и поиска потенциальной терапии (например, введения противовоспалительного агента) специалисты проводят поведенческие эксперименты с мышами.

Для медицинских и когнитивных исследований учёные ИЦиГ СО РАН изучают поведение лабораторных мышей. Это общепринятая научная практика, животных не выращивают для изучения специально. Как уже упоминалось выше, ДНК мышей на 97,5% совпадает с человеческой. Поэтому результаты исследований на мышах помогают учёным лучше понять механизмы развития человеческих заболеваний и подобрать эффективное лечение.

Для исследования используются самцы линии CD1 — крупные белые мыши, отобранные по ряду генетических признаков. Главный из них — повышенная склонность к агрессии. Если взять обычных мышей, драться начнут 2–3 особи из 100. У линии CD1 этот показатель значительно выше. Это позволяет сократить выборку, руководствуясь принципом гуманного обращения с животными 3R: Replacement, Reduction, Refinement, и получать статистически значимые данные на меньшем количестве особей.

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

Раз в день перегородку ненадолго убирают — это запускает короткий эпизод социальной конфронтации. По его исходу особи распределяются на доминантную и субординантную. Цикл повторяют ежедневно на протяжении 20–30 дней. Дальше задача — оценить, как меняется поведение животных, в том числе во время терапии.

Все эти тесты записываются на видео, а затем тщательно анализируются. Раньше (и во многих лабораториях до сих пор) этот процесс выглядел так:

  • Учёный открывает видео в программе BORIS (Behavioral Observation Research Interactive Software).

  • Настраивает горячие клавиши: например, G — груминг (умывание), A — атака, R — стойка на задних лапах.

  • Запускает видео. Поскольку мыши двигаются молниеносно, смотреть запись в реальном времени невозможно — человеческий глаз просто не успевает фиксировать начало и конец действия. Видео замедляют в 2–3 раза (скорость 0,3x–0,5x).

  • Исследователь вручную прокликивает начало и конец каждого паттерна поведения.

В итоге на ручную разметку 10 минут видео уходит около часа рабочего времени исследователя. 

Пример такого видео

Только для текущего исследования учёным нужно проанализировать минимум 90 часов видеозаписей. А это более 500 часов монотонного ручного труда. Таким образом, рутина съедает значительную часть ресурса учёных, чьё время должно уходить на молекулярно‑генетический анализ, гистологию и написание статей, а не на кликанье мышкой.

Решение: комплексная работа

Командам Yandex Cloud и Yandex Crowd Solutions нужно было создать инструмент, который будет автоматически анализировать видео, распознавать поведение мышей и выдавать структурированные нужным образом данные. Это позволило бы снять с исследователей лишнюю нагрузку, чтобы они могли сосредоточиться на научной работе.

Для создания и проверки такого алгоритма потребовался датасет с размеченными видео. Yandex Crowd Solutions взяли на себя ручную разметку видео, а Yandex Cloud — обучение и тюнинг ML‑модели.

Разметка: как Yandex Crowd Solutions учился понимать мышей

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

Обычно для разметки данных в Yandex Crowd Solutions привлекаются тысячи исполнителей, но специфика задачи требовала особого подхода. Мы не могли просто выложить задания с инструкцией «Найди мышь». Нужны были люди, способные отличить груминг (умывание) от почёсывания, а фризинг (замирание) от простого отдыха.

На проект отобрали опытных разметчиков, которые отличались внимательностью, дотошностью и хорошей репутацией в работе со сложными разметками. К тому же у некоторых было биологическое образование и опыт в проведении научной работы с мышами. Это позволило пропустить долгий этап обучения с нуля — им было достаточно подробных инструкций и обратной связи от учёных ИЦиГ.

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

Поэтому мы адаптировали один из внутренних проектов, который ранее использовали для расстановки тегов на видео в рекламных кампаниях. В итоге получился кастомный интерфейс на внутренней платформе Yandex Crowd Solutions, заточенный специально под анализ поведения мышей.

9cc6de17856acaaa3b08645e8ba60466
  • Управление курсором. Основная фишка интерфейса — минимизация лишних движений. Разметчик выбирает нужный тег (например, «Груминг») и нажимает «Начало». Когда действие заканчивается, ему не нужно искать кнопку «Стоп» или нажимать пробел. Достаточно просто убрать курсор с области видео. Система тут же ставит запись на паузу и фиксирует конец интервала. Это экономит доли секунд на каждом эпизоде, которые в сумме дают огромный выигрыш во времени.

  • Автоматические тайм‑коды. Система сама фиксирует начало и конец действия с точностью до миллисекунды. Вручную вписывать цифры не нужно.

  • Визуализация. На выходе система сразу формирует структурированную таблицу с интервалами, готовую для дальнейшей обработки алгоритмами.

  • Результат. Скорость разметки выросла в 3–4 раза. То, на что у учёного уходил час, опытный асессор с новым инструментом делал за 15–20 минут.

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

2475e48dd1d893aac99afd8ab67919f7

Всего для обучения модели было размечено 100 видеороликов с тестами на социальное взаимодействие. В итоге команде Yandex Crowd удалось создать эталонную разметку для работы ML‑команды.

ML: как Yandex Cloud прошёл путь от точек на хвосте до распознавания поведения

Далее к работе подключились эксперты Центра технологий для общества Yandex Cloud и студенты Школы анализа данных (ШАД). Перед ними стояла задача превратить видеопоток в ту самую таблицу с таймингами, которую учёные раньше заполняли вручную.

Архитектура решения сложилась из двух уровней: 

  • трекинг (понимание, где мышь и в какой она позе);

  • анализ поведения (понимание, что именно она делает).

Для начала нужно было научить модель распознавать ключевые точки тела мыши (нос, голова, лапы, хвост, позвоночник) с высокой точностью. Мы рассматривали разные варианты, включая алгоритм YOLO, известный своей скоростью. Но для биомедицинских задач точность позиционирования важнее миллисекунд инференса. Поэтому выбор пал на DeepLabCut — опенсорс‑фреймворк, ставший стандартом в анализе поведения различных видов животных.

Шаг 1. Детекция скелета мыши — DeepLabCut и режим superanimal

DeepLabCut загружает видео из Yandex Object Storage и на каждом кадре определяет положение тела животного, то есть строит его «скелет». В нашем коде используется режим video_inference_superanimal — это готовая предобученная модель, которая умеет распознавать мышь на видео, снятом сверху.

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

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

Шаг 2. Приведение таблицы признаков к виду, который ожидает классификатор

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

В коде из этих данных выбирается только одно животное — animal0, убираются лишние уровни структуры, а названия колонок упрощаются. Например, вместо сложных многоуровневых названий появляются понятные колонки вроде nose_x, nose_y, tail_base_x и так далее.

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

Шаг 3. Классификация поведения по кадрам

Дальше мы загружаем три заранее сохранённых объекта:

  • пайплайн модели;

  • кодировщик меток;

  • список колонок с признаками.

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

Затем применяется простое правило: если модель предсказала класс, который не относится к нужным нам видам поведения мыши, например не является грумингом (уходом за шерстью) или вставанием на задние лапы, такой результат заменяется на no_action. Отдельно важно, что перемещение мыши между зонами определяется не моделью поведения, а анализируется по координатам и геометрии траектории.

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

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

Шаг 5. Зоны клетки — не обучение, а явные пороги по координатам носа

Мы выделяем три зоны лабораторной установки, в которой находятся мыши:

  • close_zone — ближняя зона. Это та половина установки, где находится короб со второй мышью, но без самой зоны непосредственного контакта.

  • periphery_zone — периферическая зона. Это половина установки, которая находится дальше всего от короба со второй мышью.

  • interaction_zone — зона взаимодействия. Это участок рядом с коробом, шириной примерно с длину тела мыши. Здесь мышь может непосредственно подходить к коробу и контактировать с ним.

c492bddba2a105aa0b88f825cc16faf6

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

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

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

Шаг 6. Сглаживание и выделение длинных эпизодов

Покадровые предсказания модели могут быть нестабильными из‑за шума. Чтобы сделать результат более надёжным, мы используем сглаживание. Для каждого кадра система анализирует соседние и выбирает то поведение, которое встречается чаще всего в этом небольшом окне. То есть берётся не одиночное предсказание, а наиболее типичный вариант на этом отрезке.

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

После этого идущие подряд одинаковые сочетания «действие + зона» объединяются в один непрерывный отрезок. Для каждого такого отрезка сохраняются:

  • начало и конец по времени;

  • начало и конец по номеру кадра;

  • время в удобном для чтения виде, например в секундах.

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

Шаг 7. Визуализация для контроля качества

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

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

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

Шаг 8. Веб‑интерфейс для лаборантов

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

  • обрезанное видео;

  • видео с разметкой;

  • CSV с результатами.

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

Ограничение, которое стоит учитывать в пайплайне

Любой подобный пайплайн сильно зависит от условий съёмки: освещения, фона, ракурса съёмки сверху и того, насколько неподвижно установлена камера.

Разделение на зоны по фиксированным координатам — это упрощённый подход. Он работает только тогда, когда эти границы действительно совпадают с реальной геометрией клетки или установки. 

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

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

Что в итоге: код спасает от рутины ради науки

Готовая система ощутимо сократила время анализа видеозаписей. Если раньше учёным требовался час для разметки 10-минутного видео, то теперь автоматическая обработка займёт всего несколько минут. Таким образом мы помогли им сэкономить более 500 часов монотонного ручного труда. При этом авторазметка фиксирует события с точностью до кадра, корректируя человеческий фактор и делая данные более надёжными.

В планах — масштабирование решения на более сложные тесты (агрессивную конфронтацию) и эксперименты с генерацией текстовых выводов. И уже сейчас этот проект масштабируется на изучение мышей в условиях невесомости.

Этот проект показал, как компьютерное зрение и облачные технологии могут снять с учёных огромный объём ручной работы и ускорить анализ поведения лабораторных мышей. Команда объединила качественную разметку и ML‑методы, чтобы помочь исследователям больше времени тратить на то, что действительно важно.

Источник: habr.com

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Новости робототехники Производитель гуманоидов Agility Robotics выйдет на рынок в результате слияния со SPAC Новости робототехники Сами читают статьи и ставят видеокарты: Nvidia показала самообучающихся роботов ENPIRE Новости робототехники ExRobotics запускает сертифицированную UL инспекционную роботу для программной среды Новости робототехники Первая роботизированная буровая установка на материковой части России создана на базе российских программных продуктов IR-ПАК и IR-OPERBOT от РИГИНТЕЛ Архив рубрики ~Коротко из Telegram~ Google запускает собственную «мини-Википедию» для блогеров и создателей контента. Компания… Архив рубрики ~Коротко из Telegram~ Водители Tesla научились обманывать камеру слежения в салоне головой пластиковой… Архив рубрики ~Коротко из Telegram~ Главная компания ИИ-гонки не выпускает ни моделей, ни чипов ASML… Архив рубрики ~Коротко из Telegram~ DeepSeek-V4-Flash раздают бесплатно по API DeepSeek-V4-Flash временно открыли для бесплатного… Архив рубрики ~Коротко из Telegram~ ИИ помогает работать — и незаметно отучает работать самому Nature… Архив рубрики ~Коротко из Telegram~ GLM-5.2 залетела в дизайн и документы Новости робототехники В Китае кассиров меняют на гуманоидных роботов — сеть Galbot… Архив рубрики ~Коротко из Telegram~ VK Tech и Yadro подписали меморандум о технологическом партнерстве для… Архив рубрики ~Коротко из Telegram~ Яндекс выложил в открытый доступ формат хранения и передачи данных… Архив рубрики ~Коротко из Telegram~ 📷 Вышел новый open-source видеоредактор Palmier, который позволяет AI-модели Claude… Новости робототехники Производитель гуманоидов Agility Robotics выйдет на рынок в результате слияния со SPAC Новости робототехники Сами читают статьи и ставят видеокарты: Nvidia показала самообучающихся роботов ENPIRE Новости робототехники ExRobotics запускает сертифицированную UL инспекционную роботу для программной среды Новости робототехники Первая роботизированная буровая установка на материковой части России создана на базе российских программных продуктов IR-ПАК и IR-OPERBOT от РИГИНТЕЛ Архив рубрики ~Коротко из Telegram~ Google запускает собственную «мини-Википедию» для блогеров и создателей контента. Компания… Архив рубрики ~Коротко из Telegram~ Водители Tesla научились обманывать камеру слежения в салоне головой пластиковой… Архив рубрики ~Коротко из Telegram~ Главная компания ИИ-гонки не выпускает ни моделей, ни чипов ASML… Архив рубрики ~Коротко из Telegram~ DeepSeek-V4-Flash раздают бесплатно по API DeepSeek-V4-Flash временно открыли для бесплатного… Архив рубрики ~Коротко из Telegram~ ИИ помогает работать — и незаметно отучает работать самому Nature… Архив рубрики ~Коротко из Telegram~ GLM-5.2 залетела в дизайн и документы Новости робототехники В Китае кассиров меняют на гуманоидных роботов — сеть Galbot… Архив рубрики ~Коротко из Telegram~ VK Tech и Yadro подписали меморандум о технологическом партнерстве для… Архив рубрики ~Коротко из Telegram~ Яндекс выложил в открытый доступ формат хранения и передачи данных… Архив рубрики ~Коротко из Telegram~ 📷 Вышел новый open-source видеоредактор Palmier, который позволяет AI-модели Claude…

Оставить комментарий