当前位置: 首页 > article >正文

【AI加持】基于PyQt5+YOLOv8+DeepSeek的老鼠检测系统(详细介绍)

文章目录一前言二核心技术知识1.PyQt52.YOLOv83.DeepSeek4.CSV5.多线程6.关于老鼠1.传播疾病2.污染食物与生活环境3.破坏建筑与设施4.损害农作物与食品库存5.影响公共卫生与心理健康6.竞争生态资源、影响生态平衡三核心功能1.登录注册1.登录2.注册2.主界面3.图像检测界面1.检测结果展示2.导出检测结果3.可视化展示4.AIDeepSeek智能分析4.视频检测界面1.视频文件检测2.摄像头内容检测5.系统设置界面6.关于软件界面四数据集1.数据准备2.数据集处理1.数据集标注文件类型转换2.数据集拆分3.模型训练五项目运行环境1.项目依赖2.项目结构六总结本系统功能强大支持对图片、视频、视频流、摄像头中的老鼠进行检测支持多种数据数据源输入并且接入了AI实现了对当前分析结果的评估欢迎了解项目名称基于PyQtYOLODeepSeek的安全帽检测系统仓库名称yolov8-helmet-detect作者懷淰メ主页地址https://blog.csdn.net/a1397852386定制A1397852386开发日期2025年10月关键字#老鼠检测系统 #YOLOv8 #PyQt5 #DeepSeek #目标检测 #计算机视觉 #深度学习 #AI分析 #多模态融合 #图像识别 #视频检测 #实时监控 #行为分析 #实验动物监测 #数据可视化 #CSV数据存储 #多线程 #QThread #GUI开发 #Python项目 #目标定位 #置信度分析 #热力图 #检测模型训练 #数据集处理 #VOC转YOLO #数据标注 #模型训练 #mAP评估 #精度召回 #智能监控系统 #食品安全 #仓储监控 #鼠害防控 #智慧城市 #自动化检测 #视频流分析 #摄像头检测 #系统设计 #软件工程一前言随着实验动物在生命科学研究中的广泛应用对实验动物行为和生理状态的监测需求日益增长尤其是对老鼠这一常用模式动物的精准观察。传统的实验动物监测依赖人工记录不仅耗时耗力而且容易受观察者主观因素影响数据准确性和一致性难以保证。随着计算机视觉、深度学习技术的快速发展利用图像识别和目标检测技术进行实验动物行为分析成为可能为科研人员提供高效、可靠的实验数据。本项目基于PyQt5、YOLOv8和DeepSeek构建了一套老鼠检测系统。PyQt5为系统提供了图形化交互界面使用户能够直观地操作和查看监测结果提高了使用便利性和操作效率。YOLOv8作为先进的目标检测模型具备高精度和高速度的特点可实现对实验环境中老鼠的实时定位与识别极大提高了监测的自动化水平。DeepSeek技术则进一步增强了系统对老鼠行为特征的分析能力使得行为模式识别、异常行为检测等复杂任务得以实现。该系统的建设具有重要科研意义。一方面它可以大幅减少人工干预提升实验数据的客观性和可靠性另一方面它为实验动物行为研究、药理实验以及疾病模型分析提供了强有力的技术支持。通过该系统科研人员能够更高效地获取和分析老鼠的行为数据为生物医学研究和药物开发提供坚实的数据基础从而推动实验动物研究向智能化、精细化方向发展。二核心技术知识在这章我将要介绍本系统的核心技术。1.PyQt5PyQt5 是一套用于创建跨平台桌面应用程序的 Python GUI 工具包它是 Qt 应用框架的 Python 绑定。通过 PyQt5开发者可以使用 Python 编写具有现代图形界面的应用程序支持丰富的控件、信号与槽机制、窗口管理、事件处理等功能。它兼容主流操作系统如 Windows、macOS 和 Linux适用于开发各种规模的桌面软件常与 Qt Designer 配合使用以加快开发效率。2.YOLOv8YOLOv8You Only Look Once version 8是由 Ultralytics 推出的最新一代实时目标检测模型属于 YOLO 系列的改进版本。相比前代模型YOLOv8 在精度、速度和灵活性上都有显著提升支持目标检测、图像分割、姿态估计等多任务处理。它采用了更加高效的网络结构和训练策略并提供开箱即用的 Python 接口和命令行工具适用于边缘设备和云端部署广泛应用于安防监控、自动驾驶、工业检测等场景。3.DeepSeekDeepSeek是由深度求索公司开发的AI大模型助手作为纯文本模型我擅长自然语言处理、文档分析和智能对话。当与YOLOYou Only Look Once实时目标检测系统结合时可以形成强大的多模态应用架构——YOLO系统负责实时视觉识别和目标检测快速准确地识别图像或视频流中的物体而我则对YOLO检测到的结果进行深度语义分析和上下文理解提供物体属性的详细解读、场景描述、行为分析以及决策建议。这种结合使得计算机视觉的“看到”与AI的“理解”完美融合可广泛应用于智能监控、自动驾驶、工业质检等领域实现从视觉感知到智能决策的完整闭环。4.CSV本系统使用CSV进行数据的存储与数据导出。CSVComma-Separated Values是一种简单通用的文本文件格式以纯文本形式存储表格数据。它用逗号分隔不同的字段每行代表一个数据记录类似于电子表格或数据库中的行。由于其格式简单、易于读写且兼容性强CSV被广泛应用于数据交换、导出和存储支持几乎所有常见的办公软件和编程语言处理是数据分析和系统间传输结构化信息时最常用的轻量级格式之一。5.多线程QThread 是 PyQt5 提供的线程类用于在界面程序中安全地执行耗时任务从而避免界面阻塞和卡顿。它允许将数据处理、模型推理、文件读写等操作放到独立线程中运行并通过信号与槽机制与主线程进行通信确保界面更新的稳定性与线程之间的安全交互。使用 QThread 可以显著提升应用程序的响应速度使界面在后台任务执行期间依旧保持流畅同时具备良好的扩展性与可维护性在复杂的桌面端应用开发中尤为常用。6.关于老鼠老鼠是一类适应力极强的小型啮齿动物生活范围广从田野、仓库到城市下水道都能找到它们的踪迹。它们繁殖速度快、习性隐秘夜间活动频繁常以谷物、食物残渣以及各种可咬物为食。由于牙齿终生生长老鼠会不断啃咬周围物体从木门、电线到塑料管道都可能成为目标这使它在人类生活环境中尤为麻烦。老鼠对人类造成的危害多方面且严重。首先它们是多种疾病的重要传播者例如流行性出血热、鼠疫、钩端螺旋体病等鼠体或其排泄物、寄生在其身上的跳蚤都可能成为传播途径。其次老鼠会污染粮食和食品不仅导致经济损失还可能引发食物中毒。再者老鼠啃咬电线容易造成短路进而引发火灾隐患。在农业领域它们破坏作物、啃食种子使农田减产。居住环境中老鼠不仅带来噪音、异味也可能对家庭物品造成破坏。正因如此人类长期以来都将老鼠视为需要严密防控的有害生物通过环境整治、封堵缝隙、妥善储存食物与使用科学灭鼠手段等方式来减少其带来的危害。1.传播疾病老鼠作为常见的病原携带者与人类生活环境高度重叠因此容易成为多种疾病的传播媒介。它们常在下水道、垃圾堆、仓储区等肮脏潮湿之处觅食和栖息身上携带的细菌、病毒和寄生虫能够通过咬伤、排泄物、污染的食物或水源以及体表寄生虫间接传播给人类。最具代表性的疾病包括鼠疫、钩端螺旋体病、流行性出血热和沙门氏菌感染等其中鼠疫历史上曾引发大规模疫情危害极大。老鼠排泄物在空气中干燥后形成颗粒被吸入人体呼吸道也可能引起感染。一些寄生在老鼠体表的跳蚤、螨虫同样能作为媒介将病原体带给人类或家畜。由于老鼠繁殖速度快、适应力强一旦在社区、仓库或食品加工场所定居便可能迅速扩散。因此保持清洁的环境、妥善存放食物、定期消杀和封堵鼠洞是减少老鼠活动和阻断疾病传播链的重要措施。2.污染食物与生活环境老鼠在寻找食物和栖息地的过程中会频繁出入厨房、仓库、下水道以及垃圾堆等区域其排泄物、唾液和体表病原极易残留在所接触的物品和表面上从而造成广泛污染。它们咬啮包装袋、粮食和电线不仅破坏食材完整性还可能让细菌、病毒或寄生虫随之进入食品链。被老鼠啃过或攀爬过的食物往往肉眼难以察觉污染但仍可能隐藏健康风险。老鼠习惯在隐蔽角落筑巢会把纸屑、布料和杂物拖入室内使环境变得杂乱并滋生异味。其尿液具有强烈气味一旦渗入地板或墙角不仅难以清除还会吸引更多同类聚集。长期未治理的鼠害会让居家、餐饮和仓储环境清洁度急剧下降增加虫害共生机会。因此通过封堵缝隙、收纳食物、保持干燥与定期清洁可以有效减少老鼠对食物与环境的污染。3.破坏建筑与设施老鼠具有强烈的啮齿本能为磨牙会不断咬啮周围可触及的材料这使它们成为破坏建筑和设施的隐形“工程师”。在房屋结构中木梁、保温层、塑料管道和轻质隔墙都可能成为它们的目标被啃噬后承重能力下降或形成空洞长期累积会导致墙体松动、地板塌陷等安全隐患。更危险的是老鼠喜欢咬电线其锋利门齿能轻易剥离绝缘层造成短路、线路老化甚至引发火灾。此外它们在墙体夹层、天花板和管道井中筑巢会携带大量杂物影响排水、通风和供电系统的正常运行。老鼠的行动通常在隐蔽区域进行破坏往往在问题显现前已相当严重。为了减少建筑和设施受损必须定期检查隐蔽空间、封堵管线缝隙、保持环境整洁并采取专业的防鼠措施从源头上控制其入侵与扩散。4.损害农作物与食品库存老鼠在农业生产和食品储藏体系中是破坏性极强的害兽其取食习性和高繁殖速度使它们对农作物和库存粮食造成持续而隐蔽的损失。在田间老鼠会啃食幼苗、根茎和成熟的谷物导致作物减产、品质下降尤其在稻田、玉米地和蔬菜基地中更为常见。它们常在田垄、灌溉渠、堆草和仓边挖洞筑巢破坏土壤结构影响灌溉系统正常运行使作物生长环境恶化。在粮仓、食品加工场所和家庭储藏区中老鼠会咬破包装袋啃食稻米、面粉、坚果、干货等食材不仅消耗大量库存还会留下尿液、粪便与毛发使剩余粮食失去食用价值。被污染的粮食往往无法通过简单清理恢复安全性只能废弃处理从而造成额外经济损失。由于老鼠活动隐蔽、繁殖迅速若不及时治理其危害会在短期内扩大。因此强化仓储密封、定期巡查、保持干燥清洁并配合科学的防鼠措施是保护农作物和食品库存的关键。5.影响公共卫生与心理健康老鼠在公共卫生领域中具有显著的负面影响它们携带多种病原体活动范围又往往与人类生活空间高度重叠因此一旦数量失控社区卫生质量会迅速下降。老鼠在垃圾站、下水道及食品加工区域穿梭容易将细菌和病毒带入公共环境增加群体性感染的风险。它们留下的排泄物和异味不仅会污染空气还会诱发过敏反应或呼吸道不适给老年人与儿童等敏感人群造成额外负担。在心理层面许多人对老鼠有强烈的恐惧与厌恶当家中或公共场所频繁出现鼠迹时居民往往会产生紧张、焦虑和睡眠质量下降等问题。长期感受到鼠害威胁的人甚至可能出现安全感缺失影响日常生活与工作效率。对部分从业人员而言如餐饮、仓储与医疗环境中反复出现鼠患也会带来职业压力。通过完善市政卫生管理、加强环境清洁与社区防鼠措施可以减轻鼠害对公共卫生和心理健康的双重冲击。6.竞争生态资源、影响生态平衡老鼠在生态系统中属于高度适应性的杂食性动物其繁殖速度快、觅食能力强使它们在与其他野生动物争夺资源时往往占据优势。在农田、林地、湿地以及城市绿地中老鼠会大量捕食种子、果实、昆虫及小型无脊椎动物这不仅减少了本地植物的自然繁殖机会也压缩了其他小型动物的食物来源导致生物链结构发生变化。老鼠的入侵常会迫使本地啮齿类、鸟类甚至两栖爬行动物迁移或数量下降从而破坏原有的生态平衡。此外它们在筑巢和觅食过程中会扰动土壤和植被使微生境结构改变影响植物生长和昆虫栖息环境。尤其在人类活动影响较大的区域老鼠数量失控更容易造成生态失衡甚至引发害虫爆发或某些物种衰退。因此控制老鼠种群、保护原生物种及栖息地是维持生态系统稳定和生物多样性的重要措施。三核心功能1.登录注册1.登录软件启动后首先进入登录页面用户需要输入正确的用户名和密码才能使用本系统的正式功能登录页面整体采用了垂直布局局部采用了水平布局登录界面简约不简单登录功能后端采用CSV本地文件存储用户信息每次登录都是通过查库进行验证的实现了流程标准化。我们设计了简约的登录注册界面展示与用户交互的所有组件登录注册界面的标题展示了系统的名称。2.注册没有账号的用户需要进行注册注册操作流程十分简单用户点击登录界面的注册按钮就跳转到了注册窗口用户需要输入自定义的用户名和两次匹配的密码才能完成登录值得一提的是成功注册的用户软件会自动填写用户名和密码到登录界面实现了登录流程路径的简化。2.主界面用户通过输入自己的用户名和密码登录到本系统后进入主界面主界面内容十分丰富我来一一介绍首先软件整体是垂直布局顶部是系统的标题从左到右依次展示了系统的作者信息、系统名称、当前时间以及CPU内存占用情况下方为水平布局左侧是系统的导航区域我们设计了windows风格支持展开与收缩的内容导航区域右侧是内容核心区域通过点击导航按钮切换展示内容主界面主要展示了以日期为维度统计的数据、用户信息操作按钮、系统信息、系统环境信息以及实时CPU、内存可视化折线图3.图像检测界面1.检测结果展示用户通过点击左侧导航栏按钮切换到图像检测界面在此界面支持选择图像进行输入用户选择完之后被选择的图像会展示在左侧并且展示图像绝对路径信息用户可以通过点击右侧的“进行检测”按钮对输入的图像数据进行检测系统会自动调用YOLOv8相关算法根据指定的参数对输入图像内容进行检测最后将检测结果展示到右侧这样用户可以通过比对左右图像的区别得到直观的检测结果系统自动使用红色边框框选出目标区域并且使用红色文字展示出目标类别以及它的置信度这些参数和展示效果都可以在设置页面进行详细设置。2.导出检测结果我们设置了检测结果区域包括检测目标数量的展示以及详细检测结果表格用户可以更加直观地看到检测结果数据另外当用户检测结束之后右侧的三个按钮自动设置为可以点击这三个按钮的作用分别是导出结果用户可以将检测结果进行导出导出的文件格式可以是Excel、CSV、TXT可以根据情况自行选择导出格式我截图给大家看下导出的Excel文件内容格式。3.可视化展示然后就是可视化展示用户可以点击进行可视化按钮查看对于本次检测的可视化效果系统内置了四种可视化效果分别是目标位置热力图、目标面积占比、置信度分布直方图、检测能力柱状图这些图标通过不同维度对当前数据进行了可视化展示更便于用户理解这里指的一体的是支持可视化图表进行导出操作用户可以点击紫色的导出按钮对当前的可视化效果图表进行导出生成一张本地的PNG图像文件。4.AIDeepSeek智能分析将YOLOv8球体检测系统与DeepSeek等AI大模型深度融合能够实现从“单纯检测”到“智能认知”的跨越式升级。该系统在YOLOv8高效精准的球体定位能力基础上融入了DeepSeek强大的语义理解和推理决策能力不仅可以实时识别球体位置还能深度分析场景语义、生成战术策略并提供智能决策支持从而在体育分析、工业质检和机器人视觉等领域构建出更加智能化、自适应的一体化解决方案。这里是软件的另外一个核心AI智能分析我们的目标检测系统接入了DeepSeek大模型支持对当前检测结果数据进行AI分析AI会通过不同维度对当前检测结果进行多角度分析最后生成检测结果分析报告用户可以根据这个结果对系统进行调整不断完善系统功能和目标检测准确度在AI分析结束后下方会展示一些按钮用户可以方便地复制结果、导出文本内容、生成PDF报告、重新生成以及关闭多重的操作方式给于用户了多种选择4.视频检测界面1.视频文件检测我们的系统支持视频内容中的球体检测支持输入的视频类型包括视频文件、视频流以及摄像头通过识别视频画面的内容对内容中的目标球体进行检测试试标注与展示通过相关帧率控制保证了视频的流畅性用户可以通过比对左右两侧的画面使用肉眼评估当前检测结果我们的视频检测界面拥有图像检测界面相同的操作功能这里不多赘述。2.摄像头内容检测用户点击进行检测按钮之后系统会自动调用摄像头打开摄像头展示摄像头画面实时检测目标画面中的球体通过左右画面比对让用户看到检测结果这里本人就不露脸啦~5.系统设置界面我们的系统是支持简单的参数设置的具体可以设置目标检测模型、置信度阈值Conf、交并比阈值IOU、还有一些检测结果控制参数比如检测框展示、目标类别展示、目标置信度展示用户可以点击绿色的刷新按钮刷新可用模型亦可通过点击退出按钮退出系统或者退出登录本设置页面实现了目标检测参数的灵活配置6.关于软件界面我们使用富文本html的形式展示了软件相关的信息包括系统用到的相关技术对于二维的数据使用二维表进行了展示最底部放置了四个按钮分别是关于YOLO、关于软件、关于作者、关于QT点击之后都会弹出对应的信息提示框这个页面的作用是让用户更多的了解软件和创作者信息跨过技术的鸿沟四数据集本系统所使用的数据集围绕老鼠目标的多场景、多角度、多状态采集构建而成旨在提升模型在真实环境中的适应性与鲁棒性。数据来源涵盖实验室、仓储区、地下室、户外夜间监控、粮仓、食品加工车间等多类复杂场景结合不同光照条件、摄像头分辨率、遮挡程度与背景干扰使模型能够学习到多样化的外观特征与环境变化。图像中包含站立、奔跑、觅食、半遮挡、远距离、小尺寸目标等多种姿态并覆盖不同体型、颜色与运动模糊情况下的老鼠样本。数据集中不仅包含清晰标注的边界框还对类别与置信度进行了严格校验以确保训练时标签可信度和质量的一致性。经过清洗、去重、增强与格式化处理后最终数据集能够满足 YOLOv8 等高性能检测模型的训练需求使模型在实际部署中具备更强的泛化能力即便在光照不足、目标部分遮挡或背景复杂的情况下也能保持稳定识别效果。该数据集为系统实现高精度、高实时性的老鼠检测奠定了坚实基础。1.数据准备本系统附带1078张老鼠图像和1078个数据标注文件大家可以根据自己的情况自行训练数据自己的模型我们使用VOC的格式存储数据标注文件单数据标注文件内容如下annotationfolderpath/folderfilenamemouse-4-6-0001.jpg/filenamepath/home/ycc/darknet-master/CE/path/mouse-4-6-0001.jpg/pathsourcedatabaseUnknown/database/sourcesizewidth800/widthheight533/heightdepth3/depth/sizesegmented0/segmentedobjectnamemouse/nameposeUnspecified/posetruncated1/truncateddifficult0/difficultbndboxxmin130/xminymin13/yminxmax800/xmaxymax533/ymax/bndbox/object/annotation2.数据集处理1.数据集标注文件类型转换直接使用VOC格式的数据标注文件进行训练是不行的需要我们将xml转成txt文件这段代码的作用是将指定文件夹中的 Pascal VOC 格式的 XML 标注文件批量转换为 YOLO 格式的 TXT 标注文件。它会先遍历所有 XML 自动统计有效类别并生成类别到 ID 的映射表忽略类别名为 not 的标注然后读取对应图片的尺寸将 XML 中的边界框坐标转换为 YOLO 的归一化格式class_id x_center y_center width height最后将生成的 TXT 文件保存到指定目录中便于直接用于 YOLO 训练。大家首先执行step1_yolo_to_txt.pyimportosimportxml.etree.ElementTreeasETfromPILimportImage# 原始路径xml_dirrE:\thunder_download\useful\老鼠数据集\Annotationsimg_dirrE:\thunder_download\useful\老鼠数据集\JPEGImages# YOLO标签输出路径yolo_txt_dirrE:\thunder_download\useful\老鼠数据集\labelsos.makedirs(yolo_txt_dir,exist_okTrue)# 类别映射class_map{mouse:0}# 支持的图像扩展img_exts[.jpg,.jpeg,.png,.bmp]# 遍历 XML 文件forxml_fileinos.listdir(xml_dir):ifnotxml_file.endswith(.xml):continuexml_pathos.path.join(xml_dir,xml_file)treeET.parse(xml_path)roottree.getroot()# --- 以 XML 文件名匹配图像 ---baseos.path.splitext(xml_file)[0]img_pathNoneforextinimg_exts:candidateos.path.join(img_dir,baseext)ifos.path.exists(candidate):img_pathcandidatebreakifimg_pathisNone:print(fWarning: 图像文件与{xml_file}同名的图片不存在跳过)continue# 获取图像尺寸try:withImage.open(img_path)asimg:w,himg.sizeexceptExceptionase:print(f无法打开图片{img_path}:{e})continuetxt_lines[]# 遍历目标forobjinroot.findall(object):name_nodeobj.find(name)ifname_nodeisNone:continuelabelname_node.text.strip()iflabelnotinclass_map:continueclass_idclass_map[label]bndboxobj.find(bndbox)ifbndboxisNone:continuexminfloat(bndbox.find(xmin).text)yminfloat(bndbox.find(ymin).text)xmaxfloat(bndbox.find(xmax).text)ymaxfloat(bndbox.find(ymax).text)x_center((xminxmax)/2)/w y_center((yminymax)/2)/h box_width(xmax-xmin)/w box_height(ymax-ymin)/h txt_lines.append(f{class_id}{x_center:.6f}{y_center:.6f}{box_width:.6f}{box_height:.6f})# 保存 YOLO txttxt_file_pathos.path.join(yolo_txt_dir,base.txt)withopen(txt_file_path,w)asf:f.write(\n.join(txt_lines))print(f转换完成YOLO TXT 文件已保存在:{yolo_txt_dir})2.数据集拆分YOLO 推荐训练集和测试集按 8:2 划分主要是因为目标检测对样本量非常依赖需要尽可能多的训练数据来学习特征同时又必须保留足够的独立测试数据来评估模型的真实泛化能力。8:2 被证明在“训练数据够多”与“测试评估足够稳定”之间取得了较好平衡因此成为默认且通用的实践比例。这个脚本的作用是从已有的图片和 YOLO 标注文件中随机抽取 200 张图片并将它们按照训练集和验证集的比例进行划分然后将对应的图片和 TXT 标注文件复制到新的数据集目录中方便直接用于训练 YOLO 模型。脚本会先创建训练集和验证集的图片、标签子目录然后随机选择 200 张图片其中 40 张作为验证集其余 160 张作为训练集复制过程中会保证每张图片对应的标注文件也被同步复制如果标注文件不存在会生成一个空的 TXT 文件以保持文件结构完整。运行完成后新的数据集就整理好了可以直接用于训练和验证。。最终会在目标目录下生成执行脚本step2_auto_part.pyimportosimportrandomimportshutil# 原始数据路径img_dirrE:\thunder_download\useful\老鼠数据集\JPEGImageslabel_dirrE:\thunder_download\useful\老鼠数据集\labels# 新数据集路径dataset_dirrE:\thunder_download\useful\老鼠数据集\datasettrain_img_diros.path.join(dataset_dir,train,images)train_label_diros.path.join(dataset_dir,train,labels)val_img_diros.path.join(dataset_dir,val,images)val_label_diros.path.join(dataset_dir,val,labels)# 创建目录fordir_pathin[train_img_dir, train_label_dir, val_img_dir, val_label_dir]: os.makedirs(dir_path,exist_okTrue)# 获取所有图片文件all_images[fforfinos.listdir(img_dir)iff.lower().endswith((.jpg,.png,.jpeg))]# 随机抽取200张iflen(all_images)200: raise ValueError(f图片数量不足200张当前数量: {len(all_images)})selected_imagesrandom.sample(all_images,200)# 分割训练集和验证集random.shuffle(selected_images)val_imagesselected_images[:40]train_imagesselected_images[40:]def copy_files(image_list, target_img_dir, target_label_dir):forimg_fileinimage_list:# 复制图片src_img_pathos.path.join(img_dir, img_file)dst_img_pathos.path.join(target_img_dir, img_file)shutil.copy(src_img_path, dst_img_path)# 对应的txtlabel_fileos.path.splitext(img_file)[0].txtsrc_label_pathos.path.join(label_dir, label_file)ifos.path.exists(src_label_path): dst_label_pathos.path.join(target_label_dir, label_file)shutil.copy(src_label_path, dst_label_path)else:# 如果没有对应txt文件创建一个空文件open(os.path.join(target_label_dir, label_file),w).close()# 复制训练集copy_files(train_images, train_img_dir, train_label_dir)# 复制验证集copy_files(val_images, val_img_dir, val_label_dir)print(f随机抽取完成训练集: {len(train_images)} 张验证集: {len(val_images)} 张)print(f数据集路径: {dataset_dir})3.模型训练数据集准备好之后就可以开始模型训练了我们首先准备一个训练的配置文件比如说是data.yaml然后就可以开始模型训练了直接执行我们准备好的train.bat文件内容就是下面的内容yolotaskdetectmodetrainmodel../data/model/yolov8n.ptdata./data.yamlepochs30imgsz640batch16lr00.01然后模型就开始训练了这里我贴一些训练验证结果截图最后的results.png见下图训练效果还是可以的1. 训练损失的整体表现 训练阶段的三个主要损失box、cls、dfl都呈现稳定下降趋势。 起始阶段的损失都相对较高但随着 epoch 增加box 与 cls 损失明显快速下降说明模型在定位与分类方面的学习都较为顺利。 dfl 损失的下降速度较为平稳但同样呈持续向下趋势代表边界框分布拟合在逐渐改善。整个训练过程中没有出现损失反弹或剧烈震荡显示出良好的收敛性。2. 验证损失的稳定性 验证损失在前几个 epoch 略有波动但中后期进入稳定区间没有出现随训练继续而升高的趋势。 box、cls、dfl 三项验证损失都维持在相对平稳的范围内尽管数值并非非常低但并没有随着训练进行而逐渐恶化。 这表明模型并未在训练后期产生明显的过拟合现象验证数据与训练数据之间的分布差异并未导致性能下降。3. 精度与召回的演变 精度在训练过程中持续提升从极低水平快速上升到训练末期已经达到较高的准确性这反映模型在减少误检方面表现出色。 召回表现则略显弱势虽然有增长但改善速度不及精度这说明模型在检测目标时倾向于“宁可漏掉也不误报”。 整体来看模型目前更偏向高精度、相对较低召回的策略因此漏检仍是主要不足点。4. mAP 指标的进步情况 mAP50 与 mAP50-95 都呈现稳定上升趋势尤其是在前半段训练中提升较为明显。 进入大约30epoch 以后两项 mAP 增长开始放缓训练进入平台期这属于典型的收敛过程。 尽管如此最终的 mAP 水平相比初始阶段仍有显著提升说明模型整体检测能力在整个训练过程中获得了有效优化。5. 学习率调度对训练的影响 学习率从初始阶段开始逐渐下降衰减过程平滑没有出现跳变或过冲。 在训练后期学习率下降到较低水平使得模型能够在稳定状态下继续微调从而避免震荡与过拟合问题。 这种平滑衰减策略对于稳定损失曲线和 mAP 提升起到了关键作用。 整体总结 整个训练过程表现稳健训练损失持续下降验证损失平稳无恶化说明模型已经稳定收敛且没有明显过拟合。 精度高于召回意味着模型很“稳”但对小目标或边缘样本仍可能存在漏检需要通过数据增强或类别样本平衡进一步提高召回率。 mAP 指标在整个训练中稳步增长最终达到较理想水平但后期提升缓慢可能需要增加训练轮数、增强数据或进行超参数微调来推动进一步提升。 学习率调度也发挥了有效作用使训练过程稳定、可控。我们的检测系统可以用在的应用场景1. 食品加工厂与仓储中心在食品加工、冷链物流与大中型仓储环境中老鼠活动会直接造成食品污染与货物损坏。系统能够对仓库内部的实时画面进行连续监控一旦发现老鼠立即报警并记录证据帮助企业快速定位问题区域从而在源头减少食品安全隐患。2. 餐饮后厨与生鲜超市餐饮后厨、熟食区、肉类处理区以及生鲜超市对卫生要求极高但也是鼠害高发地。系统通过摄像头实时监控关键区域即使在夜间灯光不足的条件下仍能准确识别老鼠有助于店铺进行持续监控、查找防鼠漏洞并满足卫生监管要求。3. 居民小区与老旧建筑群老旧社区、地下停车场、垃圾投放点等区域往往难以长期人工监控。系统可部署在固定监控点通过自动化处理减少人工成本并结合 DeepSeek 的风险分析能力对高发区域进行标注提示物业加强检查或采取防护措施提高小区整体环境卫生。4. 农场、粮仓与农业生产场景农场、畜牧区、粮仓等场景中老鼠会破坏饲料、传播疾病影响动物健康。系统能长期守控粮食储藏区、饲料库房等及时捕捉老鼠活动轨迹为农业生产者提供可视化的数据依据帮助制定更精准的驱鼠或防护策略。5. 医院、实验室与公共卫生场所医疗机构与实验室对卫生环境的要求极高尤其是涉及药品、样品与实验动物的区域。系统能在无人时段保持全天候监测及时发现环境中的老鼠入侵问题有效降低实验污染与安全事故风险。6. 地下管廊、地铁站与城市公共设施城市地下设施空间封闭且复杂是老鼠活动的重要通道人工巡检难度大。系统可以依托现有监控覆盖将检测模块嵌入视频流中实现自动识别与报警并结合 DeepSeek 对异常区域进行智能分析对城市公共安全运维团队具有重要价值。7. 智慧城市与数字管理平台集成系统具备数据输出与智能分析能力能够与智慧城市、城市大脑、防疫管理系统等平台集成。通过标准化的数据接口系统持续提供检测事件、热力分布、高发时间段等信息为城市级治理提供数字化依据形成自动化防鼠系统。五项目运行环境本项目名称为yolov8--mouse-detection1.项目依赖博主是在Windows电脑上使用Python3.8开发的本系统建议大家使用的Python版本别太高。其中项目依赖为PyQt55.15.11QtAwesome1.3.1torch2.4.1torchvision0.19.1Pillow9.3.0pyqtgraph0.13.3PyQtWebEngine5.15.5 opencv-python4.10.0.82ultralytics8.3.234Requests2.32.5pandas2.0.3numpy1.24.4Markdown3.4.4我已经整理到了requirements.txt大家直接使用命令pip install -r requirements.txt即可一键安装项目依赖其中的torch和torchvision只要匹配即可不一定非要和博主开发环境的版本一致。2.项目结构很多小伙伴担心拿到代码后项目看不懂这个大家不必担心我们采用文件类名对相关功能进行了模块化定义大家见名知意。下图博主采用tree命令生成了文件、目录树treeD:\projects\gitee\2025\yolov8--mouse-detection/f /aD:\PROJECTS\GITEE\2025\yolov8--mouse-detection|.gitignore|main.py程序入口|record.txt开发记录|requirements.txt项目依赖||---script|create_qrc.py|---src源代码核心目录|---conf配置内容|||icon_conf.py|||style_conf.py|||system_conf.py|||test_data.py|||__init__.py|||---engine核心引擎||engines.py||__init__.py|||---resource资源目录|||resource.qrc|||resource_rc.py|||__init__.py|||||\---imgs||ai.svg||bg.jpg|||---threads线程、信号总线||main_threads.py||signal_bus.py||__init__.py|||---utils工具方法、工具类||custom_utils.py||user_manager.py||__init__.py|||\---widgets组件目录|base_widgets.py|custom_pages.py|custom_widgets.py|main_page.py|unique_widgets.py|__init__.py六总结基于 PyQt5 YOLOv8 DeepSeek 打造的老鼠检测系统是一款面向实际应用场景的智能视觉平台融合了实时监测、图像识别、数据分析、可视化与人机交互等多项能力为实验室、仓储环境、食品工厂以及农牧场的鼠患监控提供高效、稳定、自动化的技术支撑。系统以 PyQt5 构建主界面框架通过模块化的页面管理和清晰的交互布局让用户在图像检测、视频检测、实时流检测与摄像头监控之间自由切换所有操作逻辑都在流畅的窗口组件中无缝完成。YOLOv8 作为核心检测模型通过多线程架构与 DetectThread 深度结合实现了对图像与视频帧的高速推理无论是本地图片、录制视频还是 RTSP/RTMP 实时流系统都能在稳定的播放线程控制下保持高清处理与持续识别并以标注框、类别名称、置信度等直观结果呈现目标情况。除了基础检测功能系统还提供完整的数据导出能力包括 CSV、Excel、TXT 多格式落盘支持快速生成检测日志使每次监测都有迹可循。同时内置 GPT 智能评估模块可自动根据检测结果生成分析结论辅助用户理解异常情况、识别潜在风险并提供策略性建议。自带可视化组件能够基于识别数据生成统计图表使老鼠活动密度、区域分布、出现频率等信息更加直观。系统还具备用户管理、配置调参、实时清屏、线程自动管理等配套机制确保在长时间运行下依然稳定可靠。整体架构充分利用多线程与事件驱动优势将前端交互、模型推理与后端逻辑有机结合形成一套专业、实用、具有扩展能力的智能鼠害检测解决方案。本次给大家介绍了我使用PyQt5YOLOv8DeepSeek的老鼠检测系统本系统功能强大支持多种数据源输入包含多种用户交互按钮以及模式内置数据可视化方案、大模型AI加持是您学习、工作使用的不错选择需要代码的朋友可以点击箭头下方的二维码加我好友欢迎您了解

