pull/14798/head
co63oc 2025-03-04 09:38:37 +08:00 committed by GitHub
parent 1d52a2b2e1
commit f35dfef921
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
37 changed files with 65 additions and 64 deletions
benchmark/PaddleOCR_DBNet
models
utils/cal_recall
deploy
android_demo
app/src/main/cpp
fastdeploy
android
cpu-gpu/python
serving/fastdeploy_serving/models
cls_postprocess/1
det_postprocess/1
det_preprocess/1
rec_postprocess/1
hubserving
kie_ser
kie_ser_re
ocr_cls
ocr_rec
structure_layout
structure_system
structure_table
paddlejs
ppocr/postprocess
tools/infer

View File

@ -265,7 +265,7 @@ def resnet18(pretrained=True, **kwargs):
if pretrained:
assert (
kwargs.get("in_channels", 3) == 3
), "in_channels must be 3 whem pretrained is True"
), "in_channels must be 3 when pretrained is True"
print("load from imagenet")
load_models(model, "resnet18")
return model
@ -280,7 +280,7 @@ def deformable_resnet18(pretrained=True, **kwargs):
if pretrained:
assert (
kwargs.get("in_channels", 3) == 3
), "in_channels must be 3 whem pretrained is True"
), "in_channels must be 3 when pretrained is True"
print("load from imagenet")
model.load_state_dict(model_zoo.load_url(model_urls["resnet18"]), strict=False)
return model
@ -295,7 +295,7 @@ def resnet34(pretrained=True, **kwargs):
if pretrained:
assert (
kwargs.get("in_channels", 3) == 3
), "in_channels must be 3 whem pretrained is True"
), "in_channels must be 3 when pretrained is True"
model.load_state_dict(model_zoo.load_url(model_urls["resnet34"]), strict=False)
return model
@ -309,7 +309,7 @@ def resnet50(pretrained=True, **kwargs):
if pretrained:
assert (
kwargs.get("in_channels", 3) == 3
), "in_channels must be 3 whem pretrained is True"
), "in_channels must be 3 when pretrained is True"
load_models(model, "resnet50")
return model
@ -323,7 +323,7 @@ def deformable_resnet50(pretrained=True, **kwargs):
if pretrained:
assert (
kwargs.get("in_channels", 3) == 3
), "in_channels must be 3 whem pretrained is True"
), "in_channels must be 3 when pretrained is True"
model.load_state_dict(model_zoo.load_url(model_urls["resnet50"]), strict=False)
return model
@ -337,7 +337,7 @@ def resnet101(pretrained=True, **kwargs):
if pretrained:
assert (
kwargs.get("in_channels", 3) == 3
), "in_channels must be 3 whem pretrained is True"
), "in_channels must be 3 when pretrained is True"
model.load_state_dict(model_zoo.load_url(model_urls["resnet101"]), strict=False)
return model
@ -351,7 +351,7 @@ def resnet152(pretrained=True, **kwargs):
if pretrained:
assert (
kwargs.get("in_channels", 3) == 3
), "in_channels must be 3 whem pretrained is True"
), "in_channels must be 3 when pretrained is True"
model.load_state_dict(model_zoo.load_url(model_urls["resnet152"]), strict=False)
return model

View File

@ -58,7 +58,7 @@ class DiceLoss(nn.Layer):
"""
Loss function from https://arxiv.org/abs/1707.03237,
where iou computation is introduced heatmap manner to measure the
diversity bwtween tow heatmaps.
diversity between tow heatmaps.
"""
def __init__(self, eps=1e-6):

View File

