Ubuntu 18.04 成功跑通 Detectron2 SOLOV2 demo(详细)_detetron2 solo2 config 下载-程序员宅基地

技术标签: 深度学习  pytorch  神经网络  

由于项目需要,刚刚接触 instance segmentation。经过论文的研读,就先把目标放在了SOLO V2上面,一开始安装的是mmdet版本的solo v2。但是奈何bug太多所以先转到了detectron2版本的。

SOLO V2(mmdet)    https://github.com/WXinlong/SOLO

SOLO V2(detectron2)     https://github.com/aim-uofa/AdelaiDet

 

我所连接的是学校配备的服务器,系统是Ubuntu18.04。首先conda是必须的(有时候conda是真的装不上东西不知道为何)。GCC 7.5。CUDA版本预设的是11.1,但是这个版本安装全部失败了,所以经过各种失败(不是管理员真的难受),最终成功地转到了CUDA10.1 update2的版本。一下是我进行配置Detectron2的全(bug)过程。中途遇到了一些module的版本错误,当然以下过程是对bug进行解决之后的。

 

conda create -n d2 python=3.7.3
conda activate d2

 

pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

在安装完cocoapi之后,通过进入python来进行测试是否安装成功。

首先对detectron2的环境进行编译:

conda install opencv

pip install fvcore==0.1.5.post20210415

pip install omegaconf==2.1.0.rc1

pip install importlib


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

cd detectron2

python setup.py build develop

在编译成功之后,运行demo提示我 detectron2 0.4 需要pycocotools>=2.0.2. 所以我对此进行重新安装

pip install pycocotools==2.0.2

在这之后我并没有对整个的环境进行重新编译。

首先对demo实例中所需要的数据集进行下载(其他数据集可以在model ZOO中进行查找):

wget https://dl.fbaipublicfiles.com/detectron2/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl

把下载好的model放到 新建的model文件夹中。另外新建立test_img文件夹作为测试图片的文件夹。result作为输出结果的文件夹。

python demo/demo.py --config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --input test_img/111.jpg --output result --opts MODEL.WEIGHTS model/model_final_f10217.pkl

 

在成功安装detectron2框架之后,我们在当前detectron2文件夹下进行AdelaiDet的安装:

git clone https://github.com/aim-uofa/AdelaiDet.git

cd AdelaiDet

python setup.py build develop

如果detectron2安装成功的话,后面的AdelaiDet基本不会出错,在等一段较长地安装时间过后就会提示安装成功。让我们再使用刚才进行测试的图片,来跑SOLOV2的model.

首先对SOLOv2_R50_3x.pth进行下载,并放置于AdelaiDet下新建的model文件夹中。其余的文件夹的创建跟detectron2的一样。

SOLOV2 model下载链接:

https://cloudstor.aarnet.edu.au/plus/s/chF3VKQT4RDoEqC/download


python demo/demo.py --config-file configs/SOLOv2/R50_3x.yaml --input test_img/111.jpg --output result --opts MODEL.WEIGHTS model/SOLOv2_R50_3x.pth

demo运行成功后的结果图:

之后对于数据集训练的测试过程也会再之后放上来。

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43776003/article/details/117740648

智能推荐

面试题-分布式_分布式、缓存、消息等机制;-程序员宅基地

文章浏览阅读1.2k次,点赞12次,收藏73次。一、分布式知识点:分布式基础、缓存机制、消息机制、搜索机制、分布式ID、分布式锁、分布式SESSION、分布式事务、分布式分页、分布式部署、二、分布式基础知识 软件架构设计的六大原则:https://blog.csdn.net/u012562943/article/details/76110761 软件架构需要考虑的基本原则:https://blog.csdn.net/zyhl..._分布式、缓存、消息等机制;

执行git命令报错:fatal: not a git repository (or any of the parent directories): .git-程序员宅基地

文章浏览阅读1.7w次,点赞2次,收藏8次。寞水_fatal: not a git repository (or any of the parent directories): .git

分布式消息通信之Kafka的实现原理_kafka多节点使用一个group时 每个节点都会收到消息吗-程序员宅基地

文章浏览阅读1.2k次。当然,每个分区只能由同一个消费组内的一个consumer来消费.如下图所示,分别有三个消费者,属于两个不同的group,那么对于firstTopic这个topic来说,这两个组的消费者都能同时消费这个topic中的消息,对于此事的架构来说,这个firstTopic就类似于ActiveMQ中的topic概念。从前面的整个演示过程来看,只要不是超大规模的使用kafka,那么基本上没什么大问题,否则,对于kafka本身的运维的挑战会很大,同时,针对每一个参数的调优也显得很重要。所以需要借助一些开源中间件来解决。._kafka多节点使用一个group时 每个节点都会收到消息吗