相关文章:

【AI加持】基于PyQt5+YOLOv8+DeepSeek的老鼠检测系统(详细介绍)

文章目录一.前言二.核心技术&知识1.PyQt52.YOLOv83.DeepSeek4.CSV5.多线程6.关于老鼠1.传播疾病2.污染食物与生活环境3.破坏建筑与设施4.损害农作物与食品库存5.影响公共卫生与心理健康6.竞争生态资源、影响生态平衡三.核心功能1.登录注册…...

告别模组管理混乱!XXMI启动器:一站式管理6大二次元游戏的终极解决方案

告别模组管理混乱!XXMI启动器:一站式管理6大二次元游戏的终极解决方案 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为不同游戏安装不同的模组工具…...

网盘下载加速实战手册:8大平台真实地址解析方案

网盘下载加速实战手册:8大平台真实地址解析方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…...

深入理解uiprogress:自定义装饰器函数的10个实战案例

深入理解uiprogress:自定义装饰器函数的10个实战案例 【免费下载链接】uiprogress A go library to render progress bars in terminal applications 项目地址: https://gitcode.com/gh_mirrors/ui/uiprogress uiprogress是一款强大的Go语言终端进度条库&…...

跨平台技术

Flutter for OpenHarmony跨平台技术...

Flutter for OpenHarmony跨平台技术

