Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【WIP】add textline_orientation #2177

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
Global:
model: PP-LCNet_x1_0_textline_ori
mode: check_dataset # check_dataset/train/evaluate/predict
dataset_dir: "/paddle/dataset/paddlex/cls/textline_orientation_examples"
device: gpu:0,1,2,3
output: "output"

CheckDataset:
convert:
enable: False
src_dataset_type: null
split:
enable: False
train_percent: null
val_percent: null

Train:
num_classes: 2
epochs_iters: 20
batch_size: 32
learning_rate: 0.8
pretrain_weight_path: null
warmup_steps: 100
resume_path: null
log_interval: 10
eval_interval: 1
save_interval: 1

Evaluate:
weight_path: "output/best_model/best_model.pdparams"
log_interval: 10

Export:
weight_path: https://paddleclas.bj.bcebos.com/models/PULC/pretrained/textline_orientation_pretrained.pdparams

Predict:
batch_size: 1
model_dir: "output/best_model/inference"
input: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/img_textline180_demo.jpg"
kernel_option:
run_mode: paddle
1 change: 1 addition & 0 deletions paddlex/inference/utils/official_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"PP-LCNet_x0_75": "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b1_v2/PP-LCNet_x0_75_infer.tar",
"PP-LCNet_x1_0": "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b1_v2/PP-LCNet_x1_0_infer.tar",
"PP-LCNet_x1_0_doc_ori": "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b1_v2/PP-LCNet_x1_0_doc_ori_infer.tar",
"PP-LCNet_x1_0_textline_ori": "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b1_v2/PP-LCNet_x1_0_textline_ori_infer.tar",
"PP-LCNet_x1_5": "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b1_v2/PP-LCNet_x1_5_infer.tar",
"PP-LCNet_x2_5": "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b1_v2/PP-LCNet_x2_5_infer.tar",
"PP-LCNet_x2_0": "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b1_v2/PP-LCNet_x2_0_infer.tar",
Expand Down
1 change: 1 addition & 0 deletions paddlex/modules/image_classification/model_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
"PP-LCNet_x0_75",
"PP-LCNet_x1_0",
"PP-LCNet_x1_0_doc_ori",
"PP-LCNet_x1_0_textline_ori",
"PP-LCNet_x1_5",
"PP-LCNet_x2_0",
"PP-LCNet_x2_5",
Expand Down
11 changes: 11 additions & 0 deletions paddlex/repo_apis/PaddleClas_api/cls/register.py
Original file line number Diff line number Diff line change
Expand Up @@ -947,3 +947,14 @@
"hpi_config_path": None,
}
)

register_model_info(
{
"model_name": "PP-LCNet_x1_0_textline_ori",
"suite": "Cls",
"config_path": osp.join(PDX_CONFIG_DIR, "PP-LCNet_x1_0_textline_ori.yaml"),
"supported_apis": ["train", "evaluate", "predict", "export", "infer"],
"infer_config": "deploy/configs/inference_cls.yaml",
"hpi_config_path": None,
}
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# global configs
Global:
checkpoints: null
pretrained_model: null
output_dir: ./output/
device: gpu
save_interval: 1
eval_during_train: True
start_eval_epoch: 1
eval_interval: 1
epochs: 20
print_batch_step: 10
use_visualdl: False
# used for static mode and model export
image_shape: [3, 80, 160]
save_inference_dir: ./inference
# training model under @to_static
to_static: False
use_dali: False

# model architecture
Arch:
name: PPLCNet_x1_0
class_num: 2
pretrained: True
use_ssld: True
stride_list: [2, [2, 1], [2, 1], [2, 1], [2, 1]]

# loss function config for traing/eval process
Loss:
Train:
- CELoss:
weight: 1.0
Eval:
- CELoss:
weight: 1.0


Optimizer:
name: Momentum
momentum: 0.9
lr:
name: Cosine
learning_rate: 0.8
warmup_epoch: 5
regularizer:
name: 'L2'
coeff: 0.00004


# data loader for train and eval
DataLoader:
Train:
dataset:
name: ImageNetDataset
image_root: ./dataset/textline_orientation/
cls_label_path: ./dataset/textline_orientation/train_list.txt
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [160, 80]
- TimmAutoAugment:
prob: 1.0
config_str: rand-m9-mstd0.5-inc1
interpolation: bicubic
img_size: [160, 80]
- NormalizeImage:
scale: 1.0/255.0
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
- RandomErasing:
EPSILON: 0.0
sl: 0.02
sh: 1.0/3.0
r1: 0.3
attempt: 10
use_log_aspect: True
mode: pixel

sampler:
name: DistributedBatchSampler
batch_size: 16
drop_last: False
shuffle: True
loader:
num_workers: 16
use_shared_memory: True

Eval:
dataset:
name: ImageNetDataset
image_root: ./dataset/textline_orientation/
cls_label_path: ./dataset/textline_orientation/val_list.txt
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [160, 80]
- NormalizeImage:
scale: 1.0/255.0
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
sampler:
name: DistributedBatchSampler
batch_size: 128
drop_last: False
shuffle: False
loader:
num_workers: 8
use_shared_memory: True

Infer:
infer_imgs: deploy/images/PULC/textline_orientation/textline_orientation_test_0_0.png
batch_size: 10
transforms:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [160, 80]
- NormalizeImage:
scale: 1.0/255.0
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
- ToCHWImage:
PostProcess:
name: Topk
topk: 1
class_id_map_file: ppcls/utils/PULC_label_list/textline_orientation_label_list.txt

Metric:
Train:
- TopkAcc:
topk: [1, 2]
Eval:
- TopkAcc:
topk: [1, 2]