千家信息网

Detectron2如何部署环境和安装

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章给大家分享的是有关Detectron2如何部署环境和安装的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。part1 : 杂七杂八和碎碎念因为Detectron2 本质
千家信息网最后更新 2024年11月26日Detectron2如何部署环境和安装

这篇文章给大家分享的是有关Detectron2如何部署环境和安装的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。


part1 : 杂七杂八和碎碎念

因为Detectron2 本质是可以被"安装"的,即在其他的文件目录下也可以使用detectron2 中相关的内容,所以我采用了如下的学习思路,首先建立了一个detectron2_notebook的文件夹,并和detectron2放在一个目录下:
1. 首先建立detectron2_notebook文件夹 和 detectron2 的项目
notebook中,d2learn 会放一些代码,notebook中存放markdown
2. 其次,建立在远端服务器上的docker ,并设置两个项目能够通过pycharm远程调试
3. 之后,在远程安装利用 python setup.py develop 安装detectron2 ,
3.1 这样子就能确保本地对detectron2 的修改在远端是能够生效的
3.2 同时也比较好方便自己对detectron2 进行魔改
4. 训练、测试和使用detectron2 的脚本,都会设立在notebook 文件夹中,方便以后整体"打包带走"

接下来我会一步一步的介绍如何完成这些操作


part2 :安装detectron2

一、docker 环境配置

工欲善其事必先利其器。所以在开始学习之前,当然是要认真的搭建一个可以使用的开发环境啦。首先假设你有一台可以使用CUDA10 的服务器(配CUDA环境的视频很多,这里不多赘述),一般来说呢,正常的开发环境是这样设计的:

如图,可以分为如下几个流程:

  • 首先会在服务器中启动好docker 容器,并暴露容器中的若干端口

  • 一般至少会暴露:

    • 22端口,方便pycharm ssh 连入docker进行远程调试

    • 其他至少一个端口,方便启动jupyterlab,好查看容器上的文件和进行命令行操作

  • 在容器中启动 jupyter lab ,并通过chrome 访问 jupyter lab, 方便文件的编辑、修改(我完全不会用vim...)

  • 利用pycharm 连接服务器,使得能够利用pycharm进行远程调试,便于修改和debug代码

至于如何配置一个能够支持detectron2开发的dockerfile嘛,基本可以参考官方的版本:

https://github.com/facebookresearch/detectron2/blob/master/Dockerfile

在此基础之上,需要在容器中进行如下额外的操作:

配置容器的 ssh 免密登录
这里我使用 14371 登录,是因为我把容器的22 端口映射到了服务器的14371 端口
启动jupyterlab ,使得能够在自己的电脑上通过网页访问
同样的,我把容器内jupyter启动的端口映射到了服务器的14374端口

二、pycharm的配置流程

在确保了docker 的可用之后,下一步就是需要配好pycharm 使得支持远程调试了,由于这一步比较繁琐,这里仔细的介绍一下相关的步骤。

2.1 配置服务器上传路径

2.2 配置服务器信息

2.3 配置服务器上传目录

2.4 配置远程调试环境

2.5 新建一个环境

2.6 选择ssh ,设置为刚才建立的环境

2.7 选择容器中具有pytorch依赖的python3,并设置上传的目录为2.3上的目录

2.8 配置完成

2.9 确认配置

确认使用了正确的远程python编译器,确认项目映射到了正确的远程的位置

2.9 一些注意

注意到我这里是把detectron2 和 我自己的notebook 放在了一个文件夹下,并且上传到服务器,这样做是我觉得比较方便管理,使得我在远端安装的detectron2的代码就来自于本地的这一份代码,方便改动

2.10 手动上传一次所有的数据

在右侧的remote host 中应该可以查看到对应的文件结构

2.10 确认能否调通

新建一个 hello_remote.py

执行

确认现在的执行信息为使用远端的服务器执行远端的文件:

三、detectron2 的安装

3.1 安装依赖

在jupyter lab中,新建一个命令行窗口(这时候就体现出jupyter lab 的方便了)

# 首先要保证有 pytorch2.3 , torchvision,其次安装如下依赖

pip3 install 'git+https://github.com/facebookresearch/fvcore'
pip install cython; pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

3.2 执行 python3 install develop安装

注意这里一定要使用 develop

3.3 确保detectron2 能够被成功的import

part3 :run demo ,跑出封面图!

首先,从detectron2/demo 中拷贝出predictor到同目录下,从configs/Misc/ 拷贝cascade_mask_rcnn_R_50_FPN_1x.yaml 到同一级别的目录下:

其次,在远端服务器中,把模型

https://dl.fbaipublicfiles.com/detectron2/Misc/cascade_mask_rcnn_R_50_FPN_1x/138602847/model_final_e9d89b.pkldl.fbaipublicfiles.com

下载到新建立的model文件夹中

修改拷贝的yaml ,使得指向下载的pkl

然后执行如下脚本即可:

感谢各位的阅读!关于"Detectron2如何部署环境和安装"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0