Note
You are reading the documentation for MMOCR 0.x, which will soon be deprecated by the end of 2022. We recommend you upgrade to MMOCR 1.0 to enjoy fruitful new features and better performance brought by OpenMMLab 2.0. Check out the maintenance plan, changelog, code and documentation of MMOCR 1.0 for more details.
Source code for mmocr.utils.check_argument
# Copyright (c) OpenMMLab. All rights reserved.
[docs]def is_3dlist(x):
"""check x is 3d-list([[[1], []]]) or 2d empty list([[], []]) or 1d empty
list([]).
Notice:
The reason that it contains 1d or 2d empty list is because
some arguments from gt annotation file or model prediction
may be empty, but usually, it should be 3d-list.
"""
if not isinstance(x, list):
return False
if len(x) == 0:
return True
for sub_x in x:
if not is_2dlist(sub_x):
return False
return True
[docs]def is_2dlist(x):
"""check x is 2d-list([[1], []]) or 1d empty list([]).
Notice:
The reason that it contains 1d empty list is because
some arguments from gt annotation file or model prediction
may be empty, but usually, it should be 2d-list.
"""
if not isinstance(x, list):
return False
if len(x) == 0:
return True
return all(isinstance(item, list) for item in x)
def is_type_list(x, type):
if not isinstance(x, list):
return False
return all(isinstance(item, type) for item in x)
def is_none_or_type(x, type):
return isinstance(x, type) or x is None
def equal_len(*argv):
assert len(argv) > 0
num_arg = len(argv[0])
for arg in argv:
if len(arg) != num_arg:
return False
return True
def valid_boundary(x, with_score=True):
num = len(x)
if num < 8:
return False
if num % 2 == 0 and (not with_score):
return True
if num % 2 == 1 and with_score:
return True
return False