JoVE Logo

Sign In

A subscription to JoVE is required to view this content. Sign in or start your free trial.

In This Article

  • Summary
  • Abstract
  • Introduction
  • Protocol
  • النتائج
  • Discussion
  • Disclosures
  • Acknowledgements
  • Materials
  • References
  • Reprints and Permissions

Summary

الغرض من هذا البروتوكول هو الاستفادة من الشبكات العصبية الملتوية المبنية مسبقًا لأتمتة تتبع السلوك وإجراء تحليل سلوكي مفصل. يمكن تطبيق تتبع السلوك على أي بيانات فيديو أو تسلسلات من الصور وقابلة للتعميم لتتبع أي كائن معرف من قبل المستخدم.

Abstract

فهم السلوك هو الخطوة الأولى لفهم الآليات العصبية في الدماغ حقا أن الدافع لها. غالبًا ما لا تلتقط طرق التحليل السلوكي التقليدية الثراء المتأصل في السلوك الطبيعي. هنا ، نقدم تعليمات مفصلة خطوة بخطوة مع تصورات منهجيتنا الأخيرة ، DeepBehavior. يستخدم صندوق أدوات DeepBehavior أطر التعلم العميق المبنية بشبكات عصبية ملتوية لمعالجة مقاطع الفيديو السلوكية وتحليلها بسرعة. يوضح هذا البروتوكول ثلاثة أطر مختلفة للكشف عن جسم واحد ، والكشف عن الكائنات المتعددة ، وثلاثي الأبعاد (3D) الإنسان المشترك تشكل تتبع. ترجع هذه الأطر إحداثيات الديكارتية للكائن موضع الاهتمام لكل إطار من فيديو السلوك. البيانات التي تم جمعها من صندوق أدوات DeepBehavior تحتوي على تفاصيل أكثر بكثير من أساليب تحليل السلوك التقليدية وتوفر رؤى مفصلة لديناميكيات السلوك. يحدد DeepBehavior مهام السلوك بطريقة قوية وتلقائية ودقيقة. بعد تحديد السلوك ، يتم توفير رمز ما بعد المعالجة لاستخراج المعلومات والمرئيات من مقاطع الفيديو السلوكية.

Introduction

تحليل مفصل للسلوك هو المفتاح لفهم الدماغ والعلاقات السلوكية. كانت هناك العديد من التقدم المثير في منهجيات تسجيل ومعالجة مجموعات الخلايا العصبية ذات الدقة الزمنية العالية ، ومع ذلك ، لم تتطور أساليب تحليل السلوك بنفس المعدل وتقتصر على القياسات غير المباشرة والنهج الاختزالي1. في الآونة الأخيرة ، تم تطوير أساليب التعلم العميق القائم على إجراء تحليل سلوكي آلي ومفصل2،3،4،5. يوفر هذا البروتوكول دليل تنفيذ خطوة بخطوة لأدوات DeepBehavior.

غالبًا ما تتضمن أساليب التحليل السلوكي التقليدية وضع علامات يدوية على البيانات من قبل مقيّمين متعددين، مما يؤدي إلى تباين في كيفية تعريف المجربين لسلوك6. ويتطلب وضع العلامات اليدوية للبيانات وقتا وموارد تزيد بشكل غير متناسب مع كمية البيانات المجمعة. وعلاوة على ذلك، فإن البيانات الموسومة يدويًا تقلل من نتائج السلوك إلى قياسات فئوية لا تلتقط ثراء السلوك، وستكون أكثر ذاتية. وبالتالي ، قد تكون الأساليب التقليدية الحالية محدودة في التقاط التفاصيل في السلوكيات الطبيعية.

يقدم صندوق أدوات DeepBehavior حلاً دقيقاً ومفصلاً وزمنياً للغاية وآلياً باستخدام التعلم العميق للتحليل السلوكي. وسرعان ما أصبح التعلم العميق في متناول الجميع باستخدام أدوات وحزم مفتوحة المصدر. ثبت أن الشبكات العصبية الملتوية (CNNs) فعالة للغاية في مهام التعرف على الكائنات وتتبعها7و8. باستخدام CNNs الحديثة ووحدات معالجة الرسومات عالية الأداء (وحدات معالجة الرسومات) ، يمكن معالجة مجموعات البيانات الكبيرة للصور والفيديو بسرعة بدقة عالية7و9و10و11. في DeepBehavior ، هناك ثلاثة أبنية صافي ة عصبية ملتوية مختلفة ، TensorBox ، YOLOv3 ، و OpenPose2.

