扫一扫就能识别文字,这是近年来出现在很多应用中的新功能。比如,输入银行卡号时,直接用手机摄像头扫一扫,软件就能提取银行卡信息。这里用到的技术正是光学字符识别技术(Optical Character Recognition)。OCR 是光学字符识别(Optical Character Recognition)的缩写,指利用机器将图像中手写体或印刷体的文本转换为计算机可以直接处理的格式。作为计算机视觉领域的重要分支,OCR 典型应用是通过图像文字识别实现信息录入。同时,由于文字和符号包含丰富的语义信息,基于 OCR 提取文字信息继而进行分析,能够帮助机器更好地理解图像。9 月 28 日,在工业和信息化部、北京市人民政府、国际电信联盟 ITU-T 指导的 2020 AIIA 人工智能开发者大会上,主办方正式发布国内首份智能文字识别(OCR)能力测评与应用白皮书。白皮书从 OCR 发展背景、技术沿革、产业发展现状、技术标准化、发展趋势等多个维度,对当前国内 OCR 产业进行了一次详细梳理,全面助推 OCR 技术产业化加速落地及可持续发展。 据了解,白皮书由中国信息通信研究院、中国人工智能产业发展联盟、腾讯公司相关部门联合起草。 借助人工智能技术,近年来 OCR 性能的不断提升为产业数字化催生出的更复杂的 OCR 应用场景提供了坚实支撑。同时,覆盖手机、电子产品以及云服务在内的更加多样化的服务载体,进一步加快了 OCR 的普及,持续向社会生产生活的更多领域渗透。 尤其是 2020 年 4 月,发改委明确将人工智能基础设施列入 “新基建” 范围,作为人工智能应用中最接 “地气”,商业推广较为成熟的领域,OCR 产业在“新基建” 背景下无疑将迎来新的发展机遇,相关技术也将迎来新一轮的变革。 报告指出,OCR 技术未来发展的三大方向主要包括一体化的端到端 OCR 模型、兼具高性能高效率的 OCR、从感知到认知的智能 OCR。 详细来说,构建一体化的端到端网络,同时对文字检测和识别进行训练,将成为 OCR 技术发展的重要趋势之一。端到端的网络设计不仅能够减少重复计算,又能够提高特征的质量,促进任务性能的改善。同时,大量的 OCR 应用需要在资源受限的移动端设备上运行,当前移动端 OCR 算法大多以牺牲一定的算法精度来换取运行速度,针对移动设备设计兼顾性能和效率的轻量 OCR 模型将是未来发展的重要方向。 另外,从感知到认知的智能 OCR 来说,OCR 技术通常从计算机视觉领域出发,未来与自然语言处理技术、知识图谱等更广领域的交叉融合,通过语义及知识的深度挖掘提升 OCR 性能是重要趋势。此外,在 OCR 中引入强化学习和元学习等新的学习范式,让机器自主学习如何识别文字,也将成为研究热点。 诸多行业有了深入成熟的应用。未来随着传统行业的数字化转型,OCR 应用范围和场景将进一步扩展,市场规模将进一步增大。有权威机构预测,2025 年全球 OCR 市场规模将达到 133.81 亿美元。 早期受限于技术发展水平,OCR 厂商通常从特定应用切入,例如车牌识别系统等,形成了一系列专用设备。近年来,越来越多的终端设备及应用均嵌入了 OCR 技术,并逐渐形成了从基础设施、基础能力到终端应用的完整产业链生态,也衍生出了卡证、票据等一系列细分 OCR 能力,通过组合的方式服务于各个行业。 图 | OCR 产业生态图不难看出,OCR 技术逐渐 “下沉” 为一项基本的能力,为上层不同的业务应用提供底层技术支撑。科技巨头和云计算厂商正在纷纷加速布局 OCR,在满足自身内部业务需求的同时,不断对外开放先进的 OCR 能力,OCR 已然成为科技巨头能力标配。 在具体的落地应用层面,目前卡证识别、票据识别等标准场景文字识别已经相对成熟,手写文字识别在教育、物流等行业的应用也在不断扩大。复杂动态场景下的 OCR 技术和应用成为近两年的热门研究方向,比如在无人驾驶、机器人等场景利用 OCR 对视场中出现的文字进行识别等。在此次发布的白皮书中,腾讯云也公布了其多项OCR领域的典型落地案例。 值得一提的是,为全面降低 OCR 相关领域的应用门槛,避免出现鱼龙混杂局面,白皮书也首次公布 OCR 评测标准和规范。 2020 年 4 月,中国人工智能产业发展联盟制定了《OCR 服务智能化分级技术要求和评估方法》,规定了 OCR 服务在功能、性能、安全等方面的技术要求以及评估方法。7 月,OCR 服务要求及评估方法在国际电信联盟 ITU-T SG16 组成功立项,标志着深度学习背景下的 OCR 评测方法已经逐渐被国际标准组织所接受。 目前,由中国人工智能产业发展联盟指导,腾讯云开发的天鉴 OCR 服务引擎自动化评测平台,不仅能够为 OCR 技术供给方提供技术测试服务,也将发布 OCR 技术或产品的测试结果,为需求方提供客观公正的选型依据。
道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:
在平台注册账号登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。请求地址:http://www.weilaitec.com/cigirlrobot.cgr
请求方式:post
请求参数:
参数
类型
默认值
描述
userid
String
无
平台注册账号
appid
String
无
平台创建的应用id
key
String
无
平台应用生成的秘钥
msg
String
""
用户端消息内容
ip
String
""
客户端ip要求唯一性,无ip等可以用QQ账号,微信账号,手机MAC地址等代替。
接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552 注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。
示例代码JAVA:
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class apitest { /** * Get请求,获得返回数据 * @param urlStr * @return */ private static String opUrl(String urlStr) { URL url = null; HttpURLConnection conn = null; InputStream is = null; ByteArrayOutputStream baos = null; try { url = new URL(urlStr); conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(5 * 10000); conn.setConnectTimeout(5 * 10000); conn.setRequestMethod("POST"); if (conn.getResponseCode() == 200) { is = conn.getInputStream(); baos = new ByteArrayOutputStream(); int len = -1; byte[] buf = new byte[128]; while ((len = is.read(buf)) != -1) { baos.write(buf, 0, len); } baos.flush(); String result = baos.toString(); return result; } else { throw new Exception("服务器连接错误!"); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (is != null) is.close(); } catch (IOException e) { e.printStackTrace(); } try { if (baos != null) baos.close(); } catch (IOException e) { e.printStackTrace(); } conn.disconnect(); } return ""; } public static void main(String args []){ //msg参数就是传输过去的对话内容。 System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552")); } }