التعرف على عمل ثنائي
نستخدم CNN المكاني والحركة CNN مع RESNET101 لنمذجة معلومات الفيديو في مجموعة بيانات UCF101.
ورقة مرجعية
- ]
- [2] شبكات القطاع الزمني: نحو الممارسات الجيدة للتعرف على العمل العميق
- [3] TS-LSTM والتصور الزمني: استغلال الديناميات الزمانية المكانية للتعرف على النشاط
1. البيانات
1.1 بيانات الإدخال المكانية -> إطارات RGB
- نقوم باستخراج إطارات RGB من كل مقطع فيديو في مجموعة بيانات UCF101 مع معدل أخذ العينات: 10 وحفظ صورة .jpg في القرص الذي يكلف حوالي 5.9 جم.
1.2 بيانات إدخال الحركة -> صور تدفق بصري مكدسة
في دفق الحركة ، نستخدم طريقتين للحصول على بيانات التدفق البصري.
- قم بتنزيل مجموعة بيانات التدفق البصري TVL1 المعالجة مباشرة من https://github.com/feichtenhofer/twostreamfusion.
- باستخدام طريقة Flownet2.0 لإنشاء صورة تدفق بصري من قناة وحفظ قناة X ، Y كصورة .jpg في القرص على التوالي ، والتي تكلف حوالي 56 جم.
1.3 (بديل) قم بتنزيل البيانات المسبقة مباشرة من Feichtenhofer/TwoStreamFusion)
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.001
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.002
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.003
cat ucf101_jpegs_256.zip* > ucf101_jpegs_256.zip
unzip ucf101_jpegs_256.zip
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.001
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.002
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.003
cat ucf101_tvl1_flow.zip* > ucf101_tvl1_flow.zip
unzip ucf101_tvl1_flow.zip
2. نموذج
2.1 CNN المكاني
- كما ذكر من قبل ، نحن نستخدم Resnet101 تم تدريبه مسبقًا مع ImageNet ثم صقله على مجموعة بيانات صور RGB المكانية UCF101.
2.2 الحركة CNN
- بيانات الإدخال من الحركة CNN هي كومة من صور التدفق البصري تحتوي على 10 صور من القنوات X و 10 y قناة ، لذلك يكون شكل الإدخال (20 ، 224 ، 224) يمكن اعتباره صورة 20 قناة.
- من أجل الاستفادة من وزن ImageNet مسبقًا على نموذجنا ، يتعين علينا تعديل أوزان طبقة الالتواء الأولى التي تم تدريبها مسبقًا مع ImageNet من (64 ، 3 ، 7 ، 7) إلى (64 ، 20 ، 7 ، 7).
- في [2] Wang يقدم طريقة تسمى ** Cross Modality قبل
** للقيام بهذه الأوزان تحويل شكل. أول متوسط قيمة الوزن عبر قنوات RGB وتكرار هذا المتوسط حسب عدد قناة إدخال دفق الحركة (وهو 20 هي هذه الحالة)
3. استراتيجيات التدريب
3.1 CNN المكاني
- هنا نستخدم التقنيات في شبكة القطاع الزمني. لكل مقاطع فيديو في دفعة صغيرة ، نختار بشكل عشوائي 3 إطارات من كل مقطع فيديو. ثم سيتم اشتقاق إجماع بين الإطارات كتنبؤ على مستوى الفيديو لحساب الخسارة.
3.2 الحركة CNN
- في كل دفعة مصغرة ، نختار عشوائيًا 64 (حجم الدُفعة) من 9537 مقاطع فيديو تدريبية ومستقبلية حدد بشكل عشوائي تدفق بصري مكدسة في كل مقطع فيديو.
3.3 زيادة البيانات
- يطبق كلا الدفقون نفس تقنية تكبير البيانات مثل المحاصيل العشوائية.
4. طريقة الاختبار
- لكل 3783 مقاطع فيديو اختبار ، نقوم بتجربة 19 إطارًا بشكل موحد في كل مقطع فيديو ، والتنبؤ بمستوى الفيديو هو نتيجة التصويت لجميع التنبؤات بمستوى الإطار الـ 19.
- السبب في أننا نختار الرقم 19 هو أن عدد إطارات الفيديو الحد الأدنى في UCF101 هو 28 وعلينا أن نتأكد من وجود إطارات كافية للاختبار في 10 مكدس حركة الحركة.
5. أداء
| شبكة | Top1 |
|---|
| CNN المكاني | 82.1 ٪ |
| الحركة CNN | 79.4 ٪ |
| متوسط الانصهار | 88.5 ٪ |
6. نموذج ما قبل التدريب
- RESNET101 المكاني
- حركة RESNET101
7. الاختبار على جهازك
تيار مكاني
- يرجى تعديل هذا المسار وهذا funcition لتناسب مجموعة بيانات UCF101 على جهازك.
- التدريب والاختبار
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate
تيار الحركة
- يرجى تعديل هذا المسار وهذا funcition لتناسب مجموعة بيانات UCF101 على جهازك.
- التدريب والاختبار
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate