[从零开始]用python制作识图翻译器·一

news2025/1/11 14:52:27

AlsoEasy-RecognitionTranslator

  • 前言
  • 需求分析
    • 应用场景
    • 需求提取
    • 需求补充
    • 竞品分析
      • QQ识图
      • 百度翻译
      • UU翻译器
    • 小结
  • 功能实现

前言

  这是我的毕设作品。当时玩了《人狼村之谜》觉得很惊艳,所以想玩一下该社的别的作品:《D.M.L.C.》。但是苦于没有熟肉,自己又不会日语,正值毕业季,所以想着自己动手做一款翻译机。因为我之前是学前端的,所以算是从零开始构思、制作的。当然我不可能把自己的论文拿出来放在这,这里只记录实现思路和过程,大家可以参照一下然后设计自己的产品。

需求分析

这一步是为了从相同或相似的场景提取出产品的功能。

应用场景

  • 场景一:玩外语avg游戏时将其文本框内的外文翻译为中文
    在这里插入图片描述

  • 场景二:看电影时自动将外语字幕翻译成中文字幕
    在这里插入图片描述

  • 场景三:看外语文献时直接将文献翻译为中文
    在这里插入图片描述

需求提取

  将屏幕(pc端/移动端)上固定的区域中的文字识别并翻译,最后显示在固定区域。再固定文本框可能出现的连续区域后可以进行连续翻译。
在这里插入图片描述

需求补充

  1. 支持离线在线双模式
  2. 支持多语言(主要将英文和日文翻译为中文)
  3. 支持复制(兼容文档翻译)
  4. 诸如此类

竞品分析

分析市场上是否已经有成熟的产品。如果有了,那我们就没有再制作的必要了。

QQ识图

在这里插入图片描述
  本产品的原型就是QQ截图,具体操作方式如上:按快捷键后通过鼠标的按压和松开划出要截屏区域的对角线,然后在选择识图或者在截图上图画。
  但是对比可以发现,QQ识图无法实现我们对于“连续翻译”的要求。因为每进行一次翻译就需要进行一次“划屏——截图——翻译”的手动操作。如果你玩galgame每next一次就需要进行三次操作那对实际体验真是毁灭性的灾难。

百度翻译

在这里插入图片描述  百度翻译桌面版也支持“截图翻译”和“划词翻译”。虽然它的“截图翻译”功能极其强大,但仍不符合我们的使用场景;“划词翻译”也由于avg游戏的文本框多数无法选中而告破(因为要兼容点击屏幕next的操作)。

UU翻译器

  这是b站相关的UU翻译器的演示视频:有一种语言,叫做………UU翻译器!!
  UU翻译器可以直接一键翻译屏幕内的所有外语并翻译为中文贴到原位置。这样的功能已经无限接近于我们的理想,并且听同学说UU翻译器是直接读取游戏内存来翻译的,所以翻译速度也是吊打上面上所有的翻译器。但可惜的是UU翻译器只能翻译UU加速器内含的数个游戏(FGO、赛马娘等等),并不是兼容所有的avg游戏。

小结

  通过需求提取和竞品分析,我们发现主流市场上暂时还没有符合我们需求的产品,因此可以继续下去,将这个需求具象、实现。

当时做毕设前期找的竞品都是市场上很有名的。但在实际做了、有了解之后,发现其实已经有了比较成熟的产品了,pc端有团子翻译器;移动端有游戏翻译助手等等。但这是我已经骑虎难下了。

功能实现

[从零开始]用python制作识图翻译器·二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2中使用VantUI

Vant 是一个轻量、可靠的移动端组件库 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 Vant 2 - Mobile UI Components built on Vue 第一步:安装该组件库 在现有项目中使用 Vant 时&a…

Azure 深入浅出[3]: 如何在MS Visio里面画专业的Azure技术架构图?

1.前言 笔者最近在研究Azure,需要画Azure的技术架构图;画Azure架构图的方法很多,有在线的工具,有基于Azure的PPT模板,同时也有笔者这样选择用最传统的微软的工具:MS Visio来绘图。那么在MS Visio里面如何绘…

设计模式六大原则

