unidetector项目环境配置

本文分享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

unidetector项目环境配置_第1张图片

根据自己的显卡驱动选择合适的本地cuda版本(cuda的安装一般是向下兼容的)。

访问cuda安装官网

找到合适的版本后,选择对应的属性,例如:

unidetector项目环境配置_第2张图片

选择完后界面下方会显示两行指令,复制后在本地终端执行:

后续操作可参考此视频教程:

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

如果出现下图说明环境配置成功,可以进行下一步研究:

unidetector项目环境配置_第3张图片

                

你可能感兴趣的:(经验分享,python,目标检测)