Exemple #1
0
def predict_tree2():
    with open('texton_forest-%s.pkl' % dataset._name) as fp:
        tp = kontort.TextonPredict(pickle.load(fp))
    with open('texton_forest2-%s.pkl' % dataset._name) as fp:
        tp2 = kontort.IntegralPredict(pickle.load(fp))
    save_key()
    save_feature_hists(tp2.func_data, tp2.extra_dump_vars)
    num_masks = tp2.func_data[0][tp2.extra_dump_vars.index('num_masks')]
    print('Func Data2: [%s]' % str(tp2.func_data[0]))
    for num, (masks, image) in enumerate(dataset.segmentation_boxes()):
        ratio, image = resize(image)
        orig_image = image
        image = convert_color_bgr(image)
        image = make_masks(image)
        max_classes1, max_probs1, leaves1, all_probs1 = tp.predict(image, leaves=True, all_probs=True)
        print('Num Tree 1 Leaves[%d]' % tp.num_leaves)
        pred_integrals = convert_leaves_all_probs_pred(image, leaves1, all_probs1, tp.num_leaves)
        preds, integrals = pred_integrals
        print('num_masks[%s] integrals_shape[%s]' % (num_masks, integrals.shape))
        assert num_masks == integrals.shape[-1]
        max_classes2, max_probs2, all_probs2 = tp2.predict(pred_integrals, all_probs=True)
        out = colors[max_classes2]
        del integrals
        try:
            os.makedirs(out_root + '/view')
        except OSError:
            pass
        cv2.imwrite('%s/view/%.05d-mask.png' % (out_root, num), out)
        orig_image.save('%s/view/%.05d-img.png' % (out_root, num))
        cv2.imwrite('%s/view/%.05d-texton.png' % (out_root, num), texton_colors[leaves1])
        with gzip.GzipFile('%s/view/%.05d.pkl.gz' % (out_root, num), 'w') as fp:
            pickle.dump({'max_classes1': max_classes1,
                         'max_probs1': max_probs1,
                         'leaves1': leaves1,
                         'all_probs1': all_probs1,
                         'max_classes2': max_classes2,
                         'max_probs2': max_probs2,
                         'all_probs2': all_probs2,
                         'gt_masks': masks,
                         'image': image,
                         'classes': classes}, fp, -1)
Exemple #2
0
    def map(self, k, v):
        """
        Args:
            k: Filename
            v: (image_data, label_points)

        Yields:
            (k, (integral, label_points))
        """
        image_data, label_points = v

        argmax, max_probs, leaves, all_probs = self.tp.predict(image_data, all_probs=True, leaves=True)
        print("Leaves[%s] AllProbs[%s]" % (str(leaves.shape), str(all_probs.shape)))
        if self.integral_type == "argmax":
            out = np.ascontiguousarray(imseg.convert_labels_to_integrals(argmax, self.tp.num_classes))
        elif self.integral_type == "argmax_prob":
            out = np.ascontiguousarray(imseg.convert_labels_probs_to_integrals(argmax, max_probs, self.tp.num_classes))
        elif self.integral_type == "all_prob":
            out = np.ascontiguousarray(imseg.convert_all_probs_to_integrals(all_probs))
        elif self.integral_type == "spatial":
            out = convert_leaves_all_probs_pred(image_data, leaves, all_probs, self.tp.num_leaves)
        yield k, (out, label_points)