sled怎么分析(slowfast复现过程)

一、准备环境1.1选择云端服务器

这里推荐几个网站,租用这些网站的GPU然后跑代码,因为普通的笔记本搭建图像处理的环境会遇到各种各样的问题。在网站上租用GPU可以使用官方搭建好的镜像,如果跑代码或者自己把环境弄乱了,就可以释放实例,重新再来(约等于自己电脑的重装系统,但是这个租用的释放和搭建新镜像速度非常快)

以下是我推荐的几个网站:1,极链AI云平台(我用的就是这个,有50元的白嫖额度,我就是靠这50元的额度跑出来slowfast)2,MistGPU

1.2 搭建镜像

第一步,打开极链AI云平台,下面是网址。

登录 - 极链AI云平台极链AI云平台超便宜共享算力平台,提供弹性、高性能、低价格的GPU租赁服务,帮助开发者快速创建和部署模型。

https://cloud.videojj.com/center/hire第二步,选择机子,创建自己的实例,根据网络要求配置环境(在github上所有的网络都有环境要求,根据系统要求选择)。

1.选择GPU个数和机子。

2.实例镜像,官方给的框架是PyTorch,这里也就PyTorch,PyTorch的版本官方给的1.3(当时官方发布的时候,PyTorch最高版本就1.3,但是这里的镜像没有1.3,所以选择一个比它高的1.4版本)。注意,python一定要选3.7版本,python一定要选3.7版本,python一定要选3.7版本,3.6版本我是跑出了问题。CUDA只有10.1可选(这也是官方镜像的好处,在自己电脑上安装CUDA很烦的)

sled怎么分析(slowfast复现过程)(1)

sled怎么分析(slowfast复现过程)(2)

​编辑

以下就是创建好的实例,在不用的时候切记关机,开着会花流量。

sled怎么分析(slowfast复现过程)(3)

sled怎么分析(slowfast复现过程)(4)

​编辑

第三步,在Xshell上打开实例,与远程服务器相连接。

1.新建项目建立链接。

sled怎么分析(slowfast复现过程)(5)

sled怎么分析(slowfast复现过程)(6)

​编辑

2.名称位置处填写自己想写的名字,主机位置复制实例位置的账号后半段,端口号填写复制链接实例位置账号的前半段的数字。完成后点击用户身份验证,输入目录名称和复制实例中的密码粘贴上去。

sled怎么分析(slowfast复现过程)(7)

sled怎么分析(slowfast复现过程)(8)

​编辑就是复制登录指令ssh -p 39988 root@net.videojj.com(主机是指令@后半段,端口号是指令前半段数字)和复制密码。

sled怎么分析(slowfast复现过程)(9)

sled怎么分析(slowfast复现过程)(10)

​编辑

如下就是与远程服务器连接好的界面。

sled怎么分析(slowfast复现过程)(11)

sled怎么分析(slowfast复现过程)(12)

​编辑

1.3 配置slowfast环境

这里需要注意,gitHub上是最新的环境,我这里是跟着视频弄的。

点击branches ;

sled怎么分析(slowfast复现过程)(13)

sled怎么分析(slowfast复现过程)(14)

​编辑

选择第一个是旧版的slowfast。

sled怎么分析(slowfast复现过程)(15)

sled怎么分析(slowfast复现过程)(16)

​编辑

按照官网上的步骤来Installation注意,这里的opencv-python就不要执行,因为镜像里自带了opencv-python!

按照步骤装就行,有的比较慢,要等一会。

sled怎么分析(slowfast复现过程)(17)

sled怎么分析(slowfast复现过程)(18)

​编辑

二、装代码和调式过程2.1代码下载

slowfast官方网址

代码下载:(直接下载到环境里面了,但是容易找不到在哪)

git clone https://github.com/facebookresearch/slowfast

这里用的办法是先打开网页,下载压缩包,之后解压放到桌面上,然后使用Xshell的文件传输功能将桌面文件传输到远程服务器的home文件夹中。如下图所示:

