| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- import os
- from ....utils.misc import abspath
- from ..text_rec.config import TextRecConfig
- class TableRecConfig(TextRecConfig):
- """Table Recognition Config"""
- def update_dataset(self, dataset_path: str, dataset_type: str = None):
- """update dataset settings
- Args:
- dataset_path (str): the root path of dataset.
- dataset_type (str, optional): dataset type. Defaults to None.
- Raises:
- ValueError: the dataset_type error.
- """
- dataset_path = abspath(dataset_path)
- if dataset_type is None:
- dataset_type = "PubTabTableRecDataset"
- if dataset_type == "PubTabTableRecDataset":
- _cfg = {
- "Train.dataset.name": dataset_type,
- "Train.dataset.data_dir": dataset_path,
- "Train.dataset.label_file_list": [
- os.path.join(dataset_path, "train.txt")
- ],
- "Eval.dataset.name": dataset_type,
- "Eval.dataset.data_dir": dataset_path,
- "Eval.dataset.label_file_list": [os.path.join(dataset_path, "val.txt")],
- }
- self.update(_cfg)
- else:
- raise ValueError(f"{repr(dataset_type)} is not supported.")
- def _get_infer_shape(self):
- """get resize scale of ResizeImg operation in the evaluation
- Returns:
- str: resize scale, i.e. `Eval.dataset.transforms.ResizeTableImage.max_len`
- """
- size = None
- transforms = self.dict["Eval"]["dataset"]["transforms"]
- for op in transforms:
- if list(op)[0] == "ResizeTableImage":
- size = op["ResizeTableImage"]["max_len"]
- return size
|