pytorchOCR之参数
文本检测篇
以det_DB_mobilev3.yaml为例,其余类似:
参数 | 解释 |
---|
gpu_id: | 设置gpu,可设置单个或多个例如 ‘0’ 或者‘0,1,2,3’ |
algorithm | 指定算法名称,例如DB,PSE |
pretrained | 是否加载预训练模型,True or False |
in_channels | 指定每个尺度的inchannel 例如这里mobilev3是[24, 40, 48, 96] |
inner_channels | 指定DB模块的channel,这里mobilev3是96 |
k | 可微分二值化函数的一个参数,50 |
adaptive: | 是否使用可微分二值化,训练的时候是True,测试为False |
crop_shape | 训练图片crop的大小,[640,640] |
shrink_ratio | 文本向内收缩的比率,0.4 |
n_epoch | 训练的总共epoch数目,1200 |
start_val | 开始做验证的epoch数目,如果你不想做验证或没有验证集,可设置其大n_epoch.400 |
show_step | 多少次迭代之后显示一次loss,20 |
checkpoints: | log以及模型和验证数据测试结果保存的位置,./checkpoint |
save_epoch | 设置多少个epoch保存一次模型,100 |
restore | 是否恢复训练,这里作为断点恢复作用,可以从上次断掉的epoch开始接着训练,True |
restore_file | 恢复训练所需要的上次保存的模型文件 |
参数 | 解释 |
---|
function | 调用的文件和函数名称,用来配置调用函数所用 |
train_file: | 训练的文件 |
num_workers: | 训练加载数据时的num_workers,也不是越大越好,设置合适可以加快训练 |
batch_size: | 一次迭代训练的数据批次 |
参数 | 解释 |
---|
function | 调用的文件和函数名称,用来配置调用函数所用 |
test_file: | 验证的文件 |
test_gt_path | 标签文件的地址 |
num_workers: | 训练加载数据时的num_workers |
batch_size: | 一次迭代验证的数据批次 |
参数 | 解释 |
---|
function | 调用的文件和函数名称,用来配置调用函数所用 |
test_file: | 验证的文件 |
test_gt_path | 标签文件的地址 |
num_workers: | 训练加载数据时的num_workers |
batch_size: | 一次迭代验证的数据批次 |
test_size | 做验证时图片最小边的尺寸 |
stride | 这里对应pooling使得图片缩小的倍数,一共五次,每次缩小2倍,所以是32。 |
参数 | 解释 |
---|
function | 调用的文件和函数名称,用来配置调用函数所用 |
is_poly: | 输出框是否是多边形,设置true是指多边形(弯曲文本检测)否则为四边形框。 |
thresh | 是否为文本像素的阈值,大于这个阈值的归类为文本像素 |
box_thresh | 框的score阈值,框的score小于这个会被过滤 |
max_candidates: | 最大轮廓个数 |
unclip_ratio | 向外扩展的系数,越大得到的框越大 |
min_size | 最小文本的大小,用来过滤过小的文本 |
参数 | 解释 |
---|
model_path | 测试时加载的模型文件 |
path: | 输入为测试图片或文件夹 |
save_path | 测试结果保存的位置 |
文本检识别篇
以rec_CRNN_ori.yaml为例
参数 | 解释 |
---|
gpu_id: | 设置gpu,可设置单个或多个例如 ‘0’ 或者‘0,1,2,3’ |
algorithm | 指定算法名称,CRNN |
pretrained | 是否加载预训练模型,True or False |
in_channels | CNN部分的最后输出的channel |
hiddenchannel | lstm的隐藏层个数 |
img_shape | 训练时图片的大小,[32,200] |
is_gray: | 是否把训练图片转换成灰度图训练 |
use_conv | 最后一层(类别层)是否用卷积输出 |
use_attention | 是否使用attention,这里参照了mobilev3的attention方式,对cnn卷积最后一层做。(然而并没有什么用) |
use_lstm | 是否使用lstm,及是否使用rnn |
lstm_num | lstm的个数,配合上面使用 |
classes | 分类文字的类别数,这里其实可以拿掉了,代码中类别数已经根据key.txt提取,不用设置了,这里随便设为1000 |
n_epoch: | 训练的总epoch数 |
start_val | 开始做验证的epoch数目,如果你不想做验证或没有验证集,可设置其大n_epoch.400 |
show_step | 多少次迭代之后显示一次loss,20 |
checkpoints: | log以及模型和验证数据测试结果保存的位置,./checkpoint |
save_epoch | 设置多少个epoch保存一次模型 |
show_num | 做验证时显示识别结果的个数,主要用来查看识别效果 |
save_epoch | 设置多少个epoch保存一次模型,100 |
restore | 是否恢复训练,这里作为断点恢复作用,可以从上次断掉的epoch开始接着训练,True |
finetune | 是否为finetune,这个参数主要为了区分训练是否从0 epoch开始,当restore和它一起为true,epoch从0开始,否则当它为false,epoch从上次断掉的开始接着训练。 |
restore_file | 恢复训练所需要的上次保存的模型文件 |
参数 | 解释 |
---|
function | 调用的文件和函数名称,用来配置调用函数所用 |
reduction: | ctcloss计算以什么形式。 |
center_function | 作用同function,是centerloss的调用 |
use_center | 是否使用centerloss优化训练,这里注意,centerloss只能在你已经训练好一个较好的模型的基础上优化训练,不能从头训练,也就是说你要加载之前ctcloss训练好的最优模型,以finetune的形式接着训练 |
center_lr: | center聚类中心的初始学习率 |
label_score | 这里用来选取centerloss训练的label的的阈值,大于这个阈值的label才会被选入训练 |
weight_center | centerloss在的分配的loss权重系数 |
其余的参数和检测是一样的。
- 重点提示,有些参数是要根据你们数据集不同进行更改的,就比如说n_epoch,
schedule等