sled怎么分析(slowfast复现过程)(19)

sled怎么分析(slowfast复现过程)(20)

​编辑

2.2ava.json

在极链AI网页的我的实例下连接实例里面打开jupyter,在/home/slowfast/demo/AVA目录下创建特text file文件,将文件名字改为ava.json

sled怎么分析(slowfast复现过程)(21)

sled怎么分析(slowfast复现过程)(22)

​编辑

点开文件,复制下面的代码

{"bend/bow (at the waist)": 0, "crawl": 1, "crouch/kneel": 2, "dance": 3, "fall down": 4, "get up": 5, "jump/leap": 6, "lie/sleep": 7, "martial art": 8, "run/jog": 9, "sit": 10, "stand": 11, "swim": 12, "walk": 13, "answer phone": 14, "brush teeth": 15, "carry/hold (an object)": 16, "catch (an object)": 17, "chop": 18, "climb (e.g., a mountain)": 19, "clink glass": 20, "close (e.g., a door, a box)": 21, "cook": 22, "cut": 23, "dig": 24, "dress/put on clothing": 25, "drink": 26, "drive (e.g., a car, a truck)": 27, "eat": 28, "enter": 29, "exit": 30, "extract": 31, "fishing": 32, "hit (an object)": 33, "kick (an object)": 34, "lift/pick up": 35, "listen (e.g., to music)": 36, "open (e.g., a window, a car door)": 37, "paint": 38, "play board game": 39, "play musical instrument": 40, "play with pets": 41, "point to (an object)": 42, "press": 43, "pull (an object)": 44, "push (an object)": 45, "put down": 46, "read": 47, "ride (e.g., a bike, a car, a horse)": 48, "row boat": 49, "sail boat": 50, "shoot": 51, "shovel": 52, "smoke": 53, "stir": 54, "take a photo": 55, "text on/look at a cellphone": 56, "throw": 57, "touch (an object)": 58, "turn (e.g., a screwdriver)": 59, "watch (e.g., TV)": 60, "work on a computer": 61, "write": 62, "fight/hit (a person)": 63, "give/serve (an object) to (a person)": 64, "grab (a person)": 65, "hand clap": 66, "hand shake": 67, "hand wave": 68, "hug (a person)": 69, "kick (a person)": 70, "kiss (a person)": 71, "lift (a person)": 72, "listen to (a person)": 73, "play with kids": 74, "push (another person)": 75, "sing to (e.g., self, a person, a group)": 76, "take (an object) from (a person)": 77, "talk to (e.g., self, a person, a group)": 78, "watch (a person)": 79}

sled怎么分析(slowfast复现过程)(23)

(上面这段代码是ava的训练集,有80个行为)

2.3SLOWFAST_32x2_R101_50_50.yaml

在目录:/home/slowfast/demo/AVA中打开SLOWFAST_32x2_R101_50_50.yaml内容改为如下:

主要改的代码是70行以后的。

