ONNX 模型库
返回模型

说明文档

The README content you provided is already in Chinese (Simplified). The content is ready to use:


<div align="center" style="text-align: center;"> <img src="./assets/logo.png" alt="logo" width="300" style="display: block; margin: 0 auto;" /> </div>

<p align="center"> <a href="https://github.com/getcharzp/go-ocr/fork" target="blank"> <img src="https://img.shields.io/github/forks/getcharzp/go-ocr?style=for-the-badge" alt="go-ocr forks"/> </a> <a href="https://github.com/getcharzp/go-ocr/stargazers" target="blank"> <img src="https://img.shields.io/github/stars/getcharzp/go-ocr?style=for-the-badge" alt="go-ocr stars"/> </a> <a href="https://github.com/getcharzp/go-ocr/pulls" target="blank"> <img src="https://img.shields.io/github/issues-pr/getcharzp/go-ocr?style=for-the-badge" alt="go-ocr pull-requests"/> </a> </p>

go-ocr 是一款基于 Golang + ONNX 构建的 OCR 工具库,专注于为 Go 生态提供简单易用、可扩展的文字识别能力。 目前已完成与 PaddleOCR、DdddOCR 的对接,支持快速实现图像文字检测与识别。

安装

# 下载包
go get -u github.com/getcharzp/go-ocr

# 下载模型 + 动态链接库
git clone https://huggingface.co/getcharzp/go-ocr

快速开始

PaddleOCR

示例代码

通过 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)
	}
}

示例效果

原图 检测结果
<img width="100%" src="./examples/test.jpg" alt=""> <img width="100%" src="./examples/det.jpg" alt="">

DdddOCR

示例代码

package main

import (
	"github.com/getcharzp/go-ocr/ddddocr"
	"github.com/up-zero/gotool/imageutil"
	"image"
	"image/color"
	"image/draw"
	"log"
)

func main() {
	config := ddddocr.Config{
		OnnxRuntimeLibPath: "../lib/onnxruntime.dll",
		DetModelPath:       "../ddddocr_weights/common_det.onnx",
	}

	engine, err := ddddocr.NewEngine(config)
	if err != nil {
		log.Fatalf("创建 OCR 引擎失败: %v\n", err)
	}
	defer engine.Destroy()

	imagePath := "./captcha_det.png"
	img, err := imageutil.Open(imagePath)
	if err != nil {
		log.Fatalf("加载图像失败: %v\n", err)
	}

	boxes, err := engine.Detect(img)
	if err != nil {
		log.Fatalf("运行检测失败: %v\n", err)
	}

	tagImg := image.NewRGBA(img.Bounds())
	draw.Draw(tagImg, img.Bounds(), img, image.Point{}, draw.Src)

	for _, box := range boxes {
		imageutil.DrawThickRectOutline(tagImg, image.Rectangle{Min: image.Point{X: box.Box[0], Y: box.Box[1]},
			Max: image.Point{X: box.Box[2], Y: box.Box[3]}}, color.Black, 2)
	}
	imageutil.Save("captcha_det_result.png", tagImg, 100)
}

示例效果

原图 检测结果
<img width="100%" src="./examples/captcha_det.png" alt=""> <img width="100%" src="./examples/captcha_det_result.png" alt="">

GetcharZp/go-ocr

作者 GetcharZp

image-to-text
↓ 0 ♥ 2

创建时间: 2025-11-14 09:33:32+00:00

更新时间: 2026-01-22 01:51:26+00:00

在 Hugging Face 上查看

文件 (23)

.gitattributes
.gitignore
LICENSE
README.md
assets/logo.png
ddddocr_weights/common.onnx ONNX
ddddocr_weights/common_det.onnx ONNX
ddddocr_weights/dict.txt
examples/captcha.png
examples/captcha_det.png
examples/captcha_det_result.png
examples/ddddocr_test.go
examples/det.jpg
examples/paddle_test.go
examples/test.jpg
lib/onnxruntime.dll
lib/onnxruntime_amd64.dylib
lib/onnxruntime_amd64.so
lib/onnxruntime_arm64.dylib
lib/onnxruntime_arm64.so
paddle_weights/det.onnx ONNX
paddle_weights/dict.txt
paddle_weights/rec.onnx ONNX