def train_gesture_classifier(userlist, foldername="data/"):
"""
:param userlist:
:param foldername:
:return:
"""
work_arr = list()
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 listdir(current_folder) if x.endswith('.jpg')]
for filename in filelist:
img_arr = io.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]]))
thread_pool = Pool(8)
x_train = thread_pool.map(generate_training_set, work_arr)
thread_pool.close()
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_classifier.py 文件源码
python
阅读 30
收藏 0
点赞 0
评论 0
评论列表
文章目录