Шаг за шагом Внедрение DeepBehavior, Глубокое обучение Toolbox для автоматизированного анализа поведения

Behavior

Your institution must subscribe to JoVE's Behavior section to access this content.

Fill out the form below to receive a free trial or learn more about access:

 

Summary

Целью этого протокола является использование предварительно построенных конволюционных нейронных сетей для автоматизации отслеживания поведения и выполнения детального анализа поведения. Отслеживание поведения может быть применено к любым видеоданным или последовательностям изображений и обобщается для отслеживания любого объекта, определяемого пользователем.

Cite this Article

Copy Citation | Download Citations | Reprints and Permissions

Shukla, S., Arac, A. A Step-by-Step Implementation of DeepBehavior, Deep Learning Toolbox for Automated Behavior Analysis. J. Vis. Exp. (156), e60763, doi:10.3791/60763 (2020).

Please note that all translations are automatically generated.

Click here for the english version. For other languages click here.

Abstract

Понимание поведения является первым шагом к подлинному пониманию нейронных механизмов в мозге, которые управляют им. Традиционные методы поведенческого анализа часто не отражают богатство, присущее естественному поведению. Здесь мы предоставляем подробные пошаговые инструкции с визуализацией нашей недавней методологии, DeepBehavior. Набор инструментов DeepBehavior использует рамки глубокого обучения, построенные с помощью конволюционных нейронных сетей, для быстрого обработки и анализа поведенческих видео. Этот протокол демонстрирует три различные рамки для обнаружения одного объекта, обнаружения нескольких объектов и трехмерного (3D) отслеживания позы сустава человека. Эти рамки возвращают картезианские координаты объекта интереса для каждого кадра видео поведения. Данные, собранные из инструментария DeepBehavior, содержат гораздо больше деталей, чем традиционные методы анализа поведения, и дают детальное представление о динамике поведения. DeepBehavior определяет задачи поведения надежными, автоматизированными и точными способами. После определения поведения, пост-обработка код предоставляется для извлечения информации и визуализации из поведенческих видео.

Introduction

Подробный анализ поведения является ключом к пониманию мозга и отношения поведения. Там было много интересных достижений в методологиях для записи и манипулирования нейронных популяций с высоким временным разрешением, однако, методы анализа поведения не разработаны с той же скоростью и ограничиваются косвенными измерениями и редукционистский подход1. В последнее время методы глубокого обучения были разработаны для выполнения автоматизированного и детального анализа поведения2,3,4,5. Этот протокол обеспечивает пошагово-пошаговое руководство по реализации для инструментария DeepBehavior.

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

Набор инструментов DeepBehavior представляет собой точное, подробное, высоко временное и автоматизированное решение с использованием глубокого обучения для поведенческого анализа. Глубокое обучение быстро стало доступным для всех с помощью инструментов и пакетов с открытым исходным кодом. Конволюционные нейронные сети (CNN) доказали свою высокую эффективность в распознавании объектов и отслеживания задач7,8. Используя современные CNN и высокопроизводительные графические процессоры (ГПУ), большие наборы данных изображений и видео могут быть быстро обработаны с высокой точностью7,9,10,11. В DeepBehavior существует три различных конволюционных нейронных сетевых архитектуры, TensorBox, YOLOv3 и OpenPose2.

Первая структура, Tensorbox, представляет собой универсальную структуру, которая включает в себя множество различных архитектур CNN для обнаружения объектов12. TensorBox лучше всего подходит для обнаружения только одного класса объектов на изображение. Полученные выходы связывают ящики объекта интереса(рисунок 1)и картезианские координаты ограничивающего ящика.

Второй си-эн-эн рамки YOLOv3, который выступает за "Вы только посмотрите один раз"13. YOLOv3 является выгодным, когда есть несколько объектов, представляющих интерес, которые должны быть отслежены отдельно. Выход этой сети включает в себя ограничивающий ящик с соответствующим классом метки объекта, а также ограничивающие коробочки картошные координаты объекта в кадре видео (Рисунок 2).

Предыдущие две фреймы являются выгодными для обобщенных поведенческих данных, собранных в ходе стандартных лабораторных экспериментов на животных. Последний cnn рамки OpenPose14,15,16, который используется для человеческой совместной оценки позы. OpenPose обнаруживает человеческие тела, руки, лица и ноги ключевых точек на изображениях. Выходы фреймворка помечены изображениями человека, а также координатами всех 25 ключевых точек в теле и 21 ключевой точки каждой руки(рисунок 3).

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

Subscription Required. Please recommend JoVE to your librarian.

Protocol

1. Настройка gPU и Python

  1. Программное обеспечение для gPU
    Когда компьютер является первой установкой для приложений для глубокого обучения, программное обеспечение и драйверы, соответствующие графическому процессору, должны быть установлены, которые можно найти на веб-сайте графического процессора. (см. таблицу материалов для тех, кто используется в данном исследовании).
  2. Python 2.7 Установка
    Откройте запрос на строку команд на вашей машине.
    Командная линия: sudo apt-get установить питона-пиона-пиона-дево-виртуора

2. ТЕНСОРБОКС

  1. Настройка Тензорбокса
    1. Создание виртуальной среды для Tensorbox
      Командная линия: cd
      Командная линия: virtualenv --система-сайт-пакеты
      ПРИМЕЧАНИЕ: «Я/тензорпоток» — это название окружающей среды и является произвольным
    2. Активировать среду
      Командная строка: источник no/tensorflow/bin/activate
  2. Установка Тенсорбокса
    Мы будем использовать GitHub для клонирования TensorBox от http://github.com/aarac/TensorBox и установки его на нашем компьютере, а также для установки дополнительных зависимостей.
    Командная линия: cd
    Командная линия: git клон http://github.com/aarac/TensorBox
    Командная линия: cd ТензорБокс
    Командная линия: установка пипсов -r requirements.txt
  3. Данные этикетки
    1. Создание папки изображений поведения
      Инструменты с открытым исходным кодом, такие как ffmpeg, полезны для преобразования видео в отдельные кадры, которые мы рекомендуем маркировать не менее 600 изображений из широкого распространения поведенческих кадров для обучения. Поместите эти изображения в папку.
    2. Запуск маркировки графического пользовательского интерфейса
      Командная линия: питон make_json.py злт;путь к папке изображения
      Чтобы обозначить изображение, нажмите на верхний левый угол интересуемого объекта (т.е. лапы), а затем нажмите в правом нижнем углу объекта интереса(рисунок 4). Осмотрите, что ограничивающий ящик захватывает весь объект интереса. Нажмите 'отменить', чтобы повторно обозначить то же изображение или нажмите "следующий", чтобы перейти на следующий кадр.
  4. Поезд TensorBox
    1. Ссылка обучающие изображения на файл сетевых гиперпараметров
      В папке tensorbox откройте следующую папку в текстовом редакторе:
      /TensorBox/hypes/overfeat_rezoom.json. Перейдите к атрибуту под данными, названными train_idl и замените путь файла с ./data/brainwash/train_boxes.json на filepath labels.json. Сохранить изменения в файле.
    2. Начать сценарий обучения
      Командная линия: cd/TensorBox
      Командная линия: python train.py --hypes hypes/overfeat_rezoom.json --gpu 0 --logdir выход
      Затем сеть начнет обучение 600 000 итераций. В папке вывода будут сгенерированы полученные обученные веса конволюционной нейронной сети.
  5. Прогноз на новые изображения
    Для маркировки изображений:
    Командная линия: cd/TensorBox
    Командная линия: питон label_images.py --folder lt;путь к папке изображения ,--весы выход / overfeat_rezoom_/lt;timestamp-gt;/save.ckpt-600000 --hypes/hypes/overfeat_rezoom.json --gpu 0
    Чтобы получить координаты ограничивающих ящиков:
    Командная линия: cd/TensorBox
    Командная линия: питон predict_images_to_json.py --папка lt;путь к папке изображения ,--весы
    выход/overfeat_rezoom_/lt;timestamp;/save.ckpt-600000 --реклама
    /hypes/overfeat_rezoom.json --gpu 0
  6. MatLAB после обработки для TensorBox
    Дополнительный код MATLAB был предоставлен для извлечения кинематических и визуализаций координат с помощью полученного файла координат JSON из модели
    Выполнить сценарий "Process_files_3Dreaching_mouse.м" для 3D кинематический анализ одной пищевой гранулы достижения задачи.

