背景

有个项目需求用到手写识别功能,即H5识别用户手写的文字内容。参考案例为“2018政府工作报告关键字”,扫描下面二维码体验,

分析

重点为找到合适的文字识别接口,通过查询,市面上已有腾讯AI、百度AI、科大讯飞的文字识别接口,通过测试结果均不理想,这些接口的实现原理都是识别图片上的文字内容转换为文本。

后经分析参考案例,其使用的为汉王云API,实现原理是识别手写轨迹,通过测试其准确率是极高的。

实现方法

第一步,根 API文档 接口使用说明,在前端记录手写轨迹串"x1,y1,x2,y2,x3,y3,x4,y4......-1,0",轨迹以:"-1,0"结尾。

第二步,调用简体中文接口地址:http(s)://api.hanvon.com/rt/ws/v1/hand/single?key=xxx&code=83b798e7-cd10-4ce3-bd56-7b9e66ace93d,传參。

请求参数示例如下,

{"uid": "118.12.0.12","type": "1","data": "76.55,79.55,51.7,119.35,43.75,129.3,-1,0"
}

具体的接口代码在文档PHP示例里写的很清楚,这里不再赘述。

第三步,将接口返回的base64加密的字符串值,通过 base64解码 -> 10进制字符数组 -> 16进制字符数组 -> unicode解码,转成汉字字符数组,具体实现代码如下,

