最近也学习了下detectron2检测框架,总的来讲该框架由Facebook开源,质量还是非常不错的,值得学习。今天就对我第一次安装和测试遇到的一些问题进行整理和总结。

1、安装

(1) 相关链接
  1. 官方地址:detectron2
  2. 支持的模型:Detectron2 Model Zoo and Baselines
  3. 官方安装方法:安装方法
  4. 官方教程:Detectron2 Tutorials
(2) 我的安装

一般出现问题的地方就是安装各种环境了,虽然官方已经给出了安装方式,但是在安装的过程中还是会出现一些问题(自己的问题哈)。现在总结一下遇到的一些坑。

Python >= 3.6
PyTorch 1.3
torchvision # 安装的过程中要注意与PyTorch版本匹配
OpenCV 
fvcore: pip install 'git+https://github.com/facebookresearch/fvcore'
# 下面是 coco数据集api 相关接口库安装
pycocotools: pip install cython; pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

# 这个是C/C++编译环境的要求,如果不对,在编译过程基本就会失败
GCC >= 4.9

# 此外遇到一个pil 库的要求是6.0以上,否则也编译不通过
Pillow >= 6.0

我就是安装上面这些库一条一条 pip install安装的,最后验证是成功的。接下来是下载编译detectron2

git clone git@github.com:facebookresearch/detectron2.git
cd detectron2
python setup.py build develop
# 官方给的是Git下载方式,我是直接下载zip文件,然后执行setup.py脚本也成功了

注意的地方是:如果因为其中的一个库没有安装成功,造成失败,建议把相关库重新安装,并且一定把之前编译的文件都删除,重新编译

2、测试

detectron2安装编译成功之后就可以进行测试了,这里就以全景分割的Baselines进行测试。测试这一块主要参考了博客 detectron2的安装和测试

python demo/demo.py --config-file configs/COCO-PanopticSegmentation/panoptic_fpn_R_50_3x.yaml --input images/001.jpg --output results --opts MODEL.WEIGHTS models/model_final_c10459.pkl

这里面有几个参数:

  • configs/COCO-PanopticSegmentation/panoptic_fpn_R_50_3x.yaml 这个是配置信息,detectron2那个文件夹里面已经有了
  • input images/001.jpg --output results 这个是要测试的路径,自己安排就可以了
  • output results 自己定义一个输出路径
  • opts MODEL.WEIGHTS models/model_final_c10459.pkl 这是训练好的模型,根据自己的要求去model zoom 下载就可以了

看看结果如何:
在这里插入图片描述

3、相关问题

问题1:Pillow版本要在6.0.0版本以上或者更高,解决办法升级版本即可

pip install Pillow==6.1.0
# 如果需要遇到权限问题
sudo /usr/local/anaconda3/bin/pip install Pillow==6.1.0

官网地址:https://pypi.org/simple/pillow/

问题2:已经安装了fvcor仍然报错:No module named 'fvcore.common.registry'

  File "demo/demo.py", line 14, in <module>
    from predictor import VisualizationDemo
  File "/home/ads_9ncloud/detectron2-master/demo/predictor.py", line 10, in <module>
    from detectron2.engine.defaults import DefaultPredictor
  File "/home/ads_9ncloud/detectron2-master/detectron2/engine/__init__.py", line 12, in <module>
    from .defaults import *
  File "/home/ads_9ncloud/detectron2-master/detectron2/engine/defaults.py", line 34, in <module>
    from detectron2.modeling import build_model
  File "/home/ads_9ncloud/detectron2-master/detectron2/modeling/__init__.py", line 6, in <module>
    from .anchor_generator import build_anchor_generator, ANCHOR_GENERATOR_REGISTRY
  File "/home/ads_9ncloud/detectron2-master/detectron2/modeling/anchor_generator.py", line 10, in <module>
    from detectron2.utils.registry import Registry
  File "/home/ads_9ncloud/detectron2-master/detectron2/utils/registry.py", line 4, in <module>
    from fvcore.common.registry import Registry  # noqa
ModuleNotFoundError: No module named 'fvcore.common.registry'

解决方法:参考链接

# 重新安装
pip install -U git+https://github.com/facebookresearch/fvcore.git

仍然出错:

ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: 'INSTALLER'
Consider using the `--user` option or check the permissions.

再次安装成功

# 再次重新安装  -- 成功
pip install -U git+https://github.com/facebookresearch/fvcore.git --user

声明: 总结学习,有问题或不当之处,可以批评指正哦,谢谢。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