最近在安装mmlab下面的mmclassification,遇到了不少问题。记录一下在安装的过程中的报错以及解决办法。
因为看到大家很多是在linux下环境进行安装的,目前还没有应用linux进行安装,以下都是在windows环境下进行安装。
第 1 步 从官网(Index of /anaconda/archive/ | 北京外国语大学开源软件镜像站 | BFSU Open Source Mirror)下载并安装 Anaconda。 这里有详细教程
(135条消息) anaconda安装-超详细版_plasma-deeplearning的博客-CSDN博客_anaconda
第 2 步 创建一个 conda 虚拟环境并激活它。注意 这一步需要在Powershell Prompt中完成
conda create --name openmmlab python=3.8 -y
conda activate openmmlab
第 3 步 按照官方指南安装 PyTorch。例如:
这里分为两种情况 GPU安装和CPU安装 这里以CPU安装为例进行说明
conda install pytorch torchvision cpuonly -c pytorch
这些步骤进行结束后,我们已经安装了mmclassification的基本环境,之后我们就要开始安装mmclassification的核心内容。
这里建议大家在进行之前先升级一下pip,会省掉后面很多的麻烦
pip install --upgrade pip
之后我们进行openmim的安装
pip install -U openmim
进行这一步安装的时候注意网络一定要稳定,否则会出现这样的情况
![](https://img-blog.csdnimg.cn/img_convert/6838f62a63ccab82c48d45a313214c3b.png)
如果出现了这样的情况,我们可以利用清华镜像进行安装
pip install -U openmim https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
这样的话网速就会快很多。如果使用镜像安装依然不成功,那只能多试官网提供的方法,多试几次之后成功的概率会大很多。
之后我们进行mmcv的安装
mim install mmcv-full
这里的安装方法和openmim很像,出错的问题也很像,完全可以参照上面的方法。
第 5 步 安装 MMClassification
git clone https://github.com/open-mmlab/mmclassification.git
因为这里是通过github安装,网络可能不稳定,大家多试几次就好了
cd mmclassification
安装成功之后我们转到mmclassification下面
pip install -v -e .
-v 表示输出更多安装相关的信息
-e 表示以可编辑形式安装,这样可以在不重新安装的情况下,让本地修改直接生效
在这里进行安装的时候会报错说很多各种各样的库比如numpy,matplotlib等等,这个时候按照第四步利用清华镜像一个一个去安装就好了,那个库没安装我们就安装那个,等到安装完成之后我们再尝试这个命令。
如果能够出现这样的情况,说明MMClassification 已经安装正确了
![](https://img-blog.csdnimg.cn/img_convert/763e4cff5bd1ec3ec90abfeb9ed313a8.png)
在结束了安装之后,我们需要通过一些步骤去验证我们的安装
第 1 步 我们需要下载配置文件和模型权重文件
mim download mmcls --config resnet50_8xb32_in1k --dest .
在执行的过程中可能会有一大堆报错我们不需要管,但最后会有一个
![](https://img-blog.csdnimg.cn/img_convert/be3defb9c6eb7bd5755ce386ba9a1792.png)
这个时候我们就需要安装mmengine,但是提示给的命令会有很多错误,这个时候我们可以尝试用这种方法安装mmengine
mim install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn mmengine
安装完成之后再尝试第一步的命令,出现下面的图片说明配置文件和模型权重文件已经配置成功了
![](https://img-blog.csdnimg.cn/img_convert/bd3963fba529b5f7026bf61961ae553d.png)
第 2 步 验证示例的推理流程
因为我是源码安装的,所以直接用命令行进行验证
python demo/image_demo.py demo/demo.JPEG resnet50_8xb32_in1k.py resnet50_8xb32_in1k_20210831-ea4938fc.pth --device cpu
但是会说没有安装torchvision,我们用下面的代码安装
pip install torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
之后再尝试之前的源码,就会出现pre-label,pre-score,pre-name三个内容
![](https://img-blog.csdnimg.cn/img_convert/dd5b6450d7c1132a9933c55daa3a8c7a.png)
另外如果你拥有图形 界面(而不是使用远程终端),那么可以启用 --show 选项,将示例图像和对应的预测结果在窗口中进行显示。
python demo/image_demo.py demo/demo.JPEG resnet50_8xb32_in1k.py resnet50_8xb32_in1k_20210831-ea4938fc.pth --device cpu --show
最后的图片效果如下:
![](https://img-blog.csdnimg.cn/img_convert/cfdf2ba7ee186c440fc8a9e8e77bf2ce.png)
如果我们修改一下其他的图片(只要是"mmclassification\demo\)下的文件都可以,也会有相同的结果。
我们以cat-dog为例
python demo/image_demo.py demo/cat-dog.png resnet50_8xb32_in1k.py resnet50_8xb32_in1k_20210831-ea4938fc.pth --device cpu --show
![](https://img-blog.csdnimg.cn/img_convert/72d1f87563e2de9bf21c8fb204a23f1f.png)
再以bird为例
python demo/image_demo.py demo/bird.JPEG resnet50_8xb32_in1k.py resnet50_8xb32_in1k_20210831-ea4938fc.pth --device cpu --show
![](https://img-blog.csdnimg.cn/img_convert/f11e67a5e0ac9001e8a9ddb8727fdd0b.png)
我们看到这里的score达到了0.99 说明任务准确性是非常高的。
但是当分类荷花的时候就有问题了,当我们放一张荷花的图片,出来的class是蚂蚁。
![](https://img-blog.csdnimg.cn/img_convert/ceb5d58d1f1dbf8bdf87b5b06eb3c349.png)
我们也能看到score也是很低的。
那么,我们就可以用这个实现基本的分类任务了。
大家完全可以自己在网上找图片进行验证。
后续会更新自己构建数据集进行识别。
谢谢大家!