selective_search_ijcv_with_python icon indicating copy to clipboard operation
selective_search_ijcv_with_python copied to clipboard

function detect_windows has a bug!

Open november2011 opened this issue 8 years ago • 0 comments

deepcopy images_windows

def detect_windows(self, images_windows): """ Do windowed detection over given images and windows. Windows are extracted then warped to the input dimensions of the net.

    Parameters
    ----------
    images_windows: (image filename, window list) iterable.
    context_crop: size of context border to crop in pixels.

    Returns
    -------
    detections: list of {filename: image filename, window: crop coordinates,
        predictions: prediction vector} dicts.
    """
    # Extract windows.
    **## images_windows_new = copy.deepcopy(images_windows)**
    window_inputs = []
    for image_fname, windows in images_windows:
        image = caffe.io.load_image(image_fname).astype(np.float32)
        for window in windows:
            window_inputs.append(self.crop(image, window))

    print(len(window_inputs))
    # Run through the net (warping windows to input dimensions).
    in_ = self.inputs[0]
    caffe_in = np.zeros((len(window_inputs), window_inputs[0].shape[2])
                        + self.blobs[in_].data.shape[2:],
                        dtype=np.float32)
    for ix, window_in in enumerate(window_inputs):
        caffe_in[ix] = self.transformer.preprocess(in_, window_in)
    out = self.forward_all(**{in_: caffe_in})
    predictions = out[self.outputs[0]]

    # Package predictions with images and windows.
    detections = []
    ix = 0
    for image_fname, windows in **## images_windows_new**:
        for window in windows:
            detections.append({
                'window': window,
                'prediction': predictions[ix],
                'filename': image_fname
            })
            ix += 1
    return detections

november2011 avatar Sep 20 '17 02:09 november2011