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])
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)
"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")
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")