本篇适合新手,大佬看可能有一点啰嗦
目录
一.安装ubuntu
1.磁盘分区
本人的电脑买来只有一个c盘,之前也没有分区,现在双系统需要对c盘分区,网上搜了windows自带的分区方式怎么都不好使,只能下载分区助手帮助分区,分出一个100g的空间备用。
2.设置bios
电脑重启,在启动时狂按f10(本人的电脑是惠普暗影精灵6)进入bios界面,在启动项里将安全启动模式关闭,然后在启动顺序那里将u盘用光标移到最前面,设置完成保存并退出。
3.制作安装的u盘
下载ventoy,完成后是一个压缩包,插上用来制作安装盘的u盘,解压并打开.exe文件运行ventoy,点击左上角配置选项,把分区类型改为GPT,然后点击安装,安装完成后去ubuntu官网下载想要下载的版本,本人下载的是20.04,下载完成后将iso文件复制到u盘里,然后重启电脑。
4.安装系统
重启后由于已经设置为u盘优先启动,所以会直接来到ventoy的界面选择想要安装的版本然后一直回车,然后进入到ubuntu的安装界面,别的都正常选择,分区那里最好自己分,我设置的是efi系统分区500MB,根挂载点50GB,/home40GB,/swap交换分区10GB,总之根挂载点尽量大一些,要不然安装cuda和其他东西时会提示内存不足,然后继续安装,等待安装完成即可。
二.配置环境
1.安装驱动
第一次接触,有很多不懂的地方,走了很多弯路,重装了好几次系统,得出最简单的方法首先是打开终端,输入
ubuntu-dirvers devices
它会出来一串驱动,其中有一个后面写着recommend(推荐)
在ubuntu的菜单里选择软件和更新,然后点击附加驱动,在里面选择对应的驱动找到推荐的那个,然后点击应用更改,
下在完成后重启电脑 终端重启的命令是
sudo reboot
重启完之后应该已经装上驱动了,在终端输入
nvidia-smi
会出现nvidia的信息,记下右上角cuda的版本(你的显卡驱动支持的最高版本),然后去官网下载cuda。
2.安装cuda cudnn pytorch
首先去官网下载想要的版本(本人的推荐显卡驱动是535,cuda12.2),我选择了11.8版本的cuda,后续操作参考CUDA CUDNN Pytorch安装 需要注意的是安装到最后一步一定要把driver取消掉,否则会报错。后续的步骤完全按照参考链接去做即可。
3.配置虚拟环境
使用命令
python3 --version
查看python版本,本人是3.8,ubuntu的版本高可能python也高,在别的版本能不能成功复现不清楚,如果想要更换版本查看这个链接。
然后安装gcc
sudo apt update -y
sudo apt upgrade -y
sudo apt install gcc g++ git -y
安装完之后前面会有一个(base)
创建自己的虚拟环境
conda create -n slowfast python=3.8
激活环境
conda activate slowfast
激活环境后base会变成slowfast
参考这个链接安装环境需要的包或者去官网复制命令slowfast官网
安装这些包出错大概率是pytorch和cuda和显卡驱动不匹配,所以安装这些时一定检查仔细。
cd Slowfast
vim setup.py
# 找到PIL和sklearn,修改为pillow和scikit-learn
在这个地方我全部修改会报错,只把pil换成pillow不报错,和大佬的不太一样。
最后出现这个Finished processing dependencies for slowfast==1.0表示成功。
三.运行demo
在/home/spoon/Slowfast/slowfast/demo/AVA(路径因人而异)里新建一个名为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}
把这些复制粘贴进去。
同时在与slowfast detectron2_repo同一文件夹内新建两个文件夹用于存放输入输出视频。
然后同样文本编辑器打开和ava.json同一位置的SLOWFAST_32x2_R101_50_50.yaml
按照大佬的文章修改相应的路径。(在文件里可以使用ctrl+L来提取文件路径)
在/home/spoon/Slowfast/slowfast/demo/AVA再创建一个文件夹c2 去slowfast官网
下载ava下的第三个link SLOWFAST_32x2_R101_50_50 .pkl移动c2里。
然后按照大佬的文章把SLOWFAST_32x2_R101_50_50.yaml里对应的路径改成SLOWFAST_32x2_R101_50_50 .pkl所在路径
在输入视频的文件夹里放好demo视频
然后
cd /home/spoon/Slowfast/slowfast
python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml
完成之后输出文件夹里就有视频了。
遇到的问题
1.file "tools/run_net.py,line 8,in<module>
from vision.fair.slowfast.tools.demo_net import demo
modulenotfounderror: no moudle named vision
解决办法:进入run_net文件, 把 from vision.fair.slowfast.tools.demo_net 改成demo_net
还有下面几行也是一样的问题。如图上的8、9、10、11行。
2.no moudle named torch._six
解决办法如图
把第16行注释掉加上17行的内容。