V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zushi000
V2EX  ›  程序员

创作一个 ocr 识别然后拨号的 app,我该如何下手!

  •  
  •   zushi000 · 2015-08-06 09:15:24 +08:00 · 8126 次点击
    这是一个创建于 3184 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我不是专业程序猿,我弟弟是京东配送员。每次他打电话都要按一串号码。一天到头手都按软了。我想设计一个摄像头对准电话号码,然后自动识别后拨出的手机app。请问改如何下手?

    京东的配送标签都是机打的,比较规范

    82 条回复    2015-08-07 17:08:07 +08:00
    cnnblike
        1
    cnnblike  
       2015-08-06 09:31:49 +08:00 via Android
    复杂环境下的数字识别,我记得opencv下有现成的ocr,但是效果很差
    cnnblike
        2
    cnnblike  
       2015-08-06 09:36:29 +08:00 via Android   ❤️ 1
    拨号并不难一个intent足够了
    sunchuo
        3
    sunchuo  
       2015-08-06 09:37:28 +08:00   ❤️ 1
    如果是京东机打的,那么这个ocr还是很简单的。各种场景下的照片多找一些。
    先切单字,再做单字的识别。

    -_-,
    zushi000
        4
    zushi000  
    OP
       2015-08-06 09:38:38 +08:00
    问题是我不是程序猿 
    sunchuo
        5
    sunchuo  
       2015-08-06 09:39:01 +08:00
    @zushi000 那你说个毛线-_-。
    zushi000
        6
    zushi000  
    OP
       2015-08-06 09:39:28 +08:00
    我是不是要先买一本安卓开发入门看看啊
    Qlccks2
        7
    Qlccks2  
       2015-08-06 09:39:28 +08:00   ❤️ 1
    不如给京东提建议,配送标签加二维码。识别率高。
    不过 以前有个前辈跟我说过,二维码是日本鬼子给天朝挖的坑。这是日本人搞的。我朝那个是汉信码
    ChefIsAwesome
        8
    ChefIsAwesome  
       2015-08-06 09:40:47 +08:00 via Android
    正确的方法应该是京东自己出一个app或者网页,把电话存在上面,而不是打个单子出来吧。我一直以为快递行业已经完全电子化了
    zushi000
        9
    zushi000  
    OP
       2015-08-06 09:41:48 +08:00
    每天按几十个号码,多的时候上百个。按键都按坏了
    zushi000
        10
    zushi000  
    OP
       2015-08-06 09:42:43 +08:00
    @ChefIsAwesome 他们有一个靶机,基本上功能都有 但是给客户打电话让取件,号码还是手自己按的
    em70
        11
    em70  
       2015-08-06 09:43:42 +08:00
    @Qlccks2说得对应该让京东加二维码,这是提高他们工作效率的,让你弟弟去建议,说不定还被刘强东提拔呢,呵呵
    zushi000
        12
    zushi000  
    OP
       2015-08-06 09:44:22 +08:00
    要得
    @em70
    raiz
        13
    raiz  
       2015-08-06 09:44:24 +08:00
    诶 我也想过这个问题, 每个单上应该都有条码, 不仅仅京东, 他们到达目的仓库都会扫码, 然后信息都更新到快递进度里, 快递公司为毛不把通知收件人这个环节给自动化了
    zhicheng
        14
    zhicheng  
       2015-08-06 09:44:49 +08:00 via Android   ❤️ 1
    zushi000
        15
    zushi000  
    OP
       2015-08-06 09:46:39 +08:00
    因为情况很复杂,不一定有人,有的人磨磨蹭蹭,还需要等
    @raiz
    jugelizi
        16
    jugelizi  
       2015-08-06 09:47:27 +08:00
    我记得连银行卡的卡号都可以摄像头识别的啊
    zushi000
        17
    zushi000  
    OP
       2015-08-06 09:48:34 +08:00
    @jugelizi 可以的啊。支付宝那个就可以。但是专门ocr识别,然后拨号的手机app,木有。我找过了
    zushi000
        18
    zushi000  
    OP
       2015-08-06 09:48:48 +08:00
    tabris17
        19
    tabris17  
       2015-08-06 09:49:14 +08:00
    1、手机号是打印的还是手写的,手写的话我建议你放弃
    2、APP开启摄像头,然后有个长条取景框,然后对准手机号,让手机号尽可能的撑满取景框,然后识别,这样准确率会高
    raiz
        20
    raiz  
       2015-08-06 09:49:39 +08:00
    @em70 直接自己做之后要求见刘强东,然后就可以傍上奶茶了
    zushi000
        21
    zushi000  
    OP
       2015-08-06 09:49:46 +08:00
    @tabris17 京东的都是机打的,大小和字体都非常规范
    zushi000
        22
    zushi000  
    OP
       2015-08-06 09:51:27 +08:00
    要不你们哪个大神开发一个出来吧,识别后加一个炫酷的音效,然后询问是否拨打这个号码。到时候记得通知我哦!
    raiz
        23
    raiz  
       2015-08-06 09:51:28 +08:00
    @zushi000 我很久以前就像做这个,那时想的是 每次要电话号码都要手动输入, 扫个名片就好了, 对了 后来好像有人做出扫名片的app,你看一下那个可以用不
    raiz
        24
    raiz  
       2015-08-06 09:52:01 +08:00
    @zushi000 你要买吗
    ppdg
        25
    ppdg  
       2015-08-06 09:52:35 +08:00 via Android
    信用卡号识别我做过,但是当时苦于训练样本实在难找,如果训练样本足够,cnn搞这个小case
    min
        26
    min  
       2015-08-06 09:52:57 +08:00
    如果想开发简单的话找个支持ocr的web service吧
    zushi000
        27
    zushi000  
    OP
       2015-08-06 09:52:58 +08:00
    @raiz 我看我弟弟天天打电话心疼,你要做得好,当然可以买啊。还可以帮你宣传宣传
    zushi000
        28
    zushi000  
    OP
       2015-08-06 09:55:27 +08:00
    @raiz 扫名片的他是把信息识别下来然后储存,那个我用过。使用场景不一样
    raiz
        29
    raiz  
       2015-08-06 09:55:45 +08:00
    我去帮你问问又没人有空做 嘿嘿 给我打折就好了 -*-
    zushi000
        30
    zushi000  
    OP
       2015-08-06 09:56:05 +08:00
    @raiz 好啊好啊
    zushi000
        31
    zushi000  
    OP
       2015-08-06 09:56:35 +08:00
    @raiz 安卓平台哈,一般用安卓的多
    Hello1995
        32
    Hello1995  
       2015-08-06 09:57:04 +08:00 via Android
    其实我也想过这个问题,楼下每天都有很多送快递和外卖的小哥,无论快递还是外卖都是需要输入很多手机号码,我就想这些快递公司和像饿了么美团外卖这样的外卖服务为何不在单子上加个二维码…那些小哥只要手机扫一扫就可以了,OCR 实现应该不难。但是后来发现,目前这些小哥大多用直板手机…可能是出于成本考虑吧。但我一直觉得扫一扫的方案可行。
    zushi000
        33
    zushi000  
    OP
       2015-08-06 09:58:15 +08:00
    @Hello1995 因为那个续航久啊,智能机撑不住。
    m_z
        34
    m_z  
       2015-08-06 10:01:04 +08:00
    对,单子上应该加个二维码,二维码里包含手机号,然后搞个app,扫一下,识别二维码然后调用拨号.这个应该jd官方做
    hundred
        35
    hundred  
       2015-08-06 10:06:47 +08:00
    最实际的应该是京东应该添加收件人电话号码的二维码,简单高效
    gamexg
        36
    gamexg  
       2015-08-06 10:11:22 +08:00
    跟 google 提下建议,给 goggles 图像识别 app 增加拨号功能。

    或者做一个app,通过翻译接口和 goggles 对接。

    实际试了一下识别,发现还不如手工输数字省事...
    imn1
        37
    imn1  
       2015-08-06 10:13:29 +08:00
    首先你要知道一点:OCR其实很慢的——操作也慢、识别计算也慢,因为扫描完至少要手动圈选电话号码的范围,还不如肉眼+手动输入,除非是大量不方便使用输入法的文字要识别的情况下,使用OCR才有价值

    直接拨号的app没有,但有个迂回的方法
    google play 有个 app 叫 OCR Text Scanner,能识别文本,识别后copy&paste到拨号

    所以你建议京东打印单时顺便生成个二维码更实际,这个在程序不会太难,难的主要在调整打印格式及你们的运作机制,你可以提议分开打印(或电子传输),这样对原有机制影响较小
    imn1
        38
    imn1  
       2015-08-06 10:14:20 +08:00   ❤️ 1
    @imn1
    呃,是你弟弟,搞错了,因为是本人
    hippoboy
        39
    hippoboy  
       2015-08-06 10:19:49 +08:00
    百度文字ocr我试过简单的字符还可以
    hackerwgf
        40
    hackerwgf  
       2015-08-06 10:26:23 +08:00
    可以放一张机打的单子吗?想看看那个号码到底是什么样子
    w88975
        41
    w88975  
       2015-08-06 10:36:52 +08:00
    我闻到了一股浓浓的CP感
    printempw
        42
    printempw  
       2015-08-06 10:39:17 +08:00
    @zushi000 入门 android 开发不难。看你的需求,去啃 ocr 的文档,android 基础学一点估计就可以做出来了
    imn1
        43
    imn1  
       2015-08-06 10:39:59 +08:00
    @hackerwgf
    包裹号:xxxxxxxxxxxxxxxxxxxx
    某某人 xxxxxxxxxxxxxxxx
    条形码

    第二行是联络电话
    广州京东,纯黑白,类似贴纸很方便撕下来,然后袋子客户可以重用(这点给京东点赞,环保,也方便去掉包装隐私信息),收到是这样,按理应该还有一张(可能被撕走了),因为收到的这张上面没有地址
    hackerwgf
        44
    hackerwgf  
       2015-08-06 10:42:40 +08:00
    @imn1 多谢。看样子如果扫的话,前后比较近的几行字也会被扫进去
    Gandum
        45
    Gandum  
       2015-08-06 10:43:16 +08:00 via iPhone
    这个APP很容易写,但是估计开启摄像头的时间都足以把号码输完了
    Gandum
        46
    Gandum  
       2015-08-06 10:44:30 +08:00 via iPhone
    真的要写的话,记得使用tesseract这个库
    canautumn
        47
    canautumn  
       2015-08-06 10:45:54 +08:00
    需要一些图像预处理的知识,然后十个PCA再加上几个几何特征,一共十几个特征维度,用最近邻算法、对500个样本训练,手写数字识别就可以达到95%以上的精度了,根本不需要太高深的算法,什么神经网络的不会用反而结果更差。机打的识别率应该更高。网上搜一下这种文章一大堆。这个难度级别也就是本科生课设的级别吧……
    BOYPT
        48
    BOYPT  
       2015-08-06 11:14:04 +08:00
    windows phone 8就有一个卖点是Point and Call,就是摄像头选择一个号码然后拨号。别折腾了,买一台吧。
    BOYPT
        49
    BOYPT  
       2015-08-06 11:15:52 +08:00
    http://as.baidu.com/a/item?docid=5196121&pre=web_am_rel&f=suite_6&suite=6

    放狗找一下Android也早就有这样的app了...
    realpg
        50
    realpg  
       2015-08-06 11:16:52 +08:00
    @Qlccks2
    没必要二维码,一维条码就够了,二维码识别更复杂,一维条码的识别适应力更高。
    然后手机APP扫了条码自动拨出多好……

    @zushi000 赶紧给你兄弟说,让他给公司提这个合理化建议,没准有奖金!
    knightlhs
        51
    knightlhs  
       2015-08-06 11:20:28 +08:00
    @zushi000
    正确的做法应该是 扫描单号拨打客户联系电话
    理由如下:
    1、OCR的识别精度速度都不如单号条码直接快速
    2、单号的条码内容跟订单有直接关联关系 通过内部系统很方便查询到
    3、联系电话不是保密内容(在订单上印着呢 不是么)
    kaneg
        52
    kaneg  
       2015-08-06 11:34:50 +08:00
    道路上拍车牌的电子警察是如何做到的?按理说目前OCR对打印出来的额数字的识别应该有很成熟的方案了
    c4pt0r
        53
    c4pt0r  
       2015-08-06 11:39:17 +08:00
    第一步,把 tesseract 在手机上跑起来
    linescape
        54
    linescape  
       2015-08-06 11:41:05 +08:00
    你们都纠结扫号码上了,其实真正要做得方便就不应该要扫号码。
    个人觉得最佳的方式应该是快递公司开发一个app,在派件扫描 的时候将单号、联系方式与快递员绑定
    快递员到了指定地点,app根据定位,自动筛选出应该联系的对象,然后快递员确认好了单件之后,选择联系就行了
    imn1
        55
    imn1  
       2015-08-06 11:42:31 +08:00
    @canautumn
    有开源OCR引擎,而且口碑很高,没必要重复造轮子

    @realpg
    码本身条形码是简单些,但识别上二维码更容易,因为二维码有三个定位角,可以多角度,条形码往往需要扫描设备垂直于条形码扫描;二维码也是基于这个原因诞生的
    zushi000
        56
    zushi000  
    OP
       2015-08-06 11:47:03 +08:00
    看了筒子们的回复,还是觉得条码简单些,本身京东就有个app是内部用的。给他们提提意见,让他们加个功能看看
    hpowen
        57
    hpowen  
       2015-08-06 12:04:33 +08:00   ❤️ 1
    论国内投递员为什么需要拨打客户的电话。
    sobigfish
        58
    sobigfish  
       2015-08-06 12:15:43 +08:00
    @Qlccks2 你说的那个是QR Code ,二维码是统称好嘛, 有很多标准的。
    zushi000
        59
    zushi000  
    OP
       2015-08-06 12:24:14 +08:00
    @hpowen 因为要让他取货,货到付款的
    Qlccks2
        60
    Qlccks2  
       2015-08-06 12:40:16 +08:00
    @sobigfish QR code不就是二维码缩写?
    jsq2627
        61
    jsq2627  
       2015-08-06 12:49:17 +08:00 via iPhone
    @Qlccks2 QR code 是二维码的一种
    gao117348222
        62
    gao117348222  
       2015-08-06 14:20:45 +08:00
    二维码简单,有开源的,分分钟做出来,但是电话号码就没见过了
    ybh37
        63
    ybh37  
       2015-08-06 14:36:44 +08:00
    自己手写数字识别算法一点也不难的
    1、坐标转换
    2、切片
    3、特征值比对
    4、输出数字
    5、调拨打电话API
    Desert
        64
    Desert  
       2015-08-06 14:44:44 +08:00
    就是想说能扫二维码的手机待机时间真不满足他们的需求
    yhf
        65
    yhf  
       2015-08-06 16:51:25 +08:00
    肯定用不着CNN啊,机打的数字用KNN准确率几乎是100%了
    acwind
        66
    acwind  
       2015-08-06 17:08:33 +08:00
    为什么不直接语音拨号呢
    zushi000
        67
    zushi000  
    OP
       2015-08-06 17:36:41 +08:00
    @acwind 准确率太低
    SeanChense
        68
    SeanChense  
       2015-08-06 18:10:42 +08:00 via iPhone
    @realpg 我也觉得用条码就行了。手机号用条码显示,贴在客户联上,用户拿走快递能自行处理。保护了用户也方便了快递,京东应该搞。
    realpg
        69
    realpg  
       2015-08-06 18:14:03 +08:00
    @SeanChense
    其实我觉得应该更进一步的

    京东的巴枪是有sim卡的,其实这个巴枪扩展一下打电话功能多好,自带条码扫描硬件扫描识别速度快,扫一下订单号直接获取用户电话呼叫,因为分配给这只枪的快递员的时候就有一次扫描,可以把订单号对应手机号的关系存到缓存里不需要联网实时获取,还可以集团统一结算公务电话费,甚至可以直接干掉不干胶上的用户电话号码避免信息泄露
    SeanChense
        70
    SeanChense  
       2015-08-06 18:20:38 +08:00
    @realpg 不错。这 idea 都够弄个啥智能硬件了,京东快看过来啊弄啊。不过,续航会不会 hold 不住?
    realpg
        71
    realpg  
       2015-08-06 18:23:49 +08:00
    @SeanChense

    不会的。京东、顺丰的枪我都玩烂了。一次充电扛一轮配送妥妥的够用得很。
    二手东啊 顺丰啊啥的 他们已经算是够先进的了 在智能终端上 只是在一个专业码农看来 能做的更多
    ilotuo
        72
    ilotuo  
       2015-08-06 19:24:35 +08:00
    找个自动识别图片数字的网站api上传呗.
    或者看opencv demo 应该有识别数字的例子
    min
        73
    min  
       2015-08-06 21:10:31 +08:00 via Android
    标签是什么样子的可以贴张图看看吗?
    jiankangxin
        74
    jiankangxin  
       2015-08-06 21:23:22 +08:00
    http://apistore.baidu.com/ 这里有各种OCR API
    hackpro
        75
    hackpro  
       2015-08-06 23:34:25 +08:00
    参见大神LeeNet
    shy52110
        76
    shy52110  
       2015-08-07 02:08:54 +08:00 via iPhone
    我觉得纠结了半天…为何不直接用语音识别呢?
    msg7086
        77
    msg7086  
       2015-08-07 02:11:43 +08:00
    @shy52110 瞬间终结了本贴?
    belin520
        78
    belin520  
       2015-08-07 08:17:48 +08:00 via Android
    转行做程序猿
    empvio
        79
    empvio  
       2015-08-07 08:20:29 +08:00
    昨天和同事第一次使用美团外卖,发现订单上联系号码也是直接印上去,之前一直以为这种应该至少是扫码拨号,然后也有类似的想法,如果是不增加二维码的情况下,个人目前知道的就是可以试着用百度OCR 来识别。然后,个人觉得增加二维码的需求应该很快就会得到各大物流和外卖等的解决方案了。
    caixiexin
        80
    caixiexin  
       2015-08-07 08:42:28 +08:00
    感觉还是官方出个app靠谱。
    最近用饿了吗订外卖,送到的时候总会先收到一个400电话让我下去取餐(电子音),我觉得这个肯定是送餐大哥用app发的- -
    xinyin025
        81
    xinyin025  
       2015-08-07 10:57:47 +08:00
    我是做Android开发的
    给你一个方向,为何要用OCR来识别呢?
    用语言识别其实更好,有很多现成的SDK,比如科大讯飞、百度语音
    在APP里集成语音识别,直接读一下手机号即可,然后识别出来后,拨号即可。
    zpfly
        82
    zpfly  
       2015-08-07 17:08:07 +08:00
    @xinyin025 我感觉那都直接不用开发新APP了。直接下载个“xx语音助手”,送货时打开APP,直接念“拨打电话给12345678”就行了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5771 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:54 · PVG 09:54 · LAX 18:54 · JFK 21:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.