作者|Aakarsh Yelisetty 编译|Flin 来源|towardsdatascience
让我们看看如何在涉及文本识别的自定义数据集上使用FAIR(Facebook AI Research)的Detectron 2进行实例检测。
你是否尝试过使用你自己选择的自定义数据集从头开始训练对象检测模型?
如果是的话,你就会知道这个过程有多乏味。如果我们选择基于区域建议的方法,如更快的R-CNN,或者我们也可以使用SSD和YOLO等一次性检测器算法,我们需要从使用特征金字塔网络和区域建议网络来构建模型。
如果我们想从头开始实现的话,它们中的任何一个都有点复杂。我们需要一个框架,在这个框架中,我们可以使用最先进的模型,例如Fast,Faster和Mask R-CNN。然而,重要的是我们需要从头开始构建一个模型,以理解其背后的数学原理。
如果我们想使用自定义数据集快速训练对象检测模型,Detectron 2就可以提供帮助。Detectron 2库的模型库中存在的所有模型都在COCO Dataset上进行了预训练。我们只需要在预先训练的模型上微调我们的自定义数据集。
Detectron 2完全重写了2018年发布的第一款Detectron。其前身是在Caffe2上编写的,Caffe2是一个深度学习框架,也得到了Facebook的支持。Caffe2和Detectron现在都不推荐使用。Caffe2现在是PyTorch的一部分,它的继承者Detectron 2完全是在PyTorch上编写的。
Detectron2旨在通过提供快速的训练并解决公司从研究到生产的过程中面临的问题,来促进机器学习的发展。
以下是Detectron 2提供的各种类型的目标检测模型。
让我们直接研究实例检测。
实例检测是指对象的分类和定位,并带有边界框。在本文中,我们将使用Detectron 2的模型库中的Faster RCNN模型来识别图像中的文本语言。
请注意,我们将语言限制为2种。
我们识别北印度语和英语文本,并为其他语言提供了一个名为“Others”的类。
我们将实现一个以这种方式输出的模型。
让我们开始吧!
使用Detectron 2,可以使用七个步骤对任何自定义数据集执行对象检测。所有这些步骤都可以在此Google Colab Notebook 中轻松找到,你可以立即运行!
使用Google Colab进行这项工作很容易,因为我们可以使用GPU进行更快的训练。
步骤1:安装Detectron 2
首先安装一些依赖项,例如Torch Vision和COCO API,然后检查CUDA是否可用。CUDA有助于跟踪当前选择的GPU。然后安装Detectron2。
# install dependencies:
!pip install -U torch==1.5 torchvision==0.6 -f https://download.pytorch.org/whl/cu101/torch_stable.html
!pip install cython pyyaml==5.1
!pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
import torch, torchvision
print(torch.__version__, torch.cuda.is_available())
!gcc --version
# install detectron2:
!pip install detectron2==0.1.3 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.5/index.html