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

把微信的 OCR 功能提取出来做 Docker 服务

  •  4
     
  •   bybyte ·
    golangboy · 15 天前 · 26107 次点击

    众所周知,微信的 OCR 识别又快又准,于是就想提出来代替某某桨的识别

    https://github.com/golangboy/wxocr

    docker 拉取下来 直接 post 请求即可

    docker pull golangboyme/wxocr
    
    curl -X POST http://localhost:5000/ocr \
      -H "Content-Type: application/json" \
      -d '{"image": "BASE64_ENCODED_IMAGE_DATA"}'
    
    237 条回复    2025-04-06 13:10:06 +08:00
    1  2  3  
    csx163
        1
    csx163  
       15 天前
    nb ,不知道是不是和 win 版微信一个代码
    liuliuliuliu
        2
    liuliuliuliu  
       15 天前
    啊哈哈哈 牛逼 这个套路可以
    maocat
        3
    maocat  
       15 天前 via Android
    你是真的牛
    GetOctober
        4
    GetOctober  
       15 天前
    哈哈哈 牛牛牛 赶快试试
    Numbcoder
        5
    Numbcoder  
       15 天前
    🐂🍺,好奇怎么实现的,图片会发到微信服务器吗?
    x2ve
        6
    x2ve  
       15 天前
    需要联网吗
    xuangoer666
        7
    xuangoer666  
       15 天前 via Android
    南山必胜客警告
    zgsi
        8
    zgsi  
       15 天前
    好家伙,不需要鉴权吗?
    someonesnone
        9
    someonesnone  
       15 天前
    南山必胜客警告 +1
    Blanke
        10
    Blanke  
       15 天前
    楼上的都不看看代码的吗,本地实现,用 ocr 模型这样实现的
    bybyte
        11
    bybyte  
    OP
       15 天前   ❤️ 2
    @x2ve 不用全本地
    gbw1992
        12
    gbw1992  
       15 天前
    🐂🐸
    bybyte
        13
    bybyte  
    OP
       15 天前
    各位可以进去看看 README 先,本地模型实现的
    cmsyh29
        14
    cmsyh29  
       15 天前
    🐮
    GetOctober
        15
    GetOctober  
       15 天前
    @bybyte 尝试了一下,返回结果是空:
    ```
    {'result': {'errcode': 0, 'height': 190, 'imgpath': 'temp/ed9b119d-dc84-4a77-b3d2-8cd053e62fe5.png', 'ocr_response': [], 'width': 930}}
    ```
    ik
        16
    ik  
       15 天前 via iPhone
    大哥,哈啤酒🍻
    bybyte
        17
    bybyte  
    OP
       15 天前
    @GetOctober 这返回错误码是正常只是没识别到文字吧,是不是你图片上没文字?换张图试试?我这边测过了
    wqsdfdddd
        18
    wqsdfdddd  
       15 天前
    图片翻译能提取出来不?
    感觉它的翻译效果挺好的, 主要是能保持原有样式
    565656
        19
    565656  
       15 天前 via iPhone   ❤️ 1
    @csx163 微信现在三端同代码了
    bybyte
        20
    bybyte  
    OP
       15 天前
    @xuangoer666 我只是把一个大佬的项目整合一下,应该不会吧,有先例吗,有我就删库了
    keller
        21
    keller  
       15 天前
    666 下午试试
    sunfly
        22
    sunfly  
       15 天前
    牛逼趁着删库前赶紧 clone 下来
    woshivu
        23
    woshivu  
       15 天前
    我去,我怎么感觉微信的 ocr 不如其他的识别精准呀
    leyoumake1997
        24
    leyoumake1997  
       15 天前
    牛娃
    GetOctober
        25
    GetOctober  
       15 天前
    https://imgur.com/a/uk6an1c
    @bybyte 这个是测试的图片
    bigtear
        26
    bigtear  
       15 天前 via Android
    不错的项目,starstar
    bybyte
        27
    bybyte  
    OP
       15 天前
    @GetOctober 我测试返回:OCR 识别成功!结果如下:
    {'errcode': 0, 'height': 190, 'imgpath': 'temp/4ec69547-1144-42ec-9911-dc1c4c932d01.png', 'ocr_response': [{'bottom': 74.109375, 'left': 36.328125, 'rate': 0.9704948663711548, 'right': 714.9375, 'text': 'WeChat OCR API Docker 微信 OCR API Docker', 'top': 43.59375}, {'bottom': 124.96875, 'left': 36.328125, 'rate': 0.9854483604431152, 'right': 614.671875, 'text': "A Dockerized REST APl service for text recognition using WeChat's OCR engine.", 'top': 108.984375}, {'bottom': 158.390625, 'left': 37.78125, 'rate': 0.9666333198547363, 'right': 494.0625, 'text': '使用微信 OCR 引擎进行文本识别的 Dockerized REST API 服务。', 'top': 139.5}], 'width': 930}
    maxwel1
        28
    maxwel1  
       15 天前
    哈哈哈,腾讯出了个 linux 版本亏大了,还有薅腾讯羊毛的。不过微信不同客户端的代码实现不太一样,不知道跟移动端是不是一样效果
    lovestudykid
        29
    lovestudykid  
       15 天前   ❤️ 1
    微信的条码、二维码识别也是遥遥领先,试过很多 AppStore 里专门的条码扫描 APP ,都不如微信。要是能做成一个单独的 APP 就好了。
    bigtan
        30
    bigtan  
       15 天前
    我看似乎跟 https://modelscope.cn/models/iic/cv_convnextTiny_ocr-recognition-general_damo 这个项目很像。我在本地部署了一个验证码识别的服务,用的是 https://huggingface.co/xiaolv/ocr-captcha, 基于读光训练的。
    dbit
        31
    dbit  
       15 天前
    确实有的图片一个字也识别不出来
    sunnysab
        32
    sunnysab  
       15 天前
    @lovestudykid #29 微信(手机版)的二维码识别貌似用云端的。记得看到过相关技术文章,而且实际也能感觉出来。
    dbit
        33
    dbit  
       15 天前
    @GetOctober #25 这个图片我试了也识别不出来
    MonkeyJon
        34
    MonkeyJon  
       15 天前
    我刚准备执行,发现公司不让用 docker ,已经卸载了
    swat199538
        35
    swat199538  
       15 天前
    @sunnysab 求技术文章,最近在优化公司的条形码识别和二维码识别速度
    yulgang
        36
    yulgang  
       15 天前
    🐂🍺
    letitbesqzr
        37
    letitbesqzr  
       15 天前
    wxocr-master docker run -p 5000:5000 --name wechat-ocr-api golangboyme/wxocr

    OCR4: OCR not supported


    不支持 linux 么?
    lengrongec
        38
    lengrongec  
       15 天前
    一键封神
    cheese
        39
    cheese  
       15 天前
    @lovestudykid 真*遥遥领先,又快又准
    break2002
        40
    break2002  
       15 天前
    感谢,不会代码的人也用上了.
    lovestudykid
        41
    lovestudykid  
       15 天前
    @sunnysab 应该不是云端的,你看一下这个 repo 基于的 repo 就知道了,二维码识别的接口也逆向出来了
    xuangoer666
        42
    xuangoer666  
       15 天前 via Android
    @bybyte #20 不好意思哈,没细看,看标题以为你是逆向了微信
    kk2syc
        43
    kk2syc  
       15 天前
    @swat199538 别想了。只是提取了 OCR 模型出来用,模型本身是黑盒,你用到公司里准备吃官司
    newbee2000
        44
    newbee2000  
       15 天前
    怎么用呢,docker 部署完之后提示
    OCR4: OCR not supported

    * Serving Flask app 'main'

    OCR4: OCR not supported
    ik
        45
    ik  
       15 天前
    我用 Linux 也识别不出来 #25 这个图片 , 好奇怪
    bybyte
        46
    bybyte  
    OP
       15 天前
    @newbee2000
    @letitbesqzr
    @GetOctober 我在本地 window+docker 测试的都能正常,在云服务器上测试也是错误码 0 但是结果空,我猜测可能是不是模型用到什么硬件相关的 future 但是主机没提供所以出现这个问题
    zqqian
        47
    zqqian  
       15 天前
    LZ 的项目确实有 bug ,好几个图片都是返回空,跟 15 楼的结果一样
    zggsong
        48
    zggsong  
       15 天前   ❤️ 1
    我是做成了 C#库、里面带个 demo 挺好用
    https://github.com/ZGGSONG/WeChatOcr
    shoaly
        49
    shoaly  
       15 天前
    期待一个二维码的版本出来
    letitbesqzr
        50
    letitbesqzr  
       15 天前   ❤️ 2


    用 cursor 画了一个 ui 出来.. 这套接口确实好用.. 位置准确 速度快
    Tink
        51
    Tink  
       15 天前
    没 arm64 的 image 吗
    TheGreatSage
        52
    TheGreatSage  
       15 天前
    老哥,方便给个 tar 包嘛,某些原因无法在服务器上科学上网
    SakuraYuki
        53
    SakuraYuki  
       15 天前
    @GetOctober #25 这个没啥识别难度吧,我用苹果自带的离线 ocr 识别出来是:WeChat OCR API Docker 微信 OCR API Docker

    A Dockerized REST API service for text recognition using WeChat's OCR engine.

    使用微信 OCR 引擎进行文本识别的 Dockerized REST AP ! 服务。 就最后那个 api 的 i 被下划线影响识别成感叹号了
    yishibakaien
        54
    yishibakaien  
       15 天前
    老哥,我本地 mac 起了 docker 后,调用接口报错呀,提了 issue 帮忙看看
    keller
        55
    keller  
       15 天前
    win11 wsl2 部署成功,测试了 2 张图都能识别, 很棒!
    paopjian
        56
    paopjian  
       15 天前
    微信的相比于 paddleocr 速度更快更精准,还可以部署到 linux 上?
    bybyte
        57
    bybyte  
    OP
       15 天前
    @letitbesqzr
    @newbee2000 https://github.com/swigger/wechat-ocr/issues/36 看看你处理器支不支持 avx2 cat /proc/cpuinfo | grep -o avx2 | uniq
    Heng20
        58
    Heng20  
       15 天前
    牛逼!
    GetOctober
        59
    GetOctober  
       15 天前
    @bybyte 支持
    keller
        60
    keller  
       15 天前
    25 楼的图我测试也没啥问题

    {
    "result": {
    "errcode": 0,
    "height": 190,
    "imgpath": "temp/751a6b59-dc79-485c-93e0-94e0bf4bf7ae.png",
    "ocr_response": [
    {
    "bottom": 74.109375,
    "left": 36.328125,
    "rate": 0.9704948663711548,
    "right": 714.9375,
    "text": "WeChat OCR API Docker 微信 OCR API Docker",
    "top": 43.59375
    },
    {
    "bottom": 124.96875,
    "left": 36.328125,
    "rate": 0.9854483604431152,
    "right": 614.671875,
    "text": "A Dockerized REST APl service for text recognition using WeChat's OCR engine.",
    "top": 108.984375
    },
    {
    "bottom": 158.390625,
    "left": 37.78125,
    "rate": 0.9666333198547363,
    "right": 494.0625,
    "text": "使用微信 OCR 引擎进行文本识别的 Dockerized REST API 服务。",
    "top": 139.5
    }
    ],
    "width": 930
    }
    }
    Goalonez
        61
    Goalonez  
       15 天前
    微信截图后的翻译也挺好用的,直接在原图上翻译
    zdw189803631
        62
    zdw189803631  
       15 天前
    为啥我运行了后,用 nodejs 去请求 /ocr 返回 403 啊 ,求解惑
    asmoker
        63
    asmoker  
       15 天前
    我操,好使啊,还快,比 pd 啥 ocr 不知道高到哪里去了 😄
    iorilu
        64
    iorilu  
       15 天前
    原始版本是怎么出来得

    不可能逆向 wechat 得把
    Songxwn
        65
    Songxwn  
       15 天前
    支持,给星星了
    BreezeConfirming
        66
    BreezeConfirming  
       15 天前
    呜呼谢谢楼主。从隔壁来的,之前就看到 issue 有说 linux ocr 实现了那不进一步 docker 。之前一直想做奈何没有技术力,现在真的造福社区了!
    IssacTseng
        67
    IssacTseng  
       15 天前
    能否把微信的截图和 OCR 一起提出来做成一个独立软件,这样就完美了。。。
    A3m0n
        68
    A3m0n  
       15 天前
    @letitbesqzr 和楼主合作下,把这个 U I 做进 Docker 里面。
    blushyes
        69
    blushyes  
       15 天前
    不能商用吗?
    gwy15
        70
    gwy15  
       15 天前
    mark 一下,看看能不能对接到 mtphotos
    3499
        71
    3499  
       15 天前
    TanKuku
        72
    TanKuku  
       15 天前
    {"error":"400 Bad Request: The browser (or proxy) sent a request that this server could not understand."}
    Darley
        73
    Darley  
       15 天前
    只是做识别放不进应用场景啊,我用的图片理解大模型,直接 json 输出想要的格式
    sn0wdr1am
        74
    sn0wdr1am  
       15 天前
    没有开源协议,有侵权风险。

    年轻人就是猛,抄起键盘就是干。

    南山必胜客都不怕。
    TanKuku
        75
    TanKuku  
       15 天前
    @TanKuku #69 换了一个转换 base64 的工具,就 ok 了
    gorira
        76
    gorira  
       15 天前
    日文韩文效果怎么样?可以的话是个翻译本子的好利器(
    daimaosix
        77
    daimaosix  
       15 天前
    牛逼,非常好用!配上 czyt 大哥提供的前端屌爆了!
    iorilu
        78
    iorilu  
       15 天前
    看这 docker 实现, 意思是可以在 linux 脱离安装微信

    在 win 上能不能做到

    意思就是只放必要得文件, 不一定安装微信, 这样可以独立做成一个软件包, 供 python, c 等其他语言直接调用
    lloovve
        79
    lloovve  
       15 天前 via iPhone
    Docker 下不了了
    bzj
        80
    bzj  
       15 天前
    楼主好人,微信那个软件基本上废了
    simo
        81
    simo  
       15 天前
    一直想做没做的事儿,你搞出来了,nb !
    yiqiao
        82
    yiqiao  
       15 天前
    佩服楼上的行动力。
    superhuai11
        83
    superhuai11  
       15 天前
    mac !!!
    paradoxs
        84
    paradoxs  
       15 天前
    希望能增加一个功能:支持直接上传本地 pdf 文件(自带 pdf 转 base64 )

    这个功能非常重要。 不然要我们一张一张图片手动的去转 base64 ,很麻烦。
    conglovely
        85
    conglovely  
       15 天前
    楼上老哥的行动力是真强
    imNull
        86
    imNull  
       15 天前
    每次使用次数不多的 macOS 用户也可以试试我开发的这个 https://www.v2ex.com/t/1117414
    bybyte
        87
    bybyte  
    OP
       15 天前
    @blushyes
    @sn0wdr1am 已经补上协议了,可不敢,南山给我发个邮件我立马就删了
    roding
        88
    roding  
       15 天前
    支持一下!
    Liqiniu
        89
    Liqiniu  
       15 天前
    🐂🐸
    GetOctober
        90
    GetOctober  
       15 天前
    @bybyte linux 不能执行问题解决了,应该是你编译的 wcorc 存在问题
    V3geD4g
        91
    V3geD4g  
       15 天前
    使用 docker run -d -p 5000:5000 --name wechat-ocr-api golangboyme/wxocr 命令 启动失败,查看 log 报错 OCR4: OCR not supported 是咋回事呢
    Guidoo
        92
    Guidoo  
       15 天前
    接口不错,我用 NextJs 做了一个页面 效果如下:

    zjun5556
        93
    zjun5556  
       15 天前
    我就说逛 v 站能学到好东西
    unco020511
        94
    unco020511  
       15 天前
    这个在 windows 上能运行吗
    lizhenda
        95
    lizhenda  
       15 天前
    真厉害,能不能搞成个库调用
    ko20
        96
    ko20  
       15 天前
    OP 可以帮我看看为什么 OCR 失败了吗,如下图

    https://image.940304.xyz/i/2025/03/25/67e26fd5b19b8.jpg

    自部署了,但是返回如下

    ```
    {"result":{"errcode":6,"height":0,"imgpath":"temp/6ff6e294-115f-4cf2-b897-1e2143f50761.png","ocr_response":[],"width":0}}

    ```

    看了一下容器日志,如下

    ```
    xxx - - [25/Mar/2025 08:39:34] "POST /ocr HTTP/1.1" 200 -
    xxx - - [25/Mar/2025 08:41:44] "GET /ocr HTTP/1.1" 405 -
    xxx - - [25/Mar/2025 08:41:44] "GET / HTTP/1.1" 404 -
    xxx - - [25/Mar/2025 08:41:44] "GET / HTTP/1.1" 404 -
    xxx - - [25/Mar/2025 08:42:44] "GET /ocr HTTP/1.1" 405 -
    xxx - - [25/Mar/2025 08:44:36] "POST /ocr HTTP/1.1" 200 -
    ```
    000sitereg
        97
    000sitereg  
       15 天前
    star fork 一气呵成
    wq2016
        98
    wq2016  
       15 天前
    我想要语音识别 - -
    macaodoll
        99
    macaodoll  
       15 天前
    人才......
    mywaiting
        100
    mywaiting  
       15 天前
    这个想法我也有过,啧啧,这行动力简直爆炸!
    1  2  3  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   955 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:09 · PVG 06:09 · LAX 15:09 · JFK 18:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.