3. YOLOv3

  1. Установка YOLOv3
    Командная линия: cd
    Командная линия: git клон cd darknet
    Для использования графического процессора откройте «Makefile» и измените следующие строки: GPU-1; КУДННNo 1.
    Командная линия: сделать
  2. Маркировка обучающих данных с использованием Yolo_mark
    Командная линия: cd
    Командная линия: git клон cd /Yolo_Mark
    Командная линия: cmake .
    Командная линия: сделать
    Разместите обучающие изображения в папке «Yolo_mark/данные/обью»
    Командная линия: chmod q ./linux_mark.sh
    Командная линия: ./linux_mark.sh
    Этикетка изображения один за другим в графическом пользовательском интерфейсе (Рисунок 5). Рекомендуемое количество изображений составляет около 200.
  3. Обучение YOLOv3
    1. Файл конфигурации настройки
      Командная линия: cd /Yolo_mark
      Командная линия: scp -r ./data
      Командная линия: cd/darknet/cfg
      Командная линия: cp yolov3.cfg yolo-obj.cfg
    2. Изменение файла конфигурации
      Откройте папку yolo-obj.cfg и измените следующие строки: пакет No 64, подразделение No8, классы (класс для обнаружения), а также для каждого конволюционного слоя до того, как слой йоло изменит фильтр (классы 5)x3. Подробную информацию об этих изменениях можно найти на https://github.com/aarac/darknet/blob/master/README.md
    3. Скачать вес сети
      Скачать вес сети с https://www.dropbox.com/s/613n2hwm5ztbtuf/darknet53.conv.74?dl=0
      Поместите загруженный файл веса в файл q/darknet/build/darknet/x64
    4. Запуск алгоритма обучения
      Командная линия: cd /darknet
      Командная линия: ./darknet детектор данных поезда/obj.data cfg/yolo-obj.cfg darknet53.conv.74
    5. Оценка YOLOv3
      После завершения обучения на основе определенного количества итераций(ITERATIONNUMBER)вы можете просмотреть их по
      Командная линия: ./darknet детектор тест данных / obj.data cfg/yolo-obj.cfg резервного копирования / yolo-obj_ITERATIONNUMBER.весов lt;IMAGE
  4. Прогноз на новые видео и получить координаты
    Эта команда может быть запущена для получения координат меток в новом видео:
    Командная линия: ./darknet детектор демо данных/obj.data cfg/yolo-obj.cfg резервного копирования/ yolo-obj_ITERATIONNUMBER.weights VIDEO.avi -ext_output
  5. YOLOv3 Постобработка в MATLAB
    Возьмите FILENAME.txt файл в MATLAB и запустите сценарий "Process_socialtest_mini м" для двух мышей социального взаимодействия теста. Посмотреть результаты на рисунке 2

4. OpenPose

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

  1. Установка OpenPose
    Перейдите на https://github.com/aarac/openpose и следуйте инструкциям по установке.
  2. Видео процесса
    ./build/examples/openpose/openpose/openpose.bin --video VIDEONAME.avi --net_resolution "1312x736" --scale_number 4 --scale_gap 0,25 --рука --hand_scale_number 6 --hand_scale_range 0,4 --write_json JSONFOLDERNAME --write_video
    Здесь net_resolution--scale_number,-scale_gap,-hand_scale_number и --hand_scale_range ручки могут быть опущены, если высокоточное обнаружение не требуется (это уменьшит время обработки).
  3. OpenPose после обработки
    В папке MATLAB, пожалуйста, используйте сценарий 'process_files_human3D.m' для запуска кода после добавления соответствующей папки, содержащей файлы json от камер 1 и 2, а также файл калибровки. Это позволит создать "ячейку" файл со всеми 3D-позы суставов. Он также сделает фильм о 3D скелетном виде. Для калибровки камеры, пожалуйста, следуйте инструкциям по этой ссылке: http://www.vision.caltech.edu/bouguetj/calib_doc/

