Mask R-CNN的源码是随着FAIR的物体检测平台detectron公布的,detectron囊括了从Fast R-CNN到Mask R-CNN所有重要的物体检测算法,整个平台基于caffe2实现。本文主要从代码层面介绍Mask R-CNN具体的实现过程。
一、caffe2介绍
caffe2是在caffe的基础上的进化版,最大的特色就是引入了operator的概念,取代了caffe中layer作为net的基本构造单位。
由于operator定义很基础,很抽象,因此caffe2中的权值初始化、前传、反传、梯度更新都可以用operator实现,所以solver、layer类在caffe2中都不是必要的。在caffe2中,对应的基础组成有:
- blob:存储数据
- operator:输入blob,输出blob,定义了计算规则
- 网络:net,由多个operator组合实现
- workspace:caffe中没有,可以理解成变量的空间,便于管理网络和变量
所以在使用caffe2之前,需要先将caffe2.python.core和caffe2.python.workspace导入,这里边有常用的一些类和函数。
from caffe2.python import core, workspace