@ -27,7 +27,7 @@ class SegDetectorRepresenter:
pred:
binary: text region segmentation map, with shape (N, H, W)
thresh: [if exists] thresh hold prediction with shape (N, H, W)
thresh_binary: [if exists] binarized with threshhold, (N, H, W)
thresh_binary: [if exists] binarized with threshold, (N, H, W)
"""
if isinstance(pred, paddle.Tensor):
pred = pred.numpy()

View File

@ -96,7 +96,7 @@ class InferenceEngine(object):
initialize the inference engine
Args:
model_file_path: inference model path (*.pdmodel)
model_file_path: inference parmaeter path (*.pdiparams)
model_file_path: inference parameter path (*.pdiparams)
Return:
predictor: Predictor created using Paddle Inference.
config: Configuration of the predictor.
@ -112,7 +112,7 @@ class InferenceEngine(object):
workspace_size=1 << 30,
precision_mode=precision,
max_batch_size=args.max_batch_size,
min_subgraph_size=args.min_subgraph_size, # skip the minmum trt subgraph
min_subgraph_size=args.min_subgraph_size, # skip the minimum trt subgraph
use_calib_mode=False,
)

View File

@ -25,7 +25,7 @@ def print_help():
def load_zip_file_keys(file, fileNameRegExp=""):
"""
Returns an array with the entries of the ZIP file that match with the regular expression.
The key's are the names or the file or the capturing group definied in the fileNameRegExp
The key's are the names or the file or the capturing group defined in the fileNameRegExp
"""
try:
archive = zipfile.ZipFile(file, mode="r", allowZip64=True)
@ -54,7 +54,7 @@ def load_zip_file_keys(file, fileNameRegExp=""):
def load_zip_file(file, fileNameRegExp="", allEntries=False):
"""
Returns an array with the contents (filtered by fileNameRegExp) of a ZIP file.
The key's are the names or the file or the capturing group definied in the fileNameRegExp
The key's are the names or the file or the capturing group defined in the fileNameRegExp
allEntries validates that all entries in the ZIP file pass the fileNameRegExp
"""
try:
@ -86,7 +86,7 @@ def load_zip_file(file, fileNameRegExp="", allEntries=False):
def load_folder_file(file, fileNameRegExp="", allEntries=False):
"""
Returns an array with the contents (filtered by fileNameRegExp) of a ZIP file.
The key's are the names or the file or the capturing group definied in the fileNameRegExp
The key's are the names or the file or the capturing group defined in the fileNameRegExp
allEntries validates that all entries in the ZIP file pass the fileNameRegExp
"""
pairs = []
@ -164,8 +164,8 @@ def validate_tl_line(
):
"""
Validate the format of the line. If the line is not valid an exception will be raised.
If maxWidth and maxHeight are specified, all points must be inside the imgage bounds.
Posible values are:
If maxWidth and maxHeight are specified, all points must be inside the image bounds.
Possible values are:
LTRB=True: xmin,ymin,xmax,ymax[,confidence][,transcription]
LTRB=False: x1,y1,x2,y2,x3,y3,x4,y4[,confidence][,transcription]
"""
@ -182,8 +182,8 @@ def get_tl_line_values(
):
"""
Validate the format of the line. If the line is not valid an exception will be raised.
If maxWidth and maxHeight are specified, all points must be inside the imgage bounds.
Posible values are:
If maxWidth and maxHeight are specified, all points must be inside the image bounds.
Possible values are:
LTRB=True: xmin,ymin,xmax,ymax[,confidence][,transcription]
LTRB=False: x1,y1,x2,y2,x3,y3,x4,y4[,confidence][,transcription]
Returns values from a textline. Points , [Confidences], [Transcriptions]
@ -409,11 +409,11 @@ def main_evaluation(
per_sample=True,
):
"""
This process validates a method, evaluates it and if it succed generates a ZIP file with a JSON entry for each sample.
This process validates a method, evaluates it and if it succeed generates a ZIP file with a JSON entry for each sample.
Params:
p: Dictionary of parmeters with the GT/submission locations. If None is passed, the parameters send by the system are used.
p: Dictionary of parameters with the GT/submission locations. If None is passed, the parameters send by the system are used.
default_evaluation_params_fn: points to a function that returns a dictionary with the default parameters used for the evaluation
validate_data_fn: points to a method that validates the corrct format of the submission
validate_data_fn: points to a method that validates the correct format of the submission
evaluate_method_fn: points to a function that evaluated the submission and return a Dictionary with the results
"""
evalParams = default_evaluation_params_fn()
@ -476,7 +476,7 @@ def main_validation(default_evaluation_params_fn, validate_data_fn):
This process validates a method
Params:
default_evaluation_params_fn: points to a function that returns a dictionary with the default parameters used for the evaluation
validate_data_fn: points to a method that validates the corrct format of the submission
validate_data_fn: points to a method that validates the correct format of the submission
"""
try:
p = dict([s[1:].split("=") for s in sys.argv[1:]])

View File

@ -2,8 +2,9 @@ English | [简体中文](README_ch.md)
# PP-OCR Deployment
- [Paddle Deployment Introduction](#1)
- [PP-OCR Deployment](#2)
- [PP-OCR Deployment](#pp-ocr-deployment)
- [Paddle Deployment Introduction](#paddle-deployment-introduction)
- [PP-OCR Deployment](#pp-ocr-deployment-1)
<a name="1"></a>
## Paddle Deployment Introduction
@ -18,7 +19,7 @@ Paddle provides a variety of deployment schemes to meet the deployment requireme
<a name="2"></a>
## PP-OCR Deployment
PP-OCR has supported muti deployment schemes. Click the link to get the specific tutorial.
PP-OCR has supported multi deployment schemes. Click the link to get the specific tutorial.
- [Python Inference](../doc/doc_en/inference_ppocr_en.md)
- [C++ Inference](./cpp_infer/readme.md)

View File

@ -28,7 +28,7 @@
## 3. 快速使用
### 3.1 环境准备
1. 在本地环境安装好 Android Studio 工具,详细安装方法请见[Android Stuido 官网](https://developer.android.com/studio)。
1. 在本地环境安装好 Android Studio 工具,详细安装方法请见[Android Studio 官网](https://developer.android.com/studio)。
2. 准备一部 Android 手机,并开启 USB 调试模式。开启方法: `手机设置 -> 查找开发者选项 -> 打开开发者选项和 USB 调试模式`
**注意**:如果您的 Android Studio 尚未配置 NDK ,请根据 Android Studio 用户指南中的[安装及配置 NDK 和 CMake ](https://developer.android.com/studio/projects/install-ndk)内容,预先配置好 NDK 。您可以选择最新的 NDK 版本,或者使用 Paddle Lite 预测库版本一样的 NDK

View File

@ -2566,7 +2566,7 @@ void Clipper::ProcessHorizontal(TEdge *horzEdge) {
while (e) {
// this code block inserts extra coords into horizontal edges (in output
// polygons) whereever maxima touch these horizontal edges. This helps
// polygons) wherever maxima touch these horizontal edges. This helps
//'simplifying' polygons (ie if the Simplify property is set).
if (m_Maxima.size() > 0) {
if (dir == dLeftToRight) {

View File

@ -38,7 +38,7 @@
// improve performance but coordinate values are limited to the range +/- 46340
//#define use_int32
// use_xyz: adds a Z member to IntPoint. Adds a minor cost to perfomance.
// use_xyz: adds a Z member to IntPoint. Adds a minor cost to performance.
//#define use_xyz
// use_lines: Enables line clipping. Adds a very minor cost to performance.

View File

@ -59,7 +59,7 @@ DEFINE_string(layout_dict_path,
DEFINE_double(layout_score_threshold, 0.5, "Threshold of score.");
DEFINE_double(layout_nms_threshold, 0.5, "Threshold of nms.");
// structure model related
DEFINE_string(table_model_dir, "", "Path of table struture inference model.");
DEFINE_string(table_model_dir, "", "Path of table structure inference model.");
DEFINE_int32(table_max_len, 488, "max len size of input image.");
DEFINE_int32(table_batch_num, 1, "table_batch_num.");
DEFINE_bool(merge_no_span_structure, true,

View File

@ -2571,7 +2571,7 @@ void Clipper::ProcessHorizontal(TEdge *horzEdge) noexcept {
while (e) {
// this code block inserts extra coords into horizontal edges (in output
// polygons) whereever maxima touch these horizontal edges. This helps
// polygons) wherever maxima touch these horizontal edges. This helps
//'simplifying' polygons (ie if the Simplify property is set).
if (m_Maxima.size() > 0) {
if (dir == dLeftToRight) {

View File

@ -74,7 +74,7 @@ void check_params() {
}
if (FLAGS_precision != "fp32" && FLAGS_precision != "fp16" &&
FLAGS_precision != "int8") {
std::cout << "precison should be 'fp32'(default), 'fp16' or 'int8'. "
std::cout << "precision should be 'fp32'(default), 'fp16' or 'int8'. "
<< std::endl;
exit(1);
}

View File

@ -5,7 +5,7 @@
## 环境准备
1. 在本地环境安装好 Android Studio 工具,详细安装方法请见[Android Stuido 官网](https://developer.android.com/studio)。
1. 在本地环境安装好 Android Studio 工具,详细安装方法请见[Android Studio 官网](https://developer.android.com/studio)。
2. 准备一部 Android 手机,并开启 USB 调试模式。开启方法: `手机设置 -> 查找开发者选项 -> 打开开发者选项和 USB 调试模式`
## 部署步骤

View File

@ -217,7 +217,7 @@ ppocr_v3.rec_batch_size = args.rec_bs
# Read the input image
im = cv2.imread(args.image)
# Predict and reutrn the results
# Predict and return the results
result = ppocr_v3.predict(im)
print(result)

View File

@ -33,7 +33,7 @@ class TritonPythonModel:
def initialize(self, args):
"""`initialize` is called only once when the model is being loaded.
Implementing `initialize` function is optional. This function allows
the model to intialize any state associated with this model.
the model to initialize any state associated with this model.
Parameters
----------
args : dict

