AIGC(生成式AI)试用 40 -- 程序(Python + OCR)-2

个人理解:

  • 关于编程
    • 没有代码基础也能编码,入门更容易
    • 虚拟环境下,大模型未能检测到环境,无法完成自我验证
    • 功能实现不完善,使用标准IDLE环境编程的效率较低 -- 考虑使用专门的开发IDE实现(工欲善其事,必先利其器)
    • 只包含了基本功能测试,对核心的图像加载 + 文字识别的特殊用例覆盖较少,测试覆盖不全面 -- 测试步骤的实现仍需要单独处理
  • 然而如果需更快速的完成程序实现,更高效的识别代码中的问题,不断迭代,必要的代码基础和架构理解会帮助开发者事半功倍,进阶不易
  • 软件工程中的最佳实践仍在发挥着巨大的作用,软件开发流程、软件开发过程仍在帮我们高效、高质的的完成项目开发任务,只是迭代的周期更短、响应的速度更快
  • 小(型)的、面向日常业务的工具在AI的辅助下得以快速的开发、使用,方便、适用、个性化,脚本成为普遍
  • 小程序的质量在开发之初可能不再是考虑的关键,快速、有效的解决问题成为了首选;然而随着工具的传播和叠加使用,质量问题将会突出(功能性、易用性),扎实的软件工程基础会帮助我们在利用AI之初就有所规划
  • AI做事与工做事一样,会犯错、会犯迷糊、会说谎话、会胡编乱造,因此对AI输出结果的判断需要对软件工程、软件需求、软件开发技能充分的了解
  • 如果只给出创意(需求)草图(手绘),AI是否能够对图进行解析,梳理需求、完善细节呢?或者通过一段视频,AI是否能够对视频进行文字描述,归纳总结,如果涉及流程,AI能够进行分解、优化、再整合?也就是AI能像人类一样通过5感,甚至是第6感,进行反馈和响应?
  • AI遵守规则,不会像人一样迂回、设陷、扯皮?

重新梳理程序(Python + OCR)实现过程

  • 遗留:暂且实现一版,后续持续改进,用AI编码

本计划一次性完成,在与AI的交互中反复变更需求,从GUI到功能细节实现(更深刻的理解需求是软件工程中的始点,也是最繁琐的阶段过程);

AI在编码实现中的确可以提效(直接获取答案),但提交结果的验证、测试仍是一个持续的过程;

在没有使用AI IDE开发平台,只借助AI工具情况下,与AI工具的磨合持续进行,如何更好的使用AI?

  • 细节是否可以用表格形式?如对象、属性、动作

  • 图像局部选择

  • 程序测试

  • AI编程的实现:需求 -- 大纲 -- 细节 -- 编码 -- 测试

  • 让AI美化GUI界面设计

  • Deepseek-OCR能通过图识别需求并完成程序吗?

