V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
nanwangjkl
V2EX  ›  分享创造

写了一个生成反 OCR 图片的工具

  •  
  •   nanwangjkl · 2023-05-05 04:58:43 +08:00 via Android · 4877 次点击
    这是一个创建于 567 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前来说在贴吧发帖是没问题的,但是微信的准确率还是很高,大家有什么思路吗?



    https://github.com/nanwangjkl/anti-ocr
    39 条回复    2023-07-17 10:39:39 +08:00
    metalvest
        1
    metalvest  
       2023-05-05 08:38:39 +08:00 via Android
    GIF 动图
    DOLLOR
        2
    DOLLOR  
       2023-05-05 08:55:20 +08:00
    加一些 OCR 能识别的干扰性文字?
    dreasky
        3
    dreasky  
       2023-05-05 08:59:50 +08:00
    一样可以识别 人都看不清 有什么意义
    lisonfan
        4
    lisonfan  
       2023-05-05 09:05:17 +08:00   ❤️ 1
    zjsxwc
        5
    zjsxwc  
       2023-05-05 09:09:19 +08:00
    微信机器学习来识别文字很强的,我手写的微信都能识别提取文字
    Rehtt
        6
    Rehtt  
       2023-05-05 09:21:18 +08:00 via Android
    iminto
        7
    iminto  
       2023-05-05 09:52:03 +08:00
    可以说是没用。

    基本上 OCR 都能识别,微信不用说了,我用谷歌相机也能识别出来。
    sujin190
        8
    sujin190  
       2023-05-05 10:01:17 +08:00 via Android
    @dreasky 而且吧,甚至有可能是人已经看不清但是 ocr 任然能识别。。
    723X
        9
    723X  
       2023-05-05 10:37:16 +08:00 via Android
    考虑使用字符画或者残缺字? ocr 相当于直接对抗图片验证码,一般图片验证码识别现在早过图灵测试了
    Thiece
        10
    Thiece  
       2023-05-05 11:27:01 +08:00
    人都阅读困难了,何必呢
    nanwangjkl
        11
    nanwangjkl  
    OP
       2023-05-05 11:27:09 +08:00 via Android
    @dreasky 有一些组合是能骗过的,可惜人也不太看得清🐔
    nanwangjkl
        12
    nanwangjkl  
    OP
       2023-05-05 11:27:46 +08:00 via Android
    @Thiece 当初其实主要是为了在贴吧发帖用的,目前其实已经达到设计目标了
    nanwangjkl
        13
    nanwangjkl  
    OP
       2023-05-05 11:29:45 +08:00 via Android
    @iminto 我的描边设置成 0.5 宽度的时候,成功率很高,可惜这个时候人也不太能看得清了
    metalvest
        14
    metalvest  
       2023-05-05 12:15:58 +08:00   ❤️ 5
    @nanwangjkl 要人看得清就用 GIF 动图,人眼有视觉暂留,ocr 除非专门设计成把 gif 每一帧合并再识别,应该是没办法读取的
    rming
        15
    rming  
       2023-05-05 12:34:29 +08:00
    @metalvest #14 主意不错
    NoOneNoBody
        16
    NoOneNoBody  
       2023-05-05 12:46:12 +08:00
    @metalvest #14 这思路厉害

    想到了最强大脑那个立体拼字的项目……3D 旋转到某个角度能看到字
    dlsflh
        17
    dlsflh  
       2023-05-05 12:48:05 +08:00 via Android
    NLP 能处理火星文吗?我待会去 gpt 3.5 上试一试。
    selca
        18
    selca  
       2023-05-05 13:16:47 +08:00   ❤️ 1
    建议线下交换公钥,线上先商讨聊天的 aes 密钥,然后加密聊天
    Yeen
        19
    Yeen  
       2023-05-05 14:30:02 +08:00
    艺术字体很难识别
    MoRanjiang
        20
    MoRanjiang  
       2023-05-05 14:33:13 +08:00
    @metalvest 试了下,不太行,被贴吧自动删了
    LeegoYih
        21
    LeegoYih  
       2023-05-05 14:34:53 +08:00
    不清楚数字水印会不会影响
    LancerComet
        22
    LancerComet  
       2023-05-05 14:35:01 +08:00
    个人测试过 GIF + 分割帧渲染效果还可以
    但这种如果要防也很好破
    air00dd
        23
    air00dd  
       2023-05-05 14:39:36 +08:00
    air00dd
        24
    air00dd  
       2023-05-05 14:42:31 +08:00
    ╔═╤═╤═╤═╤═╤═╤═╤═╤═╤═╗
    ║卝│卝│卝│卝│卝│卝│卝│卝│卝│卝║
    ║那│有│它│而│中│何│他│奖│而│进║
    ║卝│卝│卝│卝│卝│卝│卝│卝│卝│卝║
    ║,│没│解│然│传│任│于│尔│,│走║
    ║卝│卝│卝│卝│卝│卝│卝│卝│卝│卝║
    ║念│就│理│┊│自│有│关│贝│儿│你║
    ║卝│卝│卝│卝│卝│卝│卝│卝│卝│卝║
    ║概│你│正│﹁│的│没│经│诺│事│带║
    ║卝│卝│卝│卝│卝│卝│卝│卝│卝│卝║
    ║个│么│真│。│他│,│正│的│的│是║
    ╚═╧═╧═╧═╧═╧═╧═╧═╧═╧═╝

    ╔═╤═╤═╤═╤═╤═╤═╤═╤═╤═╗
    ║┊│┊│┊│┊│┊│┊│卝│卝│卝│卝║
    ║┊│┊│┊│┊│┊│┊│曼│如│向│某║
    ║┊│┊│┊│┊│┊│┊│卝│卝│卝│卝║
    ║┊│┊│┊│┊│┊│┊│费│﹂│能│释║
    ║┊│┊│┊│┊│┊│┊│┊│卝│卝│卝║
    ║┊│┊│┊│┊│┊│┊│┊│:│不│解║
    ║┊│┊│┊│┊│┊│┊│┊│卝│卝│卝║
    ║┊│┊│┊│┊│┊│┊│┊│过│你│人║
    ║┊│┊│┊│┊│┊│┊│┊│卝│卝│卝║
    ║┊│┊│┊│┊│┊│┊│┊│说│果│别║
    ╚═╧═╧═╧═╧═╧═╧═╧═╧═╧═╝
    Yeen
        25
    Yeen  
       2023-05-05 15:15:19 +08:00
    盲水印可以试试。端到端加 /解水印
    Drumming
        26
    Drumming  
       2023-05-05 15:31:12 +08:00
    有用,推广引流好使。
    iminto
        27
    iminto  
       2023-05-05 17:23:46 +08:00
    20 多年前吧,Java 特效还很流行,看到过有人用 java awt 做验证码的 gif 特效,做的雪花散落堆放效果,感觉这种效果对人友好,OCR 还不好识别
    sadfQED2
        28
    sadfQED2  
       2023-05-05 17:42:40 +08:00 via Android   ❤️ 1
    你这不就是验证码吗,加干扰线,加旋转,加颜色,然后就是字体粘连。

    最终结果就是人和机器都不认识了。如果机器根据你的数据做针对性训练,那么最终结果就是人不认识但是机器准确识别
    metalvest
        29
    metalvest  
       2023-05-05 19:02:06 +08:00
    @LancerComet 多加些变化就不好破了,对每种变化要分别处理
    OnceUponATime
        30
    OnceUponATime  
       2023-05-05 19:42:51 +08:00
    我有个想法:每个字随机分配 4 种颜色中的一种,然后设置字间距 d=-0.5*字宽。 这样每个字的前半部分会遮住前面一个字的后半部分。因为大脑会自动填充被遮挡住的部分,所以应该不会影响阅读。
    iorilu
        31
    iorilu  
       2023-05-05 20:57:12 +08:00
    微信肯定是 ai 学习识别, 人工打标, 弄几个就能认了
    gam2046
        32
    gam2046  
       2023-05-06 11:09:48 +08:00
    上深度学习的文字识别,在纯图形领域基本上已经无解了。但依旧可以对某一个特定的深度学习模型进行攻击,以达到不影响人类阅读,但是机器无法识别。但这种攻击很难做到通用性,即对于不同的模型均产生攻击效果。

    同时这种攻击手段也需要大量的数据用以验证,生产环境其实很难达到。
    Cyrix686
        33
    Cyrix686  
       2023-05-06 11:32:40 +08:00
    将文打字乱排组列合,不并影阅响读,就算识出别来,机不器知准道确内的容。
    S1ngleton
        34
    S1ngleton  
       2023-05-06 16:24:25 +08:00
    我之前也写过一个,参考一下我这个如何? demo 界面丑了点,但是可以用。
    我增加了旋转,干扰线等
    https://github.com/Leisurelybear/ocr-bye
    raykle
        35
    raykle  
       2023-05-06 17:20:30 +08:00
    为什么要反?
    nanwangjkl
        36
    nanwangjkl  
    OP
       2023-05-08 11:29:31 +08:00
    @raykle 主要是为了在贴吧发锐评,哈哈,当然也会有人拿去发广告
    500
        37
    500  
       2023-05-08 17:32:43 +08:00
    两种思路,一种是如何让 OCR 无法识别图中的文本;一种是如何让 OCR 识别不到正确的文本。
    相较而言第二种更好实现:

    https://s1.ax1x.com/2023/05/08/p90SzJU.png
    OnceUponATime
        38
    OnceUponATime  
       2023-05-25 22:25:13 +08:00
    dagou
        39
    dagou  
       2023-07-17 10:39:39 +08:00
    在 utools 里发现一个类似功能的插件,叫反 ocr 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5750 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:20 · PVG 10:20 · LAX 18:20 · JFK 21:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.