目标检测 tensorflow(预训练模型)

tensorflow detection model zoo:
在这个链接当中哦有训练好的checkpoint:
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

这里的模型是基于COCO dataset, Kitti dataset, Oepn Images dataset训练好的模型,这些模型都可以用 out-of-the-box inference, 如果需要预测的类别都存在于COCO或者是open images当中。利用这些模型作为初始化模型来训练新的数据集也是很好的。

每个pre-trained model 都包含以下的内容

  • model name, 和用来训练这个模型的samples/configs 文件目录(这里说的是research/object_detection/目录之下)config file对应的用来训练这个模型的。
  • tar.gz下载链接
  • model speed: 与硬件相关,也与模型的版本相关
  • detector 性能。基于mAP measure,越高越好
  • 输出types(Boxes, Masks)

un-tar file 可以通过

tar -xzvf ssd_mobilenet_v1_coco.tar.gz

在每个解压文件中可以找到:

  • graph proto(graph.pbtxt)
  • checkpoint (model.ckpt.data-00000-of-00001, model.ckpt.index, model.ckpt.meta)
  • frozen graph proto,在这个图中,所有的权重的值都是通过constant形式存在的,所以不会在训练的过程中被update(frozen_inference_graph.pb),这个文件可以被载入用来作为out of the box inference(可以在jupyter notebook中实现)
  • config file(pipline.config)用来产生graph,对应上面提到的configs文件目录里面的同名文件,但是通常会修改score threshold。在一些heavier Faster R-CNN的模型当中,也会提供为了达到期望速度的而大量减少了proposals数目(这里应该指的就是候选的区域)的版本。

frozen inference graphs的备注:
(AP:average precison: 是precision/recall curve的总结,\[ AP = \frac{1}{11} \sum_{r \in {0,0.1,0.2,...,1} }P_{interp}(r) \], 对应在recall=[0,0.1,...1]的时候,precision的均值。

  • 当利用frozen inference graphs来评估的时候,结果会比官方提供哦的数据要低一点,因为在创建frozen graph的时候,丢弃了一些scores低于一个阈值(一般是0.3)的检测。这样有效的对应在detector的precision recall curve中选择合适的点(并且丢弃在这个点过去的部分)(这里的意思值得是在precision recall curve中选择一个合适得点,丢掉precision小于这个阈值得样本嘛?),但是这样会对标准得mAP得metric有副作用。
  • 官方提示,这个frozen inference graph是基于Tensorflow v1.5.0版本得release,不能保证兼容于其他的版本。但是可以自己重新运行exporter部分来重新生成frozen inference graph。

这里基于COCO数据集的与训练的model有:
ssd_mobilenet_v1,v2, ssdlite_mobilenet_v2, ssd_inception_v2, fast_RCNN基于resetnet,inception的,详情参见上面的链接

kitti数据集只有一个与训练模型
基于resnet101的faster_RCNN的model

open_image模型”
faster_rcnn de inception和resnet的集合

还有ava-model(这一部分不知道是什么)
基于resnet101的faster_RCNN的model

posted @ 2018-05-27 13:11 lily19 阅读(...) 评论(...) 编辑 收藏