# XOcr Api - 文字识别 API 基于 FastAPI + Tesseract OCR 的文字识别服务,支持中英文识别和文本坐标返回。 ## 环境配置 ### 开发环境 (Windows) 1. 安装依赖: ```bash pip install -r requirements.txt ``` 2. 配置 `.env` 文件(已创建): ```env TESSERACT_CMD=C:\Program Files\Tesseract-OCR\tesseract.exe ``` 3. 启动服务: ```bash uvicorn main:app --host 0.0.0.0 --port 8080 --reload ``` ### 生产环境 (Docker) #### 首次部署 ```bash # 构建镜像 docker-compose build # 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f ``` #### 更新到 Git 最新版本 在生产服务器上执行以下步骤更新服务: ```bash # 1. 拉取最新代码 git pull origin main # 2. 重新构建镜像 docker-compose build # 3. 停止并删除旧容器 docker-compose down # 4. 启动新容器 docker-compose up -d # 5. 查看服务状态和日志 docker-compose logs -f ``` **一键更新命令:** ```bash git pull origin main && docker-compose down && docker-compose build && docker-compose up -d && docker-compose logs -f ``` **注意事项:** - 更新前建议先备份重要数据 - 如果使用特定分支,将 `main` 替换为你的分支名 - 更新过程中服务会短暂中断,建议在低峰期执行 ## API 使用 ### POST /ocr 上传图片进行文字识别,返回识别文本和坐标信息。 **请求:** ```bash curl -X POST "http://localhost:8080/ocr" \ -F "file=@test_image.png" ``` **响应:** ```json { "text": "完整识别文本", "details": [ { "text": "文本内容", "confidence": 95, "bbox": { "left": 10, "top": 30, "width": 100, "height": 20 } } ] } ``` ## 测试 运行测试脚本: ```bash 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 环境已自动配置)