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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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