CornerNet-Saccade
single type and multi-object
减少处理的像素的个数来提高inference的效率
通过attention map找到合适大小的前景区域,然后crop出来作为下一阶段的精检图片
CornerNet-Saccade 预测3张attention maps, 分别用于小尺寸(the longer side of its bounding box is less than 32 pixels)、中尺寸(between 32 and 96 pixels)、大尺寸目标(greater than 96 pixels)。单独预测不同尺寸的目标有助于我们更精确的控制放大比例。在hourglass module的上采样阶段预测attention maps,小尺寸目标使用细粒度特征图,大尺寸目标使用粗粒度特征图。在测试时,仅需处理分数大于阈值 t 的位置,作者设置t = 0.3。在训练过程中,我们将attention maps上每个边界框的中心位置设置为positive,其余为negative。
检测目标:从attention maps获得的locations,作者为不同的目标尺寸设置不同的放大因子: 。对于每一个潜在位置根据物体大小用相应的放大因子来放大,将 CornerNet-Saccade 应用在一个 255×255的窗口上,窗口的中心就是该位置。
hourglass backbone network——Hourglass-54代替CornerNet中使用的Hourglass-104
CornerNet-Squeeze
轻量级的Hourglass architecture
- 将部分3x3卷积核替换为1x1卷积核【SqueezeNet】
- 削减3x3卷积的输入通道数【SqueezeNet】
- 延迟下采样
- CornerNet-Lite/core/dbs目录,参照coco.py 构建自己的数据读取接口 如table_cell.py
- self._coco_cls_ids 类别
- self._coco_cls_names 类别对应名称
- coco_dir 对应table_cell.py
- self._split = {
"trainval": "train",
"minival": "val",
"testdev": "test"} 对应文件夹名称
- 修改CornerNet-Lite/core/dbs下的__init__.py,指向table_cell中定义的数据接口类:
- from .table_cell import COCO
- 修改CornerNet-Lite/config下的配置文件CornerNet_Saccade.json,做如下配置修改:
-
"batch_size": 8,
"chunk_sizes": [4,4]
"categories": 2,
-
- 修改CornerNet-Lite/core/dbs/detection.py self._configs["categories"] = 2 类别数目根据自己数据集修改
- 修改CornerNet-Lite/core/models/CornerNet_Saccade.py
-
tl_heats = nn.ModuleList([self._pred_mod(2) for _ in range(stacks)])
br_heats = nn.ModuleList([self._pred_mod(2) for _ in range(stacks)])
-
-
python train.py CornerNet_Saccade