Subscription Required. Please recommend JoVE to your librarian.

Representative Results

При соблюдении протокола данные для каждой сетевой архитектуры должны быть похожи на следующие. Для TensorBox он выводит ограничивающий ящик вокруг объекта интереса. В нашем примере мы использовали видео с пищевой гранулы достижения задачи, и помечены правой лапы, чтобы отслеживать их движение. Как видно на рисунке 1,правая лапа может быть обнаружена в разных положениях как в передней, так и в камерах сбоку. После постобработки с калибровкой камеры можно получить 3D траектории охвата(рисунок 1B).

В Yolov3, поскольку есть несколько объектов, выход также несколько ограничивающих ящиков. Как видно на рисунке 2B, Есть несколько ограничивающих коробки вокруг объектов, представляющих интерес. Это могут быть части тела.

В OpenPose сеть обнаруживает совместные позиции, как видно на рисунке 3А. После постобработки с калибровкой камеры может быть создана 3D-модель объекта(рисунок 3B).

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

Figure 1
Рисунок 1: Связанные коробки с TensorBox видели на лапах видео кадры во время достижения задачи у мышей. (Адаптировано из Arac et al 2019). Пожалуйста, нажмите здесь, чтобы просмотреть большую версию этой цифры.

Figure 2
Рисунок 2: Связанные коробки с Yolov3 видели на регионах, представляющих интерес в видео кадры во время двух мышей социального взаимодействия тест (сырое изображение, B проанализированое изображение). (Адаптировано из Arac et al 2019). Пожалуйста, нажмите здесь, чтобы просмотреть большую версию этой цифры.

Figure 3
Рисунок 3: Обнаружение позы человека с OpenPose в двух видах камеры (A) и 3D-модели, созданной из этих двух изображений (B). (Адаптировано из Arac et al 2019). Пожалуйста, нажмите здесь, чтобы просмотреть большую версию этой цифры.

Figure 4
Рисунок 4: make_json графический интерфейс TensorBox, используемый для обозначения обучаемых данных. Пожалуйста, нажмите здесь, чтобы просмотреть большую версию этой цифры.

Figure 5
Рисунок 5: ГРАФИЧЕСКИй интерфейс Yolo_Mark для обозначения изображений в формате, приемлемом для Yolov3. Пожалуйста, нажмите здесь, чтобы просмотреть большую версию этой цифры.

Subscription Required. Please recommend JoVE to your librarian.

Discussion

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

Для обнаружения одного объекта мы рекомендуем использовать TensorBox. Если цель состоит в том, чтобы отслеживать несколько объектов одновременно, мы рекомендуем использовать YOLOv3. Наконец, для получения человеческих кинематических данных мы рекомендуем использовать OpenPose. В этом протоколе мы показали, что методы глубокого обучения способны обрабатывать сотни тысяч кадров при отслеживании объектов с высокой степенью точности. Используя предоставленный код после обработки, мы можем получить значимые способы анализа отслеживаемого поведения интересов. Это обеспечивает более подробный способ захвата поведения. Он также предоставляет автоматизированный, надежный способ определения поведения, который обобщается для многих различных типов поведенческих задач.

Это довольно часто, чтобы получить "ModuleNotFoundError", когда, начиная с новой виртуальной среды или кода, который был загружен из Интернета. В случае, если это происходит, откройте свой терминал, активируйте исходную среду и введите 'установку пипса, имя модуля.'gt;'. Если проблема сохраняется, необходимо проверить версию python, а также другие пакеты зависимостей.

Ограничения этого метода включают техническую устранение неполадок для правильной настройки процессорных блоков GPU, совместимых с открытым исходным кодом. Выгодно иметь прошлый опыт программирования в среде linux, чтобы правильно настроить необходимые зависимости и среды проекта, совместимые с аппаратным обеспечением компьютера.

