unzip -d ./PaddleOCR/train_data data/data158454/train_data.zip
wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/pretrained/MobileNetV3_large_x0_5_pretrained.pdparams
wget命令详解:https://www.cnblogs.com/sx66/p/11887022.html
-P, --directory-prefix=PREFIX 以 PREFIX/... 保存文件
pip install -r requirements.txt
cd PaddleOCR
python3 tools/train.py -c configs/det/det_mv3_db.yml \
-o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained
AttributeError: module 'cv2' has no attribute '_registerMatType'
There is mess with versions:
_registerMatType is a part of OpenCV 4.5.4
but you mention 4.5.1
Please ensure that you have installed one version of OpenCV only.
pip install opencv-python --upgrade
python3 train.py -c ../configs/det/det_mv3_db.yml
-o Global.pretrained_model=../pretrain_models/MobileNetV3_large_x0_5_pretrained Global.use_gpu=false Train.dataset.data_dir=../train_data/icdar2015/text_localization/ Train.dataset.label_file_list=[../train_data/icdar2015/text_localization/train_icdar2015_label.txt]
Train.loader.batch_size_per_card=2
Eval.dataset.data_dir=../train_data/icdar2015/text_localization/ Eval.dataset.label_file_list=[../train_data/icdar2015/text_localization/train_icdar2015_label.txt]
ModuleNotFoundError: No module named ‘yaml‘
pip install pyyaml
-代表后面的是列表,列表里面的元素可以是字典,也可以是值本身

config = yaml.load(open(file_path, 'rb'), Loader=yaml.Loader)
with open(os.path.join(save_model_dir, 'config.yml'), 'w') as f:
yaml.dump(
dict(config), f, default_flow_style=False, sort_keys=False)
dataset = eval(module_name)(config, mode, logger, seed)
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数
expression – 表达式。
globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
"""Chooses k unique random elements from a population sequence or set.
def create_operators(op_param_list, global_config=None):
"""
create operators based on the config
Args:
params(list): a dict list, used to create some operators
"""
assert isinstance(op_param_list, list), ('operator config should be a list')
ops = []
for operator in op_param_list:
assert isinstance(operator,
dict) and len(operator) == 1, "yaml format error"
op_name = list(operator)[0]
param = {} if operator[op_name] is None else operator[op_name]
if global_config is not None:
param.update(global_config)
op = eval(op_name)(**param)
ops.append(op)
return ops
def transform(data, ops=None):
""" transform """
if ops is None:
ops = []
for op in ops:
data = op(data)
if data is None:
return None
return data

类操作函数



有值和无值的对应

鼠标放在相应的位置的时候,会有相关的路径提示


第一个,是否包含待检测物体

第二个坐标差

第三个,交叉的并集