文章内容需围绕Flutter for OpenHarmony跨平台技术展开 文中所附代码应具备良好的可读性,且需经过验证,确保在鸿蒙设备上可运行,无重大逻辑错误。 文章须提供代码在鸿蒙设备上成功运行的截图,以作验证。 标题需明确体现所使用的鸿…...

我的文章喂喂喂

页面切换动画...

JDK17-21特性Pattern-Matching详解

Pattern Matching 详解 一、知识概述 Pattern Matching(模式匹配)是 Java 引入的一系列语言特性,用于简化类型检查和数据提取。从 Java 16 开始逐步引入,到 Java 21 已成为成熟的特性。 1.1 演进历程 版本 特性 Java 16 instanceof 模式匹配(正式版) Java 17 Switch 模…...

低代码平台对接进入“MCP 2026时代”,这9个必须重写的扩展点你改对了吗?

更多请点击: https://intelliparadigm.com 第一章:MCP 2026低代码平台对接的范式跃迁 从API绑定到语义契约驱动 MCP 2026不再依赖传统RESTful端点硬编码,而是通过声明式语义契约(Semantic Contract)定义能力边界。开…...

ETASOLUTIONS钰泰 ETA9740E8A ESOP8 电池管理

特性单电感双向功率转换自动模式切换开关充电器5V同步升压,效率高达96%最大充电电流达3A,放电电流达2.4A无电池检测无需外部检测电阻4个LED电量指示...

