海螺AI模型训练失败主因是数据集目录结构错位、路径写死、标注坐标缺位或文本含非法字符;需检查train_list.txt/test_list.txt格式、UTF-8无BOM编码、路径前缀、换行符类型,验证标注文件8坐标+文本格式及图片与标注文件名严格一一对应。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

海螺AI自定义模型训练失败,八成是数据集目录结构错位、列表文件路径写死、标注坐标缺位或文本内容含非法字符导致加载器直接抛出AssertionError或FileNotFoundError。
检查train_list.txt和test_list.txt是否符合ICDAR2015索引规范
打开train_list.txt,确认每行严格为“图片相对路径+空格+标注文件相对路径”两字段,且路径中不含中文、括号、#、%等特殊字符。
用记事本另存为UTF-8无BOM编码,避免隐藏的BOM头被解析器误判为非法字符。
检查第一列路径是否以train_images/开头、第二列是否以train_gts/开头,【若写成./train_images/img_1.jpg或img_1.jpg则必然报错】。
用命令行执行:head -n 3 train_list.txt | cat -A,查看是否有^M(Windows换行)、^I(制表符)混入——必须全是空格分隔。
验证标注文件是否满足8坐标+文本内容格式
打开任意一个gt_img_1.txt,逐行检查:每行必须有且仅有8个数字+1段文本,用英文逗号分隔,末尾无空格。
方法一:用正则快速筛查
在VS Code中按Ctrl+H打开替换面板,启用正则模式,输入^(\d+,\d+){4},[^,]+$,匹配成功即为合格行;不匹配的行要重写。
方法二:Python脚本校验(推荐)
运行以下代码,会打印所有格式异常行号及错误类型:
python -c "for i,l in enumerate(open('train_gts/gt_img_1.txt'),1): s=l.strip().split(','); print(f'第{i}行错误:坐标数{len(s)-1}≠8') if len(s)!=9 else None"
【注意:文本内容部分若含英文逗号、双引号或换行符,必须用反斜杠转义,否则解析中断】
确认图片与标注文件命名严格一一对应
第一步:列出所有train_images/下的图片文件名(不含扩展名)
第二步:列出所有train_gts/下的txt文件名(去掉gt_前缀、.txt后缀)
第三步:用diff命令比对两个列表:
ls train_images/ | sed 's/\..*$//' | sort > img_names.txt && ls train_gts/ | sed 's/gt_//; s/\.txt$//' | sort > gt_names.txt && diff img_names.txt gt_names.txt
输出为空表示完全匹配;若有差异,缺失项需补全或删除冗余文件。
这一步操作起来很简单,直接把文件拖进去就行。











