В рамках инициативы Tech4PositiveFutures лондонская биржа прикладных инноваций Capgemini заключила партнерское соглашение с Pollenize, британской общественной компанией (CIC), для изучения возможности использования машинного обучения и искусственного интеллекта для обеспечения здоровья живых растений. данные непосредственно от опылителей, таких как пчелы.

Фон

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

Виляющий танец пчел - это необычное коммуникативное поведение, используемое медоносными пчелами для обмена информацией о направлении и расстоянии от ценных ресурсов, таких как еда или новые местоположения улья, со своими товарищами по улью. Это виляние (или танец) включает в себя серию высокочастотных движений, выполняемых в виде 8-значного рисунка. Ученые называют это виляющим бегом.

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

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

Удивлен? Поражен? Заинтересованы? Да, я тоже.

Наш подход

В начале мы разделили нашу задачу на два основных направления: обнаружение виляния и его расшифровка. Учитывая наши временные рамки и доступные ресурсы, мы сосредоточились в основном на создании надежной части обнаружения, прокладывая путь для будущих методов декодирования. В ходе исследования мы изучаем три различных подхода, кратко изложенных ниже. Читайте дальше, чтобы узнать, о чем идет речь! 😅

1. Запись данных о живых ульях

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

2. Пространственно-временная кластеризация

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

Модель разбивает каждое видео на кадр за кадром, чтобы обнаружить области с высокой вибрацией или потенциальными покачиваниями. Для создания этих потенциальных покачиваний используется пакет Python OpenCV для удаления фона каждого кадра. Оттуда мы вычисляем попиксельную разницу кадров; области с наибольшей разницей соответствуют областям высоких вибраций. Затем мы используем анализ контуров OpenCV для обнаружения самых больших контуров каждого разностного кадра и сохраняем их как потенциальные события покачивания. На данный момент набор потенциальных покачиваний относительно зашумлен. Шум в наборе данных может привести к большой разнице в пикселях в областях, где пчелы не виляют. Чтобы преодолеть это, мы используем пространственно-временную кластеризацию. С точки зрения непрофессионала, мы пытаемся установить взаимосвязь между местом и временем различных потенциальных событий покачивания. Если отдельные события потенциальные покачивания происходят в том же месте и с той же временной меткой, что и другие, они будут считаться частью кластера; предполагается, что каждое событие выполняется одной и той же пчелой. Пчелы, не имеющие соседних событий виляния, рассматриваются как выбросы и удаляются из набора событий виляния. Эта трехмерная пространственно-временная кластеризация была выполнена с использованием встроенной модели DBSCAN.

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

Теперь у нас есть набор событий покачивания: координаты x и y и кадры, в которых они произошли. Чтобы сделать еще один шаг вперед, мы решили попытаться расшифровать эти предсказанные виляния, сгенерировав направление сообщаемого цветка-опылителя. Предполагая, что виляющие прогоны выполнялись вдоль оси (см. выше), мы подгоняем линейную функцию к каждому кластеру; наклон этой функции дал нам оценку того, где находился цветок относительно улья.

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

3. Распознавание действий

Естественно, мы хотели проверить возможности с более четким видеопотоком. Используя размеченные данные, предоставленные Калифорнийским университетом в Сан-Диего (UCSD), мы построили модель распознавания действий для виляния пчелы.

Распознавание действий идентифицирует и классифицирует действия или действия в видео без локализации временных границ (на уровне видео). Он извлекает пространственно-временные характеристики для представления действий и прогнозирует общую категорию действий.

Мы использовали предварительно обученную сеть временных сегментов (TSN), предоставленную видеомоделированием с открытым исходным кодом MMAction2. TSN был предварительно обучен на Кинетике-400, наборе данных из 400 видеороликов с действиями человека. Затем мы настроили его на нашем новом наборе данных с маркировкой bee waggle, содержащем 700 видеоклипов. Это рассматривается как трансферное обучение.

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

После обучения в течение 50 эпох наша модель вернула точность тренировочного набора 92% и точность набора проверки 89%. Видео ниже иллюстрирует модель в действии.

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

4. Обнаружение действий

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

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

Набор данных, предоставленный UCSD, содержал аннотации пикселей в начальных и конечных кадрах каждого покачивания. Модели обнаружения действия требуют больше информации о местоположении и времени, когда происходит покачивание. Чтобы создать этот расширенный набор данных, мы внедрили трекер CSRT из библиотеки Python OpenCV. Для каждого виляния мы выполняем следующее:

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

Видео ниже иллюстрирует образец созданного нами набора данных.

На этом мы подошли к концу нашего проекта. Если бы у нас было больше времени, мы бы рассмотрели возможность использования Акторно-центрической сети отношений, предварительно обученной на наборе данных AVA-Kinetics, предоставленном в наборе инструментов MMAction2.

Наши уроки и рекомендации

Обнаружение виляния пчелы само по себе является сложной задачей, даже без учета первоначального задания на декодирование. Для получения высококачественных видеопотоков требуется высокотехнологичная установка камеры. Создание аннотаций требует обширных знаний пчеловода (и терпения ;-)). Мы представили новый анализ того, как неконтролируемые и контролируемые модели машинного обучения могут использоваться для обнаружения виляющего танца пчелы. Наши результаты демонстрируют потенциал в рассмотрении машинного обучения как жизнеспособного претендента на решение этой задачи. Однако качество данных должно быть приоритетом для обеспечения успеха будущих исследований. Мы рекомендуем сосредоточиться на создании высококачественных видеороликов и аннотаций, прежде чем тратить время на ресурсы для создания решения ИИ.

Доступ к коду через Github

Благодарности

Мы хотели бы отдать должное Хизер Броккард-Белл из Nieh Lab Калифорнийского университета в Сан-Франциско за помеченный набор данных, который мы использовали в этом исследовании.