JDK17-21特性Virtual-Threads详解

Virtual Threads 详解 一、知识概述 Virtual Threads(虚拟线程)是 Java 21 引入的重大特性,它是 Project Loom 项目的核心成果。虚拟线程是一种轻量级的线程实现,由 JVM 而非操作系统管理,可以极大地提高并发程序的可扩展性。 1.1 传统线程的局限性 在虚拟线程出现之前…...

【紧急避坑】AI开发者必看:Docker Sandbox 4类致命报错正在 silently 毁掉你的模型实验结果!

更多请点击: https://intelliparadigm.com 第一章:Docker Sandbox 运行 AI 代码隔离技术报错解决方法总览 在基于 Docker 构建的 AI 代码沙箱环境中,常见报错多源于资源限制、权限配置、依赖冲突及挂载路径不一致。以下为高频问题的系统性排…...

PvZ Toolkit:内存注入技术与游戏逆向工程的完美融合

PvZ Toolkit:内存注入技术与游戏逆向工程的完美融合 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 当我们回顾经典游戏《植物大战僵尸》时,总会想起那些充满策略性的关卡设…...

040、未来展望:自主智能体、AGI与架构新范式

昨天深夜调一个多智能体协作的仿真环境,日志里反复报“决策循环超时”。查了半天,发现不是计算资源不够,而是几个智能体在互相等待对方的输出,形成了一个死锁环。关掉显示器点烟的时候突然想到:这不就是我们现在搞的AI Agent架构的缩影吗?每个模块都挺聪明,凑在一起却可…...

