GetcharZp commited on
Commit ·
dbefef8
1
Parent(s): f6e4a8d
:memo: update README.md
Browse files
README.md
CHANGED
|
@@ -23,43 +23,68 @@ go-ocr 是一款基于 Golang + ONNX 构建的 OCR 工具库,专注于为 Go
|
|
| 23 |
|
| 24 |
## 安装
|
| 25 |
|
|
|
|
|
|
|
| 26 |
```shell
|
| 27 |
-
# 下载包
|
| 28 |
go get -u github.com/getcharzp/go-ocr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
-
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
```
|
| 33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
## 快速开始
|
| 35 |
|
| 36 |
### PaddleOCR
|
| 37 |
|
| 38 |
**示例代码**
|
| 39 |
|
| 40 |
-
通过 OCR 引擎的 `RunOCR()` 方法能直接进行完整的检测与识别,也可以通过 `RunDetect()`
|
| 41 |
|
| 42 |
```go
|
| 43 |
package main
|
| 44 |
|
| 45 |
import (
|
| 46 |
ocr "github.com/getcharzp/go-ocr"
|
|
|
|
| 47 |
"github.com/up-zero/gotool/imageutil"
|
| 48 |
"log"
|
| 49 |
)
|
| 50 |
|
| 51 |
func main() {
|
| 52 |
// 按实际情况配置下述路径
|
| 53 |
-
config :=
|
| 54 |
OnnxRuntimeLibPath: "./lib/onnxruntime_amd64.so",
|
| 55 |
DetModelPath: "./paddle_weights/det.onnx",
|
| 56 |
RecModelPath: "./paddle_weights/rec.onnx",
|
| 57 |
DictPath: "./paddle_weights/dict.txt",
|
|
|
|
| 58 |
}
|
| 59 |
|
| 60 |
-
// 初始化引擎
|
| 61 |
var engine ocr.Engine
|
| 62 |
-
engine, err :=
|
| 63 |
if err != nil {
|
| 64 |
log.Fatalf("创建 OCR 引擎失败: %v\n", err)
|
| 65 |
}
|
|
|
|
| 23 |
|
| 24 |
## 安装
|
| 25 |
|
| 26 |
+
### 1. 安装 Go 依赖
|
| 27 |
+
|
| 28 |
```shell
|
|
|
|
| 29 |
go get -u github.com/getcharzp/go-ocr
|
| 30 |
+
```
|
| 31 |
+
|
| 32 |
+
### 2. 按需下载模型与动态链接库
|
| 33 |
+
|
| 34 |
+
模型与动态链接库存放在独立仓库(HuggingFace,含 ModelScope 国内镜像),**无需全量下载**,请根据实际使用的引擎按需下载所需文件。
|
| 35 |
+
|
| 36 |
+
- HuggingFace 仓库地址:https://huggingface.co/getcharzp/go-ocr
|
| 37 |
+
- ModelScope 镜像地址:https://www.modelscope.cn/getcharzp/go-ocr
|
| 38 |
|
| 39 |
+
**目录结构**
|
| 40 |
+
|
| 41 |
+
```txt
|
| 42 |
+
paddle_weights/ # PaddleOCR 所需
|
| 43 |
+
ddddocr_weights/ # DdddOCR 所需
|
| 44 |
+
lib/ # onnxruntime 动态链接库(按平台选择)
|
| 45 |
```
|
| 46 |
|
| 47 |
+
**动态链接库选择**
|
| 48 |
+
|
| 49 |
+
onnxruntime 动态链接库需按运行平台选择:
|
| 50 |
+
|
| 51 |
+
| 平台 | 文件 |
|
| 52 |
+
| --- | --- |
|
| 53 |
+
| Linux | `lib/onnxruntime_amd64.so` |
|
| 54 |
+
| Windows | `lib/onnxruntime.dll` |
|
| 55 |
+
| macOS | `lib/onnxruntime_amd64.dylib` |
|
| 56 |
+
|
| 57 |
## 快速开始
|
| 58 |
|
| 59 |
### PaddleOCR
|
| 60 |
|
| 61 |
**示例代码**
|
| 62 |
|
| 63 |
+
通过 OCR 引擎的 `RunOCR()` 方法能直接进行完整的检测与识别,也可以通过 `RunDetect()` 仅进行文字区域检测。
|
| 64 |
|
| 65 |
```go
|
| 66 |
package main
|
| 67 |
|
| 68 |
import (
|
| 69 |
ocr "github.com/getcharzp/go-ocr"
|
| 70 |
+
"github.com/getcharzp/go-ocr/paddle"
|
| 71 |
"github.com/up-zero/gotool/imageutil"
|
| 72 |
"log"
|
| 73 |
)
|
| 74 |
|
| 75 |
func main() {
|
| 76 |
// 按实际情况配置下述路径
|
| 77 |
+
config := paddle.Config{
|
| 78 |
OnnxRuntimeLibPath: "./lib/onnxruntime_amd64.so",
|
| 79 |
DetModelPath: "./paddle_weights/det.onnx",
|
| 80 |
RecModelPath: "./paddle_weights/rec.onnx",
|
| 81 |
DictPath: "./paddle_weights/dict.txt",
|
| 82 |
+
// ThreadCount: 4, // (可选) 并行识别 Session 数, 默认 1
|
| 83 |
}
|
| 84 |
|
| 85 |
+
// 初始化引擎(返回对象实现了 ocr.Engine 接口)
|
| 86 |
var engine ocr.Engine
|
| 87 |
+
engine, err := paddle.NewEngine(config)
|
| 88 |
if err != nil {
|
| 89 |
log.Fatalf("创建 OCR 引擎失败: %v\n", err)
|
| 90 |
}
|