def predict(self, sample):
     predicted_line = self.get_interpolating_spline_line(sample)
     try:
         pred = sample_line_all(predicted_line,
                             sample['label']['selected_method'],
                             sample)
         return pred
     except:
         import plot_helper
         automatic_test.output_sample_features(sample)
         plot_helper.plot_intersection(sample, additional_lines=[predicted_line])
示例#2
0
    curr_distance = 0.

    for i in range(len(track)-1):
        this_p = np.array([track[i][0], track[i][1]])
        next_p = np.array([track[i+1][0], track[i+1][1]])
        this_dist = np.linalg.norm(next_p - this_p)
        time_diff = (track[i+1][2] - track[i][2]).total_seconds()
        curr_distance += this_dist
        velocities.append( this_dist/time_diff*3.6)
        # velocities.append( this_dist/time_diff*3.6/1.5)
        distance.append(curr_distance)

    plt.plot(distance, velocities)
    plt.show()

files = ['2010_03_09_drive_0019_1.pickle','2010_03_09_drive_0019_2.pickle']
path = '../data/prepared_data/KITTI_and_Karlsruhe/'

kitti_samples = automatic_test.load_samples('../data/training_data/samples_kitti/samples.pickle')
selected_samples = [s for s in kitti_samples if s['pickled_filename'].split('/')[-1] in files]

for s in selected_samples:
    automatic_test.output_sample_features(s)

for fn in files:
    fn = path + fn
    with open(fn, 'r') as f:
        int_sit = pickle.load(f)
        int_sit['track'] = extract_features.transform_track_to_cartesian(int_sit['track'])
        show_velocity_profile(int_sit)
示例#3
0
    "curve_secant_dist"                         # Shortest distance from curve secant to intersection center
]

rf_algo = regressors.RandomForestAlgorithm(feature_list)
is_algo = reference_implementations.InterpolatingSplineAlgorithm()
kitti_samples = automatic_test.load_samples('../data/training_data/samples_15_10_12_rectified/samples.pickle')
darmstadt_samples = automatic_test.load_samples('../data/training_data/samples_15_10_20_darmstadt_rectified/samples.pickle')
select_label_method(kitti_samples, 'y_distances')
select_label_method(darmstadt_samples, 'y_distances')
train_samples_kitti, test_samples_kitti = automatic_test.get_partitioned_samples(kitti_samples, 0.7)
train_samples_darmstadt, test_samples_darmstadt = automatic_test.get_partitioned_samples(darmstadt_samples, 0.7)
train_samples = train_samples_kitti + train_samples_darmstadt
test_samples = test_samples_darmstadt + test_samples_kitti
automatic_test.train([rf_algo], train_samples)
results = automatic_test.predict_all_estimators([rf_algo], test_samples)
is_results = automatic_test.predict([is_algo], test_samples)

for sample, rf_prediction, rf_predictions_all_estimators, is_prediction in zip(test_samples,
                                                            results[rf_algo]['predictions'],
                                                            results[rf_algo]['predictions_all_estimators'],
                                                            is_results[is_algo]['predictions']):
    predicted_distances = [pred[0] for pred in rf_predictions_all_estimators]
    half_angle_vec = get_half_angle_vec(sample['geometry']['exit_line'], sample['X'][_feature_types.index('intersection_angle')])
    heatmap = get_heatmap_from_distances_all_predictors(predicted_distances,
                                                    sample['geometry']['entry_line'],
                                                    sample['geometry']['exit_line'],
                                                    half_angle_vec)
    # plot_intersection(sample, predicted_distances, heatmap=heatmap, orientation="curve-secant")
    automatic_test.output_sample_features(sample, feature_list)
    plot_intersection(sample, [rf_prediction, is_prediction], rgbcolors=['b', 'g'], labels=['RF Algorithm', 'Spline Algorithm'], heatmap=heatmap, orientation="curve-secant")
示例#4
0
rf_algo_radii = regressors.RandomForestAlgorithm(feature_list)
samples_radii = automatic_test.load_samples('../data/training_data/samples.pickle')
# samples = automatic_test.normalize_features(samples)
select_label_method(samples_radii, 'y_radii')
train_sample_sets_radii, test_sample_sets_radii = automatic_test.get_cross_validation_samples(samples_radii, 0.8, 5)

for train_samples_distances, test_samples_distances, train_samples_radii, test_samples_radii in zip(train_sample_sets_distances, test_sample_sets_distances, train_sample_sets_radii, test_sample_sets_radii):
    automatic_test.train([rf_algo_distances], train_samples_distances)
    results_distances = automatic_test.predict_all_estimators([rf_algo_distances], test_samples_distances)

    automatic_test.train([rf_algo_radii], train_samples_radii)
    results_radii = automatic_test.predict_all_estimators([rf_algo_radii], test_samples_radii)

    for sample, prediction, predictions_all_estimators, prediction_radii in zip(test_samples_distances, results_distances[rf_algo_distances]['predictions'], results_distances[rf_algo_distances]['predictions_all_estimators'], results_radii[rf_algo_radii]['predictions']):
        automatic_test.output_sample_features(sample, rf_algo_distances.features)
        predicted_distances = [pred[0] for pred in predictions_all_estimators]
        half_angle_vec = get_half_angle_vec(sample['geometry']['exit_line'], sample['X'][_feature_types.index('intersection_angle')])
        heatmap = get_heatmap_from_distances_all_predictors(predicted_distances,
                                                        sample['geometry']['entry_line'],
                                                        sample['geometry']['exit_line'],
                                                        half_angle_vec)
        # plot_intersection(sample, predicted_distances, heatmap=heatmap, orientation="curve-secant")
        plot_intersection(  sample,
                            [prediction, prediction_radii],
                            rgbcolors=['b', 'c'],
                            label_methods=['y_distances', 'y_radii'],
                            labels=['distances', 'radii'],
                            title=sample['pickled_filename'],
                            heatmap=heatmap,
                            orientation="curve-secant")