【C语言嵌入式RTOS开发黄金标准】:2026版官方规范首次解禁,97%工程师尚未掌握的5大硬核约束条件

更多请点击: https://intelliparadigm.com 第一章:2026版嵌入式RTOS C语言开发规范的演进逻辑与合规性纲领 嵌入式实时操作系统(RTOS)在汽车电子、工业控制与AIoT边缘设备中的安全临界性持续提升,推动C语言开发规范从…...

VS Code Copilot Next 真实生产部署失败复盘:3家头部科技公司血泪教训,第2条99%开发者仍在踩坑

更多请点击: https://intelliparadigm.com 第一章:VS Code Copilot Next 真实生产部署失败复盘总述 在某中型 SaaS 产品团队的 CI/CD 流水线升级中,VS Code Copilot Next 被引入作为开发辅助层,计划集成至远程开发容器&#xff0…...

Qwen3.5-2B入门指南:Clear Chat与Export History在团队协作中的妙用

Qwen3.5-2B入门指南:Clear Chat与Export History在团队协作中的妙用 1. 认识Qwen3.5-2B轻量化模型 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型,属于Qwen3.5系列的小参数版本(20亿参数)。这个模型特别适合团队协作场景&#…...

企业如何用客户关系管理系统提升销售业绩?3步实现业绩增长的实战指南