设计模式六大原则 1.单⼀职责( ⼀个类和⽅法只做⼀件事 ) 不遵守单一职责原则 模拟不同用户观看视频,先一把梭哈,所有用户观看视频的服务全部都写道一块 public class ApiTest {public static void main(String[] args) {VideoUserService service …

干货丨FPGA零基础学习,入门必看!

看到不少同学后台进行提问:FPGA如何入门?怎么学习?其实对于新人来说,FPGA的学习需要了解的东西还是非常多,下面IC修真院就带大家一起来了解一下吧。 FPGA简介 FPGA普遍用于实现数字电路模块,用户可对FPGA…

Codeforces Round #666 (Div. 1) A. Multiples of Length

Problem - A - Codeforces翻译: 您将得到一个由𝑛个整数组成的数组𝑎。 你想要让𝑎的所有元素都等于零,只需执行以下操作三次: 选择一个段,对于这个段中的每一个数字,我们可以给它加上&#…

后疫情时代语音机器人和大数据的发展前景

语音机器人可以通过自动化流程和提供快速、准确的信息来帮助企业降低成本、增加效率。具体来说,企业可以使用语音机器人来完成以下任务: 客户服务:语音机器人可以自动处理客户查询和请求,从而节省人力成本。数据录入:…

Mask R-CNN论文讲解

目录:Mask R-CNN论文理解一、摘要二、介绍三、Mask R-CNN四、RoIAlign五、Network Architecture六、训练一、摘要 论文提出了一个概念上简单、灵活和通用的对象实例分割框架。有效地检测图像中的对象,同时为每个实例生成高质量的分割掩码。 方法被称为…

Python量化交易06——Fama-French三因子模型(Rmt,SMB,HML)

参考书目:深入浅出Python量化交易实战 本次带来的是著名的获得了诺贝尔奖的三因子模型。 因子模型介绍 Fama和French从可以解释股票收益率的众多因素中提取出了三个重要的影响因子,即市场风险溢酬因子、市值因子和账面市值比因子B/M Ratio,仿照CAPM模型…

测试用例能带来什么

通过测试用例,我们都能获得些什么呢? 1、测试团队的质量判断。例如,测试用例的覆盖率。我们只需要去把所有的valid的功能bug去做一个分析,用所有在测试用例覆盖范围之外的bug数/总bug数,就可以作为测试用例覆盖率使用。一个良好的…

【css】深入解析CSS (4)网格布局

设置为display: grid的元素成为一个网格容器(grid container)。它的子元素则变成网格元素(grid items)。 1.网格的组成部分: grid-template-columns和grid-template-rows定义了网格轨道 grid-template-columns:1fr 1f…

STM32/51单片机实训day4——RFID工作原理(一)理论

目录 一、RFID的定义 二、RFID的起源和发展 三、RFID的组成 3.1 标签 3.2 读写器 3.3 天线 四、RFID系统分类 4.1 根据标签的供电方式 4.2 根据工作频率 五、RFID系统工作原理 5.1 读写器 5.2 标签 5.3 中间件 内 容:能够读取RFID卡S50的ID——编程…

如何利用 xUnit 框架对测试用例进行维护?

1、xUnit 是什么 先看 Wikipedia 上的解释: xUnit 是一系列测试框架的统称,最开始来源于一个叫做 Smalltalk 的 SUnit 框架,现在各种面向对象的语言,如 Java、Python 的鼻祖就是 Smalltalk,后来这些语言都借助了 Suni…

Win10 开机突然蓝屏错误代码0xc0000001安全模式也进不了,不用重装系统怎么修复?(已解决)

环境: Win 10专业版 HP480G7 问题描述: Win10 开机突然蓝屏错误代码0xc0000001,前一天好好的,F8安全模式也进不了,不用重装系统怎么修复? 解决方案: 方法一 1.重启F8进入里面的安全模式(本案例进不了) 方法二 (解决本案例) 1.使用系统安装U盘,需提前做好…

力扣(LeetCode)220. 存在重复元素 III(C++)

滑动窗口有序集合 维护滑动窗口&#xff0c;向右扩大右窗口&#xff0c;新数加入有序集合&#xff0c;题目要求abs(nums[i] - nums[j]) < t &#xff0c;找两数之差的绝对值小于t&#xff0c;相当于在窗口里找大小尽可能接近的两个数&#xff0c;固定其中一个数(新数)&…

进程优先级环境变量进程地址空间

目录 一、进程优先级 1、概念 2、查看 3、其他概念 二、环境变量 1、基本概念 2、常见环境变量 3、查看环境变量的方法 4、和环境变量相关的命令 5、环境变量的组织方式 6、通过系统调用获取或设置环境变量 三、程序地址空间 一、进程优先级 1、概念 cpu资源分配的…

C++优先队列:priority_queue(即时排序队列)

今天我们来讲一下C中对于排序很好的用的东西&#xff1a;优先队列&#xff1a;priority_queue 既然是队列那么先要包含头文件#include <queue>, 它和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队 优先队列具有队列的所有特性&am…

数据结构---二叉树的各种遍历算法

&#xff08;一&#xff09;基础知识 如图遍历该树&#xff0c;常见有四种方法&#xff1a; 先根遍历&#xff1a;即先序遍历(Pre-order)&#xff0c;按照根左右的顺序沿一定路径经过路径上所有的结点。在二叉树中&#xff0c;先根后左再右。巧记&#xff1a;根左右。 以标准…

Redis 主从复制实现

1. 前言 今天从实用的角度来分析下 服务器间的主从部署&#xff0c;以及主从复制备份 2. 配置 一个服务器不同的端口代表不同的Redis实例端口6379 表示一台Redis主节点端口6380 表示一台Redis从节点&#xff0c;主节点的端口是6379端口6381 表示一台Redis从节点&#xff0c;主…

Type-challenges:00009-medium-deepReadonly

Implement a generic DeepReadonly<T> which make every parameter of an object - and its sub-objects recursively - readonly. https://github.com/TIMPICKLE/type-challenges/blob/main/questions/00009-medium-deep-readonly/README.md 虽然是medium&#xff0c;但…

图论(2)单源最短路的综合应用

活动 - AcWing 1.acwing1135 从自己家出发摆放其他亲戚&#xff0c;拜访顺序任意。 枚举所有摆放顺序求最小值即可。因此需要每个亲戚家到其他亲戚家的最短路。分别跑出来即可 #include<iostream> #include<algorithm> #include<cstring> #include<que…