Maskrcnn:误报

Maskrcnn: False positives

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

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

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()

我不知道我可以在哪里干预每个纪元之后所做的事情。我检查了 'train'-Method of the maskrcnn 但无法真正弄清楚该怎么做。有没有关于如何能够操纵模型如何优化以及如何提前停止的示例?

非常感谢您的帮助。

在您的 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. 我写的,在这里:

同时请注意Keras和TensorFlow的版本

据我所知,Mask-RCNN 中的某些版本已过时。如果代码中还有更多问题w.r.t错误,我提供帮助。