الإطار الأول ، Tensorbox ، هو إطار متعدد الاستخدامات يتضمن العديد من أبنية CNN المختلفة للكشف عن الكائنات12. TensorBox هو الأنسب للكشف عن فئة كائن واحد فقط لكل صورة. المخرجات الناتجة هي مربعات محيطة من الكائن موضع الاهتمام(الشكل 1)والإحداثيات الديكارتية للمربع المحيط.

الإطار الثاني سي هو YOLOv3، الذي يرمز إلى "أنت تبدو مرة واحدة فقط"13. YOLOv3 مفيد عندما يكون هناك العديد من الكائنات ذات الأهمية التي يجب تعقبها بشكل منفصل. يتضمن إخراج هذه الشبكة المربع المحيط بفئة تسمية الكائن المقترن بالإضافة إلى إحداثيات المربع الديكارتي المحيط للكائن في إطار الفيديو(الشكل 2).

الإطاران السابقان مفيدان للبيانات السلوكية المعممة التي يتم جمعها من التجارب المختبرية القياسية في الموضوعات الحيوانية. إطار سي إن إن الأخير هو OpenPose14،15،16 الذي يستخدم لتقدير تشكل مشتركة الإنسان. يكشف OpenPose عن جسم الإنسان واليد والوجه والقدم النقاط الرئيسية على الصور. وتسمى مخرجات الإطار صورا ً للموضوع البشري بالإضافة إلى إحداثيات جميع النقاط الرئيسية الـ 25 في الجسم و21 نقطة رئيسية لكل يد(الشكل 3).

هذا الدليل التفصيلي خطوة بخطوة لتنفيذ صندوق أدوات DeepBehavior المفتوح المصدر الذي تم تطويره مؤخرًا يستخدم شبكات عصبية ملتوية حديثة لتتبع سلوك الحيوان (مثل حركة مخلب) أو السلوك البشري (على سبيل المثال الوصول إلى المهام). من خلال تتبع السلوك، يمكن اشتقاق الحركية المفيدة من السلوك مثل الموضع والسرعة والتسارع. يشرح البروتوكول تركيب كل بنية CNN ، ويوضح كيفية إنشاء مجموعات بيانات تدريبية ، وكيفية تدريب الشبكات ، وكيفية معالجة مقاطع الفيديو الجديدة على الشبكة المدربة ، وكيفية استخراج البيانات من الشبكة على مقاطع الفيديو الجديدة ، وكيفية ما بعد معالجة بيانات الإخراج لجعلها مفيدة لمزيد من التحليل.

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

Protocol

1. GPU والإعداد بيثون

  1. برامج GPU
    عندما يتم إعداد الكمبيوتر لأول مرة لتطبيقات التعلم العميق ، يجب تثبيت البرامج وبرامج التشغيل المناسبة لوحدة معالجة الرسومات والتي يمكن العثور عليها على موقع GPU المعني. (انظر جدول المواد الخاصة بتلك المستخدمة في هذه الدراسة).
  2. بيثون 2.7 التثبيت
    افتح موجه سطر الأوامر على جهازك.
    سطر الأوامر: سودو apt-الحصول على تثبيت بيثون-بيب بيثون-ديف-فيرفيرينف