目的:熟悉AI编码 + 完善程序OCR程序

  • 开发需求

  • 界面设想

  • AI提问1(需求预研)
    Python313(UV) + PyQT + PaddleOCR;AI工具:AI工具:文心一言(百度) ,CSDN写作助手(CSDN),豆包(字节跳动),通义千问(阿里)

  • AI提问2(开发环境)
    Python313(UV) + PyQT + PaddleOCR
    环境安装

    python 复制代码
    # python
    
    # paddleocr
    
    # pyqt5
  • AI提问3(需求分解)
    基于python的图像ocr识别系统

    • GUI图形界面
    • GUI对象及功能: 对象类型、对象属性(形状/大小、显示文字/图标)、响应事件
      > GUI层次:标题、菜单、第1层、第2层。。。第N层;左侧、右侧;状态栏
      > 对象属性:名称、类型、大小、形状、颜色(背景)、字体/字号、对齐方式
      > 响应事件
  • AI提问4(界面设计)

    • 提问: 作为Python + PyQT5开发专家,请按以下表格所述,构建GUI程序界面,并实现功能

    |-----|----------|-------|-----------------------------------|------------------------------------|------|------------|
    | 位置 | 名称 | 类型 | 属性 | 事件 | GUI? | 功能? |
    | 标题栏 | 图像文字识别系统 | 标题 | 长:1200 高:900 | | 是 | 是 |
    | 第1层 | 打开 | 按钮 | 长:200 高:50 圆角矩形 背景浅蓝色 宋体,10号 居中对齐 | 点击后选择图像文件 | 是 | 是 全局变更使用错误 |
    | 第1层 | 图像文件路径 | 输入框 | 长:400 高:50 宋体,10号 不可编辑 | 显示打开图像的文件全路径 | 是 | 是 |
    | 第1层 | 选择区域 | 按钮 | 长:200 高:50 圆角矩形 宋体,10号 居中对齐 | 选择图像指定区域显示,并按操作显示文字 | 是 | 否 |
    | 第1层 | 左旋 | 按钮 | 长:200 高:50 圆角矩形 宋体,10号 居中对齐 | 左旋90度 | 是 | 是 |
    | 第1层 | 右旋 | 按钮 | 长:200 高:50 圆角矩形 宋体,10号 居中对齐 | 右旋90度 | 是 | 是 |
    | 第1层 | 缩放 | 滑动条 | 长:200 高:50 圆角矩形 宋体,10号 居中对齐 | 左右滑动,图像进行缩小、放大显示 | 是 | 是 |
    | 第1层 | 开始识别 | 按钮 | 长:200 高:50 圆角矩形 背景浅蓝色 宋体,10号 居中对齐 | 识别原始图片显示框中的文字内容 | 是 | 是 |
    | 第1层 | 保存 | 按钮 | 长:200 高:50 圆角矩形 背景浅蓝色 宋体,10号 居中对齐 | 保存文字识别文本框中的文字显示,文件名为 原始图片名+reg.txt | 是 | 是 有错误 |
    | 第2层 | 原始图片 | 显示框 | 长:600 高:600 | 显示原始图片 | 是 | 是 有错误 |
    | 第2层 | 文字识别 | 多行文本框 | 长:600 高:600 宋体,10号 居上、居左对齐 可编辑 | 显示原始图片中识别的文字信息,格式排列与原始图片中文字一致 | 是 | 否 加入提示词 |
    | 第3层 | 状态 | 状态栏 | | 显示系统操作状态 | 是 | 是 |

  • AI提问6(代码实现)

    • 一次实现
  • AI提问7(优化完善)

    • 二次实现
    • 提问:作为Python + PyQT5 + Paddle开发专家,请按以下表格所述
      1)构建GUI程序界面,并实现功能
      2)优化代码,优化界面
  • AI提问8(程序测试)

    • 提示:生成以上程序测试用例,按表格形式输出,格式:序号、功能描述、测试数据、测试步骤、预期结果
    序号 功能描述 测试数据 测试步骤 预期结果
    1 图像加载功能 测试图片:test_image.jpg(PNG/JPG/BMP格式,尺寸≥100×100像素) 1. 点击"加载图片"按钮 2. 选择测试图片文件 图片正确显示在QGraphicsView中,状态栏显示文件名
    2 OCR基础识别 测试图片:含清晰中文文本(如"测试文字")的截图 1. 加载测试图片 2. 点击"开始识别"按钮 识别结果框显示在文本附近,状态栏显示"识别完成"
    3 矩形选区功能 测试图片:含多个文本区域的图片(如"标题"和"正文") 1. 加载图片 2. 按住鼠标左键拖动绘制红色虚线矩形 3. 释放鼠标 选区框持续显示,且仅选区内文本被识别
    4 旋转图片功能 测试图片:横向文字图片(需旋转90°后识别) 1. 加载横向图片 2. 点击"旋转90°"按钮 3. 执行OCR识别 旋转后文字方向正确,识别结果准确
    5 缩放图片功能 测试图片:高分辨率图片(如4K分辨率) 1. 加载图片 2. 拖动缩放滑块至50% 3. 执行OCR识别 缩放后图片清晰显示,识别结果与原图一致
    6 多语言支持 测试图片:含中英文混合文本(如"Hello 测试") 1. 加载混合文本图片 2. 在OCR设置中选择"中英文混合" 3. 执行识别 中英文均被正确识别,结果按语言分类显示
    7 结果保存功能 测试图片:含5行文本的图片 1. 执行OCR识别 2. 点击"保存结果"按钮 3. 选择保存路径(.txt格式) 生成文本文件,内容与识别结果完全一致
    8 异常图片处理 测试数据:损坏的JPG文件(corrupted.jpg)或非图片文件(test.pdf 1. 尝试加载损坏文件 状态栏显示"无法加载图片",程序无崩溃
    9 空选区识别 测试图片:空白区域或无文本图片 1. 绘制极小矩形选区(如1×1像素) 2. 执行识别 状态栏显示"未检测到文本",无错误弹窗
    10 大图分块识别 测试图片:超长文档截图(需分块处理) 1. 加载大图 2. 启用"自动分块"选项 3. 执行OCR识别 程序自动分割图片并合并识别结果,无遗漏或重复

参考

相关推荐
傲笑风7 小时前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino
维基框架8 小时前
WIKI 知识库 v1.1.1 正式发布
人工智能·python
zabr8 小时前
Agent少问你,不代表控制更少
架构·aigc·ai编程
谢白羽12 小时前
SGLang的AWQ量化笔记
笔记·python·sglang
迷迭香yy12 小时前
基金档案数据工程实战从收入分析到持仓穿透的Python解析 IG50免费开源股票数据API接口
开发语言·python
用户75650617861112 小时前
开发 Nemu 的第四天:真实 Beta 如何把一帧判断改造成状态机
aigc·ai编程
清水白石00812 小时前
Python 类型设计深度解析:TypedDict 能否替代 dataclass?从 JSON 数据边界到 API 设计的最佳实践
java·python·json
弈栈录13 小时前
上下文管理:如何让 AI 记住用户之前说过的话
aigc
️学习的小王13 小时前
Git项目提交忽略文件怎么做?以Python项目为例,详解.gitignore
git·python·elasticsearch
前端 贾公子13 小时前
第09章:上下文与记忆 (6)
开发语言·前端·python