图片转文字的两种处理方法:
一种是文字识别工作都需要在网络侧完成的方式,我们称为在线识别;
另一种是不需要互联网功能的,我们称作离线识别。
在线识别方式
先看第一种,在线识别的方式。在线识别方式最大的优点就是,它在初次进行文字识别的时候,准确率非常高。比如对聊天截图中的识别准确率就高达 99%。因为在线识别使用了人工智能领域的深度学习算法和文字识别相结合的技术,能够把图片转换成文字后,还能在语义上把相近的字进行二次纠正。
比如说,被识别的内容包含英文单词“Hello”,一旦它的字母“o”被识别成数字“0”,在线识别软件就会根据上下文语境把这类错误纠正回来,而这种二次纠正的功能在离线识别软件中是没有的。
不过在线识别软件也有它的缺点,那就是识别文字的过程需要在公有云的服务器上完成。也就是说需要通过互联网把图片上传到服务器,那么一旦图片过大,或者图片数量比较多,就会导致上传时间过长。我们知道,一张高清图片至少有 3MB 大小,根据个人的网络情况至少要达到秒级上传才行。这就意味着在大批量文字识别的场景中,或对实时性要求很高的场景下,在线识别是不能满足要求的。另外,图片需要经过互联网传输,识别以后的图片该怎么保存,怎么销毁,是不是会被其他人得到,这些都是安全风险。
总之,信息泄露的风险比较大。所以像公司的合同、财务资料等涉密程度比较高的扫描件,很少使用在线识别。
实现案例
举个例子,百度云的 AI 产品,你可以在终端下执行这样一个命令来进行安装。
pip install baidu-aip
在这里我使用了百度云提供的在线文字识别产品,它提供了一个 baidu-aip 的安装包,安装之后提供了 AipOcr 函数实现用户验证、client.basicGeneral 函数实现文字识别功能。代码如下:
from aip import AipOcr
""" 你的 APPID AK SK """
# APP_ID = '你的 App ID'
# API_KEY = '你的 Api Key'
# SECRET_KEY = '你的 Secret Key'
client = AipOcr