PaddleOCR
PaddleOCR copied to clipboard
自己用paddlelabel标注的数据集,训练检测模型时报错 list index out of range
请提供下述完整信息以便快速定位问题/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
distance为负,目前还不知道为什么为负
distance为负,目前还不知道为什么为负
目前是存在这个问题,我们会反馈一下,进行问题排查
我这也报类似错误,由于生成的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)
目前distance为负在后处理阶段和前处理阶段均有出现,我们已经记录问题,尝试排查 后处理阶段为负数,可能与模型输出检测框形状异常有关
目前distance为负在后处理阶段和前处理阶段均有出现,我们已经记录问题,尝试排查 后处理阶段为负数,可能与模型输出检测框形状异常有关
请问现在这个问题解决了吗?或者怎样能避免?这是每次都会发生还是随机的?