爱意满满的作品展示区。
bybyte

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

  •  4
     
  •   bybyte · Mar 25, 2025 · 46898 views
    This topic created in 589 days ago, the information mentioned may be changed or developed.

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

    OCR4: OCR not supported


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

    * Serving Flask app 'main'

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


    用 cursor 画了一个 ui 出来.. 这套接口确实好用.. 位置准确 速度快
    Tink
    Tink
    Mar 25, 2025
    51
    没 arm64 的 image 吗
    TheGreatSage
    TheGreatSage
    Mar 25, 2025
    52
    老哥,方便给个 tar 包嘛,某些原因无法在服务器上科学上网
    SakuraYuki
    SakuraYuki
    Mar 25, 2025
    53
    @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
    yishibakaien
    Mar 25, 2025
    54
    老哥,我本地 mac 起了 docker 后,调用接口报错呀,提了 issue 帮忙看看
    keller
    keller
    Mar 25, 2025
    55
    win11 wsl2 部署成功,测试了 2 张图都能识别, 很棒!
    paopjian
    paopjian
    Mar 25, 2025
    56
    微信的相比于 paddleocr 速度更快更精准,还可以部署到 linux 上?
    bybyte
    bybyte
    OP
    Mar 25, 2025
    57
    @letitbesqzr
    @newbee2000 https://github.com/swigger/wechat-ocr/issues/36 看看你处理器支不支持 avx2 cat /proc/cpuinfo | grep -o avx2 | uniq
    Heng20
    Heng20
    Mar 25, 2025
    58
    牛逼!
    GetOctober
    GetOctober
    Mar 25, 2025
    59
    @bybyte 支持
    keller
    keller
    Mar 25, 2025
    60
    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
    Goalonez
    Mar 25, 2025
    61
    微信截图后的翻译也挺好用的,直接在原图上翻译
    yusf
    yusf
    Mar 25, 2025
    62
    为啥我运行了后,用 nodejs 去请求 /ocr 返回 403 啊 ,求解惑
    asmoker
    asmoker
    Mar 25, 2025
    63
    我操,好使啊,还快,比 pd 啥 ocr 不知道高到哪里去了 😄
    iorilu
    iorilu
    Mar 25, 2025
    64
    原始版本是怎么出来得

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

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

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

    在 win 上能不能做到

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

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

    zjun5556
    zjun5556
    Mar 25, 2025
    93
    我就说逛 v 站能学到好东西
    unco020511
    unco020511
    Mar 25, 2025
    94
    这个在 windows 上能运行吗
    lizhenda
    lizhenda
    Mar 25, 2025
    95
    真厉害,能不能搞成个库调用
    ko20
    ko20
    Mar 25, 2025
    96
    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
    000sitereg
    Mar 25, 2025
    97
    star fork 一气呵成
    wq2016
    wq2016
    Mar 25, 2025
    98
    我想要语音识别 - -
    macaodoll
    macaodoll
    Mar 25, 2025
    99
    人才......
    mywaiting
    mywaiting
    Mar 25, 2025
    100
    这个想法我也有过,啧啧,这行动力简直爆炸!
    1  2  3  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1302 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 334ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    ♥ Do have faith in what you're doing.