本文分享UniDetector最新版本的环境搭建过程,以及可能出现的问题;如有不当,欢迎指正
基本环境:
操作系统:linux
工具:pycharm,anaconda
python版本:python3.8
基本库:cuda = 11.1; pytorch = 1.10; mmcv-full = 1.3.14; mmdet=2.18.0
一:创建unidetector虚拟环境
从https://github.com/zhenyuw16/UniDetector下载代码到本地,解压。
使用conda命令创建虚拟环境:
conda create -n UniDetector python=3.8
激活虚拟环境:
conda activate UniDetector
二:安装关键的第三方库
1:安装本地cuda
首先查看自己的显卡驱动,在终端运行:
nvidia-smi
根据自己的显卡驱动选择合适的本地cuda版本(cuda的安装一般是向下兼容的)。
访问cuda安装官网
找到合适的版本后,选择对应的属性,例如:
选择完后界面下方会显示两行指令,复制后在本地终端执行:
后续操作可参考此视频教程:
ubuntu系统安装CUDA和CUDNN(CUDA安装)_哔哩哔哩_bilibili
2: 安装pytorch, torchvision, torchaudio,以及虚拟环境中的cuda
在虚拟环境中执行命令:
conda install pytorch=1.10 torchvision torchaudio pytorch-cuda cudatoolkit=11.1 -c pytorch -c nvidia
此过程等待时间可能会比较长
3:安装mmdet
安装mmdet可以直接执行
pip install mmdet==2.18.0
注:UniDetector是基于mmdet2.18.0的,而这个版本的mmdet在windows系统上还处于实验阶段,所以操作系统环境建议选择linux或mac系统
4:安装mmcv-full
安装mmcv-full是本人在配置环境过程中遇到最多困难最多的步骤,这里直接给出最终解决的代码,后续可能会进行部分过程分享:
pip install mmcv-full==1.3.18 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.10.2/index.html
5:安装requirments.txt里需要的库
pip install -r requirments.txt
因为这里涉及到的库很多,直接安装速度会非常的慢,建议换源后安装
换源可参考:
手把手教你在linux环境下更换python的pip源_linux pip换源-CSDN博客
三:对代码进行部分修改
环境配置好后运行总会出现报错,这时需要在报错文件image.py进行一部分的修改:
1:
image.py文件142line
label_text = class_names[
label] if class_names is not None else f'class {label}'ess
此代码需判断 ,class_name为字典,所有改为
if isinstance(class_names, dict):
label_text = class_names[
label] if class_names is not None else f'class {label}'
2:
image.py文件145line
if len(bbox) > 4:
label_text += f'|{bbox[-1]:.02f}'
ax.text(
bbox_int[0],
bbox_int[1],
f'{label_text}',
bbox={
'facecolor': 'black',
'alpha': 0.8,
'pad': 0.7,
'edgecolor': 'none'
},
该代码首先要对label_text赋值,所以在代码前加上
label_text = ‘’
四:测试
测试之前需要根据readme的指示去下载好UniDetector作者提供的已经训练好的模型,可以新建一个checkpoints文件夹专门存放,然后执行命令进行验证。(每个模型是有对应好的配置文件的,如果模型与配置文件不匹配,会导致只有边界框没有类别信息的情况发生)
python demo/image_demo.py demo/demo.jpg configs/singledataset/clip_end2end_faster_rcnn_r50_c4_1x_coco.py checkpoints/epoch_12_end2end_coco.pth
如果出现下图说明环境配置成功,可以进行下一步研究: