小组成员
常弗鸣,肖映泰,冯上伦,赵思泽鹏,方辰昊
一、 任务说明
随着全球化的发展,整个世界正在变成一个地球村。人们将要前往另外呢的一个陌生的国家开展活动,这其中语言的障碍是值得关注的问题。于是我们希望可以创造一个应用软件来帮助客户理解其他外语的含义。具体有,当一个不懂英语的人到了英语国家,在一面牌子上见到英文;这时候他可以用自己的手机拍下这些英文的照片,程序利用深度学习算法识别出相关英文文字,紧接着在后台翻译成其母语,以帮助客户了解英语传递的信心。该问题的难点主要在识别出图片中的文字。
二、 数据处理
数据集:https://pan.baidu.com/s/1QkI7kjah8SPHwOQ40rS1Pw (密码:lu7m)
-
共约364万张图片,按照99:1划分成训练集和验证集
-
数据利用中文语料库(新闻 + 文言文),通过字体、大小、灰度、模糊、透视、拉伸等变化随机生成
-
包含汉字、英文字母、数字和标点共5990个字符
-
每个样本固定10个字符,字符随机截取自语料库中的句子
-
图片分辨率统一为280x32
图片解压后放置到train/images目录下,描述文件放到train目录下
不同学习率在第100 step 时的准确率
学习率 | 0.01 | 0.005 | 0.001 | 0.0005 | 0.0001 |
---|---|---|---|---|---|
准确率 | 0.1858 | 0.2261 | 0.8642 | 0.9055 | 0.9200 |
不同学习率在第200 step 时的准确率
学习率 | 0.01 | 0.005 | 0.001 | 0.0005 | 0.0001 |
---|---|---|---|---|---|
准确率 | 0.1815 | 0.2389 | 0.9347 | 0.9365 | 0.9457 |
从以上两表格可得,当学习率很大的时候,模型准确率很低,说明训练效果差,收敛速度慢。当学习率为0.0001,此时训练效果最佳。
点击 导入图片 选择一张带有文字的图片,点击 文本识别 ,在中间的显示框中可以得到图片所含内容,点击 文本翻译 调用百度翻译API得到翻译结果。
现存问题
- 在换行时第一个字符可能会出现如!等非文字符号,可能是边界检测识别有问题。
- API翻译时不能输入换行符,否则翻译失败,这是后续美化需要处理的问题。
五、 实验总结
代码使用
环境配置:需要使用Linux系统,将GitHub上的代码保存为chinese_ocr 文件夹,首先输入命令sh setup.h,(对于CPU用户,可以注释掉setup.h 中for GPU部分,解开for CPU 部分的命令)然后运行python GUI.py即可
总结反思
本次作业实现了图片文本识别翻译功能,首先采用ctpn对图片分割,然后采用densenet训练好的网络识别每个文本框中的文字,然后采用百度翻译API进行中文到英文的翻译。
本次作业最大的难点在于图片文本识别的实现,寻找到公开数据集后,搭建用的较多的densenet 结构,进行网络训练。在本次作业的实现中,我们熟悉了deep learning的基本流程,动手训练出效果不错的模型,实现了理想的结果。
六、 分工情况
肖映泰:搭建网络框架,制作报告
冯上伦:模型训练,绘制报告中所用的图片(网络结构+训练效果图)
赵思泽鹏:模型训练,翻译API算法的实现
常弗鸣:制作报告,提出想法
方辰昊:数据收集