Ejemplo n.º 1
0
def test_default():
    # --- classify ---
    cl = SVMClassifier()
    cl.load(CUTTER_RESULT_DIR)
    cl.train()
    cl.save_model(MODEL_PATH, overwrite=True)
    cl.classify(VIDEO_PATH, boost_mode=False)
Ejemplo n.º 2
0
def test_default():
    # --- classify ---
    cl = SVMClassifier()
    cl.load(CUTTER_RESULT_DIR)
    cl.train()
    cl.save_model(MODEL_PATH, overwrite=True)
    classify_result = cl.classify(VIDEO_PATH)

    # --- draw ---
    _draw_report(classify_result)
Ejemplo n.º 3
0
def _train(
    data_home: str,
    save_to: str,
    compress_rate: float = 0.2,
    target_size: typing.Tuple[int, int] = None,
):
    """
    build a trained model with a dataset

    :param data_home: output path (dir)
    :param save_to: model will be saved to this path
    :param compress_rate: before_pic * compress_rate = after_pic. default to 0.2
    :param target_size: (100, 200)
    """
    assert os.path.isdir(data_home), f"dir {data_home} not existed"
    assert not os.path.isfile(save_to), f"file {save_to} already existed"
    cl = SVMClassifier(compress_rate=compress_rate, target_size=target_size)
    cl.load(data_home)
    cl.train()
    cl.save_model(save_to)
Ejemplo n.º 4
0
def train_model_SVM(_train_picture_path, _model_file_name):
    cl = SVMClassifier(
        # 默认情况下使用 HoG 进行特征提取
        # 你可以将其关闭从而直接对原始图片进行训练与测试:feature_type='raw'
        feature_type="hog",
        # 默认为0.2,即将图片缩放为0.2倍
        # 主要为了提高计算效率
        # 如果你担心影响分析效果,可以将其提高
        compress_rate=0.2,
        # 或者直接指定尺寸
        # 当压缩率与指定尺寸同时传入时,优先以指定尺寸为准
        # target_size=(200, 400),
    )

    # 加载待训练数据
    cl.load(_train_picture_path)
    # 在加载数据完成之后需要先训练
    cl.train()
    cl.save_model(_model_file_name, overwrite=True)

    return cl
Ejemplo n.º 5
0
"""
这个例子描述了如何训练一个后续可用的模型

在 cut 流程之后,你应该能得到一个已经分拣好的训练集文件夹
我们将基于此文件夹进行模型的训练
"""
from stagesepx.classifier import SVMClassifier

DATA_HOME = './cut_result'
cl = SVMClassifier()

# 加载数据
cl.load(DATA_HOME)
# 在加载数据完成之后需要先训练
cl.train()
# 在训练后你可以把模型保存起来
cl.save_model('model.pkl')
Ejemplo n.º 6
0
"""
二次训练

在业务变更时,难免出现需要调整模型的情况
- 如果业务变更较大,推荐重新训练新模型
- 如果业务变更不大,可以按照下面的方法对原有模型进行调整
"""

from stagesepx.classifier import SVMClassifier

DATA_HOME = './cut_result'
cl = SVMClassifier()

# 加载数据
cl.load(DATA_HOME)
# 加载旧模型
cl.load_model('model.pkl')
# 在加载数据完成之后需要先训练
cl.train()
# 保存新模型
cl.save_model('new_model.pkl')

# 或者你可以直接覆盖掉旧的模型
# cl.save_model('model.pkl', overwrite=True)