zoukankan      html  css  js  c++  java
  • 徒手打造一款PK 名片全能王 的名片识别应用

    在App store中检索 “名片扫描


    今天要说的就是如何徒手打造一款商用的名片识别产品:名片扫描通 scanzen

    脉可寻就不比了,那是一款有人工干预的产品,确实能做到100%准确,不过用户的名片隐私问题很让人担心。

    • 汉王的产品,做OCR产品的龙头。不过在移动互联网时低好象out了,产品难用,免费版本一周只能扫两张名片,太抠门了吧。
    • 名片扫描通,刚上线,完全免费,但扫描速度慢,当然如果你的手机是iphone5,也就显不出来慢了,一闪就扫完了。
    • 名片全能王,敢当王的肯定不白给,扫描没得说,但是价格不便宜78。钱多的话,就这个了。


    跑题了,今天要写的是徒手打造一款商用的名片识别产品。徒手就是码农不停用手敲出来了的,先简要谈一下原理

    您看到此文,一定是对OCR有一定了解了,因为OCR是很小的领域,做相关研究的公司机构很少。

    简单的讲,名片识别应用BCR应当处理如下几个问题

    1. 名片切割
    2. 名片旋转校正
    3. 名片分行
    4. 字符识别
    5. OCR常见错误校正
    6. 字符分司校正
    7. Regular Expression提取名片信息


    这些问题领域,前人已经研究的很深了,但要变成可商用的产品还是要付出点努力的。

    先说名片分割:

    最基本的方法有:连通区法和hough变换法,只要控制好参数,这两种方法就能切出大部分的名片

    下图是一个通过联通区可以提取的名片:



    但很少有名片能这么便捷地让你找到大的连通区,于是hough变换就必有可少了,找到四个焦点就ok了。

    原理很简单,但切名片着实费了很大功夫,要达到100%能找到名片的效果,还需要更多的辅助手段。


    名片旋转校正:

    名片剪切后肯定会有有倾斜的,如果您google skew detect,会发现大量的论文来解决这个问题,足以说名,角度矫正的重要性。

    OCR引擎对字符角度都极度信赖,如果你的字符旋转1度,那么,字符识别准确可能会降低10%,如果偏差2度,那OCR引擎无法工作。

    将角度调整到0.1度范围内,实然就发现,识别的这么准!

    那如何才能将行校正的这么准呢,方法有很多种,这里我介绍我使用的一种方法(没google到相同的处理方法)基于聚组成行skew detect方法。

    名片剪切后,找出名片中所有的10号字以下的联通区,对这些联通区进行按行聚组计算,得到分行的结果,计算这些行的平均倾斜角度。然后再次聚组分行,就能得到很准确的结果,无需多次迭代。









    OCR引擎可以使用开源的tesseract引擎,只是tesseract对大字符集的处理速度有很大问题,需要深入进行屏蔽一些处理才好用。


  • 相关阅读:
    比较实用的免费图标字库(转)
    聊聊 cursor鼠标样式
    (转)3款优秀的移动webAPP网站在线测试工具
    常用meta整理
    (转)SVN搭建(附下载地址)
    (转)C#串口SerialPort常用属性方法
    加载信息,先从数据库取出5条实现分页,鼠标向上滑动触发Ajax再加载5条,达到异步刷新,优化加载。。。
    图片上传,获取路径以及下载功能
    Mysql事务,并发问题,锁机制
    app中Webview实现下载表格
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3122815.html
Copyright © 2011-2022 走看看