仅针对单个对象的对象检测

时间:2018-08-10 09:01:33

标签: neural-network computer-vision

我一直在进行物体检测。但是这些方法由非常深的神经网络组成,需要大量内存才能存储经过训练的模型。例如。我曾经尝试训练Mask R-CNN模型,权重为200 MB。

但是,我的重点是仅检测单个对象。因此,我猜这些方法不合适。是否有任何对象检测方法可以在内存需求较低的情况下完成这项工作?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用SSD或更快的RCNN,它们可以在Tensorflow对象检测API中轻松获得

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

在这里您可以获取预训练的模型和配置文件 您可以根据需要查看速度和mAP(准确性)列来选择模型。

答案 1 :(得分:0)

按照mukul的回答,我特别建议您检查一下SSDLite-MobileNetV2。 这是一个轻量级的模型,仍然足以表现出良好的效果。 尤其是当您将自己限制为一个类时,如here中的FaceSSD-MobileNetV2示例所示(请注意,这是普通SSD)。 因此,您只需将pre-trained model of SSDLite-MobileNetV2与相应的config file一起使用,并为单个类进行修改。 这意味着将num_classes更改为1,修改label_map.pbtxt,当然-用所需的单个类准备数据集。

如果您想要一个更强大的模型,但是没有预训练模式,则可以使用FPN版本。 检出config file(与MobileNetV1一起使用),并根据您的需要进行修改(例如,切换到MobileNetV2,切换到use_depthwise等)。 一方面,没有检测到的预训练模型,但另一方面,检测头在所有(相关)标尺上共享,因此训练起来有些容易。 因此,只需从here的相应分类检查点对其进行微调即可。