首页 > 编程语言 >基于yolov10的柿子成熟度检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

基于yolov10的柿子成熟度检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

时间:2024-11-15 14:45:49浏览次数:3  
标签:python 检测 self list label 源码 location conf setText

 更多目标检测和图像分类识别项目可看我主页其他文章

功能演示:

yolov10,柿子成熟度检测系统,支持图像、视频和摄像实时检测【pytorch框架、python】_哔哩哔哩_bilibili

(一)简介

基于yolov10的柿子成熟度检测系统是在pytorch框架下实现的,这是一个完整的项目,包括代码,数据集,训练好的模型权重,模型训练记录,ui界面和各种模型指标(准确率、精确率、召回率等)等。ui界面由pyqt5设计实现。

该项目是在pycharm和anaconda搭建的虚拟环境执行,pycharm和anaconda安装和配置可观看教程:

超详细的pycharm+anaconda搭建python虚拟环境-CSDN博客

(二)项目介绍

1. 模型训练、验证

​该项目可以使用已经训练好的模型权重,也可以自己重新训练,自己训练也比较简单:

第一步:修改data/data.yaml中的数据集路径

第二步:模型训练,即运行train.py文件 

第三步:模型验证,当模型训练完后,运行val.py文件

第四步:使用模型,即运行gui.py文件即可通过GUI界面来展示模型效果

2. 数据集 

​​​

部分数据展示: 

​​

3.GUI界面(技术栈:pyqt5+python) 
a.GUI初始界面

​​​

b.图像检测界面

c.视频或摄像实时检测界面 

4.模型训练和验证的一些指标及效果

 

(三)代码

由于篇幅有限,只展示核心代码

    def upload_img(self):
        """上传图片"""
        # 选择录像文件进行读取
        self.comboBox.setDisabled(False)
        self.pushButton_4.setEnabled(False)
        # 上传图像
        fileName, fileType = QFileDialog.getOpenFileName(self, 'Choose file', '', '*.jpg *.png *.tif *.jpeg')
        if fileName:
            self.file_path = fileName
            """检测图片"""
            org_path = self.file_path
            # 目标检测
            t1 = time.time()
            # 图像检测
            results = self.model.predict(source=org_path, imgsz=self.output_size, conf=self.conf_threshold)[0]
            names = results.names
            t2 = time.time()
            self.label_6.setText('{:.3f} s'.format(t2 - t1))
            now_img = results.plot()
            # 调整图像大小
            self.resize_scale = self.output_size / now_img.shape[0]
            im0 = cv2.resize(now_img, (0, 0), fx=self.resize_scale, fy=self.resize_scale)
            cv2.imwrite("images/tmp/single_result.jpg", im0)
            # 自适应图像大小
            self.label_3.setScaledContents(True)
            # 显示图像
            self.label_3.setPixmap(QPixmap("images/tmp/single_result.jpg"))
            # 获取位置信息
            location_list = results.boxes.xyxy.tolist()
            location_list = [list(map(int, e)) for e in location_list]
            # 获取类别信息
            cls_list = results.boxes.cls.tolist()
            cls_list = [int(i) for i in cls_list]
            # 获取置信度信息
            conf_list = results.boxes.conf.tolist()
            conf_list = ['%.2f %%' % (each * 100) for each in conf_list]
            # 目标总数
            total_nums = len(location_list)
            self.label_11.setText(str(total_nums))
            choose_list = ['全部']
            target_names = [names[id] + '_' + str(index) for index, id in enumerate(cls_list)]
            choose_list = choose_list + target_names
            # 复合框信息
            self.comboBox.clear()
            self.comboBox.addItems(choose_list)

            self.results = results
            self.names = names
            self.cls_list = cls_list
            self.conf_list = conf_list
            self.location_list = location_list
            
            # 显示目标框
            if total_nums >= 1:
                # 渲染类别和置信度信息
                self.label_16.setText(names[cls_list[0]])
                self.label_15.setText(str(conf_list[0]))
                #   默认显示第一个目标框坐标
                #   设置坐标位置值
                self.label_13.setText(str(location_list[0][0]))
                self.label_19.setText(str(location_list[0][1]))
                self.label_21.setText(str(location_list[0][2]))
                self.label_23.setText(str(location_list[0][3]))
            else:
                # 清空显示框
                self.label_16.setText(' ')
                self.label_15.setText(' ')
                self.label_13.setText(' ')
                self.label_19.setText(' ')
                self.label_21.setText(' ')
                self.label_23.setText(' ')

