detectron2和slowfast的安装与使用

1.首先在github上下载slowfast和detectron2的代码,然后放到自己想放的位置,我是把detecron2放在slowfast文件夹里面,因为slowfast的使用要用到detectron2.(注:很多教程都是用git+http链接,外网网速不好的朋友会一直报错,最好复制Git后面的链接直接到官网下载zip包)
在这里插入图片描述

2.配置各种依赖项
配置依赖项时,由于我之前配置YOLOv5时新建的yolov5环境中已经安装了cuda11和torch1.7,opencv等依赖,其实只要安装fvcore等这种detectron2需要的依赖就行了。
但是为了以后不出什么岔子,还是新建了一个slowfast环境,cuda11和torch1.7,python3.8等重新安装一遍其实也很快。(注:cuda其实很容易安装,一句代码,其他的就更不用说了,cuda在一个环境下有多个版本没影响的,现在很多代码都要求高版本的cuda了,所以要同时适配高版本的驱动和高版本的ubantu系统。
查看版本:nvcc -V
安装:conda install cudatoolkit=11 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/)

最难安装的依赖就是detectron2这个包了(之前下载的detectron代码是代码下载后名字是detectron-master,但是运行detectron2还要安装这个放在site-package里面的包),网不好的话法一法二同样是直接git会出错
直接用法三,选择合适的detectron版本下载(同样是要好一点的网速,但是比法一二要快很多)

在这里插入图片描述
实在不行复制法三后面的链接把包下载到本地再安装
~~python -m pip install detectron2 -f ~~
https://dl.fbaipublicfiles.com/detectron2/wheels/cu110/torch1.7/index.html
在这里插入图片描述
最后上面链接中遇到的问题我没有遇到,在demo.py里两条代码的视频格式改掉就可以了。

3.测试
python demo.py
–config-file …/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml
–input–video input/video/video_0002.mp4
–opts MODEL.WEIGHTS …/models/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/model_final_f10217.pkl
还是2中链接的代码,这里要注意
首先参数别写错了–input–video还是其他形式,看你的代码里面parser.add_argument里面是怎么写的
第二要注意运行这条代码需要什么你看yaml(配置文件),mp4(你自己的视频),pkl(模型文件),一般yaml文件在终端运行代码的时候会帮你下载(在pycharm里面不会帮你下载,只会报错),pkl模型文件你要去MODEL ZOO的官方网站下载https://github.com/facebookresearch/detectron2/blob/master/MODEL_ZOO.md

还有上面的运行命令是用opt指定权重路径的,当你想方便一点就直接把权重写入yaml,运行的时候直接pthon .py – /home/…/.yaml就可以了
在这里插入图片描述
在这里插入图片描述
想要什么模型就下载什么模型(太爽了),检测,分割什么的应有尽有,下载后放到相应自己建的文件夹就ok了,最后运行上面的代码,就成功了!!!

最后再说一句,这个Github一直不稳定,下载代码报错搞得我以为是配置出错了,最后发现是网速原因,网上有很多增加网速的办法:
1.最好用破解版的谷歌浏览器,有自带的梯子插件,网速不错
2.修改hosts,加入不同的地址,这个有很多教程,不难,都可以试一试
3.是在不行那就下载到本地再用吧,别再git了。

4.slowfast的使用
首先还是按照教程来做

第一步下载slowfast
之前说过了最好是去官网下载zip包
然后解压运行setup.py

第二步:去官网下载你需要的训练模型,同样是在slowfast的model_zoo里面找,你会发现有好多版本的预训练模型
在这里插入图片描述在这里插入图片描述
这里我们选择用【在kinetics上做预训练】在AVA数据集上训练的几个模型,也就是上图倒数4个都可以,我下载的是倒数第二个pkl文件。
注意:千万不要下载了前面的预报哦训练模型,要点后面的Link

下载ava.json文件,这个文件很小,里面储存了识别框的文字描述
这里我有一个自己的理解,为什么这么多模型偏偏要用倒数那几个呢?
第一:因为前面几个模型都是在kinetic训练集上训练的,使用的时候要搭配kinetic.json的标签描述,最后的描述结果可能更加准确;
其实也可以尝试不同的json文件杂交不同的模型的【但是我找不到kinetic.json】
不过用官配对应肯定是最安全的。

最后一步也是最重要的一步:改yaml配置文件。

这里要注意,我们之前下载的pkl文件叫SLOWFAST_32x2_R101_50_50.pkl
那么我们就改相应的yaml文件
教程链接里面下载的和我一样的pkl但是是在别的yaml文件改的配置,容易搞混也不利于以后的查找哦
在这里插入图片描述 下面是我修改的yaml文件
在这里插入图片描述在这里插入图片描述修改yaml时遇到的问题1:
File “/home/xiao/anaconda3/envs/slowfast/lib/python3.8/site-packages/yacs/config.py”, line 491, in _merge_a_into_b
raise KeyError(“Non-existent config key: {}”.format(full_key))
KeyError: ‘Non-existent config key: TENSORBOARD.MODEL_VIS.TOPK’
解决:把这三个找不到的key注释了

#OUTPUT_DIR: .
#TENSORBOARD:
#MODEL_VIS:
#TOPK 2

问题2
File “/home/xiao/SlowFast-master/slowfast/visualization/demo_loader.py”, line 49, in init
raise IOError(“Video {} cannot be opened”.format(self.source))
OSError: Video 0 cannot be opened
解决:webcam 改为-1,因为我输入的是视频而不是图片

问题3
File “/home/xiao/anaconda3/envs/slowfast/lib/python3.8/site-packages/detectron2/model_zoo/model_zoo.py”, line 118, in get_config_file
raise RuntimeError("{} not available in Model Zoo!".format(config_path))
RuntimeError: /home/xiao/SlowFast-master/detectron2-master/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml not available in Model Zoo!
解决:把存放yaml文件的路径改成下面的形式,就是不要用绝对路经/home…/;
不知道为什么,明明下面放模型也能这样用。
在这里插入图片描述
配置完yaml文件就可以直接运行了~~
在这里插入图片描述在这里插入图片描述37秒就检测了一个1分51秒的视频,太快了~

在这里插入图片描述

一些需要注意的地方:slowfast或者分离的行为识别代码(不带检测,输入的是图片帧和对应的bondingbox),输入的视频应该为正常视频(非移动,非抽帧,即观感正常,帧速率高低不影响),如果是抽帧的视频,走行为可能识别为跑;移动的视频,可能识别出来的走为相对静止了。

  • 21
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值