CRNN_Chinese_Characters_Rec训练360w数据集提示keyerror错误根本原因就是编码问题。根据代码字符集文件编码必须是gbk如果你在ubuntu或者由于某种原因导致文件变成utf-8编码的话就会提示keyerror。如果在Ubuntu不方便把文件弄成utf-8的情况下,可以到
CRNN_Chinese_Characters_Rec/lib/dataset/_360cc.py这个文件第22行将gbk改为utf-8即可
char_file = config.DATASET.CHAR_FILE
with open(char_file, 'rb') as file:
char_dict = {num: char.strip().decode('gbk', 'ignore') for num, char in enumerate(file.readlines())}
改为
char_file = config.DATASET.CHAR_FILE
with open(char_file, 'rb') as file:
char_dict = {num: char.strip().decode('utf-8', 'ignore') for num, char in enumerate(file.readlines())}
此外,经过研究发现360w数据集里面其实总共包含了5829个字符,并不是5990全部包含。而且大家注意一个问题就是5990字符第一个是blank这是4个字符长度,不能放进alphabets.py里面,不然就变成5994字符长度了因为b l a n k 一共是5个字符