V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
panda0
V2EX  ›  Python

想问一下:这样的验证码该要怎么识别?

  •  
  •   panda0 · 2016-07-25 08:47:52 +08:00 · 6672 次点击
    这是一个创建于 3032 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 tesseract 试了几个,识别率 0%

    请教大神,大概的研究方向是什么?

    35 条回复    2017-05-11 23:39:23 +08:00
    YAFEIML
        1
    YAFEIML  
       2016-07-25 09:19:47 +08:00
    人工智能
    somkanel
        2
    somkanel  
       2016-07-25 09:56:17 +08:00
    所以每次遇到这种时候,就使劲换……
    lcatt
        3
    lcatt  
       2016-07-25 09:56:41 +08:00
    tesseract 不是可以自己训练字库么。。
    fcicq
        4
    fcicq  
       2016-07-25 10:07:17 +08:00
    把线去了, 反白应该问题不大
    aprikyblue
        5
    aprikyblue  
       2016-07-25 10:09:10 +08:00 via Android
    起码肉眼可以识别出来。。



    这种我人工都要输入好几次。。
    wuhang89
        6
    wuhang89  
       2016-07-25 11:14:41 +08:00
    跟你讲,不要把人工智能的 OCR 想的多厉害,像这个最佳的解决方案是人肉打码。
    h4x3rotab
        7
    h4x3rotab  
       2016-07-25 11:38:25 +08:00 via iPhone
    这种 tessrect 不可能识别的出来,基本只要不接近印刷体,或者稍微有点粘连 tess 就不行了。如果你能人工打 20w 个码,我可以给你做出识别
    aeshfawre
        8
    aeshfawre  
       2016-07-25 11:39:40 +08:00
    人工打码是最实际的解决方法, 网上有收费接口.
    用计算机应该也能实现自动识别,不是有个公司破了 yahoo 验证码,挑战 decaptcha 么, 好像就是 deepmind 这个公司吧.
    menc
        9
    menc  
       2016-07-25 11:52:41 +08:00   ❤️ 1
    用 RNN + sliding window , recaptcha 都能 98%的 accuracy ,你这个不是什么大事情
    aeshfawre
        10
    aeshfawre  
       2016-07-25 12:04:59 +08:00
    @menc 赶紧给楼主做一个,比起人工打码,楼主付个 5000 大洋给你,估计还是愿意的.
    gkiwi
        11
    gkiwi  
       2016-07-25 12:11:57 +08:00
    @menc 有相关的文章推荐么?
    goubenger
        12
    goubenger  
       2016-07-25 12:16:39 +08:00
    这种验证码应该已经有成熟的技术了。
    不预处理光跑 tesseract 准确率肯定不行的
    ihciah
        13
    ihciah  
       2016-07-25 12:25:55 +08:00   ❤️ 2
    手动框出来, fast-rcnn 做;或者无脑直接丢 CNN ,打多个 label 出来,实测比楼主的复杂的多的图直接用 VGG19 finetune 可以到 90+%;或者用 RNN 、 LSTM 那一套,戳 http://arxiv.org/abs/1412.7755
    menc
        14
    menc  
       2016-07-25 13:30:56 +08:00   ❤️ 4
    @gkiwi 有几篇论文,是用 RNN 、 CNN 来做 recaptcha 的识别的。
    http://www.cs.columbia.edu/~polakis/papers/sivakorn_eurosp16.pdf

    其他关键字

    Multi-digit Number Recognition from
    Street View Imagery using Deep Convolutional Neural Networks

    Deep Features for Text Spotting


    @aeshfawre

    给我 10k ,给你一个 90%以上 accuracy 的这样的验证码的识别
    iVanilla
        15
    iVanilla  
       2016-07-25 13:53:13 +08:00
    能被识别是因为这些验证码太弱,不信看看这样的验证码你怎么识别?

    menc
        16
    menc  
       2016-07-25 14:28:35 +08:00
    @iVanilla 你这个比他给的简单多了
    iVanilla
        17
    iVanilla  
       2016-07-25 14:33:52 +08:00
    @menc 你确定?那你写个识别程序试试看。
    menc
        18
    menc  
       2016-07-25 14:38:15 +08:00
    @iVanilla

    麻烦,这样吧,你给的两种验证码,各 2k rmb 做赌注,单字 90%以上的准确率。
    写出来你给我钱,写不出来我给你。

    有偿找个第三方来见证也行。
    gonglin
        19
    gonglin  
       2016-07-25 14:48:54 +08:00
    @menc 我做第三方 ~~
    maomaomao001
        20
    maomaomao001  
       2016-07-25 14:49:31 +08:00 via Android
    自己用眼睛看啊。。。别老想着破坏
    iVanilla
        21
    iVanilla  
       2016-07-25 14:53:46 +08:00
    @menc 第二个是我自己写的,我知道强度还不够。
    等我把强度加大再跟你赌。
    lxy
        22
    lxy  
       2016-07-25 15:18:00 +08:00
    颜色对于防自动识别没有任何效果。长干扰线也是差不多。
    真正能抗自动识别的只有随机的严重的字符粘连和大幅度的字符扭曲。
    lxy
        23
    lxy  
       2016-07-25 15:20:07 +08:00
    @lxy 还有与字符笔画宽度一样的同色短干扰线。
    honam
        24
    honam  
       2016-07-25 17:49:36 +08:00
    有些自己都看不清,怎么识别。。。
    mcone
        25
    mcone  
       2016-07-25 18:19:17 +08:00   ❤️ 1
    @iVanilla 说实话,你这两个(特别是第二个)真的很弱,至少十年前的技术就能搞定了(只有第一个图后两位有粘连,但是如果确定是纯数字且四位的话,一点都不难)。
    另外不要总是“你写个程序看看”,真的写出来怎么办,你出钱吗?…………仅仅博君一笑,白白花费不少时间,好像不是正常人的做法

    @panda0 楼主,是所有的验证码都有[有一条从左到右的水平贯穿线]这个固定的特点吗?是的话,在切分之前,先检测水平线,去掉之后把切分后的字送进去,准确率应该不会太低,至少字母边缘特征还是很明显的,不像是 @aprikyblue 那种深浅不一,人眼都得看半天的家伙……
    iVanilla
        26
    iVanilla  
       2016-07-25 20:21:42 +08:00
    @mcone 那么你认为应该怎样做才能真正加大识别难度?
    ihciah
        27
    ihciah  
       2016-07-25 20:41:15 +08:00
    @iVanilla
    讲道理只要是字符,就很垃圾,无论是怎么扭曲、粘连,中文还是英文,更不用说加什么背景噪声了。只要人能认出来,堆训练数据进去机器也可以。
    加大识别难度可以借助人的知识,比如现在 12306 和 google 的新验证码这种。
    iVanilla
        28
    iVanilla  
       2016-07-25 20:44:12 +08:00
    @ihciah 12306 的验证识别码早有人弄出来了吧,在 github 上面看过。
    Google 的新验证码确实不错,但国内也用不了啊。
    h4x3rotab
        29
    h4x3rotab  
       2016-07-25 23:07:28 +08:00 via iPhone
    想要提高难度有两种办法,一种是增加字体数量,另一种是增加验证码的类型,两者各达到几十种, deep learning 就跪了,因为没人有钱打这么大数量的 label
    eoo
        30
    eoo  
       2016-07-25 23:28:24 +08:00 via Android
    想要防机器 还得上短信验证或者语音验证,什么 OCR 识别都见鬼去吧 啊哈哈。
    MrGba2z
        31
    MrGba2z  
       2016-07-25 23:56:46 +08:00
    之前上课教授讲过
    在菲律宾还是哪里有人工识别服务( API 。。)

    两毛还是两分一次
    peter999
        32
    peter999  
       2016-07-26 00:00:22 +08:00
    打码平台
    panda0
        33
    panda0  
    OP
       2016-07-26 00:00:38 +08:00
    @MrGba2z 我猜是 2 分 : )
    test5001
        34
    test5001  
       2017-05-11 23:36:40 +08:00
    @menc 如何可以联系你? 可以给个联系方式吗,想有偿找你帮写个例子。
    test5001
        35
    test5001  
       2017-05-11 23:39:23 +08:00
    有人使用 dl4j 那个深 度学习框架的吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1027 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:32 · PVG 04:32 · LAX 12:32 · JFK 15:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.