简介
Detectron 2是基于 PyTorch 框架的目标检测平台,源码地址。
- 新模型Detectron2 包括原始 Detectron 中的所有模型,例如 Faster R-CNN,Mask R-CNN,RetinaNet 和 DensePose。除此之外,Detectron2 还加入了几个新模型,包括:Cascade R-CNN,Panoptic FPN 和 TensorMask,未来还将继续添加更多算法。
- 新功能在 Detectron2 还包含了一些新功能,例如:同步批处理规范化(synchronous Batch Norm),以及对 LVIS 等新数据集的支持等。
- 新任务支持 Detectron2 支持与目标检测有关的一系列任务。和之前的 Detectron 一样,它也支持目标检测、实例分割、人体姿态估计等任务。此外,Detectron2 还支持语义分割和全景分割。
安装
第一步:创建一个虚拟环境,并安装依赖项:(我的环境如下)
- Python3.6.10
- Pytorch1.4.0
- torchvision0.5.0
- opencv-contrib-python4.2.0.34
安装opencv时不能直接使用“conda install opencv”命令安装,因为这样只会安装opencv的主模块,后续运行demo的时候会报错。我们应该使用如下命令来安装opencv的加强版:
conda install opencv-contrib-python
- pycocotools,其安装命令如下:
pip install cython
pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
第二步:编译Detectron2
将源码下载到本地
git clone https://github.com/facebookresearch/detectron2.git
进入detectron2文件夹内,执行编译命令
cd detectron2
python -m pip install -e .
注意:如果detectron2是在其它设备上拷贝过来(已编译过)或者重新安装了虚拟环境中的Pytorch等依赖包,需要使用如下命令删除detectron2文件夹内的build文件夹,然后重新编译
rm -rf build/ **/*.so
demo运行
在detectron2文件夹下新建一个demo.sh文件,其内容如下:
python demo/demo.py \
--config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml \
--webcam \
--opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl
激活虚拟环境,执行demo.sh文件即可开启网络摄像头实现基于mask_rcnn的目标检测。
注意:如果出现"invalid device function"错误,说明编译detectron2的CUDA版本与运行detectron2的CUDA版本不一致。详情查看detectron2的INSTALL.md文件。
参考文章:https://www.leiphone.com/news/201910/P2sq3UjmbsI6QdiW.html
https://www.aiuai.cn/aifarm1288.html#1.detectron2%E5%AE%89%E8%A3%85