VI-Translate:轻量级视觉翻译引擎,让截图与图片即时变成可编辑文本
> VI-Translate 是一个基于 Python 的视觉翻译工具,将 OCR 识别与机器翻译无缝结合,实现截图即译、图片即译的轻量级工作流。
## 一、项目定位与痛点
在全球化协作、跨语言学习、海外内容消费日益频繁的今天,我们经常遇到这样的场景:
- 阅读一篇英文论文截图,需要逐段复制到翻译软件,来回切换窗口,效率极低。
- 遇到一张包含多语言文字的图片(如产品说明书、漫画、海报),无法直接复制文字,只能手动输入或依赖手机拍照翻译。
- 已有 OCR 工具(如 Tesseract、百度 OCR)和翻译 API(如 Google Translate、DeepL)各自独立,缺乏一个开箱即用的整合层。
- 在线翻译工具需要上传图片,存在隐私泄露风险,且响应速度受网络影响。
VI-Translate 正是为了解决这些痛点而生的开源项目。它提供了一个简洁的 Python 命令行工具,能够从图片或屏幕截图中提取文字,自动检测源语言,翻译成目标语言,并直接输出到终端或剪贴板。整个过程完全本地控制(除翻译 API 调用外),无需切换应用,无需手动复制粘贴。
## 二、快速上手与核心用法
### 1. 安装
项目依赖 Python 3.8+,推荐使用 `pip` 安装:
bash
# 克隆仓库
git clone https://github.com/breslee1707/VI-Translate.git
cd VI-Translate
# 安装依赖(建议使用虚拟环境)
python -m venv venv
source venv/bin/activate # Windows 下使用 venv\Scripts\activate
pip install -r requirements.txt
### 2. 基本使用
**翻译本地图片:**
bash
python vi_translate.py --image /path/to/image.png --target zh
**翻译屏幕截图(需要额外安装截图库):**
bash
python vi_translate.py --screenshot --target en
**输出到剪贴板:**
bash
python vi_translate.py --image image.jpg --target ja --clipboard
### 3. 代码示例(作为库调用)
python
from vi_translate import translate_image
result = translate_image(
image_path="screenshot.png",
source_lang="auto", # 自动检测
target_lang="zh",
engine="google" # 可选:google, deepl, baidu, offline
)
print(result.text)
print(result.detected_lang)
### 4. 配置翻译引擎
在 `config.ini` 或环境变量中设置 API 密钥:
ini
[google]
api_key = YOUR_KEY
[deepl]
auth_key = YOUR_AUTH_KEY
如果不配置密钥,默认使用 Google Translate 的免费端点(非官方),但建议为生产环境配置官方 API 以保证稳定。
## 三、核心亮点与技术解析
### 1. 模块化架构,可插拔引擎
VI-Translate 将 OCR 和翻译解耦为独立模块。OCR 层默认采用 PaddleOCR(支持 80+ 语言),翻译层支持 Google、DeepL、百度、以及离线模型(如 argos-translate)。用户可以通过命令行参数或配置文件自由组合,例如:
bash
python vi_translate.py --image test.png --ocr paddle --translate deepl
这种设计使得项目极易扩展——如果你想接入自己的 OCR 或翻译服务,只需实现对应的抽象基类。
### 2. 智能语言检测与自动选择
项目内置了语言检测模块(基于 fastText 或 lingua),在 OCR 识别后自动判断源语言,无需用户手动指定。同时,如果目标语言与源语言相同,会直接跳过翻译步骤,节省 API 调用。
### 3. 低依赖,轻量部署
整个项目核心代码不到 1000 行,依赖库仅 5-6 个(PaddleOCR、requests、Pillow、click 等)。相比一些重量级 GUI 翻译工具,VI-Translate 可以轻松集成到自动化脚本、服务端流程或终端工作流中。
### 4. 支持多种输入方式
- 本地图片文件(PNG、JPG、BMP、TIFF)
- 屏幕截图(通过 `mss` 或 `pyautogui`)
- 剪贴板图像(Windows/macOS 下从剪贴板直接粘贴)
- 批量处理:可传入文件夹路径,自动遍历所有图片
### 5. 结果格式化输出
翻译结果支持多种输出格式:纯文本、JSON(便于程序解析)、带坐标的标注(可输出识别文字的包围盒,方便后续可视化)。
## 四、适用场景
1. **学术研究**:快速翻译论文图表、扫描页、PDF 截图,无需来回切换。
2. **跨境电商**:处理商品图片、买家秀截图,快速了解海外用户反馈。
3. **游戏本地化**:翻译游戏截图、UI 界面,辅助汉化组工作。
4. **日常办公**:翻译会议白板照片、名片、菜单、路牌等。
5. **自动化管道**:将 VI-Translate 作为子模块嵌入爬虫或文档处理系统,实现图片文字自动翻译入库。
6. **个人学习**:阅读外语漫画、手写笔记(OCR 支持手写体,准确率视语言而定)。
## 五、同类项目对比
| 项目 | 定位 | 优点 | 缺点 |
|------|------|------|------|
| **VI-Translate** | 轻量级 CLI 视觉翻译 | 模块化、可编程、支持多种 OCR/翻译引擎、无 GUI 依赖 | 需要命令行基础,无图形界面 |
| **Umi-OCR** | 桌面 OCR 工具 | 图形界面友好,支持批量,离线识别 | 翻译功能需额外配置,不内置翻译引擎 |
| **Capture2Text** | Windows 截图 OCR | 快捷键操作,小巧 | 仅支持 Windows,翻译质量依赖外部 API |
| **Google Lens** | 手机端视觉翻译 | 识别准确,实时 AR 翻译 | 闭源,无法集成到本地工作流,需联网 |
| **Tesseract + translate-shell** | 手动组合 | 完全免费,可定制 | 需要自行组装,OCR 准确率一般,步骤繁琐 |
**VI-Translate 的独特优势**在于:
- **可脚本化**:作为 Python 库或 CLI 工具,可以轻松嵌入任何自动化流程。
- **引擎可替换**:不像某些工具绑定单一云服务,你可以根据成本、隐私、语言支持灵活切换。
- **轻量无 GUI**:适合服务器环境、树莓派等资源受限设备。
## 六、局限与改进空间
- **OCR 准确率依赖 PaddleOCR 模型**:对于复杂背景、艺术字体或低分辨率图片,可能产生误识别,建议预处理(如放大、增强对比度)。
- **翻译 API 需联网**:虽然支持离线翻译模型,但默认配置仍依赖云端服务,完全离线场景需自行下载模型。
- **缺少 GUI**:对非技术用户不友好,但可以通过社区贡献的 Web 界面或 Electron 封装解决。
- **批量处理效率**:目前是串行处理,对于大量图片可考虑加入多线程/异步支持。
## 七、总结
VI-Translate 是一个设计精巧、实用性强的开源工具。它没有追求大而全,而是把视觉翻译的核心链路(OCR → 语言检测 → 翻译 → 输出)做到极简和可扩展。对于开发者、研究者、以及任何需要在终端中高效处理图片文字翻译的人来说,这是一个值得加入工具箱的项目。
如果你厌倦了手动复制图片文字,或者想为你的下一个自动化项目添加视觉翻译能力,不妨试试 VI-Translate。
🔗 项目地址:https://github.com/breslee1707/VI-Translate