Beispiel #1
0
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
Beispiel #2
0
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