Facebook计算机视觉开源框架Detectron2学习笔记 --- 从demo到训练自己的模型

Detectron2 是 Facebook 基于pytorch开发的一个计算机视觉的深度学习框架。

开始之前首先声明一下,我刚入坑深度学习,甚至可以说刚入坑计算机,这一系列博客仅仅是我个人的一个学习笔记,主要面向新手。因为现在很多 Detectron2 的分析其实都是面向老手(实际上刚入坑的新人也不会上来就接触 Detectron2 这种框架),很多细节部分可能大佬们觉得很简单就略过了,但是对于新手而言要费很长时间研究。因此这一系列文章仅仅记录一下我使用 Detectron2 过程中的学习历程以及踩过得坑,如果哪里有问题欢迎指正!

刚入坑深度学习不久,始终在研究CV的目标检测任务,现在常见的单阶段检测器(YOLO系列,SSD系列以及衍生品),双阶段检测器(Faster-RCNN系列),以及其它检测器(CenterNet, FCOS)基本都有尝试跑过。学习步骤基本就是 大概了解 -- 细读论文 -- 找代码跑一遍 -- 分析代码。但是后两个环节实际上非常费时间,毕竟我刚刚入门深度学习,最费时且无聊的一个步骤就是去 github 上找各种版本的代码,有些作者的官方实现写的比较混乱,可读性不高,分析代码非常痛苦,而有些其他人的实现甚至完全是错误的,本身就难以跑出正确结果。

机缘巧合之下我接触了 Facebook 开发的计算机视觉开源框架 Detectron2,这个框架用“拼积木”的方式,把模型的各个组件模块化,之后用不同的配置文件拼起来,这对于刚刚入门CV的新手们简直就是福音!首先,Detectron2 的代码非常清晰,想看哪个部分一目了然,同时各种超参数也可以简单地通过配置文件更改。另一方面,因为电脑配置以及时间原因,我自己跑模型验证的时候是使用的一个比较简单的数据集(仅有两类,数据在几千张),因为对于刚入门的学习者而言,属实没有必要非要把各个模型在 COCO, VOC 这种大型数据集上跑一遍去验证网络,这非常浪费时间,同时我自己的电脑配置也不支持我这么玩。因此,我经常会调整网络结构,因为我发现我的数据集根本没有必要使用那么大规模的网络(比如现在检测器最低档次也是用 ResNet18 作为 Backbone,8个残差块,卷积核数量一般是 64 - 128 - 256 - 512,再加上一些分支网络最后一般会有100M左右的参数量,确实是小题大作了,实际上我发现通常 3M 左右的参数量就能跑出不错的结果,最优情况下 <1M 的简化版 SSD 也能跑出来),所以,我的常用做法是把通道数缩小,改成 32 - 48 - 64 - 80 - 96, 同时,输入图片的分辨率也会缩小,需要先验框(anchor)的模型我会减少先验框数量,用到 FPN 的模型我通常会仅采用 2-3 张特征图进行上采样。使用 Detectron2 的时候,虽然不支持大部分网络层面上的修改,但是因为代码清晰,我自己修改起来也很快就能搞定,实在不行我重写一个主干网络也不是很费劲,这是我选用 Detectron2 的另一个因素。第三点,Detectron2 的训练速度远优于一些其他的实现代码,这一点是毋庸置疑的(虽然我现在也不明白原理),实际上在找代码的过程中发现,有些作者会直接把 Detectron2 的训练器搬过来用。

但是 Detectron2 目前内置的模型基本都是 双阶段检测器 (Faster-RCNN, RetinaNet),虽然在这种模块化的框架实现其他检测器也并不是很难,但是官方的源码里确实没有。。。因此我决定以后在研究新网落的时候,都搬到 Detectron2 来,过程中我也会对这个框架有更深的了解,所以学习 Detectron2 就是第一步。这一系列博客就当一个记录,记录我的学习历程。

所以,我写这一系列博客的目的是:

1. 系统学习 Detectron2 的结构。

2. 在 Detectron2 上实现自己的网络。

3. 使用 Detectron2 当作我的学习工具。

这里附上 Github 上 Detectron2 的官方代码:https://github.com/facebookresearch/detectron2

一些环境需求和安装什么的直接去 github 查看吧

目录:

所有学习始于官方文档:

1. Detectron2 “快速开始” Detection Tutorial Colab Notebook 详细解读

2. Detectron2 官方文档详细解读 (上)

3. Detectron2 官方文档详细解读(下)

4. Detectron2 代码解读(1)如何构建模型

5. Pytorch 基于 Detectron2 从零实现 Unet


  • 12
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值