go-ocr 是一款基于 Golang + ONNX 构建的 OCR 工具库,专注于为 Go 生态提供简单易用、可扩展的文字识别能力。 目前已完成与 PaddleOCR 的对接,支持快速实现图像文字检测与识别。
安装
# 下载包
go get -u github.com/getcharzp/go-ocr
# 下载模型 + 动态链接库
git clone https://huggingface.co/getcharzp/go-ocr
快速开始
通过 OCR 引擎的 RunOCR() 方法能直接进行完整的检测与识别,也可以通过 RunDetect() 与 RunRecognize() 分别进行检测与识别。
package main
import (
ocr "github.com/getcharzp/go-ocr"
"github.com/up-zero/gotool/imageutil"
"log"
)
func main() {
// 按实际情况配置下述路径
config := ocr.Config{
OnnxRuntimeLibPath: "./lib/onnxruntime_amd64.so",
DetModelPath: "./paddle_weights/det.onnx",
RecModelPath: "./paddle_weights/rec.onnx",
DictPath: "./paddle_weights/dict.txt",
}
// 初始化引擎
var engine ocr.Engine
engine, err := ocr.NewPaddleOcrEngine(config)
if err != nil {
log.Fatalf("创建 OCR 引擎失败: %v\n", err)
}
defer engine.Destroy()
// 打开图像
imagePath := "./test.jpg"
img, err := imageutil.Open(imagePath)
if err != nil {
log.Fatalf("加载图像失败: %v\n", err)
}
// OCR识别
results, err := engine.RunOCR(img)
if err != nil {
log.Fatalf("运行 OCR 失败: %v\n", err)
}
for _, result := range results {
log.Printf("识别结果: %v\n", result)
}
}
示例效果
| 原图 | 检测结果 |
|---|---|
![]() |
![]() |

