光学字符识别 (OCR) 实验应用
光学字符识别 (OCR) 实验应用
这个应用程序是我几年前开发的一个实验性应用程序,它演示了如何使用 Tesseract OCR 引擎来识别设备相机捕获的图像中的文本。
该应用程序在您的设备上运行 OCR(无需将图像上传到服务器),并且适合识别单个单词或文本短语,但该应用程序面向对 OCR 感兴趣的爱好者和软件开发人员,而不是面向普通受众。
与 Google 的 Mobile Vision API 相比,该应用程序能够在离线状态下识别以非拉丁字体打印的文本。为了实现这一目标,该应用程序包含了多种语言的异常大量的训练数据。这些训练数据存储在您的手机上,并且该应用程序比普通应用程序占用更多空间。
在将捕获的图像帧移交给 Tesseract 之前,该应用程序不会执行任何图像预处理,因此该应用程序不会针对任何特定用例进行调整,因此,其识别准确性和速度在很大程度上取决于视角等情境因素,照明和字体类型。
此应用程序的源代码可在 GitHub 上获取(进行了一些细微更改以适应 GitHub 文件大小限制)。该应用程序的代码是来自 ZXing 条形码扫描仪项目的开源相机相关代码和来自 Tesseract OCR 项目的开源光学字符识别代码的组合。
文字捕捉
默认的单次拍摄会对单击快门按钮时拍摄的快照图像运行 OCR,就像普通照片一样。
当选中“连续预览”复选框时,应用程序会在相机取景器旁边动态实时显示设备正在识别的内容。连续预览模式在快速设备上效果最佳。
使用这个应用程序
• 将设备指向一小块文本区域,然后触摸屏幕上的快门按钮以启动 OCR。
• 要识别单个中文/日文/韩文字符,请将页面分割模式设置为“单个字符”。
识别准确率
• 多种因素都可能导致 OCR 失败:照明不均匀、文本风格化或文本与背景的对比度不足。尝试拥有良好的照明。
• 平稳握住设备,并确保图片清晰对焦。
• 如果您需要扫描大块文本或整个文档,请尝试使用文档扫描应用程序,例如 Text Fairy。
语言
• 此应用程序支持谷歌翻译无法识别的多种语言/文字。
• OCR 支持的语言:
南非荷兰语
阿尔巴尼亚语
阿姆哈拉语
阿拉伯
阿萨姆语
阿塞拜疆语
阿塞拜疆语(西里尔文)
巴斯克
白俄罗斯语
孟加拉
波斯尼亚语
保加利亚语
缅甸语
加泰罗尼亚语
宿务语
切罗基
中文(简体)
中文(繁体)
克罗地亚语
捷克语
丹麦语
荷兰语
宗卡
英语
英语,中级 (1100-1500)
世界语
爱沙尼亚语
芬兰
法兰克语
法语
中世纪法语(约 1400-1600 年)
加利西亚语
格鲁吉亚语
格鲁吉亚语 - 旧
德语
古希腊语 (-1453)
现代希腊语(1453-)
古吉拉特语
海地
希伯来语
印地语
匈牙利
冰岛语
印度尼西亚
因纽特语
爱尔兰语
意大利语
意大利语 - 老
日本人
爪哇语
卡纳达语
哈萨克语
高棉语
韩国人
库尔德
吉尔吉斯斯坦
老挝
拉丁
拉脱维亚语
立陶宛语
马其顿语
马来语
马拉雅拉姆语
马耳他语
马拉地语
尼泊尔语
挪威
奥里亚语
普什图语
波斯语
抛光
葡萄牙语
旁遮普语
罗马尼亚语
俄语
梵文
塞尔维亚
塞尔维亚语(拉丁语)
僧伽罗语
斯洛伐克语
斯洛文尼亚语
西班牙语
西班牙语 - 旧
斯瓦希里语
瑞典
叙利亚语
他加禄语
塔吉克
泰米尔语
泰卢固语
泰国
藏
提格里尼亚
土耳其
乌克兰
乌尔都语
维吾尔族
乌兹别克语
乌兹别克语(西里尔字母)
越南语
威尔士语
意第绪语
三星设备注释
• 在 Samsung Galaxy 设备上,您可能需要长按菜单按钮才能设置首选项。
• 如果取消选中“标准对焦模式”,您可能会获得更好的效果。
阅读更多信息