2. TENSORBOX

  1. إعداد مربع الشد
    1. إنشاء بيئة افتراضية لـ Tensorbox
      سطر الأوامر: مؤتمر نزع السلاح ~
      سطر الأوامر: virtualenv - حزم موقع النظام ~ / tensorflow
      ملاحظة: '~/tensorflow' هو اسم البيئة وهو تعسفي
    2. تنشيط البيئة
      سطر الأوامر: مصدر ~/tensorflow/bin/activate
  2. تثبيت Tensorbox
    سوف نستخدم GitHub لاستنساخ TensorBox من http://github.com/aarac/TensorBox وتثبيته على جهازنا وكذلك تثبيت تبعيات إضافية.
    سطر الأوامر: مؤتمر نزع السلاح ~
    سطر الأوامر: http://github.com/aarac/TensorBox استنساخ git
    سطر الأوامر: القرص المضغوط TensorBox
    سطر الأوامر: نقطة تثبيت -r requirements.txt
  3. بيانات التسمية
    1. إنشاء مجلد من صور السلوك
      أدوات المصدر المفتوح مثل ffmpeg مفيدة لإنجاز تحويل مقاطع الفيديو إلى إطارات فردية نوصي بوضع علامة على ما لا يقل عن 600 صورة من توزيع واسع لإطارات السلوك للتدريب. وضع هذه الصور في مجلد.
    2. إطلاق تسمية واجهة المستخدم الرسومية
      سطر الأوامر: بيثون make_json.py < المسار إلى مجلد الصورة > labels.json
      لتسمية صورة، انقر فوق الزاوية اليسرى العليا من الكائن موضع الاهتمام (أي مخلب) أولاً ثم انقر فوق الزاوية اليمنى السفلى من الكائن موضع الاهتمام(الشكل 4). تأكد من أن المربع المحيط يلتقط الكائن بأكمله موضع الاهتمام. اضغط على "التراجع" لإعادة تسمية نفس الصورة أو اضغط على "التالي" للانتقال إلى الإطار التالي.
  4. قطار تنسوربوكس
    1. ربط صور التدريب بملف hyperparameters للشبكة
      داخل مجلد tensorbox، افتح المجلد التالي في محرر نص:
      / TensorBox / الضجيج / overfeat_rezoom.json. انتقل إلى السمة تحت البيانات المسماة train_idl واستبدال مسار الملف من ./data/brainwash/train_boxes.json إلى ملف labels.json. حفظ التغييرات إلى ملف.
    2. بدء التدريب النصي
      سطر الأوامر: CD ~/TensorBox
      سطر الأوامر: الثعبان train.py -- الضجيج الضجيج / overfeat_rezoom.json -- gpu 0 -- إخراج logdir
      وستبدأ الشبكة بعد ذلك في التدريب على 600,000 تكرار. في مجلد الإخراج، سيتم إنشاء الأوزان المدربة الناتجة للشبكة العصبية الملتوية.
  5. توقع على صور جديدة
    للصق العلامات على الصور:
    سطر الأوامر: CD ~/TensorBox
    سطر الأوامر: بيثون label_images.py -مجلد < مسار إلى مجلد الصورة > --الأوزان الإخراج / overfeat_rezoom_ < الطابع الزمني > / save.ckpt-600000 - الضجيج / الضجيج / overfeat_rezoom.json - gpu 0
    للحصول على إحداثيات المربعات المحيطة:
    سطر الأوامر: CD ~/TensorBox
    سطر الأوامر: الثعبان predict_images_to_json.py -مجلد < مسار إلى مجلد الصورة > --الأوزان
    الإخراج / overfeat_rezoom_ < الطابع الزمني > / save.ckpt-600000 -- الضجيج
    / الضجيج / overfeat_rezoom.json -- gpu 0
  6. ماتلاب ما بعد المعالجة لTensorBox
    تم توفير رمز MATLAB إضافي لاستخراج الحركيات والمرئيات للإحداثيات باستخدام ملف إحداثيات JSON الناتج من النموذج
    تشغيل "Process_files_3Dreaching_mouse.m" النصي لتحليل الحركية 3D من بيليه الغذاء واحد الوصول إلى المهمة.

