【问题标题】:Don't need some existed classes in pre-trained models不需要预训练模型中的一些现有类
【发布时间】:2018-08-22 13:21:41
【问题描述】:

Tendorflow 对象检测。

我知道您可以在这里使用现有的预训练模型训练新课程:

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

但我只想检测“人”和“车”,这两个类已经存在,此外 不需要培训。

但是,像'faster_rcnn_inception_v2_coco'这样的模型,它检测到90个类,对我来说运行太慢了。

有没有办法减少类,让检测运行得更快?

PS:我已将 COCO 数据集过滤为只有“人”和“汽车”的数据集,但是按照我搜索的常见步骤,我得到了不好的训练结果。我只能成功检测到“人”。漫游是什么原因。

【问题讨论】:

    标签: tensorflow object-detection


    【解决方案1】:

    自己解决了。如果你在coco中使用'person'或'car',在预训练模型中id是1和3,不能改变。

    在 .config 中,设置 'num_classes'=3,虽然你的类数是 2。

    3 是为了适合 'car'-id。

    (例如,如果你选择 2 个类,'person'=1,'truck'=8,你的 'num_classes' 应该是 8)

    另外,请正确选择您的时代,您可以看到:http://neuralnetworksanddeeplearning.com/chap3.html

    【讨论】:

    • 您能否分享有关您的解决方案的更多见解?你最终是从头开始训练的吗?你的配置文件是什么?你最终得到了什么结果?我现在也遇到了同样的困境,非常感谢您的反馈。
    • 改变类的数量,会影响准确性(我不知道多少),但它不会改变运行时间。运行时间仅受更改层数的影响!
    • 不,更改类或过滤器不会提高任何性能,因为经过训练的模型已经设置为检测它所教的所有对象。要仅完全检测人和汽车,您必须训练模型以仅检测这 2 个类别。即使您不会发现很多性能差异,但这取决于模型。最重要的模型性能在于检测的多层操作。这就是为什么像 YOLO 这样的模型在低端设备上速度更快的原因。
    猜你喜欢
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 2021-09-29
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    相关资源
    最近更新 更多