[PaddlePaddle/PaddleOCR]训练时报错 IndexError: list index out of range

2024-05-10 958 views
9

请提供下述完整信息以便快速定位问题/Please provide the following information to quickly locate the problem

  • 系统环境/System Environment:nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.6.1-gpu-cuda12.0-cudnn8.9-trt8.6
  • 版本号/Version:Paddle: PaddleOCR: 问题相关组件/Related components:git@github.com:PaddlePaddle/PaddleOCR.git
  • 运行指令/Command Code:python -m paddle.distributed.launch --gpus '0,1' tools/train.py -c ./train_data/ch_PP-OCRv4_det_server_train/ch_PP-OCRv4_det_teacher.yml -o Global.pretrained_model=./train_data/ch_PP-OCRv4_det_server_train/best_accuracy
  • 完整报错/Complete Error Message: [2024/04/28 03:52:59] ppocr ERROR: When parsing line 79395/26446.png [{"transcription": "李", "points": [[160, 173], [480, 173], [480, 467], [160, 467]], "difficult": false, "key_cls": "点字烈黑 85"}] , error happened with msg: Traceback (most recent call last): File "/paddle/PaddleOCR/ppocr/data/simple_dataset.py", line 162, in getitem outs = transform(data, self.ops) File "/paddle/PaddleOCR/ppocr/data/imaug/init.py", line 71, in transform data = op(data) File "/paddle/PaddleOCR/ppocr/data/imaug/make_border_map.py", line 59, in call self.draw_border_map(text_polys[i], canvas, mask=mask) File "/paddle/PaddleOCR/ppocr/data/imaug/make_border_map.py", line 83, in draw_border_map padded_polygon = np.array(padding.Execute(distance)[0]) IndexError: list index out of range ch_PP-OCRv4_det_server_train.zip Label.txt,ch_PP-OCRv4_det_teacher.yml 在附件中。不知道什么问题!请大佬帮忙

回答

6

这个是因为padding.Execute(distance)[0]行代码返回了两个长度不同的list,目测原因是因为在进行poly收缩时出现了两个区域因此pyclipper返回了两个区域的poly,导致出现问题,可以print(padding.Execute(distance)[0])查看一下

2

这个是因为padding.Execute(distance)[0]行代码返回了两个长度不同的list,目测原因是因为在进行poly收缩时出现了两个区域因此pyclipper返回了两个区域的poly,导致出现问题,可以print(padding.Execute(distance)[0])查看一下

怎么解决呢?

2

不好意思,我看错问题了,我在后处理的时候遇到过相同的问题,是因为模型分割的形状在收缩时容易出现返回两个list的情况,但是现在你的问题是在预处理过程,所以应该是有问题的,可以print(padding.Execute(distance)[0])查看一下返回的结果,然后确定一下具体问题是因为什么

6

不好意思,我看错问题了,我在后处理的时候遇到过相同的问题,是因为模型分割的形状在收缩时容易出现返回两个list的情况,但是现在你的问题是在预处理过程,所以应该是有问题的,可以print(padding.Execute(distance)[0])查看一下返回的结果,然后确定一下具体问题是因为什么

是个空[] 这个怎么回事?

6

不好意思,我看错问题了,我在后处理的时候遇到过相同的问题,是因为模型分割的形状在收缩时容易出现返回两个list的情况,但是现在你的问题是在预处理过程,所以应该是有问题的,可以print(padding.Execute(distance)[0])查看一下返回的结果,然后确定一下具体问题是因为什么

这个是 distance 的值

-3143.6310655589646
0

目前开下来,这个distance是异常的,不知道是因为什么

2

目前开下来,这个distance是异常的,不知道是因为什么

知道怎么排查这个问题吗?

2

目前开下来,这个distance是异常的,不知道是因为什么

能在pip 安装ocr后就直接训练吗?不下载git上的代码

0

目前开下来,这个distance是异常的,不知道是因为什么

能在pip 安装ocr后就直接训练吗?不下载git上的代码

pip安装的ocr是一个调用官方模型开发ocr应用的库

8

目前开下来,这个distance是异常的,不知道是因为什么

能在pip 安装ocr后就直接训练吗?不下载git上的代码

pip安装的ocr是一个调用官方模型开发ocr应用的库

哦哦 那我现在这个情况 怎么排查?

5

先看一下为什么distance会是一个负值