Waiting
Login processing...

Trial ends in Request Full Access Tell Your Colleague About Jove
Click here for the English version

Behavior

Eine schrittweise Implementierung von DeepBehavior, Deep Learning Toolbox für automatisierte Verhaltensanalyse

Published: February 6, 2020 doi: 10.3791/60763

Summary

Der Zweck dieses Protokolls besteht darin, vorgefertigte konvolutionale neuronale Netze zu verwenden, um die Verhaltensverfolgung zu automatisieren und detaillierte Verhaltensanalysen durchzuführen. Verhaltensverfolgung kann auf alle Videodaten oder Sequenzen von Bildern angewendet werden und ist verallgemeinerbar, um jedes benutzerdefinierte Objekt zu verfolgen.

Abstract

Das Verständnis von Verhalten ist der erste Schritt, um neuronale Mechanismen im Gehirn, die es antreiben, wirklich zu verstehen. Herkömmliche Methoden zur Verhaltensanalyse erfassen oft nicht den Reichtum, der dem natürlichen Verhalten innewohnt. Hier bieten wir detaillierte Schritt-für-Schritt-Anleitungen mit Visualisierungen unserer aktuellen Methodik, DeepBehavior. Die DeepBehavior Toolbox verwendet Deep Learning-Frameworks, die mit konvolutionalen neuronalen Netzwerken erstellt wurden, um Verhaltensvideos schnell zu verarbeiten und zu analysieren. Dieses Protokoll veranschaulicht drei verschiedene Frameworks für die Erkennung einzelner Objekte, die Erkennung mehrerer Objekte und die dreidimensionale (3D) Personengelenkverfolgung. Diese Frameworks geben kartesische Koordinaten des Objekts zurück, das für jeden Frame des Verhaltensvideos von Interesse ist. Die aus der DeepBehavior-Toolbox gesammelten Daten enthalten viel mehr Details als herkömmliche Verhaltensanalysemethoden und bieten detaillierte Einblicke in die Verhaltensdynamik. DeepBehavior quantifiziert Verhaltensaufgaben auf robuste, automatisierte und präzise Weise. Nach der Identifizierung des Verhaltens wird Nachbearbeitungscode bereitgestellt, um Informationen und Visualisierungen aus den Verhaltensvideos zu extrahieren.

Introduction

Eine detaillierte Analyse des Verhaltens ist der Schlüssel zum Verständnis der Gehirn- und Verhaltensbeziehungen. Es gab viele spannende Fortschritte in der Methodik für die Aufzeichnung und Manipulation neuronaler Populationen mit hoher zeitlicher Auflösung, jedoch haben sich Verhaltensanalysemethoden nicht mit der gleichen Rate entwickelt und sind auf indirekte Messungen und einen reduktionistischen Ansatz beschränkt1. Kürzlich wurden Deep Learning-basierte Methoden entwickelt, um automatisierte und detaillierte Verhaltensanalysendurchzuführen 2,3,4,5. Dieses Protokoll bietet eine schritt für Schritt-Implementierungsanleitung für die DeepBehavior-Toolbox.

Herkömmliche Methoden zur Verhaltensanalyse umfassen häufig die manuelle Beschriftung von Daten durch mehrere Evaluatoren, was zu Einer Varianz bei der Definition eines Verhaltens durch Experimentatorenführt 6. Die manuelle Kennzeichnung der Daten erfordert Zeit und Ressourcen, die überproportional zur Menge der gesammelten Daten führen. Darüber hinaus reduzieren manuell beschriftete Daten die Verhaltensergebnisse in kategoriale Messungen, die den Umfang des Verhaltens nicht erfassen und subjektiver sein werden. Daher können die aktuellen traditionellen Methoden bei der Erfassung der Details in den natürlichen Verhaltensweisen begrenzt sein.

Die DeepBehavior-Toolbox stellt eine präzise, detaillierte, hochzeitliche und automatisierte Lösung dar, die Deep Learning für die Verhaltensanalyse verwendet. Deep Learning ist mit Open-Source-Tools und -Paketen schnell für alle zugänglich geworden. Convolutional neural networks (CNNs) haben sich bei Objekterkennungs- und Tracking-Aufgaben als hochwirksam erwiesen7,8. Mit modernen CNNs und Hochleistungs-Grafik-Verarbeitungseinheiten (GPUs) können große Bild- und Video-Datasets schnell mit hoher Präzision7,9,10,11verarbeitet werden. In DeepBehavior gibt es drei verschiedene konvolutionale neuronale Netzarchitekturen, TensorBox, YOLOv3 und OpenPose2.

Das erste Framework, Tensorbox, ist ein vielseitiges Framework, das viele verschiedene CNN-Architekturen für die Objekterkennungenthält 12. TensorBox eignet sich am besten zum Erkennen von nur einer Objektklasse pro Bild. Die resultierenden Ausgaben sind Begrenzungsrahmen des Objekts von Interesse (Abbildung 1) und der kartesischen Koordinaten des Begrenzungsrahmens.

Das zweite CNN-Framework ist YOLOv3, das für "You Only Look Once"13steht. YOLOv3 ist vorteilhaft, wenn es mehrere Objekte von Interesse gibt, die separat nachverfolgt werden müssen. Die Ausgabe dieses Netzwerks umfasst den Begrenzungsrahmen mit der zugeordneten Objektbeschriftungsklasse sowie die grenzgebenden kastenkarteschen Koordinaten des Objekts im Videoframe (Abbildung 2).

Die beiden vorherigen Rahmen sind vorteilhaft für generalisierte Verhaltensdaten, die aus Standardlaborexperimenten an tierischen Probanden erhoben wurden. Das letzte CNN-Framework ist OpenPose14,15,16, das für die Schätzung der menschlichen Gelenkpose verwendet wird. OpenPose erkennt menschliche Körper-, Hand-, Gesichts- und Fußschlüsselpunkte auf Bildern. Die Ausgänge des Rahmens sind beschriftete Bilder des menschlichen Subjekts sowie die Koordinaten aller 25 Schlüsselpunkte im Körper und 21 Schlüsselpunkte jeder Hand (Abbildung 3).

Diese detaillierte Schritt-für-Schritt-Anleitung für die Implementierung unserer kürzlich entwickelten Open-Source-Toolbox DeepBehavior verwendet modernste konvolutionale neuronale Netze, um das Verhalten von Tieren (z. B. Bewegung einer Pfote) oder menschliches Verhalten (z. B. Erreichen von Aufgaben) zu verfolgen. Durch die Verfolgung des Verhaltens können nützliche Kinematiken aus dem Verhalten wie Position, Geschwindigkeit und Beschleunigung abgeleitet werden. Das Protokoll erklärt die Installation der einzelnen CNN-Architekturen, zeigt, wie Trainings-Datasets erstellt werden, wie die Netzwerke trainiert werden, wie neue Videos im trainierten Netzwerk verarbeitet werden, wie die Daten aus dem Netzwerk auf den neuen Videos extrahiert werden und wie Sie die Ausgabedaten nachderverarbeitung, um sie für weitere Analysen nützlich zu machen.

Subscription Required. Please recommend JoVE to your librarian.

Protocol

1. GPU und Python Setup

  1. GPU-Software
    Wenn der Computer zum ersten Mal für Deep Learning-Anwendungen eingerichtet ist, sollten GPU-geeignete Software und Treiber installiert werden, die auf der jeweiligen Website der GPU zu finden sind. (siehe Materialtabelle für die in dieser Studie verwendeten Materialien).
  2. Python 2.7 Installation
    Öffnen Sie eine Eingabeaufforderung für die Eingabeaufforderung auf Ihrem Computer.
    Befehlszeile: sudo apt-get install python-pip python-dev python-virtualenv

