EasyOCR 标签文件labels.csv存在问题,

pbpqsu0x  于 3个月前  发布在  其他
关注(0)|答案(2)|浏览(91)

在这个网站上:https://www.jaided.ai/easyocr/modelhub/
数据集链接:en_sample.zip
如果你下载了数据集的.csv文件,你会发现其中有一些问题:
通常情况下,所有数据都应该在第一列。如果你向下滚动,你会看到有几条数据在第二列。

  1. 在单元格B71中,我们有11张图片在同一个单元格里:95-50-93-52-96-91-98-89-94-63-102.jpg。我不知道为什么它们会在一起。
  2. 除了上面第2点中的第71行之外,其他带有数据的B列单元格似乎已经被分开,以模拟";"。(169-393-561-677-685-768-910-946-97.jpg。)
  3. 此外,在dataset.py中提供给函数pd.read_csv( sep='^([^,]+),' )的选项中没有找到";"字符。
  4. 不要忘记CSV分隔符是逗号,但这个逗号也出现在某些照片的文本中。
    所以我认为不修改数据集就无法直接使用它。
    就我个人而言,我在A列的B单元格中添加了一个";"字符和数据。
    对于第71行的11张照片,我简单地将它们转录到不同的行上。
    难道只有我不懂得如何使用easy_ocr吗?还是说.csv文件真的有问题?
    我认为理想的解决方案是使用制表符作为分隔符创建一个CSV文件。你怎么看?
    感谢你的帮助和为提出这个问题道歉!
    Alex
lfapxunr

lfapxunr1#

好的,我修改了dataset.py以使用csv文件中的TAB,现在它运行良好。
在dataset.py的第153行:
self.df = pd.read_csv(os.path.join(root,'labels.txt'), sep='\t', engine='python', usecols=['filename', 'words'], keep_default_na=False)
此外,由于不能直接根据照片名称的数值大小对行进行排序,我简单地选择了所有以"1"开头的照片名称用于EN_VAL,其余的用于_TRAIN。这代表了总数据集的12.5%。
这是我的新.CSV文件和新的.TXT文件:
labels_val.csv
labels__train_.csv
labels_val.txt
labels__train_.txt

a9wyjsp7

a9wyjsp72#

我也花了很多时间解决这些问题。(我的问题:我的模型无法识别逗号字符)谢谢!我也会使用制表符作为分隔符。

相关问题