很多企业在销售管理中会遇到这样的困境:客户没少开发,但成交率一直上不去;销售员没少努力,但业绩就是不见增长;团队没少开会,但问题总是反复出现。实际上,这些都是客户关系管理系统可以解决的问…...

驱动基础知识

makefile添加模块编译好.ko文件后 insmod添加模块 ,由于学习使用的是虚拟终端需要使用dmesg 指令显示Kconfig是定义可配置项,让用户选择对应功能,Makefile会根据用户选择的配置项来控制代码的编译行为。驱动三种状态编译进内核,编…...

RS-485故障安全偏置技术演进与工程实践

1. RS-485故障安全偏置技术背景解析在工业现场总线通信领域,RS-485标准已经服役超过30年,却依然是许多工程师的"痛点"。这个看似简单的差分通信协议,在实际部署中常常会遇到一个典型问题:当总线处于空闲状态时&#xff…...

NE2281 1000W PFC芯片,主要应用于boost PFC变换器

1、方案名称:NE2281 1000W PFC芯片,主要应用于boost PFC变换器 2、品牌:星云半导体(NEBULA) 3、描述:NE2281 是一款高性能、多模式工作的 AC/DC控制器,具有高集成度、高效率等特性&#xff0c…...

LFM2.5-1.2B-Instruct一文详解:28T训练预算带来的小模型高泛化能力

