From 2c8b76b16d364be886e094e5c79e817f319ac33d Mon Sep 17 00:00:00 2001 From: huangjun12 <2399845970@qq.com> Date: Tue, 1 Sep 2020 15:31:01 +0800 Subject: [PATCH] add slowfast model to video classification (#4815) --- dygraph/slowfast/README.md | 170 +++++++++ dygraph/slowfast/SLOWFAST.png | Bin 0 -> 239020 bytes dygraph/slowfast/config_utils.py | 85 +++++ dygraph/slowfast/eval.py | 191 ++++++++++ dygraph/slowfast/kinetics_dataset.py | 315 +++++++++++++++++ dygraph/slowfast/lr_policy.py | 41 +++ dygraph/slowfast/model.py | 417 ++++++++++++++++++++++ dygraph/slowfast/model_utils.py | 484 ++++++++++++++++++++++++++ dygraph/slowfast/predict.py | 221 ++++++++++++ dygraph/slowfast/run_eval_multi.sh | 7 + dygraph/slowfast/run_eval_single.sh | 6 + dygraph/slowfast/run_infer_multi.sh | 7 + dygraph/slowfast/run_infer_single.sh | 6 + dygraph/slowfast/run_train_multi.sh | 13 + dygraph/slowfast/run_train_single.sh | 9 + dygraph/slowfast/slowfast-single.yaml | 53 +++ dygraph/slowfast/slowfast.yaml | 55 +++ dygraph/slowfast/train.py | 461 ++++++++++++++++++++++++ 18 files changed, 2541 insertions(+) create mode 100644 dygraph/slowfast/README.md create mode 100644 dygraph/slowfast/SLOWFAST.png create mode 100644 dygraph/slowfast/config_utils.py create mode 100644 dygraph/slowfast/eval.py create mode 100644 dygraph/slowfast/kinetics_dataset.py create mode 100644 dygraph/slowfast/lr_policy.py create mode 100644 dygraph/slowfast/model.py create mode 100644 dygraph/slowfast/model_utils.py create mode 100644 dygraph/slowfast/predict.py create mode 100644 dygraph/slowfast/run_eval_multi.sh create mode 100644 dygraph/slowfast/run_eval_single.sh create mode 100644 dygraph/slowfast/run_infer_multi.sh create mode 100644 dygraph/slowfast/run_infer_single.sh create mode 100644 dygraph/slowfast/run_train_multi.sh create mode 100644 dygraph/slowfast/run_train_single.sh create mode 100644 dygraph/slowfast/slowfast-single.yaml create mode 100644 dygraph/slowfast/slowfast.yaml create mode 100644 dygraph/slowfast/train.py diff --git a/dygraph/slowfast/README.md b/dygraph/slowfast/README.md new file mode 100644 index 00000000..3a448d3c --- /dev/null +++ b/dygraph/slowfast/README.md @@ -0,0 +1,170 @@ +# SlowFast 视频分类模型动态图实现 + +--- +## 内容 + +- [模型简介](#模型简介) +- [代码结构](#代码结构) +- [安装说明](#安装说明) +- [数据准备](#数据准备) +- [模型训练](#模型训练) +- [模型评估](#模型评估) +- [模型预测](#模型预测) +- [参考论文](#参考论文) + + +## 模型简介 + +SlowFast是视频分类领域的高精度模型,使用slow和fast两个分支。slow分支以稀疏采样得到的帧作为输入,捕捉视频中的表观信息。fast分支以高频采样得到的帧作为输入,捕获视频中的运动信息,最终将两个分支的特征拼接得到预测结果。 + +
+
 
+SlowFast Overview
+
^H_Wk>hvPuWjz->N6nJe@; !GJ9wezcE+TeCYugPuVb#*EG
zI)zNyQ{l}=_3?}=HVAY<*2F2EmbdSdH~n(Y^P(R8Zmn~7P|nu)jg+6rb7i;k-u`Fd
z(fbUALFO1!g35=VqW(fhSIYrjTa_@Bk_41ET65E!KoU9UGkJ{(xM;D1Fbr_f+7!AP
zQuU&?Dyg^nJkZ#O9;=0VjQ98|Q*BlXU%FXy2hZmF7;9ClnyeP754o9V>JhYsq+>nJ
zz=@KLxtJ3OZn!|Fa&Szz1r2 `A$fS{9ytGca)h5AQL0i8Kti`I2{q
zYll)BT@Sv?bJ|0rZ=>G&CXJY%6fp2PzUM=lOLRsQomM<2dZe4%I0$!CP%_Vyl*nMh
zP$A0Vn0y5Cn#bxv>tQo9Ax&<{^reyuxq;$I`F6}>4opH@A+ypngTK(Z+jSW4>%Exx
z)c6x0z6QiFJy-BeXOSi jQk4tnw-HPvciQzg
zevx4}J@A1_@zYzVS});wmdza)fZ!Znrx|zcrDXT#A(S~M0w@zlM`l-YB+Mn
z8%a@FPWI~! j-
zU^Y~m4x5ZJ9;Xmnyq)1Faloy%0Nqym*~0%?4;5nm8McUvyu*S=7KWS3NiqI2)GXNf
zKQ`?$YluA%!X*&?_yziH-&eTA2&$ZfFV^>>W!=$aflY|l$#1lvt1&W=1SNMn>irNH
z56Fc|ax9mU>pa9!Eu%hUz7+eINx7T)Ji*e# D2#IPQ4$dC|z|FV=7Lncom_Jdx>+K&!oUI)Cdyxtn
zpWjUL#Tyt3gpxv3xcVrg!zC`wfvlOfMRF^3Q`_P%LzM!2gFJT#H8bG<*v!5?;fZz~
z7Id#-CzI@;v70Urewtl>GZQ~q_H%{YT%Dx((dJ3I7dEe*Z)Yv+H&rxWpHqu*>TGqQ
zh?Y9)b+%U(3=*qS#_)shj$g*PI`NB*XRm~QH2$vTR#MOY@397^ZKZJXYqt002PFG=
z8!K2XlN{k~_0Bm1_+?uKDdNvuVH*eGKjy>fg+IXJ)XjD3SmO||hi*kco0@k%4V}gn
zmgwY7<2t^J{mk-b%T52Lczzu<>x%->stCdZ2clJix84E@B4M$dCV<@ur>k_`YuZ4NBT8zg20F
8uxK$b86x#|KVZbfy_#
zOiz_!r(YXxm2~bK&zxq3CvW$)ojWqF_sHFqiY!Z_<_mN4%HNtAFn!B=Q$T}(*hS+h
zmHu*%5*L^ZrxtgT4%Gvpg_mD!onprM=uB+6*LB14d^(Ex9Q^IVpX9GUioerPK38pT
z&fS*K!S>pPU1XZLG%0o_@{;H7ZOglLY-v)0h8E=#v?^u{q#YbQ@f+2{3Y`zPPtrnv
zof#NL^nH&{tBsR-LsLrzvUMh}$KS*i%(Q1hJzU(Pza=fF#kDTAwv#O+b4-tI5DCsZ
z6js1+DfIL)ow`^r{v?4h`rMeJar>~7eU;h6m*;pAXU;pU1JRR+j$X6OrCbxr)`);v
ztD*zgu7Q^5v1(bG$I(R&ZL}@nRcwnHE*P~9?KD8Cw$jOwj)_&!ENh#7j38S#;XnLU
z8eoS1qHugbj@N|=SNX&_qHj-t&HaaG2~kabdtPg4=dx54C>a}{V6m(s0K*9`szGBK
zI0_u^^92f?hv3b0aV!~uZ29Zc4Mf1n)hj?I?&`|;daK|S$Bz^P)48@i&y^Mbi^jmL
zD}c(8(E4r
-IN`{RE
z7UPWPXftDrED#``m%Z_K<4ZL<3Z?gL6^z4=C=0uBwWB*8xxRj5-eKAMHFYMLO|vJC
zjL5ZlL-l0b-_Xv(nPCzTa|3ek3~rL8{g4Z)O*8NR`Zea6Jqd*tANU2ESC$u#`-ZAI
zn@1>lx9})giy;g}6AVrxfQ56d4bK(RqYpQjtg!60>~R-*rMJq%&lf84Z>e46MpW5d
zGtA3*rBiC1a-x1BSKPm3o%5@L%8rNS)N=2*7XnM$N7!EPH(N@H8S^8Cd2?hP=m9ZZ
zsk!!t@s|BLt=c=FeHZg`nYw7UbSg{a>Y)&Np<1KE!|!TGsiw+Cl$oG8{#&m`k4ri2
zYu@twDF|__&QJ#}92?5_^V&;k%;9dvX52SF)91ueV;1dBJai=JTe51P+tfC_%?^
zY~fz4q*Tha;fDJz8V6~?#ftGrAoZ`v(e^hdW?@X|Sk2(`K^XCw?~^Ouw8R<%>$t6h
zwa4yR@4(i^dk1x51#vO;Czfwm#?LL)r@+25cFf(=5EVb(X|#P`Nrxv@X=O`2PD7Gf
z_lS}qs%K#Z)sWy$P!V8QJG-`ruk>8Pr2Th!o!QzB={##j;Ts0O@7T@F&ei^L-TQeA
zH;++z3fZY{E(-3G(3|e>JJuy>rl
SV9ruUH9I;tn-;Aaniy|ITYgS&BAu~VKXG|qmuYo0btVZqfAwp
znd^eP8gty|=oL<}P@}3h>DWJ`6BmsI-u%nenz6$FBXs|xa?bXBPFe=0PY@V!P6@VT
zm4tHMg`imnm@-u6QePQ7;iV+l?m8C1N_INe&x@65=y+yf7#MI&hkx11;MC~ty=OGf
z>8Q0&b2VFr-^p~bo0s5pGd83u`D&>LO=1ahE{4`}E*8J1w`*BUit;N;kXCM;tF<@G
z3OdVcc)Xui584;K?J~6<;kd~K&N){Qc(l?Zbmq~3sw%kl(+oLfb6OQLd#Hbrl1}Ac
zl~k4@g=APeeQ_~Nt}wLIeNtyk?9DTpZl7x3$Z_8&Zu+NLZ_1;Jq{8(HR24-&c1cE}
zNYb@2s^?MCn8RmPa5OP0!%vgIBYD8nR7WzZG{v%|HhOkGyr)!KSSNyo=@KXsOXY1N
zPxqxcSGqkE5{`<_lB9sk7JisKuRqi+gtgs$WCVAaWyz7gqoN}&qjNY5msG7|5AzaN
zr7l(%&a`(I3;P1NR5q*9_~!|R#JM*DD*p~S3>R?bE$ugEQUT)-UOV?(pK#(B`p^wp
zeom6n0-V{#$qcL^Z0ePW|Eden*^6a^u=ewz%PM!IwLRUcO;wGzR5h(<<#!nim+;?o
zFm{Eq{OGi-6XWGfQGoq%TWp=jhWQ#*2b@mMZH!SjZ~(4*zcdKht|KL@2V2~U>w3s$
z9G8yIVCTQBzO(p8{L(riheI4I@GgCR5o0muhj>8~gt2}Z#phFZXjQyfr%3Lw)?q-3
zi`C^M-ktzB93ab)#9nTWF3@LCr
zosW><^~+@yjePVGm)r$6
%(mJLJmUuwVecFhL1so%Z!
8+RV^JS-$Bb-cUpg>s>
zz(Sc&AE{cb7|!sE(0B)@IrFW`>#lU0MWQIRGZ3$|rU6kz>7xrCrS=}ZQ)@Y`s~ad;
zNbeM)?b4@B3^TF