项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-10-27 · 当前星标 ★ 2095
使用教程
环境要求
- 一台运行 iOS 的 iPhone 或 iPad(用于运行 OCR Server 应用)
- 与手机处于同一局域网的另一台设备(电脑),用于浏览器测试或 API 调用
- 可选:Python 3 环境并安装 requests,用于脚本调用接口
- 可选:curl 命令行工具,用于直接测试上传接口
安装与启动步骤
-
1安装 OCR Server
从 App Store 下载安装 OCR Server 应用,项目通过该应用提供 OCR 服务,无需自行编译源码。
-
2启动并记录访问地址
打开应用后服务会自动启动,界面会显示本机 IP 地址,供同一网络内的其他设备访问。
-
3设置应用常驻运行
在 iOS 设置中开启引导式访问并保持屏幕常亮,避免应用被切到后台导致服务中断。
-
4浏览器做 OCR 测试
在电脑浏览器中打开应用显示的 IP 地址,使用内置测试页面选图识别,确认服务可用。
-
5用 curl 调用上传接口
把示例里的 IP 换成应用显示的地址,file 指向本地图片路径,POST 到 8000 端口的 upload 接口。
curl -H "Accept: application/json" -X POST http://10.0.1.11:8000/upload -F "file=@01.png" -
6安装 Python 请求库
如需用 Python 脚本调用接口,先安装 requests;若要绘制文字框还需 pillow、opencv-python、numpy。
pip3 install requests pip3 install requests pillow opencv-python numpy -
7运行 Python 上传示例
修改 url 为应用显示的 IP,file_path 指向待识别图片,打印状态码和返回的 JSON 文本。
import requests url = "http://10.0.1.11:8000/upload" # 替换为应用显示的 IP file_path = "01.png" with open(file_path, "rb") as f: files = {"file": f} headers = {"Accept": "application/json"} response = requests.post(url, files=files, headers=headers) print("status code:", response.status_code) print("response:", response.text)
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
IP 地址 | 是 | 应用界面显示的设备局域网地址,调用接口和浏览器测试都要用它 | 10.0.1.11 |
端口 | 是 | 服务监听的 HTTP 端口,README 示例固定为 8000 | 8000 |
/upload 接口 | 是 | 图片上传识别接口,使用 multipart 表单字段 file 提交图片 | http://10.0.1.11:8000/upload |
Accept 请求头 | 否 | 示例中设置为 application/json,用于获取 JSON 格式返回 | application/json |
file 表单字段 | 是 | 上传图片时使用的表单字段名,值为图片文件 | file=@01.png |
如何确认成功
在电脑浏览器打开应用显示的 IP 地址能看到测试页面;或用 curl 上传图片返回 200 且 JSON 中 success 为 true。
常见问题
Q:电脑访问不到应用显示的地址怎么办?
A:确认手机和电脑连在同一个局域网,地址要带 8000 端口,并检查应用是否仍在前台运行、屏幕是否点亮。
Q:长时间运行后服务停了怎么处理?
A:按 README 建议开启 iOS 引导式访问并保持屏幕常亮,防止应用被系统挂起或误触退出。
Q:返回结果里的坐标是什么单位?
A:image_width、image_height 为图片像素宽高;x、y 是文本框左上角像素坐标,w、h 是框宽高;rect 给出四个角坐标,保留原始倾斜方向。
Q:识别过程需要把图片上传到云端吗?
A:不需要,识别由设备端的 Apple Vision 框架完成,图片只发到本机运行的服务上。
注意事项
- 本项目以 App Store 应用形式分发,无需在电脑上编译 Swift 源码。
- 调用时务必把示例中的 IP 替换为应用界面实际显示的地址,端口保持 8000。
- 服务只在局域网内可用,需保证调用方与手机处于同一网络。
- 返回的 rect 四个角坐标非轴对齐,可用于还原倾斜文本区域。
核心亮点
- 基于 Apple Vision 框架,识别在设备本地完成,图片不出设备
- 以 HTTP 服务形式暴露能力,脚本和其他应用可直接调用
- Swift 实现、依赖少,在 iOS 设备上部署简单
不足之处
- 仅支持 iOS/macOS 生态,无法跨平台部署
- 并发与批量处理能力有限,不适合高吞吐生产环境
适用场景
- 局域网内为桌面脚本提供离线 OCR 接口
- 隐私敏感场景下在本地设备识别图片文字
- 快速验证 Apple Vision 文字识别效果的开发测试
替代项目
PaddleOCR、Tesseract、EasyOCR
同类项目推荐
SensorLLM
开源
让大模型读懂传感器数据,零样本识别人类活动
[EMNLP 2025] Official implementation of "SensorLLM: Aligning Large Language Models w···
universal-medical-image-segmenta···
开源
一个模型搞定多种医学图像分割任务
pyod
开源
一站式异常检测库,60+算法开箱即用,自动选最优模型
A Python library for anomaly detection across tabular, time series, graph, text, ima···
ncnn-android-nanodet
开源
手机端跑 NanoDet 实时目标检测的完整示例
ncnn android nanodet lightweight object detection
SPVD
开源
用稀疏点体素扩散,高效生成高精度3D点云
SPVD: Efficient and Scalable Point Cloud Generation with Sparse Point-Voxel Diffusio···
yolov3
开源
用PyTorch训练和部署YOLOv3,实现实时目标检测
PyTorch implementation of YOLOv3, YOLOv3-SPP, and YOLOv3-tiny for real-time object d···
ComfyUI-BiRefNet-ZHO
开源
拖拽节点即可实现图像/视频高精度抠图,边缘细节惊艳
Better version for BiRefNet in ComfyUI | Both img & video
sd-webui-segment-anything
开源
在 Stable Diffusion 里框选物体,即可精准重绘或替换
Segment Anything for Stable Diffusion WebUI
particle-life
开源
拖拽调参,让粒子自己长成生命图案
A simple program to simulate artificial life using attraction/reuplsion forces betwe···
