PaddleOCR icon indicating copy to clipboard operation
PaddleOCR copied to clipboard

自己用paddlelabel标注的数据集,训练检测模型时报错 list index out of range

Open Gpy23 opened this issue 10 months ago • 4 comments

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

  • 系统环境/System Environment:win10 python3.9 不用GPU
  • 版本号/Version:Paddle: PaddleOCR: 问题相关组件/Related components:
  • 运行指令/Command Code:
  • 完整报错/Complete Error Message:
File "D:\A-guo\OCR\PaddleOCR-release-2.7\ppocr\data\simple_dataset.py", line 159, in getitem
outs = transform(data, self.ops)
File "D:\A-guo\OCR\PaddleOCR-release-2.7\ppocr\data\imaug_init_.py", line 56, in transform
data = op(data)
File "D:\A-guo\OCR\PaddleOCR-release-2.7\ppocr\data\imaug\make_border_map.py", line 64, in call
self.draw_border_map(text_polys[i], canvas, mask=mask)
File "D:\A-guo\OCR\PaddleOCR-release-2.7\ppocr\data\imaug\make_border_map.py", line 85, in draw_border_map
padded_polygon = np.array(padding.Execute(distance)[0])
IndexError: list index out of range

Gpy23 avatar Apr 30 '24 07:04 Gpy23

distance为负,目前还不知道为什么为负

Gpy23 avatar Apr 30 '24 08:04 Gpy23

distance为负,目前还不知道为什么为负

目前是存在这个问题,我们会反馈一下,进行问题排查

UserWangZz avatar May 06 '24 09:05 UserWangZz

我这也报类似错误,由于生成的train.txt和val.text,test.txt 含有空行,下面用这个方法去空行就行了


import os
from shutil import copyfile
def clearBlankLine(file_path:str):
    copyfile(file_path, file_path + '.tmp')
    file2 = open(file_path, 'w', encoding='utf-8') # 要去掉空行的文件
    file1 = open(file_path + '.tmp', 'r', encoding='utf-8') # 生成没有空行的文件
    try:
        for line in file1.readlines():
            if line == '\n':
                line = line.strip("\n")
            file2.write(line)
    finally:
        file1.close()
        file2.close()
    if os.path.exists(file_path + '.tmp'):
        os.remove(file_path + '.tmp')


if __name__ == '__main__':
    for x in ['train_data/det/train.txt','train_data/det/val.txt','train_data/det/test.txt']:
        clearBlankLine(x)
    for x in ['train_data/rec/train.txt','train_data/rec/val.txt','train_data/rec/test.txt']:
        clearBlankLine(x)

nilyang avatar May 09 '24 08:05 nilyang

目前distance为负在后处理阶段和前处理阶段均有出现,我们已经记录问题,尝试排查 后处理阶段为负数,可能与模型输出检测框形状异常有关

UserWangZz avatar May 09 '24 09:05 UserWangZz

目前distance为负在后处理阶段和前处理阶段均有出现,我们已经记录问题,尝试排查 后处理阶段为负数,可能与模型输出检测框形状异常有关

请问现在这个问题解决了吗?或者怎样能避免?这是每次都会发生还是随机的?

Gpy23 avatar Jun 07 '24 01:06 Gpy23