按键精灵对接本地开源ocr文字识别,超精准识别,完全免费(附对接源码)

前言

  • 前几天接了个苹果的脚本,需要进行ocr文字识别,用量多,对接打码平台太烧钱了
  • 于是上GitHub上找开源的ocr识别,发现了这个完全开源免费的 Umi-OCR
  • 对比过其它开源项目,这个识别速度又快又准,部署也方便
  • 唯一不足点就是目前不支持Linux,仅支持Windows
  • 文章内提供了双端的对接源码:按键精灵手机助手按键精灵2014
  • 如果觉得下载麻烦的可以到QQ群文件下载(群号:606759894

Umi-OCR

项目地址:Umi-OCR

  • 免费:本项目所有代码开源,完全免费。
  • 方便:解压即用,离线运行,无需网络。
  • 高效:自带高效率离线OCR引擎。只要电脑性能足够,可以比在线OCR服务更快。
  • 灵活:支持命令行、HTTP接口等多种调用方式。
  • 功能:截图OCR / 批量OCR / 二维码 / 数学公式识别(测试中)

本地端部署

也不需要啥部署的,就安装后设置下就可以了

  1. 下载exe文件并安装,打开
  2. 全局设置->高级->服务
  3. 允许HTTP服务->打勾
  4. 主机->任何可用地址
  5. 端口->可默认也可自定义
  6. 退出重启即可(注:要后台完全退出,而不是简单的点击X)
  7. 打开cmd终端->ipconfig->查看ipv4地址

按键精灵对接源码

源码里的192.168.1.8替换成上面的ipv4地址,如果端口有修改的话也要把1224替换成自己的端口,最后修改下图片路径就可以运行测试了

按键精灵手机助手对接源码

下列代码中并没有对返回值做过多的处理,只提取了识别的第一个位置文本res(0),如果提供的图片识别的文本位置多,那么这部分需要作相应的处理~

    Import "zm.luae"
    zm.init

    Dim 图片路径="/private/var/mobile/Media/Downloads/待识别1.jpg"
    ocr文字识别(图片路径)

    Function ocr文字识别(图片路径)
        Dim link = "http://192.168.1.8:1224/api/ocr"
        Dim headers = {"Content-Type":"application/json"}
        Dim base64 = zm.FileReadBinaryBase64(图片路径)
        Dim body={"base64":base64}
        Dim res = Url.httpPost({"url":link,"data":Encode.TableToJson(body),"header":headers}) 
        TracePrint res
        If InStr(1, res, "\"text\":", true) > 0 Then 
            res = Encode.JsonToTable(res)
            res = res["data"]
            res = res(0)
            Dim 坐标= res["box"]
            Dim 左上坐标数组 = 坐标(0)
            Dim 右下坐标数组=坐标(2)
            dim 左上x=左上坐标数组(0)
            dim 左上y=左上坐标数组(1)
            dim 右下x=右下坐标数组(0)
            dim 右下y=右下坐标数组(1)
            res = res["text"]
            TracePrint "坐标范围为:",左上x,左上y,右下x,右下y
        Else
            res=-1
        End If
        ocr文字识别 = res
        TracePrint res
    End Function

按键精灵2014Pc版对接源码

下列代码中并没有对返回值做过多的处理,只提取了识别的第一个位置文本data[0],如果提供的图片识别的文本位置多,那么这部分需要作相应的处理。
注:源码内使用了神梦插件,需要手动导入,如果你并没有插件,可以到QQ群(606759894)的群文件下载!

Function 对接umiocr(图片路径)
    Dim URL,JsonData,json,username,password,base64
    URL = "http://192.168.1.8:1224/api/ocr"
    Import "SmHTTP.dll"  
    Set SmHTTP = CreateObject("SMWH.SmHTTP")
    base64=Plugin.SMWH.Base64_File(图片路径)
    JsonData = SmHTTP.JsonData( _   
    "base64",base64 , _
    "Content-Type", "application/json" _
    )   
    json = SmHTTP.HTTP_POST(URL, JsonData)
    TracePrint json
    If SmHTTP.GetStatus() = 200 Then 
        If SmHTTP.GetJSON(json, "code")=100 Then 
            Dim 文本左上x, 文本左上y, 文本右上x, 文本右上y, 识别的文本
            文本左上x=SmHTTP.GetJSON(json, "data[0]['box'][0][0]")
            文本左上y=SmHTTP.GetJSON(json, "data[0]['box'][0][1]")
            文本右上x=SmHTTP.GetJSON(json, "data[0]['box'][2][0]")
            文本右上y=SmHTTP.GetJSON(json, "data[0]['box'][2][1]")
            识别的文本 = SmHTTP.GetJSON(json, "data[0]['text']")
            对接umiocr="识别的文本:" & 识别的文本 & ",文本范围:" & 文本左上x & "," & 文本左上y & "," & 文本右上x & "," & 文本右上y
        Else 
            对接umiocr=-1
        End If
    Else 
        对接umiocr=-1
    End If
End Function
Dim 识别结果
识别结果=对接umiocr("C:\11.jpg")
TracePrint 识别结果

http更多参数设置详见:README_HTTP.md

OCR识别效果

视频原速,没有任何加速,基本秒识别

注意点

全套流程+对接源码讲解

按键精灵手机助手对接教程

观看高清视频:【按键精灵对接本地开源ocr文字识别,超精准识别,完全免费(附对接源码)

按键精灵2014PC版对接教程

观看高清视频:【按键精灵2014PC版对接本地开源ocr文字识别,超精准识别,完全免费(附对接源码)


作 者:道无涯
来 源:道无涯博客
链 接: https://www.daowuya.love/按键精灵对接本地开源ocr文字识别/
版 权 声 明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。文章版权归作者所有,未经允许请勿转载!


评论

  1. 哈哈
    Windows Chrome 112.0.0.0
    已编辑
    3 月前
    2024-8-25 1:47:34

    你好, 我安卓按键助手调试输出的res分别是{“code”: 801, “data”: “u8bf7u6c42u4e3au7a7au3002”}和-1,这是识别失败了吗? 我试了下大一点的字也是这种情况 我查询了一下是{“code”: 801, “data”: “请求为空。”} 请求为空?图片路径不对?
    我调试了一下,那个base64里面是有内容的,一长串字母数字,说明图片转换成功了?但是返回的是请求为空
    我找到原因了,那几个dim中应该是有个别字母打错了,

  2. Andy
    Windows Chrome 127.0.0.0
    3 月前
    2024-8-17 11:25:24

    我想用来做答题器,识别题目,但关于检索答案,有没有什么好的思路,办法呢 ?

    • 博主
      Andy
      Windows Edge 127.0.0.0
      3 月前
      2024-8-17 11:28:09

      检索答案对接gpt,一般答题类的推荐直接用控件提取文本

      • 听风
        道无涯
        Windows Edge 130.0.0.0
        4 周前
        2024-10-24 19:51:11

        也不是一定要对接gpt 如果有本地题库的话可以直接使用instr函数 , 做好题库找关键字 分割题目和答案对比就好了

  3. bacd
    Windows Chrome 126.0.0.0
    4 月前
    2024-7-22 14:18:12

    JsonData = SmHTTP.JsonData(
    “base64”,base64 ,

    “ocr.language”,”models/configjapan.txt”,
    “Content-Type”, “application/json”_
    )
    为什么我这样写没效果

  4. 星马梦缘
    Windows Chrome 126.0.0.0
    4 月前
    2024-7-22 2:35:06

    您好 我单独在umi-ocr识别时其他颜色或更低分辨率的文字都能识别
    为什么我用PC端的代码如果不是分辨率极高的黑白图都无法识别呢?
    如何解决这个问题? 谢谢!

  5. Windows Chrome 94.0.4606.71
    5 月前
    2024-7-06 15:34:58

    有办法把字分开吗 单个识别

    • 博主
      Windows Edge 126.0.0.0
      4 月前
      2024-7-16 10:13:41

      分开识别只能从切割图片入手

  6. 大音希声
    Windows Chrome 124.0.0.0
    7 月前
    2024-5-10 13:59:52

    大佬,让手机版按键精灵自己截图然后识别怎么搞啊

  7. 千花
    Windows Chrome 86.0.4240.198
    7 月前
    2024-4-23 13:14:28

    大佬请问我用了您在留言里发的蓝奏云神梦插件, 在
    base64=Plugin.SMWH.Base64File(图片路径)
    JsonData = SmHTTP.JsonData(

    “base64”,base64 ,
    “Content-Type”, “application/json”

    )
    json = SmHTTP.HTTP_POST(URL, JsonData)
    这三个步骤基本都要卡n秒,base64卡10秒都是正常的,但是输出结果又是有内容的,虽然看起来像锟斤拷乱码,请问为什么这么卡呀?TUT
    而且我把这些乱码拿去 json = SmHTTP.HTTP_POST(URL, JsonData)使用也返回不了识别结果,用SmHTTP.GetStatus()检查了返回的是404,我查了接口说明这是404 资源不存在
    ,是否我的本地构建没成功呢?可是我用CMD还是网络共享中心查到的ipv4都是一样的,端口没有改过并且确认exe里的端口也是1224

    • 博主
      千花
      Windows Edge 124.0.0.0
      7 月前
      2024-4-24 22:15:53

      检查下umiocr版本,貌似最新版的接口变化了,可以去我群文件下载代码配套的版本。卡的话应该是因为你的图片太大了,尝试缩小范围,乱码可以尝试将数据json解析后取出来,一般取出来后就正常了。

      • 千花
        道无涯
        Windows Chrome 86.0.4240.198
        7 月前
        2024-4-24 22:51:00

        谢谢!确实是因为我使用了bmp图片的原因,约300kb…换jpg就好了。40也是接口网址填写有误,现在已经顺利使用啦~感谢大佬指点

  8. ddd
    Windows Edge 122.0.0.0
    8 月前
    2024-3-17 0:41:57

    请问按键精灵PC想查看全部的识别内容应该怎么写

    • 博主
      ddd
      Windows Edge 122.0.0.0
      8 月前
      2024-3-17 11:27:52

      遍历获取json里的text值

  9. GG
    Windows Chrome 98.0.4758.139
    8 月前
    2024-3-12 11:56:40

    为什么我的返回是啥也没有啊,哪里有问题

    • 博主
      GG
      Windows Edge 122.0.0.0
      8 月前
      2024-3-12 13:04:16

      没对接好什么的

  10. 孤独不败
    Windows Chrome 75.0.3770.100
    9 月前
    2024-2-29 14:40:26

    能不能提供识别带文字坐标原码。

  11. 小白
    Windows Edge 114.0.1823.51
    已编辑
    10 月前
    2024-2-05 22:34:40

    大佬,文字提取出来,文字的坐标也要怎么写?

    • 博主
      小白
      Windows Edge 121.0.0.0
      9 月前
      2024-2-13 9:44:29

      例子里不都给了吗

      • 孤独不败
        道无涯
        Windows Chrome 75.0.3770.100
        9 月前
        2024-3-06 2:35:38

        手机按键精灵的例子里没有给出坐标

        • 博主
          孤独不败
          Windows Edge 122.0.0.0
          9 月前
          2024-3-06 10:01:17

          补上了

          • 孤独不败
            道无涯
            Windows Chrome 75.0.3770.100
            9 月前
            2024-3-08 16:35:28

            补上坐标的,我试了识别出错,不知哈原回
            当前脚本第20行:发生运行时错误!错误代码:2,错误行号:20,错误信息: attempt to index local ‘id4f4352e69687e5ad97e8af86e588ab3ae59d90e6a087’ (a null value)

            • 博主
              孤独不败
              Windows Edge 122.0.0.0
              8 月前
              2024-3-12 13:03:57

              额 这种问题就别问了,去补补按键精灵基础吧

  12. Y.S
    Windows Chrome 121.0.0.0
    10 月前
    2024-2-04 4:00:55

    您好,不好意思,打擾了。
    想請教您一個問題,
    我是使用2014_PC版的按鍵靈來對接,已導入神夢插件SmHTTP.dll (V1.0.0.0版)、Umi-OCR_Paddle_v2.0.2,
    但第8行有錯誤,如下:
    不曉得哪邊出問題。
    原碼:

    1. Function umiocr(圖片路徑)
    2. Dim URL,JsonData,json,username,password,base64
    3. URL = “http://192.168.1.105:1224/api/ocr
    4. Import “SmHTTP.dll”
    5. Set SmHTTP = CreateObject(“SMWH.SmHTTP”)
    6. base64 = Plugin.SMWH.Base64_File(圖片路徑)
    7. JsonData = SmHTTP.JsonData( _
    8. “base64”,base64 , _
    9. “Content-Type”, “application/json” _
    10. )
    11. json = SmHTTP.HTTP_POST(URL, JsonData)
    12. TracePrint json
    13. If SmHTTP.GetStatus() = 200 Then
    14. If SmHTTP.GetJSON(json, “code”)=100 Then
    15. Dim 文本左上x, 文本左上y, 文本右上x, 文本右上y, 的文本
    16. 文本左上x=SmHTTP.GetJSON(json, “data[0][‘box’][0][0]”)
    17. 文本左上y=SmHTTP.GetJSON(json, “data[0][‘box’][0][1]”)
    18. 文本右上x=SmHTTP.GetJSON(json, “data[0][‘box’][2][0]”)
    19. 文本右上y=SmHTTP.GetJSON(json, “data[0][‘box’][2][1]”)
    20. 識別的文本 = SmHTTP.GetJSON(json, “data[0][‘text’]”)
    21. umiocr=”識別的文本:” & 識別的文本 & “,文本范?:” & 文本左上x & “,” & 文本左上y & “,” & 文本右上x & “,” & 文本右24. 上y
    22. Else
    23. umiocr=-1
    24. End If
    25. Else
    26. umiocr=-1
    27. End If
    28. End Function
    29. Dim 結果
    30. 結果=umiocr(“C:3.1233piccut1.jpg”)
    31. TracePrint 結果

    ======================================================================================
    原碼錯誤提示:
    您的腳本存在下列錯誤,將不能正常運行:
    語義錯誤:腳本 圖片驗証碼測試 ,第8行:沒有找到插件。錯誤附加碼=2526:0

    • 博主
      Y.S
      Android Chrome 120.0.0.0
      10 月前
      2024-2-04 7:40:33

      还差了个smwh插件,群文件有,可移步下载

      • Y.S
        道无涯
        Windows Chrome 121.0.0.0
        10 月前
        2024-2-04 20:50:33

        ^_^ 您好,
        謝謝您的回覆及教學。
        因QQ帳帳太久沒使用了,我無法登入,以及台灣的手機號無法申請新的QQ帳號。
        想請問,是否有其它的地方下載得到 smwh.dll 插件。
        謝謝您。

        • 博主
          Y.S
          Android Chrome 120.0.0.0
          10 月前
          2024-2-04 21:05:28

          给你放蓝奏云了:点我下载神梦插件

          • Y.S
            道无涯
            Windows Chrome 121.0.0.0
            10 月前
            2024-2-04 23:20:43

            可以正常使用了,謝謝您的幫忙。
            非常感謝您。
            ^_^

  13. 小白
    Windows Edge 114.0.1823.51
    10 月前
    2024-2-02 22:39:59

    用不了,服务器上安装完,一截图就提示 MFPlat.DLL,

    • 博主
      小白
      Windows Edge 121.0.0.0
      10 月前
      2024-2-03 10:54:23

      服务器安装新一点的系统,旧的系统只能缺什么补什么,再不行试试rapid版

  14. Js
    Android Chrome 109.0.5414.118
    10 月前
    2024-1-18 9:24:02

    这个项目时间长了就要重启一次/好像是http服务挂掉了一样

    • 博主
      Js
      Windows Edge 120.0.0.0
      10 月前
      2024-1-18 9:52:29

      没测试过长时间,一天内目前是没感觉出啥

    • Jun
      Js
      Windows Chrome 127.0.0.0
      4 月前
      2024-8-02 17:00:17

      我挂游戏半个月以上没发现问题

  15. EE
    Windows Edge 120.0.0.0
    11 月前
    2024-1-11 17:24:20

    有易语言的例子吗?

    • 博主
      EE
      Android Chrome 120.0.0.0
      11 月前
      2024-1-11 17:28:03

      下个视频安排!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