Sign inSign up

xylplm/media-saber-baidu-ocr

By xylplm

Updated 9 months ago

media-saber-baidu-ocr

Image
0

50K+

xylplm/media-saber-baidu-ocr repository overview

Media Saber Baidu OCR (Go Version)

Media Saber 使用的验证码 OCR 识别服务,成功率 90%以上。现已使用 Go 重写,性能更高,体积更小。

主要改进

  • 更高性能: Go 原生并发支持,处理速度显著提升
  • 更小体积: 最终 Docker 镜像仅约 20MB(原 Python 版本约 1GB)
  • 更低内存: 内存占用减少约 80%
  • 更快启动: 启动时间从秒级降到毫秒级
  • Go 1.25 优化: 利用最新的 Go 编译器优化和性能改进

API 接口

URL: https://IP或者域名/captcha/base64

方法: POST

请求体:

{
  "base64_img": "图片的base64编码字符串"
}

响应:

{
  "result": "识别出的验证码文本(仅字母和数字)"
}

环境要求

  • Go 1.25+ (推荐 1.25.1+)
  • Docker(可选,用于容器化部署)

环境变量配置

在运行前需要设置以下环境变量:

export OCR_APP_ID="你的百度OCR App ID"
export OCR_API_KEY="你的百度OCR API Key"
export OCR_SECRET_KEY="你的百度OCR Secret Key"

Docker 部署

1. 构建镜像
docker build -t media-saber-ocr .
2. 运行容器
docker run -d \
  --name media-saber-ocr \
  -p 9898:9898 \
  -e OCR_APP_ID="your_app_id" \
  -e OCR_API_KEY="your_api_key" \
  -e OCR_SECRET_KEY="your_secret_key" \
  media-saber-ocr
3. 使用预构建镜像(推荐)

你也可以直接使用预构建的Docker镜像,无需本地构建:

docker run -d \
  --name media-saber-ocr \
  -p 9898:9898 \
  -e OCR_APP_ID="your_app_id" \
  -e OCR_API_KEY="your_api_key" \
  -e OCR_SECRET_KEY="your_secret_key" \
  xylplm/media-saber-baidu-ocr:latest
4. 使用 docker-compose(推荐)

创建 docker-compose.yml 文件:

version: "3.8"

services:
  media-saber-ocr:
    image: xylplm/media-saber-baidu-ocr:latest
    ports:
      - "9898:9898"
    environment:
      - OCR_APP_ID=your_app_id
      - OCR_API_KEY=your_api_key
      - OCR_SECRET_KEY=your_secret_key
      - GIN_MODE=release
    restart: unless-stopped
    container_name: media-saber-ocr

运行:

docker-compose up -d

性能对比

指标Python 版本Go 版本改善
镜像大小~1GB~20MB98% ↓
内存占用~200MB~40MB80% ↓
启动时间~3s~50ms98% ↓
并发处理受限优秀显著提升
CPU 使用较高较低30-50% ↓

技术栈

  • 语言: Go 1.25+
  • Web 框架: Gin
  • 图像处理: 原生 Go image 包
  • HTTP 客户端: 原生 net/http
  • 容器化: Docker 多阶段构建

功能特性

  • ✅ 图像预处理(二值化、降噪、边界处理)
  • ✅ 百度 OCR API 集成
  • ✅ 自动 Token 管理和刷新
  • ✅ 并发安全
  • ✅ 优雅的错误处理
  • ✅ 健康检查接口
  • ✅ 云原生部署友好

监控和日志

服务提供以下接口:

  • GET / - 健康检查和欢迎信息
  • POST /captcha/base64 - OCR 识别接口

所有请求和错误都会记录到标准输出,便于容器环境下的日志收集。

故障排除

  1. 环境变量未设置: 确保 OCR_APP_ID、OCR_API_KEY、OCR_SECRET_KEY 正确设置
  2. 网络问题: 确保服务器可以访问百度 AI 接口
  3. 图像格式: 支持常见的图像格式(JPEG、PNG、GIF 等)
  4. Base64 编码: 确保图像正确编码为 base64 格式

Tag summary

Content type

Image

Digest

sha256:64212ea21

Size

17.1 MB

Last updated

9 months ago

docker pull xylplm/media-saber-baidu-ocr