首页 > 编程语言 >基于yolov10的舌象检测识别系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

基于yolov10的舌象检测识别系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

时间:2024-12-17 14:58:12浏览次数:7  
标签:舌象 检测 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界面和各种模型指标等 

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

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

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

相关文章

  • (84)QPSK频带调制(载波调制)解调与性能仿真的MATLAB实现源码
    文章目录前言一、QPSK调制简介1.QPSK调制的原理2.QPSK调制的特点与应用二、MATLAB仿真源码三、仿真结果1.QPSK基带调制信号与频带调制信号的波形图2.接收机QPSK星座图3.QPSK频带调制系统的性能仿真曲线四、子函数与完整代码总结前言本文给出QPSK频带调制传输......
  • Halcon缺陷检测之准备变化模型(二)
    在Halcon中,prepare_direct_variation_model算子是一个用于准备直接变异模型的重要工具,它主要用于图像比较中的变异检测。以下是对该算子的原理及应用的详细解释:算子原型:prepare_direct_variation_model(ModelImage,EdgeAmplitude,VariationModelID,30,1.5)一、原理p......
  • F5的WAF产品具有丰富的功能:攻击防护功能、智能检测与分析功能、安全管理与配置功能、A
    攻击防护功能防范常见Web攻击:能有效检测和阻止如SQL注入、跨站脚本攻击(XSS)、文件上传漏洞、命令注入等各类常见的Web应用攻击。通过对HTTP/HTTPS请求的深度分析,包括请求头、请求体、URL参数等,与预定义的攻击签名和规则进行精准匹配,及时发现并阻断恶意请求。抵御应用层DDoS攻击:......
  • SSM高校社团学生会管理系统--47676(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP
    摘  要本论文基于SSM框架,设计和实现了一个高校社团学生会管理系统。该系统旨在提供一个全面、高效、智能的高校社团学生会管理平台,以便管理者可以迅速且便捷地进行各项管理工作,并及时向社团成员提供准确的社团信息。  该系统通过角色划分为社团成员、社团社长和管理员......
  • 什么是入侵检测系统(Intrusion Detection System,简称IDS)
    定义入侵检测系统(IntrusionDetectionSystem,简称IDS)是一种网络安全设备或软件应用程序,用于监控网络或系统活动,以检测未经授权的访问、恶意活动或安全策略违规行为。它通过分析网络流量、系统日志和其他安全相关的数据来识别潜在的入侵行为,并及时发出警报,使管理员能够采取措施......
  • springboot网络文学交流分享平台-毕业设计源码31754
    springboot网络文学交流分享平台 摘  要随着互联网的快速发展,网络文学交流和分享变得越来越受欢迎。为了满足作者和读者的需求,基于SpringBoot框架的网络文学交流分享平台的设计和实现。该平台旨在为作者和读者提供一个方便的交流和分享作品的平台。通过系统,作者可以上传......
  • Element Plus 源码:实现 Icon 组件的详细过程
    一、前言ElementPlus组件最简单入手的就是icon组件,所以先从icon组件来大概了解整个项目处理组件的基本原理,由浅入深,能让你了解到ELementPlus的bem命名规范,themechalk文件中的scss,组件如何定义类型和基本实现思路以及部分在icon组件中使用到的hooks和utils......
  • 云记账平台源码的好处
     云记账平台源码具有以下几个好处:定制化开发:云记账平台源码可以根据用户的需求进行定制化开发,满足不同用户的特定需求。独立运行:使用云记账平台源码可以搭建一个独立的记账平台,不依赖于第三方服务商,用户可以完全掌控数据和功能。安全性:云记账平台源码可以自行部署在本地......
  • 抖音SEO矩阵源码搭建:一键霸屏秘诀揭秘
    抖音SEO系统,也称为抖音SEO矩阵或抖音搜索优化排名系统,是一个集成了多种功能的平台。它的核心功能包括AI视频混剪、视频产出、AI视频制作、多账号多平台管理、内部分发以及站内搜索排名优化等。该系统还提供了会员爆客和企业号管理等功能。虽然每个功能都经过深度开发,但抖音作为......
  • 数据分布检验利器:通过Q-Q图进行可视化分布诊断、异常检测与预处理优化
    在机器学习和数据分析中,我们经常需要验证数据是否符合某种特定的分布(如正态分布)。这种验证对于选择合适的统计方法和机器学习模型至关重要。例如许多统计检验和机器学习算法都假设数据服从正态分布。如果这个假设不成立,我们可能需要对数据进行转换或选择其他更适合的方法。Q-Q图(Q......