Мы демонстрируем установки инструментария DeepBehavior и обработку в среде linux, однако, этот набор инструментов также может быть запущен на компьютерах Windows и Mac с графическими процессорами, следуя соответствующим руководствам по установке на github.

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

Subscription Required. Please recommend JoVE to your librarian.

Disclosures

Авторам нечего раскрывать.

Acknowledgments

Мы хотели бы поблагодарить Pingping Чжао и Пейман Golshani для предоставления необработанных данных для двух-мышь социального взаимодействия испытаний, используемых в оригинальной бумаге2. Это исследование было поддержано ГРАНТами NIH NS109315 и NVIDIA GPU (AA).

Materials

Name Company Catalog Number Comments
CUDA v8.0.61 NVIDIA n/a GPU Software
MATLAB R2016b Mathworks n/a Matlab
Python 2.7 Python n/a Python Version
Quadro P6000 NVIDIA n/a GPU Processor
Ubuntu v16.04 Ubuntu n/a Operating System

DOWNLOAD MATERIALS LIST

References

  1. Krakauer, J. W., Ghazanfar, A. A., Gomez-Marin, A., MacIver, M. A., Poeppel, D. Neuroscience Needs Behavior: Correcting a Reductionist Bias. Neuron. 93, (3), 480-490 (2017).
  2. Arac, A., Zhao, P., Dobkin, B. H., Carmichael, S. T., Golshani, P. DeepBehavior: A Deep Learning Toolbox for Automated Analysis of Animal and Human Behavior Imaging Data. Front Syst Neurosci. 13, 20 (2019).
  3. Pereira, T. D., Aldarondo, D. E., Willmore, L., Kislin, M., Wang, S. S., Murthy, M., et al. Fast animal pose estimation using deep neural networks. Nat Methods. 16, (1), 117-125 (2019).
  4. Mathis, A., Mamidanna, P., Cury, K. M., Abe, T., Murthy, V. N., Mathis, M. W., et al. DeepLabCut: markerless pose estimation of user-defined body parts with deep learning. Nat Neurosci. 21, (9), 1281-1289 (2018).
  5. Stern, U., He, R., Yang, C. H. Analyzing animal behavior via classifying each video frame using convolutional neural networks. Sci Rep. 5, 14351 (2015).
  6. Tinbergen, N. On aims and methods of ethology. Zeitschrift für Tierpsychologie. 20, 410-433 (1963).
  7. LeCun, Y., Bengio, Y., Hinton, G. Deep Learning. Nature. 521, (7553), 436-444 (2015).
  8. Zhao, Z., Zheng, P., Xu, S., Wu, X. Object Detection With Deep Learning: A Review. IEEE Transactions on Neural Networks and Learning Systems. 1-21 (2019).
  9. He, K., Zhang, X., Ren, S., Deep Sun, J. Residual Learning for Image Recognition. arXiv. eprint (2015).
  10. Krizhevsky, A., Sutskever, I., Hinton, G. E. ImageNet classification with deep convolutional neural networks. Proceedings of the 25th International Conference on Neural Information Processing Systems. 1, Curran Associates Inc. Lake Tahoe, Nevada. 1097-1105 (2012).
  11. Szegedy, C., Wei, L., Yangqing, J., Sermanet, P., Reed, S., Anguelov, D., et al. Going deeper with convolutions. 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 7-12 (2015).
  12. Stewart, R., Andriluka, M., Ng, A. Y. End-to-End People Detection in Crowded Scenes. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 27-30 (2016).
  13. Redmon, J., Farhadi, A. YOLOv3: An Incremental Improvement. arXiv. eprint (2018).
  14. Cao, Z., Simon, T., Wei, S. E., Sheikh, Y. Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields. arXiv. (2017).
  15. Simon, T., Joo, H., Matthews, I., Sheikh, Y. Hand Keypoint Detection in Single Images using Multiview Bootstrapping. arXiv. eprint (2017).
  16. Wei, S. E., Ramakrishna, V., Kanade, T., Sheikh, Y. Convolutional Pose Machines. arXiv. eprint (2016).

Comments

0 Comments


    Post a Question / Comment / Request

    You must be signed in to post a comment. Please or create an account.

    Usage Statistics