Files
Fairscan_cyy/requirements/NEXT_STEPS.md
MobKBK 1848a88fcf
Some checks failed
Android CI / build (push) Has been cancelled
初步完成框架
- 实时图传:WebSocket JPEG 帧发送 + 帧率控制 + PC 浏览器预览
- PDF 上传与处理:上传/处理分离,支持 ocrpdf 和 markdown 两种类型
- MinerU 真实接入:markdown 处理 + images ZIP 打包
- OCRmyPDF 接入:ocrpdf 生成可搜索双层 PDF
- 手机端任务管理面板:轮询状态 + SAF 目录选择下载
- PC 管理面板:/dashboard 文件与任务管理
- 网络层:OkHttp 客户端、WebSocket 图传、局域网发现占位

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-04 17:03:18 +08:00

146 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 下一步实现计划
## 现状总结
**P1 实时图传**:已完成
**P2/P3 上传与任务处理**:已完成
**MinerU 真实接入**已完成markdown 处理 + ZIP 打包)
**任务管理面板**:已完成(手机端轮询 + 下载到指定目录)
### MinerU markdown 已实现
- 使用 `aio_do_parse()` 异步接口pipeline 后端
- `HF_HUB_OFFLINE=1` 使用本地缓存模型
- 输出 `.md` + `images/` + `{name}_result.zip` 三种 artifact
### 任务管理面板已实现
- 手机端 `TaskPanelSection`:排队中 / 处理中 / 已完成 / 失败 四种状态
- 2 秒轮询 PC 任务状态,自动更新 UI
- SAF 目录选择 → 下载到指定目录 → 打开文件
### 当前 ocrpdf 的局限性
⚠️ 当前 `processType=ocrpdf` 使用 MinerU 的 `f_draw_layout_bbox=True` 生成 layout PDF在 PDF 上画布局框),**不是真正的 OCR 双层 PDF**。
真正的 OCRmyPDF 应该:
- 保留原始 PDF 的视觉外观
- 在图像层上叠加透明文字层text layer
- 结果可通过 Ctrl+F 搜索文字
- 文件可被屏幕阅读器朗读
---
## 下一步OCRmyPDF 真实接入 🔥
### 目标
`ocrmypdf` 库替换当前 MinerU 的 layout PDF 生成,产出真正的可搜索双层 PDF。
### 为什么需要 OCRmyPDF 而不是继续用 MinerU 做 ocrpdf
| 特性 | MinerU layout PDF | OCRmyPDF |
|------|-------------------|----------|
| 可搜索文字 | ❌ 仅图片上的框 | ✅ 透明文字层 |
| 保留原始外观 | ❌ 重新渲染 | ✅ 原样保留 |
| 文件大小 | 较小 | 完整保留原 PDF |
| 用途 | 可视化版面分析 | 归档、检索、无障碍 |
### 实现方案
`ocrmypdf` 是一个 Python 命令行工具/库,在 MinerU 的 conda 环境中安装:
```bash
conda activate MinerU
pip install ocrmypdf
```
**统一环境说明**MinerU 和 OCRmyPDF 共用一个 conda 环境 `MinerU`PC 服务器始终在该环境下运行:
```bash
conda activate MinerU
cd pc-server
python main.py
```
### 环境信息
| 项目 | 值 |
|------|-----|
| Conda 环境名 | `MinerU` |
| 环境路径 | `D:/ProgramData/miniconda3/envs/MinerU/` |
| Python | 3.10.20 |
| PyTorch | 2.6.0+cu124 |
| CUDA | 12.4 |
| GPU | RTX 4060 Laptop (8 GB VRAM) |
| MinerU | 3.0.9(已接入 markdown |
| OCRmyPDF | 15.4.4(✅ 已安装,源码 `F:/datasets_rm/ocRmypdf`v15.4.4 标签) |
| Tesseract | ❌ 待安装OCRmyPDF 必需依赖) |
| 用途 | MinerU markdown 处理 + OCRmyPDF 双层 PDF 处理 |
### 安装 Tesseract
OCRmyPDF 依赖 Tesseract 做实际 OCR 文字识别。Windows 安装:
```bash
# 方式1conda推荐与 MinerU 同一环境)
conda activate MinerU
conda install -c conda-forge tesseract
# 方式2手动安装
# 下载安装包https://github.com/UB-Mannheim/tesseract/wiki
# 安装后确认:
tesseract --list-langs # 应包含 chi_sim, eng
```
安装中文语言包:
```bash
# conda 方式
conda install -c conda-forge tesseract-lang
# 或手动下载 chi_sim.traineddata 放到 tessdata 目录
```
然后在 `pc-server/main.py``process_with_mineru` 中,`ocrpdf` 分支改为调用 OCRmyPDF
```python
import ocrmypdf
# ocrpdf 分支
ocrmypdf.ocr(
upload_path_src, # 输入 PDF
str(output_dir / f"{base_name}_ocr.pdf"), # 输出 PDF
language="chi_sim", # 中文简体
output_type="pdf",
skip_text=True, # 跳过已有文字层
deskew=True, # 纠偏
clean=True, # 清理
)
```
输出:真正的可搜索双层 PDF。
### 语言映射
| MinerU lang | OCRmyPDF language |
|-------------|-------------------|
| `ch` | `chi_sim` |
| `en` | `eng` |
| `japan` | `jpn` |
| `korean` | `kor` |
### 待确认
- [x] `ocrmypdf` 已安装到 MinerU conda 环境v15.4.4
- [ ] Tesseract OCR 引擎已安装
- [ ] Tesseract 语言包(`chi_sim`, `eng`)已安装
---
## P0局域网发现与连接校验待排期
### 目标
让手机能够自动发现同一局域网中的 FairScan PC 服务。
### 已有占位文件
- `network/discovery/LanServiceDiscovery.kt`(接口定义)
- `network/discovery/DiscoveryState.kt`(状态模型)
- `network/discovery/DiscoveredHost.kt`(主机模型)