Exemplo n.º 1
0
    def _eval_episode(self, file_name):
        video_file = file_name[0]
        info_file = file_name[1]
        info = pd.read_csv(info_file)

        nr_images = len(info)
        previous_speed = info['linear_speed'][0]

        general_mse = steer_mse = 0

        # Determine steering angles and commands
        helper = DatasetHelper(None, None, None, self.cfg.dataset)
        frame_indices = range(len(info))
        course = info['course']
        linear_speed = info['linear_speed']
        angles, cmds = helper.get_steer(frame_indices, course, linear_speed)

        # Open video to read frames
        vid = cv2.VideoCapture(video_file)

        for index in range(nr_images):
            ret, frame = vid.read()
            if not ret:
                print('Could not retrieve frame')
                return None, None

            gt_speed = linear_speed[index]
            gt_steer = angles[index]

            predicted_steer, predicted_speed = self.run_1step(
                frame, previous_speed, cmds[index])

            steer = (predicted_steer - gt_steer) * (predicted_steer - gt_steer)
            speed = (predicted_speed - gt_speed) * (predicted_speed - gt_speed)
            steer_mse += steer

            general_mse += 0.05 * speed + 0.95 * steer

            log.info("Frame number {}".format(index))
            log.info("Steer: predicted {}, ground_truth {}".format(
                predicted_steer, gt_steer))

            log.info("Speed: predicted {}, ground_truth {}".format(
                predicted_speed, gt_speed))

            previous_speed = gt_speed

        vid.release()

        general_mse /= float(nr_images)
        steer_mse /= float(nr_images)

        return general_mse, steer_mse
Exemplo n.º 2
0
    """
    Attach a text label above each bar displaying its height
    """

    for rect in rects:
        height = rect.get_height()
        ax.text(rect.get_x() + rect.get_width() / 2. - .13,
                1.0 * height,
                '{:10.2f}'.format(round(height, 2)),
                ha='center',
                va='bottom',
                size=10)


mpl.rc('hatch', color="white")
with DatasetHelper() as dataset_helper:
    figs, axs = plt.subplots(1, 2, False, True)
    label_memory = ["Memória", "Arquivo"]
    for j, mode in enumerate(["memory", "file"]):
        ax = axs[j]
        fig = figs
        plans = [
            x[0] for x in dataset_helper.select_data(
                "SELECT distinct plan FROM result WHERE plan <> '{0}'".format(
                    "CPU_ORIGINAL"))
        ]
        print(plans)
        datasets = [
            x[0] for x in dataset_helper.select_data(
                '''SELECT distinct dataset FROM result''')
        ]
Exemplo n.º 3
0
                ha='center',
                va='bottom',
                **hfont2)


def format_name(name, threads):
    if name == "CPU_SEQUENTIAL":
        return "SPar(" + str(threads) + " THREAD" + (
            "S)" if str(threads) != "1" else ")")
    return name.replace("GPU_", "") + "(" + str(threads) + " GPU" + (
        "S)" if threads > 1 else ")")


for dataset in datasets:
    for mode in ["memory", "file"]:
        with DatasetHelper() as db:
            sql_formatted = sql.format(mode, dataset["dataset_name"])
            print("SQL:{0}".format(sql_formatted))

            data = [x for x in db.select_data(sql_formatted)]
            labels = [format_name(x[1], x[2]) for x in data]
            print(labels)
            y_pos = np.arange(len(labels))
            print(y_pos)
            values = [x[3] / x[4] for x in data]
            # tempo_medio_sequential / (tempo_medio_p + desvio_tempo_p) - tempo_medio_sequential / tempo_medio_p
            y_error = [
                (x[3] / (x[4] + x[5]) - x[3] / x[4]) if x[5] != None else 0
                for x in data
            ]
            print(y_error)