AlsoEasy-RecognitionTranslator

  • 需求分析
  • 系统分析
    • 功能拆解
    • 工程语言选择
    • 技术可行性分析
  • 具体实现

需求分析

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

上篇分析了该产品的需求以及市场上的可行性(没有被吊打的竞品)。而本篇将着重于分析如何实现。

系统分析

功能拆解

  我们将一整个流程细化分成以下几个步骤,并分析每步涵盖的技术,一步步探索其可行性。

  1. 划定屏幕固定区域(用qq截图演示效果)

    作  用:通过鼠标点击和松开确定识别区域的对角线坐标;
    相关技术:GUI、鼠标事件、键盘热键。

  2. 获取固定区域图像(用qq截图演示效果)

    作  用:获取区域的图像以进行后续的识别操作;
    相关技术:GUI、PIL、屏幕截图。

  3. 识别图中文字(用qq截图演示效果)

    作  用:将区域的图像中的文字识别出来,作为翻译的源文字;
    相关技术:文字识别

  4. 将该文字翻译成目标语言的文字(用百度翻译演示效果)

    作  用:将识别的到的文字翻译为目标语言的文字;
    相关技术:机器翻译

  5. 显示在某一区域(用qq截图演示效果)

    作  用:将翻译的结果反馈到屏幕上;
    相关技术:GUI、文本框。

可见做一个产品经理并不用对实现技术有多了解,只需要头脑中有产品功能的概念即可。

工程语言选择

  因为项目可能含有“文本识别”、“机器翻译”等人工智能方向的功能,所以选择python作为基础编程语言,后续的技术选择和分析会更有偏向性。

技术可行性分析

  在将功能拆解以后,整个产品的制作方式就变得非常清晰了。作为初学者,我们下一步就需要用每个功能的关键字搜寻,一步步寻找并验证可以实现的技术。

  1. 文字显示
    稍微搜索就会发现用GUI就能实现。python的GUI有:wxPython、pyQt、Tkinter……前端思维就是新建一个显示特定文字的box,实现起来没什么难度。

  2. 机器翻译
    机器翻译也是有很多种的,比较古早的是基于符号系统的,现在的主流方向都是人工智能方向,网上有一些公开的模型,一些大公司也对外开放了免费翻译API。百度的就很好用,使用教程见:python调用百度通用翻译API进行翻译。测试效果如下:

  3. 文字识别
    文字识别技术和机器翻译一样,现在的主流方向都是人工智能方向了,识别率高,识别速度快,网上同样有丰富的开源资源,如:TesseractOCR、EasyOCR、BaiduOCR、PaddleOCR……其中飞桨的PaddleOCR甚至提供了详细的模型训练的教程:这是PaddleOCR在gitee上的代码仓库,其中附带了详细的训练教程。测试效果如下:

  4. 截图
    用python中PIL库的ImageGrab.grab方法即可获取指定位置,指定大小的矩形区域截图(当然必须是最顶层窗口的,我没找到像腾讯会议那种直接获取进程窗口句柄的方法)。测试效果如下:

  5. 确定矩形对角线
    没想到这一步才是让我反复碰壁的。以前端思想,就是在按快捷键后监听鼠标的按压和松开事件,分别获取触发两个事件时的鼠标坐标就能确定要截图的矩形区域了。但是,python中鼠标事件的库pyhook的版本2因安全性问题用不了了,而pyhook3的python版本要求3.10以上,和PaddleOCR要求的版本冲突了,总之就是用不了。
    后面我想到一个办法,可以利用GUI轻松实现:在触发快捷键后,直接生成一个覆盖全屏并置顶的半透明窗口,通过点击这个矩形可以轻松获取当时的鼠标位置。测试效果如下:

以上,我们通过简单的测试确认了每一步的关键技术是可行的,接下来只用着重于将各个模块实现并组合在一起即可。

具体实现

