一、项目背景
Deepseek的发布掀起了又一波人工智能的热潮,我也凑个热闹,通过人工智能大模型生成的python的编程代码将千物识别模型文件部署到我的程序里上传到行空板,通过识别摄像头采集到的图片来实现日常物件的识别,实现智能千物识别。
二、项目介绍
本项目是通过PySimpleGUI这个界面开发工具通过编程在行空板显示一个程序界面,第一行是程序名称,居中。第二行是显示图片路径,左对齐。第三行时选择图片、确定、取消程序的按钮。第四行是选择摄像头采集图片按钮。运行程序出现主界面,点击选择图片,当选择完图片,点击确定按钮实现图片推理,出现图片和识别结果信息,点击返回按钮返回主界面进行下一项。点击摄像头采集按钮进入拍摄界面当选择好合适的物件,点击拍照按钮,点击确定按钮实现拍照物体的识别。完成后点击返回按钮回到主界面,点击取消按钮退出程序。
本项目通过XEdu人工智能工具实现cls.onnx千物识别模型的部署和推理识别物体图片。既能通过已有的图片进行选择识别,又能通过摄像头实时采集图片进行识别。编程代码为人工智能大模型网站生成的python代码,本程序在电脑win10系统(仅在win10系统测试) 和行空板上都能运行。


三、硬件清单及软件准备
推荐软件
推荐使用使用XEdu一键安装包,本项目使用XEdu一键安装包制作生成。
XEdu一键安装包下载地址:https://p6bm2if73b.feishu.cn/file/boxcn7ejYk2XUDsHI3Miq9546Uf
四、制作过程
(一)利用PySimpleGUI这个界面开发工具,编写界面结构代码,1.提示词如下:

2.将代码复制到Thonny编辑器里,运行如下界面。

3.再进一步提出改进建议,一步一步完善界面,直到程序完善。

4. PySimpleGUI安装命令:
(二)通过XEdu工具实现图片的推理
1.图片推理的代码如下,将代码输入到Thonny编辑器,并运行。
from XEdu.hub import Workflow as wf
import numpy as np
# 模型声明
mm = wf(task='mmedu',checkpoint='cls.onnx')
# 待推理图像,此处仅以随机数组为例
img = 'img.jpg'
# 模型推理
res,img = mm.inference(data=img,img_type='cv2')
# 标准化推理结果
result = mm.format_output(lang="zh")
# 可视化结果图像
mm.show(img)
# 假设 result 是你已经得到的字典
result = {'标签': 834, '置信度': 0.4883305, '预测结果': 'suit, suit of clothes'}
# 获取预测结果
prediction = result['预测结果']
# 输出预测结果
print(f"预测结果为: {prediction}")
2.运行结果为下图.

(三)生成带界面的图片推理程序
1.利用大模型将图形界面和模型推理两段代码融合在一起,生成新的模型推理程序。
提示词为:
请帮我结合两段代码,实现将推理结果显示在弹出的窗口中,不要显示图片了。
界面开发代码如下:
import PySimpleGUI as sg
from PIL import Image
import io
import os
# 定义主窗口布局
layout = [
[sg.Text('智能图片助手', font=('Arial', 16), justification='center', expand_x=True)],
[sg.Text('输入图片地址:'), sg.Input(key='-IMAGE_PATH-', default_text='img.jpg')],
[sg.Button('确定')]
]# 创建主窗口
window = sg.Window('智能图片助手', layout, size=(300, 150))
# 事件循环
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == '确定':
image_path = values['-IMAGE_PATH-']
# 检查文件是否存在
if os.path.exists(image_path):
try:
# 打开图片
image = Image.open(image_path)
# 调整图片大小以适应窗口
image.thumbnail((800, 600))
bio = io.BytesIO()
image.save(bio, format="PNG")
img_bytes = bio.getvalue()
# 定义图片展示窗口布局
image_layout = [[sg.Image(data=img_bytes, key='-IMAGE1-')]]
# 创建图片展示窗口
image_window = sg.Window('图片展示', image_layout, size=(image.width, image.height))
# 运行图片展示窗口
image_event, image_values = image_window.read()
if image_event == sg.WINDOW_CLOSED:
image_window.close()
except Exception as e:
sg.popup_error(f'无法打开图片:{e}')
else:
sg.popup_error(f'文件 {image_path} 不存在,请检查路径。')
# 关闭主窗口
window.close()
模型推理代码如下:from XEdu.hub import Workflow as wf
import numpy as np
# 模型声明
mm = wf(task='mmedu',checkpoint='cls.onnx')
# 待推理图像,此处仅以随机数组为例
img = 'img.jpg'
# 模型推理
res,img = mm.inference(data=img,img_type='cv2')
# 标准化推理结果
result = mm.format_output(lang="zh")
# 可视化结果图像
mm.show(img)
# 假设 result 是你已经得到的字典
result = {'标签': 834, '置信度': 0.4883305, '预测结果': 'suit, suit of clothes'}
# 获取预测结果
prediction = result['预测结果']
# 输出预测结果
print(f"预测结果为: {prediction}")
并将摄像头功能集成在程序界面,用一个单独按钮控制。
2.将新生成的程序代码复制到Thonny编辑器中运行,运行结果如下图。

注意:识别物体的置信度没有%,需要将改成
保存zhinengshitu1.py之后就可以了。
(四)将程序上传到行空板运行调试
1.电脑连接行空板上传程序
第一步联网,在浏览器地址栏输入http:/10.1.2.3回车,连接wifi网络

上传文件,包括*.py,图片.jpg,*.onnx等文件。

2.配置程序在行空板的运行环境
安装XEdu库:pip install xedu-python
安装PySimpleGUI 库:pip install PySimpleGUI==4.70.1
安装方法一:打开Jupyter界面,

打开Jupyter终端

在Jupyter终端分别运行这两个安装命令

安装方法二:
通过mind+安装,打开Mind+软件,在python模式加载行空板插件,连接行空板10.1.2.3。在代码栏里点击库管理,通过pip手动安装,运行安装命令。

3.反复调试运行
把文件上传到行空板上运行zhinengshitu1.py程序文件,首先等待行空板完全启动完成,按左侧面的home键,点击切换运行程序,点击root/,点击upload/,点击zhinengshitu1.py程序文件,等待运行完成出现程序界面开始操作。具体操作看演示视频。
在行空板上运行程序,由于系统环境不同程序代码一般还要在大模型的帮助下进行一系列调整直到满意为止。我遇到的一个困扰很长时间的问题是在电脑里运行程序打开图片文件没问题,同样的程序在行空板里怎么也找不到图片文件。经过几次修改将这行代码

修改为这样的代码终于能在在行空板那里找到图片文件了。

五、作品展望
本项目是利用人工智能大模型编写python程序代码,实现非专业人员的编程梦想。随着人工智能的飞速发展,还将出现更加人性化的自然语言方式的编程作品的出现。由于操作方式和环境的原因有些识别结果还不是很准确,还要进一步探索经验。
附件
评论