# mask, class_ids = dataset.load_mask(image_id) # mr_utils.display_top_masks(image, mask, class_ids, dataset.class_names) # image_id = random.choice(dataset.image_ids) # image = dataset.load_image(image_id) # mask, class_ids = dataset.load_mask(image_id) # bbox = mr_utils.extract_bboxes(mask) # print("image_id ", image_id, dataset.image_reference(image_id)) # mr_utils.log("image", image) # mr_utils.log("mask", mask) # mr_utils.log("class_ids", class_ids) # mr_utils.log("bbox", bbox) # # Display image and instances # mr_utils.display_instances(image, bbox, mask, class_ids, dataset.class_names) model = mr_net.MaskRCNN(mode="training", config=config, model_dir="logs/") init_with = "coco" # imagenet, coco, or last if init_with == "imagenet": model.load_weights(model.get_imagenet_weights(), by_name=True) elif init_with == "coco": model.load_weights("utils/mask_rcnn_coco.h5", by_name=True, exclude=[ "mrcnn_class_logits", "mrcnn_bbox_fc", "mrcnn_bbox", "mrcnn_mask" ]) elif init_with == "last": model.load_weights(model.find_last(), by_name=True)
gray = skimage.color.gray2rgb(skimage.color.rgb2gray(image)) * 255 # Copy color pixels from the original color image where mask is set if mask.shape[-1] > 0: # We're treating all instances as one, so collapse the mask into one layer mask = (np.sum(mask, -1, keepdims=True) >= 1) splash = np.where(mask, image, gray).astype(np.uint8) else: splash = gray.astype(np.uint8) return splash inference_config = InferenceConfig() # Recreate the model in inference mode model = mr_net.MaskRCNN(mode="inference", config=inference_config, model_dir="logs/") # Get path to saved weights # Either set a specific path or find last trained weights # model_path = os.path.join(ROOT_DIR, ".h5 file name here") model_path = "utils/mask_rcnn_balloon.h5" #model.find_last() # Load trained weights print("Loading weights from ", model_path) model.load_weights(model_path, by_name=True) # Read image image = skimage.io.imread("../testImages/12.jpg") # Detect objects r = model.detect([image], verbose=1)[0]