(四)总结

以上即为整个项目的介绍,完整的项目包括代码,数据集,训练好的模型权重,模型训练记录,ui界面和各种模型指标等 

整个项目包含全部资料,一步到位,省心省力

若项目使用过程中出现问题,请及时交流!

标签:python,检测,self,list,label,源码,location,conf,setText
From: https://blog.csdn.net/lanbo_ai/article/details/143758729

相关文章

  • python的decimal默认精度为28
    python的decimal的精度可以修改的计算pi使用莱布尼茨级数计算圆周率fromdecimalimportDecimal,getcontext#设置全局精度为100位getcontext().prec=100#使用莱布尼茨级数计算圆周率pi=Decimal(0)forkinrange(1000000):pi+=(Decimal(-1)**k)/(......
  • Python异常处理
    六、异常处理基本语法try:#尝试运行的代码块result=10/0exceptZeroDivisionErrorase:#捕获ZeroDivisionError异常print("不能除以零!",e)exceptTypeErrorase:print("类型错误!",e)exceptExceptionase:#这里可以捕获所有的......
  • python实现的扫雷游戏的AI解法(启发式算法)
    相关:python编写的扫雷游戏如何使用计算机程序求解扫雷游戏本文中实现的《扫雷》游戏的AI解法的项目地址:https://openi.pcl.ac.cn/devilmaycry812839668/AI_mine_game该项目的解法效果:之前介绍了网上的一些解决《扫雷》游戏的一些解法,包括DQN和启发式等AI算法,看着这......
  • python调用百度通用翻译API
    文章目录1.简介2.使用步骤3.api调用实现4.编码实现1.简介前段时间在做视频语音识别生成多语种字幕时,使用了百度翻译通用翻译api进行翻译。百度翻译平台经过个人认证之后,每月有200万字符的免费翻译额度。还是比较舒服的。百度翻译开放平台是百度翻译面向广大......
  • Python类
    五、类5.1定义类使用class关键字定义一个类,类名通常采用首字母大写的驼峰命名法classPerson:pass5.2构造函数基本语法classPerson:def__init__(self,name,age):#定义构造函数self.name=name#初始化name属性s......
  • 视频智能分析网关反光衣检测算法在提升工人安全意识方面有哪些优势?
    在工业自动化和智能制造的浪潮中,工作场所的安全监控正变得越来越重要。反光衣检测视频分析网关正是为了满足这一需求而设计的高性能、低功耗的AI边缘计算硬件设备。以下是对视频智能分析网关视频分析网关的介绍,以及反光衣检测算法在提升工人安全意识方面的优势分析。一、产品介......
  • AI智能检测视频分析网关安全帽检测识别监控解决方案
    在当代建筑行业中,保障工人的安全始终是最为紧迫的议题。事故如高空坠落和物体撞击等频繁发生,严重威胁着工人的生命安全。安全帽作为一项基础的个人防护设备,其正确使用对于减轻事故伤害起着至关重要的作用。不过,依赖传统的人工检查方法不仅效率不高,还可能存在疏漏和错误判断,难以实......
  • Python开发环境搭建(PyCharm+Anaconda+Git+Gitee)
    一、Anaconda介绍1.1为什么选择Anaconda?Anaconda是一个开源的Python发行版本,主要用于数据科学和机器学习,它包含了Python、conda以及众多工具和库,让我们可以轻松的构建和管理python虚拟环境,方便的进行python项目开发。下面是选择Anaconda的理由:安装简单方便便捷的Python虚拟......
  • Springboot餐饮管理系统设计与实现d9u1u(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,员工,菜品信息,菜品分类,菜品订单,餐厅餐桌,订座信息,食材信息,供应商,出库信息,入库信息,食材盘点,食材采购开题报告内容一、研究背景随着餐饮行业的快速......
  • Springboot彩妆专卖分享平台的设计与实现31682(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,美妆教程,美妆分类,美妆产品,美妆知识开题报告内容一、研究背景与意义随着社交媒体的兴起和人们对美的追求,彩妆已经成为现代女性生活中不可或缺的一部分。......