DrawPath实现QQ拖拽泡泡_draw path-程序员宅基地

文章浏览阅读211次。这两天学习了使用Path绘制贝塞尔曲线相关,然后自己动手做了一个类似QQ未读消息可拖拽的小气泡,效果图如下:最终效果图接下来一步一步的实现整个过程。基本原理其实就是使用Path绘制三点的二次方贝塞尔曲线来完成那个妖娆的曲线的。然后根据触摸点不断绘制对应的圆形,根据距离的改变改变原始固定圆形的半径大小。最后就是松手后返回或者爆裂的实现。Path介绍:顾名思义,就是一个路径的意思,Path里面有很多的..._draw path

EmEditor Professional v14/15/16/17/18 最新版 注册码 2000组(终身授权)_sm52.vip-程序员宅基地

文章浏览阅读7.8w次,点赞13次,收藏36次。EmEditor 是快速,轻巧,可扩展,使用方便的 Windows 文本编辑器。同时支持32位和64位版本!ZDnet.com 的 Ed Burnette 称 EmEditor 为 “全球最快的文本编辑器”。 (见全文)日本人气网站窓の杜 (Mado-no-mori) 评价,“无需 Excel。最强 CSV 编辑器”。(见译文)Riccardo Tani,一位网络防御经理,推荐用 Em..._sm52.vip

面试高频手撕题 | 09.将两个有序数组合并成一个有序数组_开合跳、色盲测试、展示手心手背-程序员宅基地

文章浏览阅读842次,点赞23次,收藏18次。一、知识点斐波那契数列(Fibonacci sequence),又称黄金分割数列,是一个经典的数学数列,起始于 0 和 1,后续的每一项都是前两项的和。指针指向下一个节点,从而形成链表。一、知识点归并排序:归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一。//这题我写的非常恼火,有时候题目整的的谜语人一样,例子也不能多给几个,就靠提交的过程中遇到的错误去判错,简直是一种侮辱package mainimport (_开合跳、色盲测试、展示手心手背

随便推点

Node.js和Vue的安装与配置(超详细步骤)_nodejs安装vue-程序员宅基地

文章浏览阅读2.3w次,点赞69次,收藏297次。Node.js和Vue的安装与配置(超详细步骤)_nodejs安装vue

Windows 7 新功能 - 问题步骤记录器-程序员宅基地

文章浏览阅读2.6k次。Windows 7 新功能 - 问题步骤记录器_问题步骤记录器

【CISSP备考】第八章-软件开发安全-程序员宅基地

文章浏览阅读488次。记录CISSP备考笔记

QML 自定义组件(时钟)_qt6 qml添加自定义组件-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏2次。在 QML 开发过程中,经常需要自定义组件,这有利于我们的代码复用性、模块化、以及扩展性。通过使用自定义组件,不但可以提高开发效率,降低维护成本,还可以快速构建出功能丰富、灵活可扩展的 QML 应用程序。_qt6 qml添加自定义组件

计算机操作系统第三章自测题-处理机调度与死锁-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏20次。1、在单处理器的多进程系统中,进程什么时候占有处理器以及决定占用时间的长短是由( )决定的。A、进程运行时间    B、进程的特点和进程调度策略C、进程执行的代码   D、进程完成什么功能进程调度的时机与进程特点有关,如进程是否为CPU繁忙型还是I/O繁忙型、自身的优先级等。但是仅这些特点是不够的,能否得到调度还取决于进程调度策略,若采用优先级调度算法,则进程的优先级才起作用。..._在选择处理器调度算法时,为了使短作业、长作业及交互作业用户都比较满意,应采用( ).a基于优先权的剥夺调度算法b响应比优先算法c时间片轮转法d多级反馈队列调度算法e短作业优先调度算法ffcfs调度算法

[MySQL] 查看正在执行的sql语句 show processlist_show processlist 能显示sql 语句吗-程序员宅基地

文章浏览阅读8.9k次。processlist命令的输出结果显示了有哪些线程在运行可以帮助识别出有问题的查询语句,两种方式使用这个命令。 1. 进入mysql/bin目录下输入mysql admin processlist; 2. 启动mysql,输入show processlist; 如果有SUPER权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户..._show processlist 能显示sql 语句吗

推荐文章

热门文章

相关标签