项目简介
本项目基于Python构建,利用深度学习技术实现台湾场景图像中文本的定位与识别。项目覆盖了从训练数据预处理、数据扩增、模型训练,到文本定位与识别以及结果筛选的全流程。
项目的主要特性和功能
- 文本定位:采用特定模型精确确定图像中文字的位置,支持字符和字符串的不同定位需求。
- 文本识别:训练文字识别模型,准确识别定位出的文字区域。
- 数据处理:具备全面的数据预处理功能,包括获取中文字元、提取文字区块、划分数据集和生成Ground Truth等。
- 数据扩增:通过相关工具对数据进行扩增,增强模型的泛化能力。
- 结果筛选:可对识别结果进行筛选和重组,提高结果的准确性和可用性。
安装使用步骤
环境准备
- 文字定位模型环境:安装torch==0.4.1.post2、torchvision==0.2.1、opencv-python==3.4.2.17、scikit-image==0.14.2、scipy==1.1.0。
- 文字识别模型环境:安装torch==1.10.0+cu113、lmdb==1.2.1、pillow==8.2.0、torchvision==0.11.1+cu113、nltk==3.6.5、natsort==8.0.0。
- 扩增数据处理:执行
pip install trdg
安装相关套件。
训练数据预处理
- 获取中文字元文字档:执行
python ./toolCode/getLabelCharFromJson.py
,若有两个中文字元文字档,可使用python ./toolCode/combine2CharTxt.py
合并。 - 提取文字区块:执行
python ./toolCode/convertJsonToTxtAndGetCropImage.py
。 - 分割数据集:将用于训练的影像存于
trainingDataset/training
,执行python ./toolCode/dividValidAndTest.py
分割。 - 生成Ground Truth:将
generateGT.py
中的typeString
分别改为training
、test
、validation
,各执行一次python ./toolCode/generateGT.py
。
训练文字识别模型
- 建立lmdb数据集:分别执行以下命令建立训练集、验证集、测试集的lmdb数据集。
- 训练集:
python create_lmdb_dataset.py --inputPath ./trainingDataset/ --gtFile ./trainingDataset/training_GT.txt --outputPath ./data_lmdb_release/training/data/data_train/
- 验证集:
python create_lmdb_dataset.py --inputPath ./trainingDataset/ --gtFile ./trainingDataset/validation_GT.txt --outputPath ./data_lmdb_release/training/data/data_valid/
- 测试集:
python create_lmdb_dataset.py --inputPath ./trainingDataset/ --gtFile ./trainingDataset/test_GT.txt --outputPath ./data_lmdb_release/training/data/data_test/
- 训练模型:执行
python train.py --train_data data_lmdb_release/training/data/data_train --valid_data data_lmdb_release/training/data/data_valid --Transformation TPS --FeatureExtraction ResNet --SequenceModeling BiLSTM --Prediction Attn --data_filtering_off
。
执行文字定位及识别
- 执行文字定位模型:根据需求调整
craft_run.py
中的link_threshold
参数,执行python ./craft_run.py
。 - 提取文字区块并保存:执行
python ./toolCode/generateCropImgFromCraftTxt.py
。 - 执行文字识别模型:执行
python demo.py --Transformation TPS --FeatureExtraction ResNet --SequenceModeling BiLSTM --Prediction Attn --image_folder ./positionCrop --saved_model ./saved_models/TPS-ResNet-BiLSTM-Attn-Seed1111/best_accuracy.pth
。
识别结果筛选
- 若将定位结果分为Word、Char两部分识别,依次执行以下命令:
python ./toolCode/demoResult_Word.py
python ./toolCode/demoResult_Char.py
- 手动合并
demoResult_Word_filter.txt
和demoResult_Char_filter.txt
为demoResult_WordChar_filter.txt
,执行python ./toolCode/sortDemoWordChar.py
。 - 基本筛选:执行
python ./toolCode/filterTxtToCsvResult.py
。 - 基本筛选+字串文字重组:执行
python ./toolCode/filterTxtToCsvResultAdvance.py
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】