129 lines
2.5 KiB
Markdown
129 lines
2.5 KiB
Markdown
# 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 环境已自动配置)
|