2. TENSORBOX

  1. Tensorbox-Setup
    1. Virtuelle Umgebung für Tensorbox erstellen
      Befehlszeile: cd
      Befehlszeile: virtualenv --system-site-packages
      ANMERKUNG: '/tensorflow' ist der Name der Umgebung und ist
    2. Aktivieren der Umgebung
      Befehlszeile: Quelle s/tensorflow/bin/activate
  2. Tensorbox-Installation
    Wir werden GitHub verwenden, um TensorBox von http://github.com/aarac/TensorBox zu klonen und auf unserem Computer zu installieren sowie zusätzliche Abhängigkeiten zu installieren.
    Befehlszeile: cd
    Befehlszeile: git klonen http://github.com/aarac/TensorBox
    Befehlszeile: cd TensorBox
    Befehlszeile: pip install -r requirements.txt
  3. Etikettendaten
    1. Erstellen eines Ordners mit Verhaltensbildern
      Open-Source-Tools wie ffmpeg sind nützlich, um das Konvertieren von Videos in einzelne Frames zu erreichen. Wir empfehlen, mindestens 600 Bilder aus einer breiten Verteilung von Verhaltensrahmen für das Training zu beschriften. Legen Sie diese Bilder in einen Ordner.
    2. Starten der grafischen Benutzeroberfläche
      Befehlszeile: python make_json.py labels.json
      Um ein Bild zu beschriften, klicken Sie zuerst auf die obere linke Ecke des Objekts (d. h. Pfote) und dann auf die untere rechte Ecke des Objekts (Abbildung 4). Überprüfen Sie, ob der Begrenzungsrahmen das gesamte Objekt erfasst. Drücken Sie 'Undo', um dasselbe Bild neu zu beschriften, oder drücken Sie 'next', um zum nächsten Frame zu wechseln.
  4. Zug TensorBox
    1. Verknüpfen von Trainingsbildern mit netzwerkhyperparameter-Datei
      Öffnen Sie im Tensorbox-Ordner den folgenden Ordner in einem Texteditor:
      /TensorBox/hypes/overfeat_rezoom.json. Navigieren Sie zu dem Attribut unter daten train_idl und ersetzen Sie den Dateipfad von ./data/brainwash/train_boxes.json in den Dateipfad "labels.json". Speichern Sie die Änderungen in der Datei.
    2. Beginnen Sie mit dem Schulungsskript
      Befehlszeile: cd '/TensorBox
      Befehlszeile: python train.py --hypes hypes/overfeat_rezoom.json --gpu 0 --logdir output
      Das Netzwerk beginnt dann mit der Schulung für 600.000 Iterationen. Im Ausgabeordner werden die resultierenden trainierten Gewichtungen des konvolutionalen neuronalen Netzwerks generiert.
  5. Vorhersagen für neue Bilder
    Zur Bildbeschriftung:
    Befehlszeile: cd '/TensorBox
    Befehlszeile: python label_images.py --folder --weights output/overfeat_rezoom_/save.ckpt-600000 --hypes /hypes/overfeat_rezoom.json --gpu 0
    So erhalten Sie Koordinaten von Begrenzungsfeldern:
    Befehlszeile: cd '/TensorBox
    Befehlszeile: python predict_images_to_json.py --folder --weights
    output/overfeat_rezoom_/save.ckpt-600000 --hypes
    /hypes/overfeat_rezoom.json --gpu 0
  6. MATLAB Nachbearbeitung für TensorBox
    Zusätzlicher MATLAB-Code wurde bereitgestellt, um Kinematik und Visualisierungen der Koordinaten mithilfe der resultierenden JSON-Koordinatendatei aus dem Modell zu extrahieren.
    Führen Sie das Skript "Process_files_3Dreaching_mouse.m" für die 3D-kinematische Analyse der Aufgabe des Erreichens von Einzelfutterpellets aus.

