我用 Deepseek OCR 做了一款图片翻译神器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
devlrboyz
V2EX    翻译

我用 Deepseek OCR 做了一款图片翻译神器

  •  
  •   devlrboyz 38 天前 644 次点击
    这是一个创建于 38 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近 Deepseek OCR 很火,刚刚开源了他们最新的 OCR 识别技术,即刻集成来做了一个图片识别工具体验了一下,识别效果杠杠的,以下是我的技术实现方案:
    简单来说,整个过程只需要 3 步:

    1 识别文字
    调用 Deepseek OCR 将图片里的文字识别出来

    2 AI 翻译
    将识别结果交给 AI 大模型,比如 Deeepseek 本身及豆包大模型或者任意的 AI 模型均可进行翻译

    3 将文字进行润色后重新粘贴会选位置
    这是很关键的一步,如果处理不好就无法很好的还原文字的位置。具体如下:
    首先要将图片的逻辑分区(例如一张海报分标题,正文,按钮文案等)
    然后将每个分区整体作为一段交给 AI 去翻译,并指定提示词让 AI 翻译的更地道

    4 润色阶段
    因为中文或者其他语言长度不同于英文,所以需要计算每段文字宽度比例,尽可能的避免超出原框。

    5 文本回填与图像重绘
    这个主要是把翻译后的文字重新绘制到图片原位置。怎么实现呢?一般有两种方案:
    方式一:传统图像绘制(常见方案)
    使用图像处理库重新渲染翻译文字。
    Node.js:canvas / sharp / jimp
    Python:Pillow / OpenCV

    方式二:AI 图像修复 + 文本重构(高级方案)
    用于复杂背景、渐变、阴影、艺术字体的场景。

    流程:
    1. 用 OCR 坐标擦除原文字区域(生成 mask )
    2. 用 Inpainting 模型(如 SDXL Inpaint 、BrushNet 、GLIGEN )修复背景
    3. 再用绘制模块叠加译文文本
    优点:背景无痕、视觉一致。
    缺点:算力需求高、处理时间更长。

    最后,奉上我的应用整体架构:
    前端 : Nextjs + React + tailwindcss + shadcnui
    后端 : FastAPI + Python + Honojs + cloudflare worker + postgresql + redis + Pillow + Sharp + 各大厂商大模型
    第三方服务: resend 邮件服务 + 火山引擎对象存储 + 腾讯云 EdgeOne

    以上就是我的应用的所有技术实现方案,基本上这些服务都有免费额度,除了服务器和域名需要花点钱,其它基本上前期都不会产生费用,可以说算是一个合格的"开发者穷鬼套餐"了[笑哭 R]
    最后欢迎大家来体验这个工具,一起探索 AI 技术带给我们工作效率的全新体验[派对 R]
    x13945
        1
    x13945  
       38 天前
    产品在哪里,怎么体验呢?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     972 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 19ms UTC 22:38 PVG 06:38 LAX 14:38 JFK 17:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86