前言
slowfast配环境加测试运行花了三天才完成
总会有奇奇怪怪的报错
下面的安装指令都是让我成功装上的
报错都是运行过程中碰到的
不知道改报错的思路对不对,但是暂时可以顺利运行了
祝大家slowfast顺利!
如果大家发现什么问题,欢迎提出!
电脑基本环境
win 11
python 3.8
pytorch 2.0.0
torchvision 0.15.0
CUDA11.8
创建激活虚拟环境
conda create -n slowfast python=3.8
conda activate slowfast
安装基础的torch和cuda
在考虑版本之后,安装11.8版本的cuda、2.0.0版本的torch、0.15.0版本的torchvision
在此为了避免多个版本的cuda冲突,将cuda安装在环境里面
之前安装pytorch也踩了很多坑,觉得最稳定的是将whl下载到本地,再安装
- 寻找对应版本:torch和torchvision版本对应
- whl文件下载:下载地址
根据自己的需要去选择文件,其中cu118指cuda版本,cp38指python版本,win和linux对应操作系统,箭头所指是我所下载的文件
同理torchvision也是这样
- 使用pip命令进行安装
将命令行换到whl文件所在的目录下,一定记得换目录!!!不然就检索不到whl文件,按顺序依次运行下面两个命令
pip install torchvision-0.15.0+cu118-cp38-cp38-win_amd64.whl
pip install torch-2.0.0+cu118-cp38-cp38-win_amd64.whl
- 验证torch是否安装成功
import torch # 如果pytorch安装成功即可导入
print(torch.cuda.is_available()) # 查看CUDA是否可用,True即为可用
print(torch.cuda.device_count()) # 查看可用的CUDA数量
print(torch.version.cuda) # 查看CUDA的版本号
安装GCC
需要它的编译环境
这里就直接放参考链接吧
参考链接1
参考链接2
安装VisualStudio2019
我看的教程说必须是这个版本,具体什么原因我也不太清楚
VS2019的官方下载链接好像没办法下载,因此用的是这个博主分享的安装包VS2019安装包
这个安装教程也直接放链接吧
参考链接
slowfast依赖包安装
根据官方给出的列表去安装包
slowfast代码下载
- 直接下载zip,也可以使用git clone
- 在命令行中,将路径换成slowfast-main
cd D:\file\code\SlowFast-main
安装fvcore
# 官方给出的命令
pip install "git+https://github.com/facebookresearch/fvcore"
# 每次运行都会报错,因此先将zip下载,然后运行
pip install "D:\file\postgrad\experiment\code\fvcore-main" # zip文件所在目录
安装fairscale
git clone https://github.com/facebookresearch/fairscale.git
cd fairscale
pip install -r requirements.txt
# -e signified dev mode since e stands for editable
pip install -e .
# 安装完记得退回上一级文件夹
cd..
安装simplejson
pip install simplejson -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装PyAV和ffmpeg
conda install av -c conda-forge
安装psutil
pip install psutil
安装opencv-python
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
安装tensorboard
pip install tensorboard
安装moviepy
conda install -c conda-forge moviepy
安装PyTorchVideo
git clone https://github.com/facebookresearch/pytorchvideo.git
cd pytorchvideo
pip install -e .
# 安装完记得退回上一级文件夹
cd..
安装cocoapi
git clone https://github.com/philferriere/cocoapi
cd coco/PythonAPI
python setup.py build_ext –inplace
# 验证是否安装成功
import cocoapi
# 安装完记得退回上一级文件夹
cd..
安装ninja
pip install ninja
安装Detectron2
当以上都安装好之后再进行这一步,不然编译会报错
git clone https://github.com/facebookresearch/detectron2.git
python -m pip install -e detectron2
更改slowfast中setup.py的部分代码
更改图中圈出来的两个
对slowfast进行编译
python setup.py build develop
编译期间会提示包报错,只需要pip install报错的包就可以,我编译的时候又安装了scikit-learn和pandas
配置环境成功!
当出现这样的字样就成功啦!
Finished processing dependencies for slowfast==1.0
注意事项
有一些包是git clone配置的,因此包在slowfast代码所在的文件夹下
就是cocoapi、detectron2、fairscale、pytorchvideo,建议复制到下图所示文件夹,为了避免导包导不进去
detectron2有一点特殊,只将下图中圈的两个复制过去
测试slowfast
下载权重
下载图中选中的权重,得到一个SLOWFAST_32x2_R101_50_50.pkl
将该文件放到了如下图
用一个标签文件进行测试
在如图所示路径下
新建一个名为ava.json的文件,内容如下
{"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}
更改配置文件参数
配置文件所在位置如图
第一处更改,也就是权重的路径
第一个框中的代码要注释
第二个框分别对应:标签路径、视频输入路径和视频输出路径
第二个框最后一行要注释
这里选用的视频是从互联网随机下载进行测试的
要编译啦!
python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml
编译过程中遇到的报错
ModuleNotFoundError: No module named ‘torch._six’
File "d:\file\postgrad\experiment\code\slowfast-main\slowfast\datasets\multigrid_helper.py", line 16, in <module>
from torch._six import int_classes as _int_classes
ModuleNotFoundError: No module named 'torch._six'
# 点进提示报错的文件夹进行如下修改
else:
# from torch._six import int_classes as _int_classes
int_classes = int
string_classes = str
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position 1808: illegal multibyte sequence
这个更改结合chatgpt
# 在D:\slowfast所在文件夹下\SlowFast-main\slowfast\utils\parser.py做了如下更改
import yaml
from fvcore.common.config import CfgNode
cfg = get_cfg()
# Load config from cfg.
'''
这里注释的地方是源代码
'''
# if path_to_config is not None:
# cfg.merge_from_file(path_to_config)
'''
这是修改后
'''
if path_to_config is not None:
with open(path_to_config, 'r', encoding='utf-8') as f:
config_data = yaml.load(f, Loader=yaml.FullLoader)
cfg.merge_from_other_cfg(CfgNode(config_data))
RuntimeError: COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml not available in Model Zoo!
- 查看site-packages\detectron2\model_zoo\configs\COCO-Detection\faster_rcnn_R_50_FPN_3x.yaml是否存在
- 如果没有,将 detectron2-master/configs文件下的所有文件全都复制到site-packages\detectron2\model_zoo\configs下
- 再次测试
编译成功(结束啦!!)
出现这样的进度条就成功了
运行完成后会在指定的文件夹中生成一段视频
放一张测试成功的图片,精确度一般,但是可以证明成功了