3. YOLOv3

  1. Installieren von YOLOv3
    Befehlszeile: cd
    Befehlszeile: git clone cd darknet
    Öffnen Sie für die GPU-Nutzung 'Makefile' und ändern Sie die folgenden Zeilen: GPU=1; CUDNN=1.
    Befehlszeile: make
  2. Beschriften von Trainingsdaten mit Yolo_mark
    Befehlszeile: cd
    Befehlszeile: git clone cd /Yolo_Mark
    Befehlszeile: cmake .
    Befehlszeile: make
    Platzieren Sie die Trainingsbilder im Ordner "Yolo_mark/data/obj"
    Befehlszeile: chmod +x ./linux_mark.sh
    Befehlszeile: ./linux_mark.sh
    Beschriften Sie die Bilder nacheinander in der grafischen Benutzeroberfläche (Abbildung 5). Die empfohlene Bildmenge beträgt ca. 200.
  3. Training YOLOv3
    1. Setup-Konfigurationsdatei
      Befehlszeile: cd /Yolo_mark
      Befehlszeile: scp -r ./data
      Befehlszeile: cd/darknet/cfg
      Befehlszeile: cp yolov3.cfg yolo-obj.cfg
    2. Ändern der Konfigurationsdatei
      Öffnen Sie den Ordner yolo-obj.cfg, und ändern Sie die folgenden Zeilen: batch=64, subdivision=8, classes=(' of class to detect), und für jede konvolutionale Ebene ändern Sie die filter=(classes+5)x3. Details zu diesen Änderungen finden Sie unter https://github.com/aarac/darknet/blob/master/README.md
    3. Netzwerkgewichtungen herunterladen
      Laden Sie die Netzwerkgewichtungen von https://www.dropbox.com/s/613n2hwm5ztbtuf/darknet53.conv.74?dl=0
      Platzieren Sie die heruntergeladene Gewichtsdatei in s/darknet/build/darknet/x64
    4. Ausführen eines Trainingsalgorithmus
      Befehlszeile: cd/darknet
      Befehlszeile: ./darknet detector train data/obj.data cfg/yolo-obj.cfg darknet53.conv.74
    5. YOLOv3-Bewertung
      Nachdem die Schulung basierend auf einer festgelegten Anzahl von Iterationen (ITERATIONNUMBER)abgeschlossen ist, können Sie sie
      Befehlszeile: ./darknet detector test data/obj.data cfg/yolo-obj.cfg backup/yolo-obj_ITERATIONNUMBER.weights .jpg
  4. Neue Videos vorhersagen und Koordinaten abrufen
    Dieser Befehl kann ausgeführt werden, um die Koordinaten der Beschriftungen im neuen Video abzurufen:
    Befehlszeile: ./darknet detector demo data/obj.data cfg/yolo-obj.cfg backup/yolo-obj_ITERATIONNUMBER.weights VIDEO.avi -ext_output FILENAME.txt
  5. YOLOv3 Nachbearbeitung in MATLAB
    Führen Sie die Datei FILENAME.txt in MATLAB aus, und führen Sie das Skript "Process_socialtest_mini.m" für den sozialen Interaktionstest für zwei Mäuse aus. Siehe Ergebnisse in Abbildung 2

4. OpenPose

OpenPose ist ideal, um mehrere Körperteile in einem menschlichen Subjekt zu verfolgen. Die Einrichtungs- und Installationsprozesse sind den vorherigen beiden Frameworks sehr ähnlich. Es gibt jedoch keinen Ausbildungsschritt, da das Netzwerk bereits auf menschliche Daten trainiert ist.

  1. OpenPose-Installation
    Navigieren Sie zu https://github.com/aarac/openpose und befolgen Sie die Installationsanweisungen.
  2. Prozessvideo
    ./build/examples/openpose/openpose.bin --video VIDEONAME.avi --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 --hand --hand_scale_number 6 --hand_scale_range 0.4 --write_json JSONFOLDERNAME --write_video RESULTINGVIDEONAME.avi
    Hier können die --net_resolution, --scale_number, --scale_gap, --hand_scale_number und --hand_scale_range Handles weggelassen werden, wenn keine Hochpräzisionserkennung erforderlich ist (dies würde die Verarbeitungszeit verringern).
  3. OpenPose Nachbearbeitung
    Verwenden Sie im Ordner MATLAB das Skript "process_files_human3D.m", um den Code auszuführen, nachdem Sie den entsprechenden Ordner mit json-Dateien der Kameras 1 und 2 sowie die Kalibrierungsdatei hinzugefügt haben. Dadurch wird eine "Zell"-Datei mit allen 3D-Posen der Gelenke erstellt. Es wird auch einen Film der 3D-Skelettansicht machen. Für die Kamerakalibrierung folgen Sie bitte den Anweisungen unter folgendem Link: http://www.vision.caltech.edu/bouguetj/calib_doc/

Subscription Required. Please recommend JoVE to your librarian.

Representative Results

Wenn das Protokoll befolgt wird, sollten die Daten für jede Netzwerkarchitektur den folgenden ähneln. Für TensorBox gibt es einen Begrenzungsrahmen um das Objekt von Interesse aus. In unserem Beispiel haben wir Videos von einem Lebensmittelpellet verwendet, das Aufgaben angeht, und die richtigen Pfoten beschriftet, um ihre Bewegung zu verfolgen. Wie in Abbildung 1 zu sehen,kann die rechte Pfote sowohl in der Frontansicht als auch in der Seitenansicht von Kameras in verschiedenen Positionen erkannt werden. Nach der Nachbearbeitung mit Kamerakalibrierung können 3D-Trajektorien der Reichweite erhalten werden (Abbildung 1B).

In Yolov3, da es mehrere Objekte gibt, ist die Ausgabe auch mehrere Begrenzungsfelder. Wie in Abbildung 2Bdargestellt, gibt es mehrere Begrenzungsfelder um die Objekte von Interesse. Dies können Teile des Körpers sein.

In OpenPose erkennt das Netzwerk die gemeinsamen Positionen, wie in Abbildung 3Adargestellt. Nach der Nachbearbeitung mit Kamerakalibrierung kann ein 3D-Modell des Motivs erstellt werden (Abbildung 3B).

Zusammenfassend lassen sich sagen, dass diese repräsentativen Ergebnisse die umfangreichen Details des Verhaltens zeigen, die mit der DeepBehavior-Toolbox erfasst werden können.

Figure 1
Abbildung 1: Begrenzungskästen mit TensorBox, die während einer Anlaufaufgabe bei Mäusen auf den Pfoten von Videorahmen zu sehen sind. (Angepasst von Arac et al 2019). Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

Figure 2
Abbildung 2: Begrenzungskästen mit Yolov3, die in den Bereichen von Interesse für Videoframes während eines Tests der sozialen Interaktion von zwei Mäusen gesehen werden (Ein Rohbild, B-analysiertes Bild). (Angepasst von Arac et al 2019). Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

Figure 3
Abbildung 3: Menschliche Pose-Erkennung mit OpenPose in zwei Kameraansichten (A) und 3D-Modell aus diesen beiden Bildern (B) erstellt. (Angepasst von Arac et al 2019). Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

Figure 4
Abbildung 4: Die make_json-GUI von TensorBox, die zum Beschriften von Trainingsdaten verwendet wird. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

Figure 5
Abbildung 5: GUI der Yolo_Mark, Bilder in einem für Yolov3 akzeptablen Format zu beschriften. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

Subscription Required. Please recommend JoVE to your librarian.

Discussion

Hier bieten wir eine Schritt-für-Schritt-Anleitung für die Implementierung von DeepBehavior, unserer kürzlich entwickelten Deep Learning-basierten Toolbox für die Analyse vonBildgebungsdatenfür tier- und humanes Verhalten 2 . Wir bieten detaillierte Erläuterungen für jeden Schritt für die Installation der Frameworks für jede Netzwerkarchitektur und stellen Links für die Installation der Open-Source-Anforderungen bereit, um diese Frameworks ausführen zu können. Wir zeigen, wie sie installiert werden, wie Sie Schulungsdaten erstellen, wie Sie das Netzwerk trainieren und wie Sie neue Videodateien im trainierten Netzwerk verarbeiten. Wir stellen auch den Nachbearbeitungscode zur Verfügung, um die grundlegenden Informationen zu extrahieren, die für die weitere Analyse erforderlich sind.

Für die Einzelobjekterkennung empfehlen wir die Verwendung von TensorBox. Wenn das Ziel darin besteht, mehrere Objekte gleichzeitig zu verfolgen, empfehlen wir die Verwendung von YOLOv3. Um menschliche kinematische Daten zu erhalten, empfehlen wir schließlich die Verwendung von OpenPose. In diesem Protokoll haben wir gezeigt, dass Deep-Learning-Methoden in der Lage sind, Hunderttausende von Frames zu verarbeiten und dabei Objekte mit einem hohen Maß an Präzision zu verfolgen. Mithilfe des bereitgestellten Post-Processing-Codes können wir sinnvolle Methoden zur Analyse des verfolgten Verhaltens von Interesse ableiten. Dies bietet eine detailliertere Möglichkeit, Verhalten zu erfassen. Es bietet auch eine automatisierte, robuste Möglichkeit, Verhalten zu definieren, das für viele verschiedene Arten von Verhaltensaufgaben verallgemeinert werden kann.

Es ist durchaus üblich, einen "ModuleNotFoundError" zu erhalten, wenn sie mit einer neuen virtuellen Umgebung oder einem neuen Code beginnen, der aus dem Internet heruntergeladen wurde. Öffnen Sie in diesem Fall Ihr Terminal, aktivieren Sie die Quellumgebung und geben Sie 'pip install ' ein. Wenn das Problem weiterhin besteht, müssen Sie Ihre Python-Version sowie andere Abhängigkeitspakete überprüfen.

Zu den Einschränkungen dieser Technik gehört die technische Fehlerbehebung, um GPU-Verarbeitungseinheiten ordnungsgemäß einzurichten, die mit Open-Source-Code kompatibel sind. Es ist vorteilhaft, bereits in einer Linux-Umgebung Programmiererfahrung zu haben, um die erforderlichen Projektabhängigkeiten und Umgebungen, die mit der Hardware des Computers kompatibel sind, ordnungsgemäß einzurichten.

Wir demonstrieren die DeepBehavior Toolbox Installationen und die Verarbeitung von in einer Linux-Umgebung, aber diese Toolbox kann auch auf einem Windows- und Mac-Rechner mit GPUs ausgeführt werden, indem sie den entsprechenden Installationsanleitungen auf github folgt.

Die Verwendung von Deep Learning-Methoden für die Bilddatenanalyse ist eine sehr effiziente Möglichkeit, die Verhaltensanalyse zu automatisieren. Im Vergleich zu herkömmlichen Verhaltensanalysemethoden erfasst DeepBehavior viel mehr Informationen, um das Verhalten präziser und zeitlich detaillierter zu quantifizieren, zu automatisieren und zu bewerten. Mit den weiteren Fortschritten im Bereich Deep Learning wird sich die Nutzung und der Umfang des Einsatzes dieser Technologie in der Verhaltensanalyse wahrscheinlich weiter verbessern. Die Anwendungen von DeepBehavior können über die vorgänglichen Aufgaben hinaus erweitert werden, um Objekte zu identifizieren, die für verhaltensbezogene Bilder von Interesse sind. In diesem Protokoll stellen wir detaillierte Anweisungen zum Implementieren von drei neuronalen Netzwerken für die Verhaltensanalyse bereit. Mit dieser Art von automatisierten und unvoreingenommenen Verhaltensanalysemethoden wird der bereichder Neurowissenschaften hoffentlich in der Lage sein, detailliertere Verhaltensanalysen durchzuführen.

Subscription Required. Please recommend JoVE to your librarian.

Disclosures

Die Autoren haben nichts zu verraten.

Acknowledgments

Wir möchten Pingping Zhao und Peyman Golshani für die Bereitstellung der Rohdaten für Zwei-Maus-Tests zur sozialen Interaktion mit zwei Mäusen danken, die in der Originalarbeit2verwendet werden. Diese Studie wurde von NIH NS109315 und NVIDIA GPU Grants (AA) unterstützt.

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

Tags

Verhalten Ausgabe 156 Deep Learning Verhaltensanalyse Konvolutionale neuronale Netze Maschinelles Lernen Kinematische Analyse Automatisierte Analyse Tierverhalten menschliches Verhalten Erreichen von Aufgaben Bilddaten Videodaten 3D-Kinematik
Eine schrittweise Implementierung von DeepBehavior, Deep Learning Toolbox für automatisierte Verhaltensanalyse
Play Video
PDF DOI DOWNLOAD MATERIALS LIST

Cite this Article

Shukla, S., Arac, A. A Step-by-StepMore

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

Less
Copy Citation Download Citation Reprints and Permissions
View Video

Get cutting-edge science videos from JoVE sent straight to your inbox every month.

Waiting X
Simple Hit Counter