// echo $output;
// base64解码
$strJson = base64_decode($output);
$jsonArr = json_decode($strJson, true);
if($jsonArr["code"] == 0){ // code为0识别成功$wordArr = explode(",", $jsonArr["result"]); // 转成10进制字符数组$wordArr = array_filter($wordArr); // 除去数组中的空字符元素if(count($wordArr) > 0){$result['wordArr'] = decimalDecode($wordArr); // 将10进制字符数组解码成汉字数组    }else{ // 识别文字为空}
}else{ // 识别失败
}// 10进制字符数组解码成汉字数组
function decimalDecode($wordArrDec){    $wordArrHex = array();for($i = 0; $i < count($wordArrDec); $i++){array_push($wordArrHex, unicodeDecode("\u".dechex($wordArrDec[$i]))); // 先将10进制字符转成16进制字符}return $wordArrHex;
}// 16进制字符unicode解码成汉字字符
function unicodeDecode($unicode_str){$json = '{"str":"'.$unicode_str.'"}';$arr = json_decode($json,true);if(empty($arr)) return '';return $arr['str'];
}

Demo二维码

BTW

使用接口需要在汉王云购买服务或者申请免费额度200次/天。

参考链接

汉王云-云手写单字API详情:http://developer.hanvon.com/api/toAPIinfo.do?id=1

优图OCR-腾讯AI开放平台:https://ai.qq.com/product/ocr.shtml#handwrite

百度AI开放平台-文字识别API文档:http://ai.baidu.com/docs#/OCR-API/top

手写文字识别 · 科大讯飞REST_API开发指南:https://doc.xfyun.cn/rest_api/手写文字识别.html

Egret你画我猜~源码分享:https://bbs.egret.com/forum.php?mod=viewthread&tid=27892

egret 涂鸦分享:https://bbs.egret.com/thread-30686-1-1.html

PHP中10进制与16进制互转 - PHP - PHPcode:https://www.form1.cn/php-phpcode-246.html

PHP解码unicode编码中文字符代码示例 - un123 - 博客园:https://www.cnblogs.com/cfinder010/p/3911596.html

使用汉王云API实现手写识别H5(参考:2018政府工作报告关键字)相关推荐

  1. 【python】调用百度智能云API实现手写文字识别

    注:本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明 文章目录 调用百度智能云API实现python识别手写文字 一.准备工具 电脑端准备: 1.pytho ...

  2. 利用腾讯云api实现手写字体识别

    1.申请API key 腾讯云目前提供每个月1000次图片识别api调用次数, 开通文字识别api地址如下https://console.cloud.tencent.com/ocr/overview, ...

  3. 爬取《政府工作报告》词云展示并做词频统计

    爬取<政府工作报告>词云展示并做词频统计 爬取<政府工作报告内容代码: from requests import * from bs4 import BeautifulSoup r= ...

  4. php 汉王云名片_汉王云--汉王开发者中心,云识别||手写识别|名片识别|人脸识别|身份证识别|文本识别...

    近日,微软中国宣布由世纪互联负责运营的Windows Azure公有云服务正式商用.这是一两年前亚马逊.微软.IBM宣布进军中国公有云市场后,国内首个国际厂商本地运营的公有云服务平台宣布商业化.面对全 ...

  5. 汉王引领双核手写识别新纪元 开启3G人脸开机时代

    近日,汉王科技在北京宣布,专门用于手写识别领域的"双核心"技术.短句行识别技术和应用于手机的"人脸开机"技术将正式推向市场. 据介绍,此三项技术基于汉王科技企业 ...

  6. 基于汉王云API的人脸识别

    http://down.51cto.com/data/2076078 源码地址,使用汉王云API,得预先申请汉王API key 转载于:https://blog.51cto.com/p6xos/167 ...

  7. Tensorflow快餐教程(1) - 30行代码搞定手写识别

    摘要: Tensorflow入门教程1 去年买了几本讲tensorflow的书,结果今年看的时候发现有些样例代码所用的API已经过时了.看来自己维护一个保持更新的Tensorflow的教程还是有意义的 ...

  8. tensorflow+python flask进行手写识别_python+flask搭建CNN在线识别手写中文网站!简直太屌了!...

    原标题:python+flask搭建CNN在线识别手写中文网站!简直太屌了! 使用python+flask搭建的一个网站,然后从网页的写字板上获取鼠标手写的汉字经过转码后传回后台,并经过图片裁剪处理之 ...

  9. 手写java_JAVA实现简单手写识别

    作为一个机器学习的初学者,首先肯定是要有点自己的对机器学习的看法的. 我认为的机器学习(在我目前接触到的知识来说.!!(大佬勿喷)),机器学习专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识 ...

最新文章

  1. js中的arguments
  2. 三种方式实现日志记录
  3. SQL案例_0_员工表数据集
  4. 使用jsonp及jquery的$.ajax解决跨域问题
  5. django12:form 组件/渲染标签/数据校验/钩子函数/
  6. Greenplum创建存储过程
  7. 使用waitgroup控制协程退出
  8. Spring AOP 底层原理_001----AspectJ与CGLIB介绍
  9. ubuntu合并终端_技术|初级:如何在终端及图形界面中更新 Ubuntu
  10. hive当前日期超前_微博数仓数据延时优化方案
  11. 【滤波器】基于matlab窗函数法FIR数字滤波器设计【含Matlab源码 316期】
  12. java界面跳转代码_java软件里面的跳转页面代码实现
  13. 自建服务器好还是外包,自建与外包对比:如何使你的IT回归内部
  14. linux驱动学习二---driver
  15. 2021年N1叉车司机复审考试及N1叉车司机证考试
  16. html粘性菜单,导航菜单:jQuery粘性滚动导航栏效果
  17. Discuz x2 数据字典
  18. “5G通达,AI赋能“ AI在网络规划中的应用实践(人工智能应用案例)
  19. 算法之克鲁斯卡尔(Kruskal)算法
  20. 子查询 和 连接查询谁快

热门文章

  1. dbeaver java版本问题
  2. WhatsUP启动出现错误解决办法
  3. 大四毕业生的牌局:谁输了就去骚扰女生宿舍(ZT)
  4. 山东大学数字媒体技术数图期末
  5. Unity 从零开始的2D游戏开发 —— 碰撞检测 和 用射线实现地面检测
  6. VM Centos7 Minimal 简单初始化操作
  7. trace 32常用指令
  8. 福昕高级PDF补丁下载
  9. 大量短视频如何添加个人logo呢?
  10. 为什么你需要企业架构一文,对企业架构在实施上的启示