def five_Examples(test_data, prediction, target, path=file_handler.Path()): count = 0 font_size = 50 for i in np.arange(len(test_data)): if prediction[i] == target[i]: # rc('text', usetex=True) image_helpers.show_image(test_data[i]) plt.xlabel('Prediction: '+prediction[i], fontsize=font_size) plt.savefig(path.figure + 'ex/p_{}.pdf'.format(count), format='pdf', dpi=1000) plt.subplots_adjust(bottom=0.33) plt.margins(0.2, 0) plt.draw() count += 1 if count > 4: break count = 0 for i in np.arange(len(test_data)): if prediction[i] != target[i]: # rc('text', usetex=True) image_helpers.show_image(test_data[i]) plt.xlabel('Prediction: ' + prediction[i] + '\n Target: ' + target[i] , fontsize=font_size) # adjust buttom # plt.xlabel('Prediction: ' + prediction[i] + ' | Target: ' + target[i], fontsize=font_size) plt.subplots_adjust(bottom=0.33) plt.savefig(path.figure + 'ex/n_{}.pdf'.format(count), format='pdf', dpi=1000) plt.draw() count += 1 if count > 4: break
def classify(train_data, train_target, test_data, test_target, n_pca=49, n_neighbors=4, display=False): test_data_original = test_data train_data = pp.standardized_augmentation(train_data, display=False) test_data = pp.standardized_augmentation(test_data, display=False) train_data = pp.histogram_of_oriented_gradients(train_data) if display: plt.figure() image_helpers.show_image(data[0]) plt.savefig(path.figure + 'pp/hog.pdf', format='pdf', dpi=1000) plt.draw() pca = PCA(n_components=n_pca) pca_model = pca.fit(train_data) pca_train = pca_model.transform(train_data) pca_test = pca_model.transform(test_data) knn_model = kNN.find_nearest_neighbor(pca_train, train_target, n_neighbors=n_neighbors) prediction = kNN.predict(pca_test, knn_model) error = calculate_error(prediction, test_target) five_Examples(test_data_original, prediction, test_target) return error
def character_detection(pca_model): c = Colors() path_detect_1 = '../database/detection-images/detection-1.jpg' path_detect_2 = '../database/detection-images/detection-2.jpg' image_1 = file_handler.load_image(path_detect_1) image_1 = file_handler.normalize(image_1) image_1_bool = image_1 < 0.99999 window_size = 20 non_overlap = 2 print('Shape of image: ', image_1.shape) plt.figure() visualize.show_image(image_1, colorbar=True) for i in np.arange(0, len(image_1_bool)-window_size): for j in np.arange(0, len(image_1_bool[i])-window_size): window = image_1_bool[i:i+window_size, j:j+window_size] window_sum = np.sum(window) pca_val = pca_model.transform(np.array(window).flatten()) if pca_val > -5: plt.scatter(j + 10, i + 10, c='r') print('Window num ', i, j, '- Sum of cell: ', window_sum) if window_sum > 190: print('Window num ', i, j, '- Sum of cell: ', window_sum) print(c.OKBLUE, 'PCA: ', pca_model.transform(np.array(window).flatten()), c.ENDC) else: print(c.ENDC, 'PCA: ', pca_model.transform(np.array(window).flatten()))
def standardized_augmentation(data, display=False): path = Path() if display: plt.figure() image_helpers.show_image(data[0]) plt.savefig(path.figure + 'pp/raw.pdf', format='pdf', dpi=1000) plt.draw() data_0 = image_helpers.convert_to_sensor_values(data) if display: plt.figure() image_helpers.show_image(data_0[0]) plt.savefig(path.figure + 'pp/sensor.pdf', format='pdf', dpi=1000) plt.draw() data = denoise(data) if display: plt.figure() image_helpers.show_image(data[0]) plt.savefig(path.figure + 'pp/denoise.pdf', format='pdf', dpi=1000) plt.draw() data = normalize(data) data = image_to_bool(data) if display: plt.figure() image_helpers.show_image(data[0]) plt.savefig(path.figure + 'pp/img_to_bool.pdf', format='pdf', dpi=1000) plt.draw() data = normalize(data) return data