GetcharZp commited on
Commit
5d4ecd8
·
verified ·
1 Parent(s): c67cd77

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -1,35 +1,42 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ examples/det.jpg filter=lfs diff=lfs merge=lfs -text
37
+ examples/test.jpg filter=lfs diff=lfs merge=lfs -text
38
+ lib/onnxruntime.dll filter=lfs diff=lfs merge=lfs -text
39
+ lib/onnxruntime_amd64.dylib filter=lfs diff=lfs merge=lfs -text
40
+ lib/onnxruntime_amd64.so filter=lfs diff=lfs merge=lfs -text
41
+ lib/onnxruntime_arm64.dylib filter=lfs diff=lfs merge=lfs -text
42
+ lib/onnxruntime_arm64.so filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ .idea
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2025 getcharzp
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md CHANGED
@@ -1,3 +1,85 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h1 align="center">
2
+ <img width="100%" src="./assets/logo.png" alt="">
3
+ </h1>
4
+
5
+ <p align="center">
6
+ <a href="https://github.com/getcharzp/go-ocr/fork" target="blank">
7
+ <img src="https://img.shields.io/github/forks/getcharzp/go-ocr?style=for-the-badge" alt="go-ocr forks"/>
8
+ </a>
9
+ <a href="https://github.com/getcharzp/go-ocr/stargazers" target="blank">
10
+ <img src="https://img.shields.io/github/stars/getcharzp/go-ocr?style=for-the-badge" alt="go-ocr stars"/>
11
+ </a>
12
+ <a href="https://github.com/getcharzp/go-ocr/pulls" target="blank">
13
+ <img src="https://img.shields.io/github/issues-pr/getcharzp/go-ocr?style=for-the-badge" alt="go-ocr pull-requests"/>
14
+ </a>
15
+ <a href='https://github.com/getcharzp/go-ocr/releases'>
16
+ <img src='https://img.shields.io/github/release/getcharzp/go-ocr?&label=Latest&style=for-the-badge'>
17
+ </a>
18
+ </p>
19
+
20
+ go-ocr 是一款基于 Golang + ONNX 构建的 OCR 工具库,专注于为 Go 生态提供简单易用、可扩展的文字识别能力。
21
+ 目前已完成与 PaddleOCR 的对接,支持快速实现图像文字检测与识别。
22
+
23
+ ## 安装
24
+
25
+ ```shell
26
+ # 下载包
27
+ go get -u github.com/getcharzp/go-ocr
28
+
29
+ # 下载模型 + 动态链接库
30
+ git clone https://huggingface.co/getcharzp/go-ocr
31
+ ```
32
+
33
+ ## 快速开始
34
+
35
+ 例如 `Md5()` 方法,使用方式如下所示,其它方法参考功能列表及其测试案例。
36
+
37
+ ```go
38
+ package main
39
+
40
+ import (
41
+ ocr "github.com/getcharzp/go-ocr"
42
+ "github.com/up-zero/gotool/imageutil"
43
+ "log"
44
+ )
45
+
46
+ func main() {
47
+ // 按实际情况配置下述路径
48
+ config := ocr.Config{
49
+ OnnxRuntimeLibPath: "./lib/onnxruntime_amd64.so",
50
+ DetModelPath: "./paddle_weights/det.onnx",
51
+ RecModelPath: "./paddle_weights/rec.onnx",
52
+ DictPath: "./paddle_weights/dict.txt",
53
+ }
54
+
55
+ // 初始化引擎
56
+ var engine ocr.Engine
57
+ engine, err := ocr.NewPaddleOcrEngine(config)
58
+ if err != nil {
59
+ log.Fatalf("创建 OCR 引擎失败: %v\n", err)
60
+ }
61
+ defer engine.Destroy()
62
+
63
+ // 打开图像
64
+ imagePath := "./test.jpg"
65
+ img, err := imageutil.Open(imagePath)
66
+ if err != nil {
67
+ log.Fatalf("加载图像失败: %v\n", err)
68
+ }
69
+
70
+ // OCR识别
71
+ results, err := engine.RunOCR(img)
72
+ if err != nil {
73
+ log.Fatalf("运行 OCR 失败: %v\n", err)
74
+ }
75
+ for _, result := range results {
76
+ log.Printf("识别结果: %v\n", result)
77
+ }
78
+ }
79
+ ```
80
+
81
+ ## 示例效果
82
+
83
+ | 原图 | 检测结果 |
84
+ |-----------------------------------------------------|----------------------------------------------------|
85
+ | <img width="100%" src="./examples/test.jpg" alt=""> | <img width="100%" src="./examples/det.jpg" alt=""> |
examples/det.jpg ADDED

Git LFS Details

  • SHA256: d59c16ce33b13703b4d1ea82c52e83e7af428c26494e4d82b108a7c2b86ddfb6
  • Pointer size: 131 Bytes
  • Size of remote file: 233 kB
examples/det.png ADDED
examples/paddle_test.go ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ package examples
2
+
3
+ import (
4
+ ocr "github.com/getcharzp/go-ocr"
5
+ "github.com/up-zero/gotool/imageutil"
6
+ "log"
7
+ "testing"
8
+ "time"
9
+ )
10
+
11
+ func TestPaddleOcr(t *testing.T) {
12
+ start := time.Now()
13
+ config := ocr.Config{
14
+ OnnxRuntimeLibPath: "../lib/onnxruntime.dll",
15
+ DetModelPath: "../paddle_weights/det.onnx",
16
+ RecModelPath: "../paddle_weights/rec.onnx",
17
+ DictPath: "../paddle_weights/dict.txt",
18
+ }
19
+
20
+ var engine ocr.Engine
21
+ engine, err := ocr.NewPaddleOcrEngine(config)
22
+ if err != nil {
23
+ log.Fatalf("创建 OCR 引擎失败: %v\n", err)
24
+ }
25
+
26
+ defer engine.Destroy()
27
+
28
+ imagePath := "./test.png"
29
+ img, err := imageutil.Open(imagePath)
30
+ if err != nil {
31
+ log.Fatalf("加载图像失败: %v\n", err)
32
+ }
33
+
34
+ // 检测
35
+ boxes, err := engine.RunDetect(img)
36
+ if err != nil {
37
+ log.Fatalf("运行检测失败: %v\n", err)
38
+ }
39
+ t.Logf("检测完成, 耗时:%v\n", time.Since(start))
40
+
41
+ // 绘制检测区域
42
+ detImage := ocr.DrawBoxes(img, boxes)
43
+ imageutil.Save("det.png", detImage, 100)
44
+
45
+ // 识别
46
+ for _, box := range boxes {
47
+ start2 := time.Now()
48
+ result, err := engine.RunRecognize(img, box)
49
+ if err != nil {
50
+ log.Fatalf("运行识别失败: %v\n", err)
51
+ }
52
+ t.Logf("识别结果: %v, 耗时:%v\n", result, time.Since(start2))
53
+ }
54
+
55
+ t.Logf("测试完成,共识别 %d 个文本框, 耗时: %v\n", len(boxes), time.Since(start))
56
+ }
examples/test.jpg ADDED

Git LFS Details

  • SHA256: f34df2d224c9694c972f34a0facbe0187e3a4851d22c8ef2282b063c909cd784
  • Pointer size: 131 Bytes
  • Size of remote file: 288 kB
examples/test.png ADDED
lib/onnxruntime.dll ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dec964ab1ee36cc9b0ae247d13b376627992fc57dec0454354017ab8fd84f1ea
3
+ size 14186016
lib/onnxruntime_amd64.dylib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:283e595e61cf65df7a6b1d59a1616cbd35c8b6399dd90d799d99b71a3ff83160
3
+ size 37411816
lib/onnxruntime_amd64.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:126e4a0191d547839b28a41b9087375711158a3f2c5e7da65ef815f0af6cbe28
3
+ size 22317880
lib/onnxruntime_arm64.dylib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2b885992d3d6fa4130d39ec84a80d7504ff52750027c547bb22c86165f19406a
3
+ size 33481272
lib/onnxruntime_arm64.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0afd69a0ae38c5099fd0e8604dda398ac43dee67cd9c6394b5142b19e82528de
3
+ size 17643256
paddle_weights/det.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61824840edf6e74581898930b8091b1b2318f4b2705a2e8a40ad3de7ac480133
3
+ size 88030804
paddle_weights/dict.txt ADDED
The diff for this file is too large to render. See raw diff
 
paddle_weights/rec.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:26fa4f47060f58e25962b9af6beaee05c8182b90e026c4ecc6db165d9dfdc38a
3
+ size 84468836