使用Detectron2分6步进行目标检测
让我们看看如何在涉及文本识别的自定义数据集上使用FAIR(Facebook AI Research)的Detectron 2进行实例检测 。
文章插图
你是否尝试过使用你自己选择的自定义数据集从头开始训练对象检测模型?
如果是的话 , 你就会知道这个过程有多乏味 。 如果我们选择基于区域建议的方法 , 如更快的R-CNN , 或者我们也可以使用SSD和YOLO等一次性检测器算法 , 我们需要从使用特征金字塔网络和区域建议网络来构建模型 。
【使用Detectron2分6步进行目标检测】如果我们想从头开始实现的话 , 它们中的任何一个都有点复杂 。 我们需要一个框架 , 在这个框架中 , 我们可以使用最先进的模型 , 例如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 !pip install cython pyyaml==5.1!pip install -U 'git+#subdirectory=PythonAPI'import torch, torchvisionprint(torch.__version__, torch.cuda.is_available())!gcc --version# install detectron2:!pip install detectron2==0.1.3 -f
步骤2:准备和注册数据集导入一些必要的程序包 。
# You may need to restart your runtime prior to this, to let your installation take effectimport detectron2from detectron2.utils.logger import setup_loggersetup_logger()# import some common librariesimport numpy as npimport cv2import randomfrom google.colab.patches import cv2_imshow# import some common detectron2 utilitiesfrom detectron2 import model_zoofrom detectron2.engine import DefaultPredictorfrom detectron2.config import get_cfgfrom detectron2.utils.visualizer import Visualizerfrom detectron2.data import MetadataCatalog
内置数据集中列出了detectron2具有内置支持的数据集 。 如果要使用自定义数据集 , 同时还要重用detectron2的数据加载器 , 则需要注册数据集(即 , 告诉detectron2如何获取数据集) 。
- 内置数据集:
- 英语
- 印地语
- 其他
如果你有兴趣了解从原始数据集格式到Detectron 2接受的格式的转换 , 请查看:
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面
- QuestMobile|QuestMobile:百度智能小程序月人均使用个数达9.6个
- 车辆|魔道之争,自主驾驶汽车会不会变成犯罪分子的工具?
- 介绍|5分钟介绍各种类型的人工智能技术
- 资本|2020年中国人工智能医疗行业发展现状分析 处于成长期且资本热度高
- 轻松|使用 GIMP 轻松地设置图片透明度
- 电池容量|Windows 自带功能查看笔记本电脑电池使用情况,你的容量还好吗?
- 用户|密室逃脱行业发展及用户分析报告:哪些人在沉迷密室逃脱?
- 车一族|直播|@爱车一族:60分钟穿越汽车的前世今生