Exemplo n.º 1
0
def test(lane_agent, test_images, thresh=p.threshold_point, color=None):

    result = lane_agent.predict_lanes_test(test_images)
    confidences, offsets, instances = result[-1]

    num_batch = len(test_images)

    out_x = []
    out_y = []
    out_images = []

    for i in range(num_batch):
        # test on test data set
        # image = deepcopy(test_images[i])
        image = test_images[i]
        image = np.rollaxis(image, axis=2, start=0)
        image = np.rollaxis(image, axis=2, start=0) * 255.0
        image = image.astype(np.uint8).copy()

        confidence = confidences[i].view(p.grid_y, p.grid_x).cpu().data.numpy()

        offset = offsets[i].cpu().data.numpy()
        offset = np.rollaxis(offset, axis=2, start=0)
        offset = np.rollaxis(offset, axis=2, start=0)

        instance = instances[i].cpu().data.numpy()
        instance = np.rollaxis(instance, axis=2, start=0)
        instance = np.rollaxis(instance, axis=2, start=0)

        # generate point and cluster
        raw_x, raw_y = generate_result(confidence, offset, instance, thresh)

        # eliminate fewer points
        in_x, in_y = eliminate_fewer_points(raw_x, raw_y)

        # sort points along y
        in_x, in_y = util.sort_along_y(in_x, in_y)
        in_x, in_y = eliminate_out(in_x, in_y, confidence)  #, deepcopy(image))
        in_x, in_y = util.sort_along_y(in_x, in_y)
        in_x, in_y = eliminate_fewer_points(in_x, in_y)

        result_image = util.draw_points(in_x, in_y, image,
                                        color)  #deepcopy(image))

        out_x.append(in_x)
        out_y.append(in_y)
        out_images.append(result_image)

    return out_x, out_y, out_images
Exemplo n.º 2
0
def test_ori(h_crop,
             lane_agent,
             ori_image,
             test_images,
             ratio_w,
             ratio_h,
             draw_type,
             thresh=p.threshold_point):  # p.threshold_point:0.81
    result = lane_agent.predict_lanes_test(test_images)
    confidences, offsets, instances = result[-1]
    num_batch = len(test_images)
    out_x = []
    out_y = []
    out_images = []

    for i in range(num_batch):
        # test on test data set
        image = deepcopy(test_images[i])
        image = np.rollaxis(image, axis=2, start=0)
        image = np.rollaxis(image, axis=2, start=0) * 255.0
        image = image.astype(np.uint8).copy()

        confidence = confidences[i].view(p.grid_y, p.grid_x).cpu().data.numpy()

        offset = offsets[i].cpu().data.numpy()
        offset = np.rollaxis(offset, axis=2, start=0)
        offset = np.rollaxis(offset, axis=2, start=0)

        instance = instances[i].cpu().data.numpy()
        instance = np.rollaxis(instance, axis=2, start=0)
        instance = np.rollaxis(instance, axis=2, start=0)

        raw_x, raw_y = generate_result(confidence, offset, instance, thresh)  #
        in_x, in_y = eliminate_fewer_points(raw_x, raw_y)
        in_x, in_y = util.sort_along_y(in_x, in_y)

        if draw_type == 'line':
            result_image = util.draw_lines_ori(in_x, in_y, ori_image, ratio_w,
                                               ratio_h)  # 将最后且后处理后的坐标点绘制与原图上.
        elif draw_type == 'point':
            result_image = util.draw_point_ori(in_x, in_y, ori_image, ratio_w,
                                               ratio_h,
                                               h_crop)  # 将最后且后处理后的坐标点绘制与原图上.
        else:
            result_image = util.draw_points(in_x, in_y, ori_image, ratio_w,
                                            ratio_h)  # 将最后且后处理后的坐标点绘制与原图上.
        out_x.append(in_x)
        out_y.append(in_y)
        out_images.append(result_image)

    return out_x, out_y, out_images