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

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

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

有没有反 OCR 的轮子?

  •  1
     
  •   yohanechan · 2020-01-30 13:51:51 +08:00 via Android · 10840 次点击
    这是一个创建于 1759 天前的主题,其中的信息可能已经有所发展或是发生改变。
    社交软件会 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   ·   实用小工具   ·   959 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:48 · PVG 04:48 · LAX 12:48 · JFK 15:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.