有没有反 OCR 的轮子? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
yohanechan
V2EX    奇思妙想

有没有反 OCR 的轮子?

  •  1
     
  • &nbs; yohanechan 2020-01-30 13:51:51 +08:00 via Android 11344 次点击
    这是一个创建于 2084 天前的主题,其中的信息可能已经有所发展或是发生改变。
    社交软件会 OCR 用户上传的图片,检测图片中的文字,发现敏感词将会拦截。
    是否可以用验证码的思路,在图片中加入噪点、干扰元素、扭曲字体,使机器难以识别,但人类仍然能认出其中的文字。
    43 条回复    2022-03-06 20:49:38 +08:00
    jugelizi
        1
    jugelizi  
       2020-01-30 14:03:26 +08:00   21
    研表究明,汉字序顺并不定一影阅响读
    xml123
        2
    xml123  
       2020-01-30 14:04:37 +08:00
    那不还是验证码的技术吗
    WeaPoon
        3
    WeaPoon  
       2020-01-30 14:07:26 +08:00
    @jugelizi #1 第一个序顺是真没注意,第二个定一就感觉不对劲了,哈哈
    moshou
        4
    moshou  
       2020-01-30 14:09:23 +08:00
    @WeaPoon 你忽略了 研表究明
    q8515620
        5
    q8515620  
       2020-01-30 14:16:21 +08:00 via Android   1
    @moshou 你忽略了 影阅响读
    jdhao
        6
    jdhao  
       2020-01-30 14:17:33 +08:00 via Android   1
    ocr 只是把文字位置检测出来,然后识别文字,对于规则排布的文本估计也可能提取意思。知道这个原理,你就能做出反 ocr 程序,一个思路,你把汉字排布弄乱一点,不要简单横排或者竖排(譬如波浪形状,或者更加复杂的形状),另外再加一些北京噪声,图片模糊效果,就可以防住很多 ocr 了。
    Co1a
        7
    Co1a  
       2020-01-30 14:23:03 +08:00 via iPhone
    Leetcode 猪年那道题算是最简单的加密吧……
    OceanSea
        8
    OceanSea  
       2020-01-30 14:27:44 +08:00   1
    将汉字在图片上随机排布、然后用一条线连起来表明阅读顺序
    yinanc
        9
    yinanc  
       2020-01-30 14:44:05 +08:00 via iPhone
    众所周知,验证码就是用来反 ocr 的
    kknd22
        10
    kknd22  
       2020-01-30 14:51:54 +08:00   1
    方正启功字体+缩小行间距,有奇效
    kknd22
        11
    kknd22  
       2020-01-30 14:56:54 +08:00   1
    类似 6 楼的字,字体不加修改,行距改为 0.5,效果如下:

    OCr 只是把又子位置检测出米,然后识别又子,对十郑则排币的又他订也可能疾取息思。知追这个尿性,你就能倾出 oCr 样序,一个思语,你把义子“排作弄机一点,个妥简单使排首竖排(管如波浪形状,者更川复杂的形状),另外再加一些北只栗户,图片模糊双果,就可以防任很多 Qr 了。
    kknd22
        12
    kknd22  
       2020-01-30 14:58:14 +08:00
    肉眼识别有略微障碍,但基本不影响阅读
    这就是好多网上防爬取小说的思路,当然,他还得增加文字转截图
    shilyx
        13
    shilyx  
       2020-01-30 15:20:21 +08:00
    base64
    或者自制码表的 base64
    yohanechan
        14
    yohanechan  
    OP
       2020-01-30 15:23:04 +08:00
    @jugelizi 哈哈,这也是个办法,但汉字最多移动 2~3 格,动多了就难读了
    yohanechan
        15
    yohanechan  
    OP
       2020-01-30 15:26:20 +08:00
    @kknd22 这只是替换为外形相似的文字,实现起来还得有庞大的数据库支持
    panda1001
        16
    panda1001  
       2020-01-30 15:27:12 +08:00 via Android
    用过 abbyy 的一些 ocr 就有经验了,比如单个文字在◇符号中间,就是文字的边缘加上干扰,虽然没有亲测 tx 的在线 ocr,但也提供这个思路
    superrichman
        17
    superrichman  
       2020-01-30 15:35:54 +08:00 via iPhone
    使用小众点的字体再加干扰线应该可以。

    另外,我记得有那种要从某个比较低的角度看才能看出文字的图。原理就是把文字垂直拉伸的很长,这种变形的厉害的文字应该也不会被识别。
    yohanechan
        18
    yohanechan  
    OP
       2020-01-30 15:36:52 +08:00
    谢谢大家的帮助,我找到了基本符合需求的产品 https://github.com/yuzu233/anti-ocr
    Buges
        19
    Buges  
       2020-01-30 16:20:20 +08:00 via Android   1
    这边建议直接用 GPG 呢
    kknd22
        20
    kknd22  
       2020-01-30 16:24:38 +08:00
    @yohanechan
    卧槽,这个效果真狠啊。。。
    suotm
        21
    suotm  
       2020-01-30 16:29:46 +08:00
    加干扰线或者颠倒文字方向
    autogen
        22
    autogen  
       2020-01-30 16:45:26 +08:00
    你需要的是,全自动区分计算机和人类的图灵测试。。。。
    有以下方式:
    填空:1 + 2 = __
    ----
    填空:我们的名称是___
    ----
    填空:出门要__口罩
    ----
    选择题:勾选以下图片中所有的啤酒
    ----
    操作题:把斜的图片旋转正
    ----
    操作题:拖动滑块完成验证
    vocaloid
        23
    vocaloid  
       2020-01-30 17:01:49 +08:00
    @yohanechan #18 他这个测试网站似乎无法打开
    gladuo
        24
    gladuo  
       2020-01-30 17:01:55 +08:00
    @yohanechan 划线确实 nb
    jdhao
        25
    jdhao  
       2020-01-30 17:07:26 +08:00 via Android
    @vocaloid 同无法打开
    jdhao
        26
    jdhao  
       2020-01-30 17:08:18 +08:00 via Android
    @yohanechan 他这个似乎只是把已有的图片干扰,如果你想传递文字信息,还是不行
    yohanechan
        27
    yohanechan  
    OP
       2020-01-30 17:25:35 +08:00
    @autogen 猫坐在毯子上,因为它很温暖。____很温暖?
    yohanechan
        28
    yohanechan  
    OP
       2020-01-30 17:27:27 +08:00
    @vocaloid
    @jdhao 可以 clone 到本地测试,他是输入文字输出图片
    tabris17
        29
    tabris17  
       2020-01-30 19:17:48 +08:00   1
    有个办法可以躲过通用 OCR 程序。

    原理就是利用 GIF 动态图片,两帧来回闪现,把每个字各切一半放在不同的两帧里

    如果是针对性的 OCR 就没办法了
    wpblank
        30
    wpblank  
       2020-01-30 19:18:21 +08:00
    类这子话以?
    似样说可吗
    akira
        31
    akira  
       2020-01-30 20:17:10 +08:00
    人肉 ocr
    tfdetang
        32
    tfdetang  
       2020-01-30 20:18:34 +08:00
    @yohanechan 其实理论上划线并不能规避把。我们训练 ocr 识别模型的时候都会加入干扰线样本进行对抗
    WeaPoon
        33
    WeaPoon  
       2020-01-30 21:31:19 +08:00
    @moshou #4 哈哈 还真是...
    zlowly
        34
    zlowly  
       2020-01-31 00:48:20 +08:00
    根据以往项目的经验(使用用 ABBYY 对含表格的扫描打印件进行 OCR),表格中的文字 ocr 识别率是大幅下降的,即使是表格附近的文字也有影响。所以可以尝试叠加一层表格上去试试看,对人眼应该影响不大的,但 ocr 出来肯定就是极多错别字。
    2kCS5c0b0ITXE5k2
        35
    2kCS5c0b0ITXE5k2  
       2020-01-31 00:58:40 +08:00
    近义字 异体字 或者单纯外号. 甚至外号的异体字和近义字 都可以吧
    dengyutongcn
        36
    dengyutongcn  
       2020-01-31 11:16:51 +08:00
    抽话
    xuanbg
        37
    xuanbg  
       2020-01-31 11:35:09 +08:00
    火星文了解下,吱口令就是火星文的实际运用
    zhihupron
        38
    zhihupron  
       2020-01-31 13:28:23 +08:00
    我似乎知道楼主的意图了
    你是 qq 贴吧小广告的
    keventseng
        39
    keventseng  
       2020-01-31 14:24:38 +08:00
    研表究明,汉字的序顺并不定一能影阅响读,比如当你完看这话句后,才发这现里的字全是都乱的...
    HTSdTt3WygdgQQGe
        40
    HTSdTt3WygdgQQGe  
       2020-01-31 14:57:29 +08:00 via Android
    这 1 样 1 可 1 以 2 不
    pythonee
        41
    pythonee  
       2020-01-31 20:41:22 +08:00 via iPhone
    @q409640976 好主意,另外凯撒加密也是种办法吧
    charlie21
        42
    charlie21  
       2020-02-01 08:32:44 +08:00 via iPhone
    有点儿意思
    S1ngleton
        43
    S1ngleton  
       2022-03-06 20:49:38 +08:00
    楼主,可以试一下这个: //github.com/Leisurelybear/ocr-bye
    虽然界面简陋,后续准备加更多内容,包括点线之类的
    这是 Demo 页面: //leisurelybear.github.io/pages/ocr-bye/index.html
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3480 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 04:42 PVG 12:42 LAX 21:42 JFK 00:42
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86