2026-02-01 22:00:45 +08:00
2026-02-01 21:30:08 +08:00
2026-02-01 21:30:08 +08:00
2026-02-01 21:30:08 +08:00
2026-02-01 21:30:08 +08:00
2026-02-01 21:30:08 +08:00
2026-02-01 22:00:45 +08:00
2026-02-01 21:30:08 +08:00

XOcr Api - 文字识别 API

基于 FastAPI + Tesseract OCR 的文字识别服务,支持中英文识别和文本坐标返回。

环境配置

开发环境 (Windows)

  1. 安装依赖:
pip install -r requirements.txt
  1. 配置 .env 文件(已创建):
TESSERACT_CMD=C:\Program Files\Tesseract-OCR\tesseract.exe
  1. 启动服务:
uvicorn main:app --host 0.0.0.0 --port 8080 --reload

生产环境 (Docker)

首次部署

# 构建镜像
docker-compose build

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

更新到 Git 最新版本

在生产服务器上执行以下步骤更新服务:

# 1. 拉取最新代码
git pull origin main

# 2. 重新构建镜像
docker-compose build

# 3. 停止并删除旧容器
docker-compose down

# 4. 启动新容器
docker-compose up -d

# 5. 查看服务状态和日志
docker-compose logs -f

一键更新命令:

git pull origin main && docker-compose down && docker-compose build && docker-compose up -d && docker-compose logs -f

注意事项:

  • 更新前建议先备份重要数据
  • 如果使用特定分支,将 main 替换为你的分支名
  • 更新过程中服务会短暂中断,建议在低峰期执行

API 使用

POST /ocr

上传图片进行文字识别,返回识别文本和坐标信息。

请求:

curl -X POST "http://localhost:8080/ocr" \
  -F "file=@test_image.png"

响应:

{
  "text": "完整识别文本",
  "details": [
    {
      "text": "文本内容",
      "confidence": 95,
      "bbox": {
        "left": 10,
        "top": 30,
        "width": 100,
        "height": 20
      }
    }
  ]
}

测试

运行测试脚本:

python test_ocr_bbox.py

会自动创建测试图片,调用 API并生成带有边界框的可视化结果。

项目结构

XOcr_Api/
├── main.py              # FastAPI 应用
├── requirements.txt     # Python 依赖
├── Dockerfile          # Docker 镜像构建
├── docker-compose.yml  # Docker Compose 配置
├── .env                # 开发环境配置(不提交)
├── .env.example        # 环境配置模板
├── .gitignore          # Git 忽略文件
└── test_ocr_bbox.py    # 测试脚本

配置说明

  • TESSERACT_CMD: Tesseract OCR 可执行文件路径
    • Windows: C:\Program Files\Tesseract-OCR\tesseract.exe
    • Linux: /usr/bin/tesseractDocker 环境已自动配置)
Description
No description provided
Readme 29 KiB
Languages
Python 64.8%
Dockerfile 35.2%