其他分享
首页 > 其他分享> > 第九届软件杯(第二批)基于深度学习的企业实体识别

第九届软件杯(第二批)基于深度学习的企业实体识别

作者:互联网

本赛题分为三个模块:文字检测、文字识别、命名实体识别。
赛题要求将图片中的所有文字检测并识别出来,并从识别出的文字中提取出企业名称。

文字检测模块

数据准备

ICDAR2019-LSVT数据集,下载并解压后的数据集如下:

~/train_data/LSVT/text_localization
└─ LSVT_train_imgs/ LSVT训练集
└─ LSVT_test_images/ LSVT测试集
└─ train_LSVT_label.txt LSVT训练标注
└─ test_LSVT_label.txt LSVT测试标注

模型选择

文字检测使用的方法是DB-ResNet-50。

通过下载预训练模型,在LSVT数据集上进行finetune。

# 执行以下命令,生成的检测结果在detect_results文件夹中
python3 predict_det.py --image_dir="./testImages" --det_model_dir="./inference/det/"

检测效果

文字识别模块:

数据准备

文字识别选择的数据是ICDAR2019-LSVT行识别任务数据集,共包括29万张图片,其中21万张图片作为训练集(带标注),8万张作为测试集(无标注)。数据集采自中国街景,并由街景图片中的文字行区域(例如店铺标牌、地标等等)截取出来而形成。所有图像都经过一些预处理,将文字区域利用仿射变化,等比映射为一张高为48像素的图片,如图所示:

(a) 标注:魅派集成吊顶

(b) 标注:母婴用品连锁

模型选择

模型选择的是端到端的CRNN模型,CRNN的思想就是通过CNN网络提取文本图像的特征,然后转化这些特征用于RNN(LSTM)识别具体的文本内容。一般处理文本数据时最先想到的就是LSTM模型,这是因为文本的理解和处理必须在特定的语境(上下文)中进行,LSTM模型的输入通常都是学习到或者人工设定的词向量,CRNN的一个最大的优点就是通过预训练的CNN网络直接从图像中学习文本的表达向量,在最大程度上保证输入到LSTM的序列是最好的表达。如下图是CRNN的网络结构。

# 执行以下命令可以生成一个result.txt文件,内容是图片中识别到的所有文字,打印的内容可以看到每张图片的检测+识别时间
python3 predict_det_rec.py --image_dir="./testImages" --det_model_dir="./inference/det/"  --rec_model_dir="./inference/rec/"

识别效果

命名实体识别模块:

数据准备

模型选择

# 运行一下命令可以提取企业实体名称
python predict_ner.py

做的并不好,只是单纯记录下软件杯经历。

标签:文字,第九届,LSVT,模型,det,第二批,识别,数据
来源: https://www.cnblogs.com/LiJinrun/p/13974475.html