JoVE Logo

Войдите в систему

Для просмотра этого контента требуется подписка на Jove Войдите в систему или начните бесплатную пробную версию.

В этой статье

  • Резюме
  • Аннотация
  • Введение
  • протокол
  • Результаты
  • Обсуждение
  • Раскрытие информации
  • Благодарности
  • Материалы
  • Ссылки
  • Перепечатки и разрешения

Резюме

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

Аннотация

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

Введение

Подробный анализ поведения является ключом к пониманию мозга и отношения поведения. Там было много интересных достижений в методологиях для записи и манипулирования нейронных популяций с высоким временным разрешением, однако, методы анализа поведения не разработаны с той же скоростью и ограничиваются косвенными измерениями и редукционистский подход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, демонстрирует, как создавать обучающие наборы данных, как обучать сети, как обрабатывать новые видео в обученной сети, как извлечь данные из сети на новых видео, и как после обработки выходных данных, чтобы сделать их полезными для дальнейшего анализа.

Access restricted. Please log in or start a trial to view this content.

протокол

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/

Access restricted. Please log in or start a trial to view this content.

Результаты

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

Access restricted. Please log in or start a trial to view this content.

Обсуждение

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

Access restricted. Please log in or start a trial to view this content.

Раскрытие информации

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

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

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

Access restricted. Please log in or start a trial to view this content.

Материалы

NameCompanyCatalog NumberComments
CUDA v8.0.61NVIDIAn/aGPU Software
MATLAB R2016bMathworksn/aMatlab
Python 2.7Pythonn/aPython Version
Quadro P6000NVIDIAn/aGPU Processor
Ubuntu v16.04Ubuntun/aOperating System

Ссылки

  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).

Access restricted. Please log in or start a trial to view this content.

Перепечатки и разрешения

Запросить разрешение на использование текста или рисунков этого JoVE статьи

Запросить разрешение

Смотреть дополнительные статьи

1563D

This article has been published

Video Coming Soon

JoVE Logo

Исследования

Образование

О JoVE

Авторские права © 2025 MyJoVE Corporation. Все права защищены