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

4.2 KiB
Raw Blame History

下一步实现计划

现状总结

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 环境中安装:

conda activate MinerU
pip install ocrmypdf

统一环境说明MinerU 和 OCRmyPDF 共用一个 conda 环境 MinerUPC 服务器始终在该环境下运行:

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/ocRmypdfv15.4.4 标签)
Tesseract 待安装OCRmyPDF 必需依赖)
用途 MinerU markdown 处理 + OCRmyPDF 双层 PDF 处理

安装 Tesseract

OCRmyPDF 依赖 Tesseract 做实际 OCR 文字识别。Windows 安装:

# 方式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

安装中文语言包:

# conda 方式
conda install -c conda-forge tesseract-lang

# 或手动下载 chi_sim.traineddata 放到 tessdata 目录

然后在 pc-server/main.pyprocess_with_mineru 中,ocrpdf 分支改为调用 OCRmyPDF

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

待确认

  • 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(主机模型)