Object detection开源框架调研

1. tensorflow object detection API

tensorflow object detection API 将很多模型封装好了,如faster-RCNN、SSD等,可以自由切换自己想要的模型,使用很方便。

tensorflow object detection api 页面

1.1 安装

安装

1.2 数据集制作

VOC和 Oxford-IIIT Pet 数据集tfrecord制作

自定义数据集制作

1.3 model zoo

Tensorflow detection model zoo

Model name Speed (ms) COCO mAP Outputs
ssd_mobilenet_v1_coco 30 21 Boxes
ssd_mobilenet_v1_0.75_depth_coco ☆ 26 18 Boxes
ssd_mobilenet_v1_quantized_coco ☆ 29 18 Boxes
ssd_mobilenet_v1_0.75_depth_quantized_coco ☆ 29 16 Boxes
ssd_mobilenet_v1_ppn_coco ☆ 26 20 Boxes
ssd_mobilenet_v1_fpn_coco ☆ 56 32 Boxes
ssd_resnet_50_fpn_coco ☆ 76 35 Boxes
ssd_mobilenet_v2_coco 31 22 Boxes
ssd_mobilenet_v2_quantized_coco 29 22 Boxes
ssdlite_mobilenet_v2_coco 27 22 Boxes
ssd_inception_v2_coco 42 24 Boxes
faster_rcnn_inception_v2_coco 58 28 Boxes
faster_rcnn_resnet50_coco 89 30 Boxes
faster_rcnn_resnet50_lowproposals_coco 64   Boxes
rfcn_resnet101_coco 92 30 Boxes
faster_rcnn_resnet101_coco 106 32 Boxes
faster_rcnn_resnet101_lowproposals_coco 82   Boxes
faster_rcnn_inception_resnet_v2_atrous_coco 620 37 Boxes
faster_rcnn_inception_resnet_v2_atrous_lowproposals_coco 241   Boxes
faster_rcnn_nas 1833 43 Boxes
faster_rcnn_nas_lowproposals_coco 540   Boxes

人脸

Model name Speed (ms) Open Images mAP@0.5 Outputs
facessd_mobilenet_v2_quantized_open_image_v4 20 73 (faces) Boxes

1.4 训练

Oxford-IIIT Pets训练

本地训练

云端训练


步骤

  • 准备数据集,转化成tfrecord格式
  • 准备pipline文件 -》各种参数、路径等等的定义
  • 训练,可以直接使用model zoo里面的finetune
  • 测试
  • 转换成lite上设备

2. FaceBook Detectron框架

详情参考: 传送门

caffe2框架(应该是并入Pytorch了)

支持下面的相关论文

3. static image object detection: Pelee

3.1 PeleeNet

Pytorch训练的一个特征提取框架,类似于VGG、resnet。

优点:

  • 速度快,输入直接接一个stride为2的卷积层,然后又缩小一半,类似于resnet,直接将输入变为1/4大小。另外,channel会动态调整,降低计算量。
  • 跨层连接,除了前面的的原始层。中间是两个层concat出来,再加上原始层,可以使结果更精确。Resblock也是concat两个卷积层的输出,类似于inception。

结果:

比mobilenet_v1 计算量略小,速度快,准确率比mobilenet_v1高

3.2 object detection 框架 – Pelee

基于SSD框架的,源码caffe,准确率比ssd+mobilenet高,速度也稍快。

iPhone8 23.6FPS 图片分辨率304x304

论文地址

源码

4. video object detection

4.1 使用convLSTM

4.2 使用optical flow

4.3 reinforcement learning