实例分割SOLO SOLOv2环境配置(ubuntu20.04 + miniconda)

news/2024/12/1 15:33:46/

SOLO & SOLOv2环境配置

如果说实例分割绕不开Mask R-CNN,那么SOLOv2作者提到的 FastHigh-qualitySOTA 等特性都让人忍不住想试试🧐
开源代码地址:
https://github.com/WXinlong/SOLO

本文基本参照原作者开源代码中的流程配置,主要工作是对步骤进行了本土化处理🤣

昏天黑地配置了一天,各种错误和失败基本总结为两个原因

  • 依赖库版本不对应
  • 网络不好 (懂的都懂😶)

配置环境

ubuntu20.04 + miniconda
Ubuntu20.04安装Miniconda + Pycharm

新建Python环境

conda create -n solo2 python=3.8

进入虚拟环境

conda activate solo2

如果环境崩了,删除指定环境🙃删除过不下8次,人生要是有重启键可太好了

conda remove -n solo2 --all

安装pytorch,torchvision
第一个大坑!
哈哈,如果使用作者的代码 conda 安装 pytorchtorchvision 🤡,你就会体会到什么是痛苦!

conda install pytorch torchvision -c pytorch

两个原因
1 会自动安装最新 pytorch 2.0.0版本,不适配
2 conda 安装时不会配置对应的 CUDA 虚拟环境

开始还不信邪,就要用高版本怎么了🤨!有问题解决问题,看了些大佬贴就膨胀了,遇到报错就查,查完就跑通了😎,查完就有新的报错😇,看到有人说 pytorch 降到 1.4.0 就行,放弃幻想,准备斗争,准备妥协!

第二个坑!
官方pytorch历史版本下载网站
https://pytorch.org/get-started/previous-versions/
这里的安装指令只有 1.11.0 版本往后的才能用,之前的版本都会报错找不到,想要安装 pytorch 1.4.0 版本还需要另寻他路,大部分文章都是用官方的地址让在里面找,确实能找到,安装不了是真的😐。

山重水复疑无路,柳暗花明又一村
偶然找到离线版本下载地址,只需要下载对应的whl文件就可以本地安装了!
离线版本下载网站
https://download.pytorch.org/whl/torch_stable.html
在网站里下载需要的对应版本pytorch和torchvision,本文下载的文件分别是 cu101/torch-1.4.0-cp38-cp38-linux_x86_64.whl cu101/torchvision-0.5.0-cp38-cp38-win_amd64.whl

在文件所在目录打开终端,确认在对应的虚拟环境中,如果不在就再进一次虚拟环境

conda activate solo2

在虚拟环境中按顺序安装离线文件
使用阿里云镜像源解决部分依赖项下载慢的问题!

pip install torch-1.4.0-cp38-cp38-linux_x86_64.whl
pip install torchvision-0.5.0-cp38-cp38-linux_x86_64.whl -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

下载SOLO源代码

# git clone或者直接下载压缩包,后续会更改的话推荐下载压缩包
git clone https://github.com/WXinlong/SOLO.git
# 进入目录
cd SOLO

安装依赖
通过github repo而不是pypi来安装pycocotools,因为pypi的版本很旧,与最新的numpy不兼容

2023 04 27更新
安装依赖之前可以先规定 requirements/runtime.txt 文件中 numpy 的版本,防止后续报错
‘numpy’ has no attribute ‘bool’
修改后文件如下

matplotlib
mmcv==0.2.16
numpy==1.23
scipy
# need older pillow until torchvision is fixed
Pillow<=6.2.2
six
terminaltables
torch>=1.1
torchvision

继续安装依赖

pip install -r requirements/build.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# 安装pycocotools
# 官方 pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI" 出错,代替方案如下
pip install "git+https://gitee.com/wsyin/cocoapi.git#subdirectory=PythonAPI" -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

安装SOLO

pip install -v -e . -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com 
# or "python setup.py develop -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com"

测试demo

作者提供了 inference_demo.py 文件运行简单的demo

在SOLO目录下创建 checkpoints 文件夹

mkdir checkpoints

下载对应模型的权重放入 checkpoints 文件夹

更改权重路径 checkpoint_file 和对应的模型路径 config_file 以及图像读取路径
如果是终端运行最好将所有路径改为绝对路径防止出错

运行demo
在SOLO目录打开终端运行

python demo/inference_demo.py

第一次运行时报错
AttributeError: module ‘numpy’ has no attribute ‘bool’

问题原因
numpy的1.24版本弃用了np.bool这个名称,使用np.bool_

解决方案
2023 04 27更新
方法一:降低numpy版本到1.23
卸载当前虚拟环境中的numpy

pip uninstall numpy

安装1.23版本的numpy

pip install numpy==1.23 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

方法二:更改报错位置
建议降低版本,因为后续还有很多类似的冲突,越改越多 🤣
将np.bool更改为np.bool_
具体地,更改 SOLO/mmdet/apis/inference.py 文件的 276
“~/SOLO/mmdet/apis/inference.py”, line 276

# 更改前
cur_mask_bool = cur_mask.astype(np.bool)
# 更改后
cur_mask_bool = cur_mask.astype(np.bool_)

再次运行可以输出结果图片,配置成功✅

增加时间检测函数测试不同模型和权重的处理效率

import time
import torch
def time_synchronized():torch.cuda.synchronize() if torch.cuda.is_available() else Nonereturn time.time()
t_start = time_synchronized()
# ...运行程序...
t_end = time_synchronized()
print("Timecosts: {}".format(t_end - t_start))

接下一篇实例分割SOLO & SOLOv2训练自建数据集(ubuntu20.04 + miniconda)


http://www.ppmy.cn/news/459752.html

相关文章

solo/solov2 训练自己的数据集并且测试

主要参考&#xff1a;很详细 安装环境、跑通并且测试请看之前的文章&#xff1a;环境安装、图片预测 数据准备 工具:labeme 打开图片手动标注&#xff0c;生成json文件&#xff0c;每张图片对应一json文件 将你标注的原图片以及对应的json文件分为train和val两个文件夹&#x…

soloV2保姆级教程(含环境配置,训练自己的数据集,代码逻辑分析等。能踩得坑都踩了....)更新ing

序言 环境&#xff1a;ubuntu18.04 cuda11.1 显卡3050 pytorch1.9 代码链接&#xff1a; GitHub - aim-uofa/AdelaiDet: AdelaiDet is an open source toolbox for multiple instance-level detection and recognition tasks. 论文解读可参考这位博主&#xff1a; SOLOv2…

SOLOV2训练教学

Github: https://github.com/WXinlong/SOLO 我的操作系统是Ubuntu18.04&#xff0c;本文将会分成以下部分&#xff1a; 创建数据集修改config模型训练可视化Mask结果模型评估推理预测推理优化 首先安装一些基本库&#xff0c;可参考官方安装说明 $ git clone https://github…

中缀表达式转后缀表达式

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现。 ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注…

历年美赛赛题-中文翻译版(四)

目录 MCM1997 问题-A Velociraptor(疾走龙属)问题 第 1 部分 第 2 部分

【Express.js】请求类型

请求类型 本节将介绍常见的http请求方式&#xff0c;并站在后端的角度初步感受它们的不同点 各类Http请求 GET 意图是获取&#xff0c;不会对服务器上的数据产生影响&#xff0c;将要携带的数据放在URL上&#xff0c;通常不带请求体&#xff0c;带了也不一定兼容POST 意图是…

Windows10设置暗色主题

Windows10设置暗色主题 在设置的个性化->颜色

【暗调】壁纸—001

最大的好处——省电。