XOcr Api - 文字识别 API
基于 FastAPI + Tesseract OCR 的文字识别服务,支持中英文识别和文本坐标返回。
环境配置
开发环境 (Windows)
- 安装依赖:
pip install -r requirements.txt
- 配置
.env文件(已创建):
TESSERACT_CMD=C:\Program Files\Tesseract-OCR\tesseract.exe
- 启动服务:
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/tesseract(Docker 环境已自动配置)
- Windows:
Description
Languages
Python
64.8%
Dockerfile
35.2%