def train_gesture_classifier(userlist, foldername):
"""
:param userlist:
:param foldername:
:return:
"""
work_arr = list()
class_alpha_dict = {'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'K': 9, 'L': 10,
'M': 11, 'N': 12, 'O': 13, 'P': 14, 'Q': 15, 'R': 16, 'S': 17, 'T': 18, 'U': 19, 'V': 20,
'W': 21, 'X': 22, 'Y': 23}
print("Generating training features for gesture classifier...")
for i0 in userlist:
current_folder = foldername + i0 + '/'
crop_df = pd.read_csv(current_folder + i0 + '_loc.csv', index_col=0, header=0)
filelist = [x for x in os.listdir(current_folder) if x.endswith('.jpg')]
for filename in filelist:
img_arr = imread(current_folder + filename, as_grey=True)
crop_before_x = crop_df.loc[i0 + '/' + filename, 'top_left_x']
crop_before_y = crop_df.loc[i0 + '/' + filename, 'top_left_y']
crop_after_x = crop_df.loc[i0 + '/' + filename, 'bottom_right_x']
crop_after_y = crop_df.loc[i0 + '/' + filename, 'bottom_right_y']
work_arr.append((img_arr, crop_before_x, crop_before_y, crop_after_x, crop_after_y, class_alpha_dict[filename[0]]))
x_train = list(map(generate_training_set, work_arr))
del work_arr
print("Garbage collector deleted objects:", gc.collect())
random.shuffle(x_train)
y_train = [x[1] for x in x_train]
x_train = [x[0] for x in x_train]
print("Size of gesture classifier training set:", len(y_train))
rfc_classifier = RandomForestClassifier(n_estimators=500, max_features='sqrt', n_jobs=8, warm_start=False)
svc_classifier = SVC(cache_size=6000, kernel='linear', tol=1e-3, decision_function_shape='ovr', C=1, probability=True)
voting_classifier = VotingClassifier(estimators=[('sv', svc_classifier), ('rf1', rfc_classifier)], voting='soft')
voting_classifier.fit(x_train, y_train)
print("Gesture classifier training complete.")
return voting_classifier
gesture_recognizer.py 文件源码
python
阅读 21
收藏 0
点赞 0
评论 0
评论列表
文章目录