项目OCR实验(下)之文本识别
ERROR:root:DataLoader reader thread raised an exception!
方法1.看到修改深度,代码中没有深度的相关代码
import sys # 导入sys模块
sys.setrecursionlimit(3000) # 将默认的递归深度修改为3000
方法2.修改过cal_metric_during_train 设置为 False,还是会报错,请问如何解决?
Exception in thread Thread-5:
Traceback (most recent call last):
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/threading.py", line 926, in _bootstrap_inner
self.run()
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 391, in _thread_loop
batch = self._get_data()
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 505, in _get_data
batch.reraise()
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/worker.py", line 168, in reraise
raise self.exc_type(msg)
RecursionError: DataLoader worker(1) caught RecursionError with message:
Traceback (most recent call last):
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/worker.py", line 320, in _worker_loop
batch = fetcher.fetch(indices)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/fetcher.py", line 106, in fetch
data = [self.dataset[idx] for idx in batch_indices]
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/fetcher.py", line 106, in
data = [self.dataset[idx] for idx in batch_indices]
File "/tmp/ipykernel_4442/323684872.py", line 57, in __getitem__
return self.__getitem__(rnd_idx)
File "/tmp/ipykernel_4442/323684872.py", line 57, in __getitem__
return self.__getitem__(rnd_idx)
File "/tmp/ipykernel_4442/323684872.py", line 57, in __getitem__
return self.__getitem__(rnd_idx)
[Previous line repeated 2950 more times]
File "/tmp/ipykernel_4442/323684872.py", line 56, in __getitem__
rnd_idx = np.random.randint(self.__len__()) if self.mode == "train" else (idx + 1) % self.__len__()
File "mtrand.pyx", line 747, in numpy.random.mtrand.RandomState.randint
File "_bounded_integers.pyx", line 1237, in numpy.random._bounded_integers._rand_int64
RecursionError: maximum recursion depth exceeded while calling a Python object
---------------------------------------------------------------------------SystemError Traceback (most recent call last)/tmp/ipykernel_4442/3769845673.py in
11 # 模型训练
12 for epoch in range(epoch_num):
---> 13 for idx, batch in enumerate(train_dataloader):
14 if idx >= len(train_dataloader):
15 break
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py in __next__(self)
563
564 if in_dygraph_mode():
--> 565 data = self._reader.read_next_var_list()
566 data = _restore_batch(data, self._structure_infos.pop(0))
567 else:
SystemError: (Fatal) Blocking queue is killed because the data reader raises an exception.
[Hint: Expected killed_ != true, but received killed_:1 == true:1.] (at /paddle/paddle/fluid/operators/reader/blocking_queue.h:166)
该问题已经解决,数据集格式的问题。按照飞桨中数据集标签格式,不报错
你好,我用飞桨工具导出的识别数据集也是出现这个问题,请问一些你说的标签格式问题,是\t和分隔符 \n的原因吗
我的自己生成的数据可以被百度官方的标注工具,然后用标注工具导出后,报错跟你差不多。但又不太一样。
[2022/08/04 17:20:18] ppocr ERROR: When parsing line crop_img/1659537344481_crop_7.jpg 累唱患唯崖崭崇圈铜铲银甜梨犁移笨笼笛符第敏做袋悠偿
, error happened with msg: Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 137, in __getitem__
outs = transform(data, self.ops)
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\__init__.py", line 50, in transform
data = op(data)
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\rec_img_aug.py", line 31, in __call__
img = warp(img, 10, self.use_tia, self.aug_prob)
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\rec_img_aug.py", line 571, in warp
new_img = tia_distort(new_img, random.randint(3, 6))
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\augment.py", line 60, in tia_distort
dst = trans.generate()
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\warp_mls.py", line 42, in generate
return self.gen_img()
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\warp_mls.py", line 148, in gen_img
nx = np.clip(nx, 0, src_w - 1)
File "<__array_function__ internals>", line 180, in clip
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 2154, in clip
return _wrapfunc(a, 'clip', a_min, a_max, out=out, **kwargs)
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 57, in _wrapfunc
return bound(*args, **kwds)
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\_methods.py", line 135, in _clip
if _clip_dep_is_scalar_nan(min):
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\_methods.py", line 95, in _clip_dep_is_scalar_nan
if ndim(a) != 0:
File "<__array_function__ internals>", line 180, in ndim
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 3154, in ndim
return a.ndim
RecursionError: maximum recursion depth exceeded while calling a Python object
Fatal Python error: Cannot recover from stack overflow.
Python runtime state: initialized
Current thread 0x000067e8 (most recent call first):
File "<__array_function__ internals>", line 180 in ndim
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\_methods.py", line 95 in _clip_dep_is_scalar_nan
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\_methods.py", line 135 in _clip
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 57 in _wrapfunc
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\numpy\core\fromnumeric.py", line 2154 in clip
File "<__array_function__ internals>", line 180 in clip
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\warp_mls.py", line 148 in gen_img
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\warp_mls.py", line 42 in generate
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\text_image_aug\augment.py", line 94 in tia_stretch
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\rec_img_aug.py", line 576 in warp
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\rec_img_aug.py", line 31 in __call__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\imaug\__init__.py", line 50 in transform
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 137 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
File "C:\Users\Administrator\Desktop\OCR\ppocr\data\simple_dataset.py", line 147 in __getitem__
...
Thread 0x00007d40 (most recent call first):
File "C:\Users\Administrator\Desktop\OCR\venv\lib\site-packages\paddle\fluid\dataloader\dataloader_iter.py", line 272 in __next__
File "C:\Users\Administrator\Desktop\OCR\tools\program.py", line 243 in train
File "tools/train.py", line 166 in main
File "tools/train.py", line 193 in
您好,我是fork项目的时候没有注意作者的数据集提示:默认请将图片路径和图片标签用\t分割,如用其他方式分割将造成训练报错,更换数据集就没报这个错了;你的这个错误致命的Python错误:无法从堆栈溢出恢复,相关回答有:The error you're getting indicates that you have a function called do which calls itself, probably in an infinite loop. When a function does that too many times (calls itself inside itself, which causes it to call itself inside itself inside itself...) you get what's called a "stack overflow",您看一下代码里是否有函数在无限循环。
1
error happened with msg: Traceback (most recent call last):
File "/home/keqikeji/PaddleOCR/ppocr/data/simple_dataset.py", line 159, in __getitem__
outs = transform(data, self.ops)
File "/home/keqikeji/PaddleOCR/ppocr/data/imaug/__init__.py", line 56, in transform
data = op(data)
File "/home/keqikeji/PaddleOCR/ppocr/data/imaug/label_ops.py", line 55, in __call__
box = label[bno]['points']
error happened with msg: Traceback (most recent call last):
File "/home/keqikeji/PaddleOCR/ppocr/data/simple_dataset.py", line 162, in __getitem__
outs = transform(data, self.ops)
File "/home/keqikeji/PaddleOCR/ppocr/data/imaug/__init__.py", line 56, in transform
data = op(data)
File "/home/keqikeji/PaddleOCR/ppocr/data/imaug/label_ops.py", line 1075, in __call__
if "bbox" not in ocr_info[idx]: