开源OCR文字识别软件Calamari

Calamari是一种新的开源OCR识别软件,它使用了最先进的Tensorflow实现的深度神经网络(DNN)。 提供了预训练模型和多模型投票技术。由卷积神经网络(CNNS)和长短时记忆(LSTM)层构成的可定制网络架构通过Graves等人的连接时间分类(CTC)算法进行训练。而GPU的使用大大减少了训练和预测的计算时间。我们使用两个不同的数据集来比较Calamari与OCRopy,OCRopus3和Tesseract 4的性能.Calamari在用现代英语写的UW3数据集上达到0.11%的字符错误率(CER),在用德语写的DTA19数据集上达到0.18% 错误率,其性能远远优于以上现有开源软件的结果。
使用了目前OCR最先进的的技术,CNN+LSTM+CTC+voting。
calamari OCR引擎,使用Python3编写,基于OCRopy和Kraken构建,它的设计使你既可以方便的使用命令行运行,也可以把它模块化嵌入到其他python脚本中。

在UW3和DTA19上的识别结果错误率,与OCRopy、Tesseract4、OCropus3相比较:

与其他软件相比的识别速度,有GPU加持当然很快:

值得注意的事,该库主要是用来识别印刷体古籍文字,在自然场景图像上的识别并没有实验说明。

文中识别所用的数据库图片示例:

转载来源:《开源OCR文字识别软件Calamari

 

推荐文章

数据清洗、数据采集、数据标注——人工智能时代不可或缺的产物随着信息处理技术的不断发展,各行各业已建立了很多计算机信息系统,累积了大量的数据。为了使数据能够有效地支持组织的日常运作和决策,这就要求数据可靠无误,能够准确地反映现实世界的状况。数据是构成信息的前提和基础,好的数据质量是各种数据分析如OLAP、数据挖掘等有效应用的基本条件。人们常常抱怨“数据丰富,信息贫乏”,究其原因,一是缺乏有效的数据分析技术;二是数据质量不高,如数据输入错误、不同来源数据引起的不同表示方法,数据间的不一致等,导致现有的数据中存在这样或那样的脏数据。脏数据主要表现为:拼写问题、打印错误、不合法值、空值、不一致值、简写、重复、不遵循引用完整性等。关于数据清洗的重要性数据清洗是提高数据质量的重要手段之一,那么什么是数据清洗呢?数据清洗就是检测和去除数据中的噪声数据和无关数据、处理遗漏数据、去除空白数据域和知识背景下的白噪声。数据清洗利用现有的技术手段和方法检测出数据源中的“脏数据”,并将“脏数据”转化为满足数据使用这要求的数据。数据清洗利用回溯的思想,分析数据源的特征,根据相应的业务规则,对数据流经的每个环节进行分析考察,从中总结出相应的数据清洗规则、策略,并基于现有的清洗算法和模型,抽象出符合实际需要的数据清洗策略、算法和框架,最后在数据集上应用这些算法。数据清洗常见应用——金融行业随着信息化程度的提高,金融机构内部积累了大量的业务数据,这些数据是金融机构进行正确决策的数据基础,而质量差的数据则起到相反作用。所以,为了更好地利用这些数据为金融机构服务,很多金融机构纷纷建立起了自己的数据中心或者数据仓库。数据清洗是数据中心或数据仓库系统的重要环节,是保证数据质量的刚需。携手点我科技,为AI赋能,助力AI飞速发展!点我科技专注于AI人工智能大数据处理服务,致力于人工智能大数据相关企业提供数据采集、清洗、标注、标注平台定制开发、算法优化等一整套解决方案。点我科技旗下的找标注网平台是目前唯一一家为国内数十万标注行业从业人员、工作室 提供信息发布、行业交流、项目服务的以及为数据外包渠道与数据标注公司提供数据标注外包业务对接的平台;有遍布全国各地庞大的数据标注采集从业团队。  

热门文章

简单讲:互联网数据标注员是借助电脑或者移动设备对一些原始的数据进行处理,生产出满足AI公司机器学习需要数据的一群人。按照数据处理对象的不同,工作内容也会有差别,标注员的工作内容可以分为:分类;框选;注释;标记。按照所处公司的不同,标注员的工作方式也会有差别:有的人工智能公司处于对数据安全性考虑会自建标注团队,在这些公司工作的标注员可以保证自己工作内容不会出现太大变动;但一些服务于人工智能公司非专业外包公司标注员的工作则是项目制的,一个项目忙完紧接着做另一个项目,这样工作内容连续性较差,对一种类型的项目经验也不会积累的太多。就目前来说,人工智能还处于人工增长阶段,机器依然需要大量的数据进行训练,测试。标注员在当下也会一直存在,而且从业群体会越来越多,所以暂时不用担心这份职业会不会短期消失。就标注员从业来说,建议选择人工智能公司和专业的数据公司,这样可以保证自己在一个方向上了解的足够深入。就职场晋升来说,以牛牛数据为例:标注员——项目经理——项目总监——数据运营总监。首先谈谈什么是数据标注。数据标注有许多类型,如分类、画框、注释、标记等等,我们会在下面详谈。要理解数据标注,得先理解AI其实是部分替代人的认知功能。回想一下我们是如何学习的,例如我们学习认识苹果,那么就需要有人拿着一个苹果到你面前告诉你,这是一个苹果。然后以后你遇到了苹果,你才知道这玩意儿叫做“苹果”。类比机器学习,我们要教他认识一个苹果,你直接给它一张苹果的图片,它是完全不知道这是个啥玩意的。我们得先有苹果的图片,上面标注着“苹果”两个字,然后机器通过学习了大量的图片中的特征,这时候再给机器任意一张苹果的图片,它就能认出来了。这边可以顺带提一下训练集和测试集的概念。训练集和测试集都是标注过的数据,还是以苹果为例子,假设我们有1000张标注着“苹果”的图片,那么我们可以拿900涨作为训练集,100张作为测试集。机器从900张苹果的图片中学习得到一个模型,然后我们将剩下的100张机器没有见过的图片去给它识别,然后我们就能够得到这个模型的准确率了。想想我们上学的时候,考试的内容总是不会和我们平时的作业一样,也只有这样才能测试出学习的真正效果,这样就不难理解为什么要划分一个测试集了。我们知道机器学习分为有监督学习和无监督学习。无监督学习的效果是不可控的,常常是被用来做探索性的实验。而在实际产品应用中,通常使用的是有监督学习。有监督的机器学习就需要有标注的数据来作为先验经验。在进行数据标注之前,我们首先要对数据进行清洗,得到符合我们要求的数据。数据的清洗包括去除无效的数据、整理成规整的格式等等。具体的数据要求可以和算法人员确认。二、常见的几种数据标注类型1.分类标注:分类标注,就是我们常见的打标签。一般是从既定的标签中选择数据对应的标签,是封闭集合。如下图,一张图就可以有很多分类/标签:成人、女、黄种人、长发等。对于文字,可以标注主语、谓语、宾语,名词动词等。<img src="https://pic2.zhimg.com/50/v2-df93dc0a7e8a5fe387dc3774748b5f05_hd.jpg" data-caption="" data-size="normal" data-rawwidth="700" data-rawheight="400" class="origin_image zh-lightbox-thumb" width="700" data-original="https://pic2.zhimg.com/v2-df93dc0a7e8a5fe387dc3774748b5f05_r.jpg">适用:文本、图像、语音、视频应用:脸龄识别,情绪识别,性别识别2.标框标注:机器视觉中的标框标注,很容易理解,就是框选要检测的对象。如人脸识别,首先要先把人脸的位置确定下来。行人识别,如下图。<img src="https://pic2.zhimg.com/50/v2-7824903d6d840e2bb08d96b5c2fa5874_hd.jpg" data-caption="" data-size="normal" data-rawwidth="591" data-rawheight="398" class="origin_image zh-lightbox-thumb" width="591" data-original="https://pic2.zhimg.com/v2-7824903d6d840e2bb08d96b5c2fa5874_r.jpg">适用:图像应用:人脸识别,物品识别3.区域标注:相比于标框标注,区域标注要求更加精确。边缘可以是柔性的。如自动驾驶中的道路识别。<img src="https://pic3.zhimg.com/50/v2-4bc1dd2278182acf94fc426d7e6f2dc1_hd.jpg" data-caption="" data-size="normal" data-rawwidth="601" data-rawheight="377" class="origin_image zh-lightbox-thumb" width="601" data-original="https://pic3.zhimg.com/v2-4bc1dd2278182acf94fc426d7e6f2dc1_r.jpg">适用:图像应用:自动驾驶4.描点标注:一些对于特征要求细致的应用中常常需要描点标注。人脸识别、骨骼识别等。<img src="https://pic4.zhimg.com/50/v2-5e24f394516c75e45942c37ba0da85c0_hd.jpg" data-caption="" data-size="normal" data-rawwidth="583" data-rawheight="387" class="origin_image zh-lightbox-thumb" width="583" data-original="https://pic4.zhimg.com/v2-5e24f394516c75e45942c37ba0da85c0_r.jpg">适用:图像应用:人脸识别、骨骼识别5.其他标注:标注的类型除了上面几种常见,还有很多个性化的。根据不同的需求则需要不同的标注。如自动摘要,就需要标注文章的主要观点,这时候的标注严格上就不属于上面的任何一种了。(或则你把它归为分类也是可以的,只是标注主要观点就没有这么客观的标准,如果是标注苹果估计大多数人标注的结果都差不多。)三、有什么发展前途?数据标注员可以说是AI消灭了一部分工作又创造出来的一种工作。在未来AI发展良好的前提下,数据的缺口一定是巨大的。可以预见3-5年内数据标注员的需求会一直存在。至于发展,其实所谓一些熟能生巧的工作,都是有被替代掉的风险的。深度学习解决的一件事情就是熟能生巧。在这个岗位上,其实你的一些想法就代表了AI的想法,AI会根据你标注的数据进行学习,想想还是有点成就感的。数据标注可以说是AI的入门级岗位,未来可转向其他AI岗位。如项目实施顾问等,这就要求更多的工作技能,需要再工作中积累。作者:跹尘链接:https://www.zhihu.com/question/30654399/answer/264828926来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。