见下期:[从零开始]用python制作识图翻译器·三。

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

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

    AlsoEasy-RecognitionTranslator 前言 需求分析 应用场景 需求提取 需求补充 竞品分析 QQ识图 百度翻译 UU翻译器 小结 功能实现 前言   这是我的毕设作品.当时玩 ...

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

    具体实现 整个工程文件已经上传到我的代码仓库. 正式开始 项目结构      数据存储   因为本系统为自用而非商用,并且偏向功能性,所以直接用一个config.json文件保存所有的用户数据,就不用 ...

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

    AlsoEasy-RecognitionTranslator 具体实现 开发环境准备和验证 下载conda 创建开发环境 文字识别模块 在线模块 离线模块 机器翻译模块 在线模块 离线模块 GUI G ...

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

    测试   通过以上步骤我们终于实现了系统,现在到了紧张刺激的测试环节.直接运行run.py文件: python run.py ::注意需要进入conda环境 稍作等等,我们的系统就运行啦(啵唧啵唧). ...

  5. python制作自己的专属二维码

    python制作自己的专属二维码 普通二维码 带图二维码 动图二维码 首先下载并导入,下载可以 pip insatll MyQR来下载 from MyQR import myqr 首先可以看到这个函数 ...

  6. 利用Python制作动图演示坐标变换理论

    利用Python制作动图演示坐标变换理论 永磁同步电机是一个非线性.强耦合的物理系统,因而不便直接进行控制.后有研究人员创造性的提出了坐标变换理论(后逐渐成为矢量控制的一个部分),让永磁同步电机得以转 ...

  7. python多张图片合并拼接,python制作sprite图、雪碧图

    python多张图片合并拼接,python制作sprite图.雪碧图 整理图片集 找两个文件夹,yangying和zhaoliying,分别放上照片8张,共16张照片. 创建sprite.py # 多 ...

  8. Python 制作迷宫游戏(二)——游戏窗口

    Python 制作迷宫游戏(二)--游戏窗口 上一节我们使用prime做了迷宫的底层数组,它的形式是一个二维数组. 这一节我们着手开始制作游戏窗口 使用模块 pygame 在这项迷宫游戏的制作当中需要 ...

  9. python图像识别生成矢量图_使用python制作矢量图

    Get一个使用python制作矢量图的新技能: 前言: Matplotlib远比我们想象的强大,而这只是众多python强大的包中的一个,不愧是群英荟萃. 绘图后端我们一般是看不见的,matplotl ...

最新文章

  1. 虚拟机常用的内存查看与分析工具
  2. T-SQL操作XML 数据类型方法 modify 的参数 1 必须是字符串文字。
  3. Linux_自制系统服务启动脚本
  4. Makefile:自动化变量 $@,$^,$<,$?
  5. nej+regular环境使用es6的低成本方案
  6. 《linux就该这么学》第七节课:文件的各种权限以及linux分区命名规则
  7. python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析
  8. python中type为什么有main_python中 __name__及__main()__的妙处
  9. 干货| 掌握这种逻辑思维,大厂面试成功率可提升90%
  10. 手机怎么打开f12_碰到生僻字看不懂怎么办?打开手机这个开关,一键即可秒懂...
  11. 简单网络传递加密数据
  12. CentOS安装JDK 17
  13. 呼叫中心系统建设方案
  14. Chuck语言学习笔记——0.前言:我为什么要学习这门语言
  15. 业务架构师应该做些什么?
  16. 计算机基础2008版第7次作业,中医药大学-计算机基础2008版-1-7次作业.doc
  17. PWM占空比,频率,周期之间关系
  18. CSS学习笔记(内边距~文字在盒子里的垂直居中)
  19. android 比较符合android构架,优雅的定义全局变量
  20. 北森测评登录_福利 | 惠卫“吉讯”大学生职业测评与规划系统上线了!

热门文章

  1. c# 定位内存快速增长_C# ASP.NET 优化程序性能、降低内存使用、提高程序运行速度...
  2. 2017中学生计算机竞赛预赛试题答案,2017年度中国大学生数学竞赛预赛试题参考 答案(非数学类).pdf...
  3. Flutter下打包IOS遇到的部分问题
  4. Perforce使用中文教程
  5. Win10运行冒险岛提示初始化GPK失败
  6. 蔡高厅高等数学 09 函数的左右极限、无穷大量与无穷小量
  7. 决策树 结构_「神经网络」能否代替「决策树算法」?
  8. 开关柜太复杂看着头疼?三分钟带你看懂开关柜!
  9. jczjbbs.com app.html,app.zhiboo168.com
  10. telnet测试端口是否通_巧用网线直连法测试政企入云带VLAN专线电路通道