示例#1
0
def predict(
    predict_data_path,
    preprocessed_dir,
    feature_data_path,
    color_models,
    quality_models,
    mixed_models,
    output_result_path,
):
    if b_load_predict_feat:
        feat_df = _load_features(feature_data_home, "*prediction*.csv")
    else:
        feat_df = _calc_predict_features(predict_data_path, preprocessed_dir, feature_data_path)

    x_data = feat_df.drop(subjective_column_name, axis=1, level=0)

    color_df = pd.DataFrame(color_models.predict(x_data[hue_column_name]))
    quality_df = pd.DataFrame(quality_models.predict(x_data))
    mixed_df = pd.DataFrame(mixed_models.predict(x_data))

    all_df = pd.concat(
        [color_df, quality_df, mixed_df, feat_df[subjective_column_name]],
        axis=1,
        keys=[
            color_models.__class__.__name__,
            quality_models.__class__.__name__,
            mixed_models.__class__.__name__,
            subjective_column_name,
        ],
    )

    # store prediction result
    PublicSupport.save_dataframe(
        all_df, os.path.join(output_result_path, "prediction" + datetime.now().strftime("%Y-%m-%d %H.%M.%S"))
    )
示例#2
0
def __calc_features(images_data, feature_name, feature_data_path):
    # feature extraction
    feat_df = pd.DataFrame([FeatureManager.compute_feats(img).append(info) for img, info in images_data])
    PublicSupport.save_dataframe(
        feat_df, os.path.join(feature_data_path, feature_name + datetime.now().strftime("%Y-%m-%d %H.%M.%S"))
    )

    return feat_df