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

现在验证码/文字识别有没有成熟方案?

  •  1
     
  •   tumbzzc · 2016-11-01 14:57:25 +08:00 · 4601 次点击
    这是一个创建于 2706 天前的主题,其中的信息可能已经有所发展或是发生改变。




    这是百度 idlocr 识别验证码的结果,不是太令人满意

    也有可能是噪点太多的原因。。

    39 条回复    2016-11-30 16:01:04 +08:00
    pagict
        1
    pagict  
       2016-11-01 15:04:45 +08:00
    之前我司用 tesseract-ocr ,想着自己做训练。哪想识别效果太差,买了别人的服务。一问,对方就是采取众包把图片发给后台人员人工识别了。。。。 sigh
    tumbzzc
        2
    tumbzzc  
    OP
       2016-11-01 15:08:10 +08:00
    @pagict 哈哈哈,尴尬
    helloccav
        3
    helloccav  
       2016-11-01 15:10:27 +08:00
    @pagict 人肉识别其实也算是成熟方案了,有很多平台提供人肉识别服务以及 API ,当然都是收费的
    lishunan246
        4
    lishunan246  
       2016-11-01 15:11:34 +08:00 via Android
    试试先 decay 去掉噪点
    WhyAreYouSoSad
        5
    WhyAreYouSoSad  
       2016-11-01 15:12:06 +08:00
    对对对,我最近也好奇这个,人工识别。那成本呢?
    @helloccav 怎么盈利
    helloccav
        6
    helloccav  
       2016-11-01 15:14:23 +08:00
    @WhyAreYouSoSad 你指的是验证码平台盈利吗? 例如出售给你每识别一个码收 2 分钱,然后招人的时候每人肉打一个码付 1 分钱,那平台就赚 1 分钱了
    WhyAreYouSoSad
        7
    WhyAreYouSoSad  
       2016-11-01 15:15:40 +08:00
    @helloccav ....找人一个一分钱???录入时间?还是有一种很厉害的录入工具,识别脑电波啥的?
    helloccav
        8
    helloccav  
       2016-11-01 15:19:18 +08:00
    @WhyAreYouSoSad 不是说笑的,真的有人肉打码的平台,打码的工钱按验证码的难度区分,好像是几分钱吧。
    全国各地很多学生、家庭嘱咐、无业游民等守在电脑前抢着打码呢。
    tumbzzc
        9
    tumbzzc  
    OP
       2016-11-01 15:20:18 +08:00
    @helloccav 其实有个想法,假设我自己有个网站,然后当我用到验证码的时候,就随机给一个在线的网友强制打开验证码,让其输入之后才能继续浏览。。
    当然,用户体验会变差 23333
    WhyAreYouSoSad
        10
    WhyAreYouSoSad  
       2016-11-01 15:20:46 +08:00
    @helloccav 看来我是有点何不食肉糜的感觉了
    murmur
        11
    murmur  
       2016-11-01 15:23:06 +08:00
    @WhyAreYouSoSad 手打码很成熟了 这个你真做不过专业的打手
    某些网站的验证码我自己看 4 个能认出来一个就不错了。。你还想用软件识别
    helloccav
        12
    helloccav  
       2016-11-01 15:23:30 +08:00
    @tumbzzc 据说 google 的验证码和你这个想法有点相似,话说 google 进行某个项目的 ocr 识别的时候有些图片用机器识别不清楚,所以就把这些图片作为邮箱登录等验证码让用户去识别……以上纯属听说。
    ooxxcc
        13
    ooxxcc  
       2016-11-01 15:23:51 +08:00
    @WhyAreYouSoSad 网吧会有一堆年轻人 /老太太一边看电视剧一边输入验证码

    对了,手头还有一个平台 dama2.com 的 400 块钱的题分,便宜转卖。。
    Sylv
        14
    Sylv  
       2016-11-01 15:26:24 +08:00 via iPhone
    @WhyAreYouSoSad 我之前用过一家,按他们的介绍所说,雇佣的打码员很多是不方便从事其它工作的残疾人士,还有网上兼职的学生,另外是和免费软件的开发者合作,提供 SDK 植入到免费软件中,用户每次使用软件需要输入验证码,其实就是在帮忙打码。
    WhyAreYouSoSad
        15
    WhyAreYouSoSad  
       2016-11-01 15:27:56 +08:00
    @helloccav 验证码识别 p2p 。。。。这个可以的。
    skyworker
        16
    skyworker  
       2016-11-01 15:32:12 +08:00
    @WhyAreYouSoSad 打吗平台有 API, 通过 API 发送至打吗平台的客服那里,客服输入,然后 API 回调获取打吗结果.

    目前国内人工居多, 不用啥 NB 的算法,就靠人眼
    ihciah
        17
    ihciah  
       2016-11-01 15:35:30 +08:00 via iPhone
    去噪,投影切图,丢 svm 可解
    hansnow
        18
    hansnow  
       2016-11-01 15:56:57 +08:00
    @helloccav 谷歌会把机器生成的验证码和自己的系统识别不了的图像(如谷歌街景之类的拍到的东西)拼接在一起让用户去输入,由于有前面一段机器生成的验证码做验证,后面一段图像的识别率就有了保证。相当于用户免费帮忙识别验证码了
    boter
        19
    boter  
       2016-11-01 15:59:03 +08:00 via iPhone
    打码兔,听说年营收千万
    撸羊毛的人很多用
    chaichaichai
        20
    chaichaichai  
       2016-11-01 16:07:39 +08:00
    人工打码速度还行,价格也不贵
    写一个神经网络的方轮子真不如找这种平台
    mrlawrence
        21
    mrlawrence  
       2016-11-01 16:08:14 +08:00
    网赚项目里边,最稳定和基础的项目就是打码,其次是页游。
    如果楼主需要一定的正确率和性价比,还是外包给打码平台吧。机器自学习也好,各种技术运用也罢。对于打码平台的肉眼熟练工来说,人肉打码都是最佳的。
    就好像富士康用机器人代替人力一样,很多熟练工在低价的时候,就是优势。
    tSQghkfhTtQt9mtd
        22
    tSQghkfhTtQt9mtd  
       2016-11-01 18:17:48 +08:00 via Android
    @hansnow
    @helloccav reCAPTCHA ?
    GreatMartial
        23
    GreatMartial  
       2016-11-01 19:02:28 +08:00
    那应该做个人肉打码的平台呀...
    分分钟走向人生巅峰
    TaMud
        24
    TaMud  
       2016-11-01 19:45:28 +08:00
    打码兔太坑
    打码兔识别率并不高
    从其机制来看,举例,如果是 4 位的码
    其应先机器认别,如果出来的结果是 4 位的,不管对错,他都会扣钱,他认为,他是对的,如果你纠正,会扣你的双倍钱,其纠错上面有说明
    如果不是 4 位的,这时想是人工识别,正确率就很高。

    如果是 ts 可以认别,并有很高的识别率,还是直接 ts 识别,打码兔会坑的很
    20150517
        25
    20150517  
       2016-11-01 19:51:55 +08:00
    @TaMud 有反馈接口的,你可以反馈错误,然后这一条就不扣钱了
    zpf124
        26
    zpf124  
       2016-11-01 19:53:39 +08:00
    @tumbzzc 你别说,曾经有个网游的自动刷怪挂机脚本还就是你这思路,把无人操作时遇到的验证码转发给在线的其他人。
    windfarer
        27
    windfarer  
       2016-11-01 19:55:13 +08:00
    这个图简单啊,先 opencv 把噪点去掉,然后二值化并切分成单个字母,用 tesseract 逐个识别就行
    YingJie
        28
    YingJie  
       2016-11-01 23:03:46 +08:00
    用过次世代验证码识别,其实最高效的还是用打码平台
    maze1024
        29
    maze1024  
       2016-11-01 23:38:50 +08:00 via Android   ❤️ 1
    很早很早以前,互联网上流行一个软件,输一个验证码出一个不可描述的图片。。。
    USCONAN
        30
    USCONAN  
       2016-11-02 02:57:51 +08:00


    我就順路問問去年更新的這個 reCAPTCHA 黑科技是不是依然無解?
    txlty
        31
    txlty  
       2016-11-02 04:41:44 +08:00   ❤️ 1
    楼主图里的验证码,可以完美识别。但不是什么 ocr 算法,而是专门针对此的验证码破解算法。这种简单的验证码,编写针对性的算法,准确率超过 90%,教程网上就有。
    也有专业的软件用来生成算法。只要你会用,图里那种低级验证码都能搞定。


    至于你想要的通用识别算法。。就是随便一个网站的验证码,不经任何处理,丢进去,然后就出精准的文字。。。这也是大家梦寐以求的。
    等哪一天,这算法真的出现,而且开源免费发布,个人 PC 就跑得动。。。。

    那时候网上也就看不到验证码了。
    tcsky
        32
    tcsky  
       2016-11-02 09:06:01 +08:00
    @txlty 同用的这个软件. 一般验证码基本都能过了.
    dai269619118
        33
    dai269619118  
       2016-11-02 09:24:35 +08:00
    @txlty 求分享软件名
    bobchengbin
        34
    bobchengbin  
       2016-11-02 09:32:33 +08:00
    rainysia
        35
    rainysia  
       2016-11-02 09:34:55 +08:00
    这.. 楼上都没玩过网游吗. 网游里面为了防挂机, 防刷作的验证的. 都有专门的外挂 配合识别软件.

    大概按照识别难度和题量来收费的
    比如四位汉字就比纯数字贵几倍

    具体参考 火眼答题, 好爱答题... 全是人工的.
    likuku
        36
    likuku  
       2016-11-02 11:41:00 +08:00
    @pagict [对方就是采取众包把图片发给后台人员人工识别了]人力突厥,国内都是这样干的吧...

    最近被小米推起来的 讯飞 不知是这么搞的,机器学习?或者是更高级的众包平台?
    likuku
        37
    likuku  
       2016-11-02 11:43:05 +08:00
    记得亚马逊很早也推出过人力 API ,后段都是一群人来做事,就是针对当前机器解决不了的问题, API 使用价格也不是太贵。
    shell233
        38
    shell233  
       2016-11-02 12:01:19 +08:00
    题主如果想花点功夫的话办法倒是挺多。第一种前面也讲到了,降噪切割,上 svm 或者 netual network 。你这个验证码没有粘连也没有干扰线什么的还是比较好切的。第二种基于端对端的 ocr 识别,前面的楼层也讲到了找出生成这个验证码的算法,但是如果你可以找到生成验证码的算法还是推荐直接上 deep learing ,自动生成样本跑出 10W 的样本如果运气好一些收敛了还是能跑出模型的,识别率基本在 95%以上,见 https://zhuanlan.zhihu.com/p/21344595 。其实验证码复杂到一定程度再花时间和精力就得不偿失了,也许你花一个星期日了验证码,别人再花了两个星期改了验证码......这时候如果不是基于学习的目的的话,还是上打码平台算了,不然两方的程序员都会搞到吐血哈哈。
    cppgohan
        39
    cppgohan  
       2016-11-30 16:01:04 +08:00
    R9 @tumbzzc
    你的想法, reCAPTCHA 很早就在做了吧, 利用大数据概率来判断用户输入是否正确. 最后的大数据又来帮助真正的识别车牌, 识别图书.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2989 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 08:37 · PVG 16:37 · LAX 01:37 · JFK 04:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.