LFM2.5-1.2B-Instruct一文详解:28T训练预算带来的小模型高泛化能力 1. 模型概述与核心优势 LFM2.5-1.2B-Instruct是一个参数量仅为1.2B的轻量级指令微调大语言模型,由Liquid AI和Unsloth团队联合开发。这个模型最引人注目的特点是:用28T to…...

vulhub系列-34-Os-ByteSec(超详细)

免责声明:本文记录的是 Os-ByteSec 渗透测试靶机 的解题过程,所有操作均在 本地授权环境 中进行。内容仅供 网络安全学习与防护研究 使用,请勿用于任何非法用途。读者应遵守《网络安全法》及相关法律法规,自觉维护网络空间安全。目…...

手把手教你用readl/writel调试树莓派GPIO(基于Linux/io.h)

手把手教你用readl/writel调试树莓派GPIO(基于Linux/io.h) 树莓派作为一款广受欢迎的嵌入式开发平台,其GPIO控制一直是开发者关注的焦点。不同于常见的用户空间GPIO库(如WiringPi或RPi.GPIO),本文将带你深入…...

LLVMSwift:用Swift原生封装LLVM,实现类型安全的编译器开发

1. 项目概述与核心价值如果你是一个 Swift 开发者,同时对编译原理、程序分析或者高性能计算感兴趣,那么你很可能听说过 LLVM。这个强大的编译器基础设施几乎无处不在,从 Clang 到 Swift 编译器本身,再到各种 JIT 引擎,…...

