Пример #1
0
model.plot_model()
model.print_summary()

model_path = model.find_last()
# model_path = os.path.join("log_frcnn", "shapes20201219T1642",
#                           "weights", "faster_rcnn_shapes_0001.h5")

# Load trained weights
model.load_weights(model_path, by_name=True)

#%% Test on a random image
image_id = random.choice(dataset_val.image_ids)
original_image, image_meta, gt_class_id, gt_bbox =\
    data.load_image_gt(dataset_val, inference_config, image_id)

log("original_image", original_image)
log("image_meta", image_meta)
log("gt_class_id", gt_class_id)
log("gt_bbox", gt_bbox)

visualize.display_instances(original_image,
                            gt_bbox,
                            gt_class_id,
                            dataset_train.class_names,
                            ax=get_ax())

results = model.detect([original_image], verbose=1)

r = results[0]
visualize.display_instances(original_image,
                            r['rois'],
Пример #2
0
print("image ID: {}.{} ({}) {}".format(info["source"], info["id"], image_id,
                                       dataset.image_reference(image_id)))
# Run object detection
results = model.detect([image], verbose=1)

# Display results
ax = get_ax(1)
r = results[0]
visualize.display_instances(image,
                            r['rois'],
                            r['class_ids'],
                            dataset.class_names,
                            r['scores'],
                            ax=ax,
                            title="Predictions")
log("gt_class_id", gt_class_id)
log("gt_bbox", gt_bbox)

#%% Precision-Recall
# Draw precision-recall curve
AP, precisions, recalls, overlaps = utils.compute_ap(gt_bbox, gt_class_id,
                                                     r['rois'], r['class_ids'],
                                                     r['scores'])
visualize.plot_precision_recall(AP, precisions, recalls)

#%%
# Grid of ground truth objects and their predictions
visualize.plot_overlaps(gt_class_id, r['class_ids'], r['scores'], overlaps,
                        dataset.class_names)

Пример #3
0
                                       dataset.image_reference(image_id)))
print(
    "Original image shape: ",
    modellib.parse_image_meta(image_meta[np.newaxis,
                                         ...])["original_image_shape"][0])

# Run object detection
results = model.detect_molded(np.expand_dims(image, 0),
                              np.expand_dims(image_meta, 0),
                              verbose=1)

# Display results
r = results[0]
print(r)
print(gt_bbox)
log("gt_class_id", gt_class_id)
log("gt_bbox", gt_bbox)

# Compute AP over range 0.5 to 0.95 and print it
utils.compute_ap_range(gt_bbox,
                       gt_class_id,
                       r['rois'],
                       r['class_ids'],
                       r['scores'],
                       verbose=1)

visualize.display_differences(image,
                              gt_bbox,
                              gt_class_id,
                              r['rois'],
                              r['class_ids'],