文字检测场景CTPN
训练参数及范围
CTPN模型训练的参数名、类型、取值范围、默认值及说明如下表所示。
参数名 |
类型 |
取值范围 |
默认值 |
说明 |
---|---|---|---|---|
--train_dataset_path |
str |
- |
None |
训练数据集路径。 |
--pretrained_ckpt_path |
str |
- |
"pre_trained_ckpt" |
预训练模型路径。 |
--train_output_path |
str |
- |
"train_output_path" |
训练结果输出路径。 |
--device_id |
int |
0~7 |
0 |
训练NPU的id。 |
--device_num |
int |
仅支持1(当前仅支持单卡训练) |
1 |
训练NPU的数量。 |
--input_width |
str |
(0,1280) 且为16的整数倍 |
“960” |
训练的尺寸-宽。 |
--input_height |
str |
(0,1280) 且为16的整数倍 |
“576” |
训练的尺寸-高。 |
--batch_size |
int |
仅支持为1 |
1 |
训练图片批数量。 |
--init_lr |
float |
(0, 1) |
0.0005 |
训练学习率。 |
--epoch_size |
int |
[1, 10000] |
10 |
训练的轮数。 |
--run_eval |
bool |
True 或 False |
True |
训练时是否评估。 |
--eval_start_epoch |
int |
[1, 10000] |
1 |
训练时多少轮开始评估。 |
--save_best_ckpt |
bool |
True 或 False |
True |
是否保存最佳的ckpt文件。(后续版本计划删除该参数。目前在run_eval为True时默认保存最佳的ckpt文件。) |
--eval_interval |
int |
[1, 10000] |
1 |
间隔多少个epoch评估一次。 |
训练命令参考
CTPN模型训练的命令参考如下:
python3 model_train.py --train_dataset_path=/path_to/images --train_output_path=./output_dir --pretrained_ckpt_path=/path_to/ckpt --epoch_size=20 --batch_size=1 --input_width=960 --input_height=576 --init_lr=0.0005 --device_num=1 --device_id=0 --run_eval=True
模型训练过程存在随机性,最终以评估精度为准。使用以上参数,4张图片、20个epoch时的训练精度结果参考如下。

训练结束后log信息参考如下:

训练结束后会在“--train_output_path”参数指定的输出目录中生成.ckpt、.a310.om、.a310p.om和.air格式的模型文件。
评估参数及范围
CTPN模型评估的参数名、类型、取值范围、默认值及说明如下表所示。
参数名 |
类型 |
取值范围 |
默认值 |
说明 |
---|---|---|---|---|
--eval_dataset_path |
str |
- |
“” |
评估数据集路径。 |
--eval_ckpt_path |
str |
- |
“” |
训练后模型路径。 |
--eval_output_path |
str |
- |
“eval_output_path” |
评估结果输出路径。 |
--device_id |
int |
0~7 |
0 |
评估NPU的id。 |
--text_iou_thresh |
float |
- |
0.2 |
文本连接iou阈值。 |
评估命令参考
CTPN模型评估的命令参考如下:
python3 model_eval.py --eval_dataset_path= path_to/images --eval_ckpt_path= path_to/your_ckpt --eval_output_path=./eval_result --device_id=0
采用训练输出的ckpt,来评估模型的精度值,参考如下:

在评估目录下会生成以下目录,其中“all_images\ng_images\ok_images”文件夹存放评估图片的结果、“statistics.csv”存放对应的精度结果。
