python配合yolo分类模型开发分类软件

  1. 上一篇文章写了yolo的分类模型的训练,写篇文章基于yolo分类模型开发分类软件。
  2. 开发环境:pycharm,PySide6 6.6.1 ,PySide6-Addons 6.6.1,PySide6-Essentials 6.6.1,torch 2.3.1+cu121,torchaudio 2.3.1+cu121,torchvision 0.18.1+cu121,onnx 1.16.1,onnxruntime 1.17.3,opencv-contrib-python 4.10.0.82,opencv-python 4.10.0.82,opencv-python-headless 4.7.0.72
  3. 分类使用的数据集,halcon的pill分类demo的数据集
  4. 软件界面


  5. 核心代码
    yolo推理代码
bash 复制代码
  results = self.Model.predict(image_mat_)
            if(len(results)>0):
                ###获取分类名
                names_=results[0].names
                probs_=results[0].probs
                class_id_=probs_.top1
                class_socre_=probs_.top1conf.item()
                self.Classification=names_[class_id_]
                self.Sorce=str(class_socre_)

onnx推理核心代码

bash 复制代码
 			target_image_height_ = input_onnx_.shape[2]###获取输入的目标维度
            target_image_width_ = input_onnx_.shape[3]

            # image_mat_=image_mat_.resize(target_image_width_,target_image_height_)###缩放图片
            scale_image_mat_=cv2.resize(image_mat_,(target_image_width_,target_image_height_))
            print("ImageMatShape:", scale_image_mat_.shape)

            image_np_ = np.array(scale_image_mat_)  ###图片转成np数组
            print("ImageNpShape:", image_np_.shape)

            image_np_ = image_np_.transpose(2, 0, 1)  ##转成通道在前面的维度
            print("ImageNpShape:", image_np_.shape)

            resized_width = image_np_.shape[2]  ##获取图片输入输出
            resized_height = image_np_.shape[1]

            image_np_ = image_np_.reshape(1, 3, target_image_height_, target_image_width_)  ##添加一个新维度
            print(image_np_[0, 0, 0, 0])
            print("ImageNpShape:", image_np_.shape)

            image_np_ = image_np_.astype(np.float32)

            image_np_ = image_np_ / 255.0  ##数据归一化
            print(image_np_[0, 0, 0, 0])

            ###获取输出点
            outputs = self.OnnxModel.get_outputs()
            output_onnx_ = outputs[0]
            print("Name:", output_onnx_.name)
            print("Type:", output_onnx_.type)
            print("Shape:", output_onnx_.shape)

            ###运行推理
            outputs = self.OnnxModel.run(["output0"], {"images": image_np_})

            if(len(outputs)>0):
                ng_sorce_=outputs[0][0][0]
                ok_sorce_=outputs[0][0][1]

                if(ng_sorce_>ok_sorce_):
                    self.Classification="ng"
                    self.Sorce=str(ng_sorce_)
                else:
                    self.Classification="ok"
                    self.Sorce = str(ok_sorce_)
  1. 推理的效果显示

相关推荐
for_ever_love__1 分钟前
python基础语法学习: 变量, 输入输出, 运算符
网络·python·学习
努力搬砖的咸鱼11 分钟前
AI Agent测试全景图:它到底改变了什么
人工智能·python·ai·集成测试·pytest·agent·ai编程
张小殊.1 小时前
LoongForge TAOT 训练方案,解决MoE EP不均衡问题
人工智能·python·深度学习·机器学习·ai
玫幽倩1 小时前
2026黄河流域公安院校-电子物证单项赛(程序逆向分析+服务器取证)
运维·服务器·python·电子取证·逆向·程序分析·服务器取证
北斗落凡尘1 小时前
LangGraph 入门实战(4)
python·langchain
liwulin05061 小时前
【PYTHON】使用Selenium + ChromeDriver以及XPATH语法
开发语言·python·selenium
copyer_xyf2 小时前
Agentic RAG 实战:PostgreSQL + LangGraph 一条链路
python·postgresql·agent
动力 continue2 小时前
Python 元类与异常类:类的“制造工厂”与“报错定制师”
开发语言·python·制造
147API2 小时前
Python批量生成蒸馏数据,并发、重试、幂等和断点续跑
开发语言·jvm·python
青 春 记 忆2 小时前
零基础入门python04:用注册校验理解字典、集合和条件判断
开发语言·vscode·python·python3.11