【问题标题】:Maskrcnn: False positivesMaskrcnn:误报
【发布时间】:2021-01-18 02:30:13
【问题描述】:

我正在使用MaskR-CNN 在二维图片中进行对象分割。我使用其他人以前编写的代码。我的问题是,我遇到了许多误报的问题。现在我想在每个 epoch 之后检查验证结果并检查误报以对此进行优化。也许不仅如此,还与 F1 分数混合在一起。

我使用的代码只是像这样调用 maskrcnn train 方法:

model.train(dataset_train, dataset_val,
                learning_rate=config.LEARNING_RATE,
                epochs=epochs,
                layers='heads')

我的配置如下:

class MaskConfig(Config):
    NAME = "myName"
    IMAGES_PER_GPU = 1
    NUM_CLASSES = len(current_labels) + 1
    STEPS_PER_EPOCH = 100
    IMAGE_RESIZE_MODE = "square"
    IMAGE_MIN_DIM = 480
    IMAGE_MAX_DIM = 640
    DETECTION_MIN_CONFIDENCE = 0.8
    BACKBONE = "resnet101"
    LEARNING_RATE = learnrate
    LOSS_WEIGHTS = {
        "rpn_class_loss": 1.,
        "rpn_bbox_loss": 10.,
        "mrcnn_class_loss": 1.,
        "mrcnn_bbox_loss": 10.,
        "mrcnn_mask_loss": 10.
    }
    
config = MaskConfig()

我不知道我可以在哪里干预每个 epoch 之后所做的事情。我检查了 maskrcnn 的 'train'-Method 但无法真正弄清楚如何做到这一点。是否有任何关于如何操作模型如何优化以及如何进行提前停止的示例?

非常感谢您的帮助。

【问题讨论】:

    标签: image-segmentation


    【解决方案1】:

    在您的model.train() 中,您应该需要使用自定义回调来解决此问题。

    例如:

    model.train(train_set,
                test_set,
                learning_rate=config.LEARNING_RATE,
                custom_callbacks = [my_callback],
                epochs=5,
                layers='heads')
    

    现在问题来了,如何实现自己的回调?

    两个资源:

    1. https://www.tensorflow.org/guide/keras/custom_callback
    2. 我写的,这里:How to get other metrics in Tensorflow 2.0 (not only accuracy)?

    同时请注意Keras和TensorFlow的版本。

    据我所知,Mask-RCNN 中的一些版本已经过时了。如果代码中存在更多问题 w.r.t 错误,我会提供帮助。

    【讨论】:

      猜你喜欢
      • 2021-08-23
      • 2022-08-09
      • 2020-06-27
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 2020-03-02
      • 1970-01-01
      相关资源
      最近更新 更多