vulhub系列-33-hacksudo - Thor(超详细)

免责声明:本文记录的是 hacksudo - Thor 渗透测试靶机 的解题过程,所有操作均在 本地授权环境 中进行。内容仅供 网络安全学习与防护研究 使用,请勿用于任何非法用途。读者应遵守《网络安全法》及相关法律法规,自觉维护网络空间安…...

JPEGsnoop深度解析:当你的JPEG图像需要“法医级“诊断时

JPEGsnoop深度解析:当你的JPEG图像需要"法医级"诊断时 【免费下载链接】JPEGsnoop JPEGsnoop: JPEG decoder and detailed analysis 项目地址: https://gitcode.com/gh_mirrors/jp/JPEGsnoop 在数字图像处理的日常工作中,你是否曾遇到过…...

小白技能库:技术新人的场景化学习指南与开源项目实践

1. 项目概述:小白技能库的诞生与价值最近在GitHub上看到一个挺有意思的项目,叫“aptratcn/xiaobai-skills”。光看名字,你大概就能猜到它的定位——“小白技能库”。作为一个在技术社区混迹了十多年的老鸟,我第一眼看到这个项目时…...

Cursor AI 代理 9 秒删除生产数据库:Railway 无作用域令牌与“假备份”如何让灾难成为必然

昨天,一家服务全国租车公司的 SaaS 创业公司 PocketOS 生产环境瞬间归零。 不是黑客入侵,不是配置失误,而是一个运行在 Cursor 里的 Claude Opus 4.6 代理,在处理 staging 环境的凭证问题时,自主决定调用 Railway Grap…...

Git代码分支管理模型TBD++ Flow

现代软件开发过程中要实现高效的团队协作,需要使用代码分支管理工具实现代码的共享、追溯、回滚及维护等功能。目前流行的代码管理工具,包括CVS,SVN,Git,Mercurial等。相比CVS和SVN的集中管理,Git具有非常明显的优势,例如:去中心化的代码管理方式减少了开发者对中心服务…...