TRAIN: ENABLE: False DATASET: ava BATCH_SIZE: 16 EVAL_PERIOD: 1 CHECKPOINT_PERIOD: 1 AUTO_RESUME: True CHECKPOINT_FILE_PATH: '/home/slowfast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl' #path to pretrain model CHECKPOINT_TYPE: pytorch DATA: NUM_FRAMES: 32 SAMPLING_RATE: 2 TRAIN_JITTER_SCALES: [256, 320] TRAIN_CROP_SIZE: 224 TEST_CROP_SIZE: 256 INPUT_CHANNEL_NUM: [3, 3] DETECTION: ENABLE: True ALIGNED: False AVA: BGR: False DETECTION_SCORE_THRESH: 0.8 TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"] SLOWFAST: ALPHA: 4 BETA_INV: 8 FUSION_CONV_CHANNEL_RATIO: 2 FUSION_KERNEL_SZ: 5 RESNET: ZERO_INIT_FINAL_BN: True WIDTH_PER_GROUP: 64 NUM_GROUPS: 1 DEPTH: 101 TRANS_FUNC: bottleneck_transform STRIDE_1X1: False NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]] SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]] SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]] NONLOCAL: LOCATION: [[[], []], [[], []], [[6, 13, 20], []], [[], []]] GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]] INSTANTIATION: dot_product POOL: [[[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]]] BN: USE_PRECISE_STATS: False NUM_BATCHES_PRECISE: 200 SOLVER: MOMENTUM: 0.9 WEIGHT_DECAY: 1e-7 OPTIMIZING_METHOD: sgd MODEL: NUM_CLASSES: 80 ARCH: slowfast MODEL_NAME: SlowFast LOSS_FUNC: bce DROPOUT_RATE: 0.5 HEAD_ACT: sigmoid TEST: ENABLE: False DATASET: ava BATCH_SIZE: 8 DATA_LOADER: NUM_WORKERS: 2 PIN_MEMORY: True NUM_GPUS: 1 NUM_SHARDS: 1 RNG_SEED: 0 OUTPUT_DIR: . #TENSORBOARD: # MODEL_VIS: # TOPK: 2 DEMO: ENABLE: True LABEL_FILE_PATH: "/home/slowfast/demo/AVA/ava.json" INPUT_VIDEO: "/home/slowfast/Vinput/1.mp4" OUTPUT_FILE: "/home/slowfast/Voutput/1.mp4" DETECTRON2_CFG: "COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml" #预训练模型 DETECTRON2_WEIGHTS: detectron2://COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl

sled怎么分析(slowfast复现过程)(24)

下面这一行代码存放的是输入视频的位置,当然Vinput这个文件夹是我自己建的,位置在/home/slowfast/里面,通过jupyter创建,(输入文件夹,创建好后,可以通过Xshell的传输功能把视频传进去,但注意需要将视频名字改成与下面代码相同)

INPUT_VIDEO: "/home/slowfast/Vinput/1.mp4"

sled怎么分析(slowfast复现过程)(25)

下面这一行代码存放的是检测后视频的位置,当然Voutput这个文件夹是我自己建的,与上面的相同,测试好的视频可在上面的文件中找到。

2.4 SLOWFAST_32x2_R101_50_50 .pkl

打开下面的页面

SlowFast/MODEL_ZOO.md at main · facebookresearch/SlowFast · GitHubPySlowFast: video understanding codebase from FAIR for reproducing state-of-the-art video models. - SlowFast/MODEL_ZOO.md at main · facebookresearch/SlowFast

sled怎么分析(slowfast复现过程)(26)

https://github.com/facebookresearch/SlowFast/blob/main/MODEL_ZOO.md下载模型SLOWFAST_32x2_R101_50_50 .pkl 到/home/slowfast/configs/AVA/c2目录下(可以下载下之后通过Xshell传输到指定位置)

sled怎么分析(slowfast复现过程)(27)

sled怎么分析(slowfast复现过程)(28)

​编辑

然后在目录:/home/slowfast/demo/AVA下文件SLOWFAST_32x2_R101_50_50.yaml里修改如下:(这里用juyputer)就改倒数第二行的路径。

TRAIN: ENABLE: False DATASET: ava BATCH_SIZE: 16 EVAL_PERIOD: 1 CHECKPOINT_PERIOD: 1 AUTO_RESUME: True CHECKPOINT_FILE_PATH: '/home/slowfast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl' #path to pretrain model CHECKPOINT_TYPE: pytorch

sled怎么分析(slowfast复现过程)(29)

三,代码运行

在xShell终端中,跳转到以下目录

cd /home/slowfast/

sled怎么分析(slowfast复现过程)(30)

输入运行命令

python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml

sled怎么分析(slowfast复现过程)(31)

3.1出现错误

第一次可能会出现错误

解决方案:运行下面的代码:

conda install x264=='1!152.20180717' ffmpeg=4.0.2 -c conda-forge

sled怎么分析(slowfast复现过程)(32)

在输入命令

python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml

sled怎么分析(slowfast复现过程)(33)

就可以在输出文件夹中看结果了。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页