Example #1
0
def main():
    logging.basicConfig(level=logging.INFO,
                        format="%(asctime)s - %(levelname)s - %(message)s",
                        datefmt="%Y-%m-%d %H:%M:%S",
                        filename="log.txt",
                        filemode='w')

    console = logging.StreamHandler()
    console.setLevel(logging.INFO)
    formatter = logging.Formatter('%(message)s')
    console.setFormatter(formatter)
    logging.getLogger('').addHandler(console)

    DATA_PATH = "/Users/usi/PycharmProjects/data/"
    name = "BebopFlightSim_06_03_20.pickle"
    [x_test, y_test,
     z_test] = DataProcessor.ProcessTestData(DATA_PATH + name, True)
    t_test = DataProcessor.GetTimeStampsFromTestData(DATA_PATH + name)
    o_test = DataProcessor.GetOutputsFromTestData(DATA_PATH + name)

    # x = y_test[:, 0]
    # size = y_test.shape[0]
    #
    # plt.plot(range(size), x, linewidth=2.0)
    # plt.show()

    x_test2 = []
    y_test2 = []
    z_test2 = []
    o_test2 = []
    for i in range(len(x_test)):
        gt = y_test[i]
        if ((gt[0] > 1.0) and (gt[0] < 2.0)):
            if ((gt[1] > -1.0) and (gt[1] < 1.0)):
                x_test2.append(x_test[i])
                y_test2.append(y_test[i])
                z_test2.append(z_test[i])
                o_test2.append(o_test[i])

    x_test = np.asarray(x_test2)
    y_test = np.asarray(y_test2)
    z_test = np.asarray(z_test2)
    o_test = np.asarray(o_test2)

    #utils.SaveResultsToCSVWithCamPoses(y_test, o_test, t_test, z_test, "BebopPatterns_06_03_20.csv")

    x_gt = y_test[:, 0]
    y_gt = y_test[:, 1]
    z_gt = y_test[:, 2]
    phi_gt = y_test[:, 3]

    x = o_test[:, 0]
    y = o_test[:, 1]
    z = o_test[:, 2]
    phi = o_test[:, 3]

    MSE = np.mean(np.power(o_test - y_test, 2), 0)
    MAE = np.mean(np.fabs(o_test - y_test), 0)
    logging.info('Test MSE: [{0:.4f}, {1:.4f}, {2:.4f}, {3:.4f}]'.format(
        MSE[0], MSE[1], MSE[2], MSE[3]))
    logging.info('Test MAE: [{0:.4f}, {1:.4f}, {2:.4f}, {3:.4f}]'.format(
        MAE[0], MAE[1], MAE[2], MAE[3]))

    x_r2 = sklearn.metrics.r2_score(x_gt, x)
    y_r2 = sklearn.metrics.r2_score(y_gt, y)
    z_r2 = sklearn.metrics.r2_score(z_gt, z)
    phi_r2 = sklearn.metrics.r2_score(phi_gt, phi)
    logging.info('Test r2_score: [{0:.4f}, {1:.4f}, {2:.4f}, {3:.4f}]'.format(
        x_r2, y_r2, z_r2, phi_r2))

    h = x_test.shape[2]
    w = x_test.shape[3]
    x_test = np.reshape(x_test, (-1, h, w))
    VizWorldTopView(x_test, y_test, z_test, o_test, True)