Compare commits

..

No commits in common. "76c5f61ddaded54305c0538f842cef67ed40ae89" and "8850f957ae8e70a8dec403678427009bc0613b23" have entirely different histories.

2 changed files with 51 additions and 65 deletions

View File

@ -1,14 +1,14 @@
# models from enum import Enum
from sklearn import tree from sklearn import tree
from sklearn import metrics
from sklearn import preprocessing from sklearn import preprocessing
from sklearn import neighbors from sklearn import neighbors
from sklearn import ensemble from sklearn import ensemble
from sklearn import svm from sklearn import svm
from matplotlib import pyplot as plt
# other import pandas as pd
from enum import Enum
import numpy as np import numpy as np
import time import random
import csv import csv
import plots import plots
@ -49,68 +49,58 @@ with open(PATH, 'r') as file:
normalized = preprocessing.normalize(data, axis=0, norm='max') normalized = preprocessing.normalize(data, axis=0, norm='max')
norm = list(normalized.tolist()) norm = list(normalized.tolist())
steps = np.linspace(1e-4, 1, 20, dtype=np.float64) steps = np.linspace(0.1, 1.0, 10, dtype=np.float64)
print("Step \t seconds/step")
for step in steps: for step in steps:
actual = [] actual = []
predicted = [] predicted = []
time_start = time.time()
for j in range(3): for i in range(len(norm)):
for i in range(len(norm)): temp_data = norm.pop(i)
temp_data = norm.pop(i) temp_label = labels.pop(i)
temp_label = labels.pop(i)
# model = tree.DecisionTreeClassifier( # model = tree.DecisionTreeClassifier(
# class_weight=None, # class_weight=None,
# min_samples_leaf=2, # min_samples_leaf=2,
# max_depth=None, # < 5 is worse, None good too # max_depth=None, # < 5 is worse, None good too
# random_state=False, # No change # random_state=False, # No change
# criterion='gini', # MCC + 0.1 # criterion='gini', # MCC + 0.1
# splitter='best', # splitter='best',
# ccp_alpha=0 # Pruning: Keep this 0 # ccp_alpha=0 # Pruning: Keep this 0
# ) # )
# model = ensemble.RandomForestClassifier( # model = ensemble.RandomForestClassifier(
# n_estimators=20, # higher is better, but slower (def: 100) # n_estimators=20, # higher is better, but slower (def: 100)
# criterion='gini', # gini best # criterion='gini', # gini best
# ) # )
# model = ensemble.ExtraTreesClassifier( # model = ensemble.ExtraTreesClassifier(
# n_estimators=step # higher is better, but slower (def: 100) # n_estimators=150 # higher is better, but slower (def: 100)
# ) # )
# model = neighbors.KNeighborsClassifier( # model = neighbors.KNeighborsClassifier(
# algorithm='auto', # algorithm='auto',
# leaf_size=2, # leaf_size=2,
# n_neighbors=step, # n_neighbors=step,
# ) # )
# model = ensemble.BaggingClassifier( model = ensemble.BaggingClassifier(
# n_estimators=5, n_estimators=5,
# max_samples=.5, max_samples=.5,
# max_features=.5, max_features=.5,
# bootstrap=False bootstrap=False
# ) )
# model = svm.SVC( # model = svm.SVC(decision_function_shape='ovr'
# C = 0.8, # )
# kernel = "poly", model = model.fit(norm, labels)
# degree = 5, result = model.predict([temp_data])
# coef0 = 6,
# probability = False,
# break_ties=True,
# decision_function_shape = 'ovr'
# )
model = model.fit(norm, labels)
result = model.predict([temp_data])
norm.append(temp_data) norm.append(temp_data)
labels.append(temp_label) labels.append(temp_label)
actual.append(temp_label) actual.append(temp_label)
predicted.append(result[0]) predicted.append(result[0])
actual_list.append(actual) actual_list.append(actual)
predicted_list.append(predicted) predicted_list.append(predicted)
print("%.4f"%step, "\t", "%.2f"%(time.time()-time_start)) print(step)
plots.plotMetrics(actual_list, predicted_list) plots.plotMetrics(actual_list, predicted_list)
plots.plotConfusion(actual_list[0], predicted_list[0]) plots.plotConfusion(actual_list[0], predicted_list[0])

View File

@ -94,7 +94,6 @@ detector = cv2.aruco.ArucoDetector(dictionary, detector_params)
images_converted = 0 images_converted = 0
images_skipped = 0 images_skipped = 0
names_skipped = []
### IMAGE CONVERSIE ### ### IMAGE CONVERSIE ###
for folder in os.listdir(input_directory): for folder in os.listdir(input_directory):
@ -148,10 +147,14 @@ for folder in os.listdir(input_directory):
if VERBOSE: if VERBOSE:
print("IDs detected:\n", ids) print("IDs detected:\n", ids)
if ids is None or len(ids) != 4: if ids is None:
print("Skipping: ", filename)
print("=============================================")
images_skipped += 1
continue
if len(ids) != 4:
print("Skipping: ", filename) print("Skipping: ", filename)
print("=============================================") print("=============================================")
names_skipped.append(filename)
images_skipped += 1 images_skipped += 1
continue continue
@ -254,11 +257,4 @@ if VERBOSE:
print("%d van de %d succesvol" print("%d van de %d succesvol"
%(images_converted, (images_converted+images_skipped))) %(images_converted, (images_converted+images_skipped)))
if images_skipped != 0:
print("")
with open(os.path.join(input_directory, "skipped.txt"), 'w') as file:
for name in names_skipped:
file.write(name)
file.write("\n")
cv2.destroyAllWindows() cv2.destroyAllWindows()