View File

@ -83,7 +83,7 @@ class TritonPythonModel:
def initialize(self, args):
"""`initialize` is called only once when the model is being loaded.
Implementing `initialize` function is optional. This function allows
the model to intialize any state associated with this model.
the model to initialize any state associated with this model.
Parameters
----------
args : dict

View File

@ -33,7 +33,7 @@ class TritonPythonModel:
def initialize(self, args):
"""`initialize` is called only once when the model is being loaded.
Implementing `initialize` function is optional. This function allows
the model to intialize any state associated with this model.
the model to initialize any state associated with this model.
Parameters
----------
args : dict

View File

@ -35,7 +35,7 @@ class TritonPythonModel:
def initialize(self, args):
"""`initialize` is called only once when the model is being loaded.
Implementing `initialize` function is optional. This function allows
the model to intialize any state associated with this model.
the model to initialize any state associated with this model.
Parameters
----------
args : dict

View File

@ -72,7 +72,7 @@ class KIESer(hub.Module):
def merge_configs(
self,
):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -72,7 +72,7 @@ class KIESerRE(hub.Module):
def merge_configs(
self,
):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -68,7 +68,7 @@ class OCRCls(hub.Module):
def merge_configs(
self,
):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -70,7 +70,7 @@ class OCRDet(hub.Module):
def merge_configs(
self,
):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -30,14 +30,14 @@ def read_params():
cfg.det_limit_side_len = 960
cfg.det_limit_type = "max"
# DB parmas
# DB params
cfg.det_db_thresh = 0.3
cfg.det_db_box_thresh = 0.6
cfg.det_db_unclip_ratio = 1.5
cfg.use_dilation = False
cfg.det_db_score_mode = "fast"
# #EAST parmas
# #EAST params
# cfg.det_east_score_thresh = 0.8
# cfg.det_east_cover_thresh = 0.1
# cfg.det_east_nms_thresh = 0.2

View File

@ -68,7 +68,7 @@ class OCRRec(hub.Module):
def merge_configs(
self,
):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -71,7 +71,7 @@ class OCRSystem(hub.Module):
def merge_configs(
self,
):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -30,14 +30,14 @@ def read_params():
cfg.det_limit_side_len = 960
cfg.det_limit_type = "max"
# DB parmas
# DB params
cfg.det_db_thresh = 0.3
cfg.det_db_box_thresh = 0.5
cfg.det_db_unclip_ratio = 1.6
cfg.use_dilation = False
cfg.det_db_score_mode = "fast"
# EAST parmas
# EAST params
cfg.det_east_score_thresh = 0.8
cfg.det_east_cover_thresh = 0.1
cfg.det_east_nms_thresh = 0.2

View File

@ -67,7 +67,7 @@ class LayoutPredictor(hub.Module):
self.layout_predictor = _LayoutPredictor(cfg)
def merge_configs(self):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -70,7 +70,7 @@ class StructureSystem(hub.Module):
self.table_sys = PPStructureSystem(cfg)
def merge_configs(self):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -69,7 +69,7 @@ class TableSystem(hub.Module):
self.table_sys = _TableSystem(cfg)
def merge_configs(self):
# deafult cfg
# default cfg
backup_argv = copy.deepcopy(sys.argv)
sys.argv = sys.argv[:1]
cfg = parse_args()

View File

@ -13,7 +13,7 @@ Run OCR demo in browser refer to [tutorial](https://github.com/PaddlePaddle/Fast
## Mini Program Demo
The Mini Program demo running tutorial eference
The Mini Program demo running tutorial reference
Run OCR demo in wechat miniprogram refer to [tutorial](https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/application/js/mini_program).
|demo|directory|

View File

@ -40,7 +40,7 @@ The accuracy (%) and model files of CPPD on the public dataset of scene text rec
|:----------:|:------:|:-----:|:---------:|:------:|:-----:|:-----:|:-----:|:-------:|:-------:|
| CPPD Base 32*128 | 87.5 | 70.7 | 78.2 | 82.9 | 85.5 | 85.4 | 84.3 | 82.08 | Same as the table above. |
* Chinese dataset from [Chinese Benckmark](https://github.com/FudanVI/benchmarking-chinese-text-recognition).
* Chinese dataset from [Chinese Benchmark](https://github.com/FudanVI/benchmarking-chinese-text-recognition).
| Model | Scene | Web | Document | Handwriting | Avg | Download |
|:----------:|:------:|:-----:|:---------:|:------:|:-----:|:-----:|

View File

@ -52,7 +52,7 @@ CPPD在场景文本识别公开数据集上的精度(%)和模型文件如下:
|:----------:|:------:|:-----:|:---------:|:------:|:-----:|:-----:|:-----:|:-------:|:-------:|
| CPPD Base 32*128 | 87.5 | 70.7 | 78.2 | 82.9 | 85.5 | 85.4 | 84.3 | 82.08 | 同上表 |
* 中文训练集和测试集来自于[Chinese Benckmark](https://github.com/FudanVI/benchmarking-chinese-text-recognition)。
* 中文训练集和测试集来自于[Chinese Benchmark](https://github.com/FudanVI/benchmarking-chinese-text-recognition)。
| 模型 | Scene | Web | Document | Handwriting | Avg | 下载链接 |
|:----------:|:------:|:-----:|:---------:|:------:|:-----:|:-----:|

View File

@ -13,7 +13,7 @@ Paper:
The accuracy (%) and model files of SVTR on the public dataset of scene text recognition are as follows:
* Chinese dataset from [Chinese Benckmark](https://arxiv.org/abs/2112.15093) , and the Chinese training evaluation strategy of SVTR follows the paper.
* Chinese dataset from [Chinese Benchmark](https://arxiv.org/abs/2112.15093) , and the Chinese training evaluation strategy of SVTR follows the paper.
| Model |IC13<br/>857 | SVT |IIIT5k<br/>3000 |IC15<br/>1811| SVTP |CUTE80 | Avg_6 |IC15<br/>2077 |IC13<br/>1015 |IC03<br/>867|IC03<br/>860|Avg_10 | Chinese<br/>scene_test| Download link |
|:----------:|:------:|:-----:|:---------:|:------:|:-----:|:-----:|:-----:|:-------:|:-------:|:-----:|:-----:|:---------------------------------------------:|:-----:|:------:|

View File

@ -23,7 +23,7 @@ comments: true
SVTR在场景文本识别公开数据集上的精度(%)和模型文件如下:
* 中文数据集来自于[Chinese Benckmark](https://arxiv.org/abs/2112.15093) SVTR的中文训练评估策略遵循该论文。
* 中文数据集来自于[Chinese Benchmark](https://arxiv.org/abs/2112.15093) SVTR的中文训练评估策略遵循该论文。
| 模型 |IC13<br/>857 | SVT |IIIT5k<br/>3000 |IC15<br/>1811| SVTP |CUTE80 | Avg_6 |IC15<br/>2077 |IC13<br/>1015 |IC03<br/>867|IC03<br/>860|Avg_10 | Chinese<br/>scene_test| 下载链接 |
|:----------:|:------:|:-----:|:---------:|:------:|:-----:|:-----:|:-----:|:-------:|:-------:|:-----:|:-----:|:------:|:-----:|:-----:|

View File

@ -27,7 +27,7 @@ hide:
### 3.1 环境准备
1. 在本地环境安装好 Android Studio 工具,详细安装方法请见[Android Stuido 官网](https://developer.android.com/studio)。
1. 在本地环境安装好 Android Studio 工具,详细安装方法请见[Android Studio 官网](https://developer.android.com/studio)。
2. 准备一部 Android 手机,并开启 USB 调试模式。开启方法: `手机设置 -> 查找开发者选项 -> 打开开发者选项和 USB 调试模式`
**注意**:如果您的 Android Studio 尚未配置 NDK ,请根据 Android Studio 用户指南中的[安装及配置 NDK 和 CMake](https://developer.android.com/studio/projects/install-ndk)内容,预先配置好 NDK 。您可以选择最新的 NDK 版本,或者使用 Paddle Lite 预测库版本一样的 NDK

View File

@ -85,7 +85,7 @@ class EASTPostProcess(object):
if boxes.shape[0] == 0:
return []
# Here we filter some low score boxes by the average score map,
# this is different from the orginal paper.
# this is different from the original paper.
for i, box in enumerate(boxes):
mask = np.zeros_like(score_map, dtype=np.uint8)
cv2.fillPoly(mask, box[:8].reshape((-1, 4, 2)).astype(np.int32) // 4, 1)

View File

@ -63,7 +63,7 @@ def init_args():
parser.add_argument("--det_limit_type", type=str, default="max")
parser.add_argument("--det_box_type", type=str, default="quad")
# DB parmas
# DB params
parser.add_argument("--det_db_thresh", type=float, default=0.3)
parser.add_argument("--det_db_box_thresh", type=float, default=0.6)
parser.add_argument("--det_db_unclip_ratio", type=float, default=1.5)
@ -71,22 +71,22 @@ def init_args():
parser.add_argument("--use_dilation", type=str2bool, default=False)
parser.add_argument("--det_db_score_mode", type=str, default="fast")
# EAST parmas
# EAST params
parser.add_argument("--det_east_score_thresh", type=float, default=0.8)
parser.add_argument("--det_east_cover_thresh", type=float, default=0.1)
parser.add_argument("--det_east_nms_thresh", type=float, default=0.2)
# SAST parmas
# SAST params
parser.add_argument("--det_sast_score_thresh", type=float, default=0.5)
parser.add_argument("--det_sast_nms_thresh", type=float, default=0.2)
# PSE parmas
# PSE params
parser.add_argument("--det_pse_thresh", type=float, default=0)
parser.add_argument("--det_pse_box_thresh", type=float, default=0.85)
parser.add_argument("--det_pse_min_area", type=float, default=16)
parser.add_argument("--det_pse_scale", type=int, default=1)
# FCE parmas
# FCE params
parser.add_argument("--scales", type=list, default=[8, 16, 32])
parser.add_argument("--alpha", type=float, default=1.0)
parser.add_argument("--beta", type=float, default=1.0)
@ -112,7 +112,7 @@ def init_args():
parser.add_argument("--e2e_limit_side_len", type=float, default=768)
parser.add_argument("--e2e_limit_type", type=str, default="max")
# PGNet parmas
# PGNet params
parser.add_argument("--e2e_pgnet_score_thresh", type=float, default=0.5)
parser.add_argument(
"--e2e_char_dict_path", type=str, default="./ppocr/utils/ic15_dict.txt"
@ -133,7 +133,7 @@ def init_args():
parser.add_argument("--use_pdserving", type=str2bool, default=False)
parser.add_argument("--warmup", type=str2bool, default=False)
# SR parmas
# SR params
parser.add_argument("--sr_model_dir", type=str)
parser.add_argument("--sr_image_shape", type=str, default="3, 32, 128")
parser.add_argument("--sr_batch_num", type=int, default=1)