3- يولوف3

  1. تثبيت YOLOv3
    سطر الأوامر: مؤتمر نزع السلاح ~
    سطر الأوامر: git استنساخ cd darknet
    لاستخدام GPU، افتح "Makefile" وغيّر السطور التالية: GPU =1؛ CUDNN =1.
    سطر الأوامر: جعل
  2. وضع العلامات على بيانات التدريب باستخدام Yolo_mark
    سطر الأوامر: مؤتمر نزع السلاح ~
    سطر الأوامر: git استنساخ CD ~ / Yolo_Mark
    سطر الأوامر: cmake .
    سطر الأوامر: جعل
    وضع الصور التدريبية في مجلد ~ / Yolo_mark / البيانات / obj
    سطر الأوامر: chmod +x ./linux_mark.sh
    سطر الأوامر: ./linux_mark.sh
    تسمية الصور واحدا تلو الآخر في واجهة المستخدم الرسومية(الشكل 5). الكمية الموصى بها من الصور حوالي 200.
  3. تدريب YOLOv3
    1. ملف تكوين الإعداد
      سطر الأوامر: cd ~/Yolo_mark
      سطر الأوامر: scp -r ./data ~/darknet
      سطر الأوامر: CD ~/darknet/cfg
      سطر الأوامر: cp yolov3.cfg yolo-obj.cfg
    2. تعديل ملف التكوين
      افتح مجلد yolo-obj.cfg وقم بتعديل الأسطر التالية: batch = 64، التقسيم الفرعي = 8، الفئات =(# من الفئة للكشف)، ولكل طبقة التفافية قبل أن تغير طبقة يولو عامل التصفية =(الفئات +5) x3. ويمكن الاطلاع على تفاصيل هذه التغييرات في https://github.com/aarac/darknet/blob/master/README.md
    3. تنزيل أوزان الشبكة
      تحميل أوزان الشبكة من https://www.dropbox.com/s/613n2hwm5ztbtuf/darknet53.conv.74?dl=0
      ضع ملف الوزن الذي تم تنزيله في ~/darknet/buildnet/darknet/x64
    4. تشغيل خوارزمية التدريب
      سطر الأوامر: CD ~/darknet
      سطر الأوامر: ./darknet كاشف بيانات القطار/obj.data cfg/yolo-obj.cfg darknet53.conv.74
    5. تقييم YOLOv3
      بعد اكتمال التدريب استنادًا إلى عدد محدد من التكرارات(تكرار رقم)، يمكنك عرضها بواسطة
      سطر الأوامر: ./darknet كشف اختبار البيانات/obj.data cfg/yolo-obj.cfg النسخ الاحتياطي/yolo-obj_ITERATIONNUMBER.weights < IMAGE>.jpg
  4. توقع على مقاطع فيديو جديدة واحصل على إحداثيات
    يمكن تشغيل هذا الأمر للحصول على إحداثيات التسميات في الفيديو الجديد:
    سطر الأوامر: ./darknet كاشف البيانات التجريبية/obj.data cfg/yolo-obj.cfg النسخ الاحتياطي/yolo-obj_ITERATIONNUMBER.weights VIDEO.avi -ext_output FILENAME.txt
  5. YOLOv3 معالجة ما بعد في MATLAB
    خذ ملف FILENAME.txt إلى MATLAB، وتشغيل البرنامج النصي "Process_socialtest_mini.m" لاختبار التفاعل الاجتماعي الفئران اثنين. انظر النتائج في الشكل 2

4. OpenPose

OpenPose مثالية لتتبع أجزاء الجسم متعددة في موضوع الإنسان. عمليات الإعداد والتثبيت مشابهة جداً لإطاري العمل السابقين. ومع ذلك، لا توجد خطوة تدريبية لأن الشبكة مدربة بالفعل على البيانات البشرية.

  1. تثبيت OpenPose
    انتقل إلى https://github.com/aarac/openpose واتبع إرشادات التثبيت.
  2. معالجة الفيديو
    ./build/examples/openpose/openpose.bin --videoNAME.avi -- net_resolution "1312x736" -- scale_number 4 -- scale_gap 0.25 -- hand_scale_number - hand_scale_number - 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.

Discussion

هنا ، نقدم دليلخطوة بخطوة لتنفيذ DeepBehavior ، لدينا مؤخرا وضعت التعلم العميق القائم على أدوات لتحليل بيانات التصوير السلوك الحيواني والبشري2. نحن نقدم تفسيرات مفصلة لكل خطوة لتركيب الأطر لكل بنية شبكة ، وتوفير وصلات لتركيب متطلبات المصدر المفتوح لتكون قادرة على تشغيل هذه الأطر. ?...

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

Disclosures

وليس لدى صاحبي البلاغ ما يكشفان عنه.

Acknowledgements

نود أن نشكر بينغ بينغ تشاو وبيمان غولشاني لتوفير البيانات الخام لاختبارات التفاعل الاجتماعي اثنين من الماوس المستخدمة في الورقة الأصلية2. تم دعم هذه الدراسة من قبل المعاهد القومية للصحة NS109315 ومنح NVIDIA GPU (AA).

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

Materials

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

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

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

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Explore More Articles

156

This article has been published

Video Coming Soon

JoVE Logo

Privacy

Terms of Use

Policies

Research

Education

ABOUT JoVE

Copyright © 2025 MyJoVE Corporation. All rights reserved