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)
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)
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)
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
""" 这个例子描述了如何训练一个后续可用的模型 在 cut 流程之后,你应该能得到一个已经分拣好的训练集文件夹 我们将基于此文件夹进行模型的训练 """ from stagesepx.classifier import SVMClassifier DATA_HOME = './cut_result' cl = SVMClassifier() # 加载数据 cl.load(DATA_HOME) # 在加载数据完成之后需要先训练 cl.train() # 在训练后你可以把模型保存起来 cl.save_model('model.pkl')
""" 二次训练 在业务变更时,难免出现需要调整模型的情况 - 如果业务变更较大,推荐重新训练新模型 - 如果业务变更不大,可以按照下面的方法对原有模型进行调整 """ 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)