gesture_classifier.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:Sign-Language-Recognition 作者: achyudhk 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号