基于YOLOv8的吸烟行为检测研究–毕业论文(Python、深度学习、YoLov8/YOLOv5)
摘 要
随着公共健康问题日益受到关注,吸烟行为的监测成为了提升健康管理和控制吸烟行为的重要手段。传统的吸烟行为监测方法依赖人工检查,工作量大且效率低。随着计算机视觉和深度学习技术的发展,基于视觉的吸烟行为检测逐渐成为一种新兴的研究方向。YOLO(You Only Look Once)系列目标检测算法以其高效、快速的特点在实时物体检测中得到广泛应用,因此,基于YOLO的吸烟行为检测在准确性和实时性上具有显著优势。本文针对YOLOv8算法在吸烟行为检测中的应用进行了研究与实验,结合YOLOv7、YOLOv6和YOLOv5算法,进行性能对比分析,以期为吸烟行为的实时监控提供一种高效的解决方案。
本文的主要研究内容包括:首先,介绍了国内外吸烟行为检测的研究现状,分析了现有方法的优势与不足;其次,提出了一种基于YOLOv8的吸烟行为检测系统,结合YOLOv7、YOLOv6和YOLOv5算法对比,分析不同算法在检测性能、精度和速度方面的差异;再次,探讨了数据集的处理方法,并详细阐述了算法原理与模型训练的过程;此外,设计了一个基于Streamlit的交互式Web应用界面,实现了图像、视频和实时摄像头的吸烟行为检测,支持不同YOLO训练模型的上传与推理预测,用户可根据需要修改检测设置,进一步提升了系统的灵活性与实用性。
该研究的主要优点在于,基于YOLOv8的吸烟行为检测系统不仅能实现高精度、高效率的实时检测,还具备灵活的界面设计,支持多种训练模型与推理预测,能够在不同应用场景中提供定制化的服务。
关键词:YOLOv8;吸烟行为检测;深度学习;Streamlit;目标检测
Abstract
With increasing public health concerns, monitoring smoking behaviors has become an important means to improve health management and control smoking behaviors. Traditional methods of monitoring smoking behavior rely on manual inspection, with heavy workload and low efficiency. With the development of computer vision and deep learning technologies, vision-based smoking behavior detection has gradually become an emerging research direction. YOLO (You Only Look Once) series target detection algorithm is widely used in real-time object detection with its high efficiency and fast characteristics, so YOLO-based smoking behavior detection has significant advantages in accuracy and real-time. In this paper, the application of YOLOv8 algorithm in the detection of smoking behavior was studied, combining YOLOv7, YOLOv6 and YOLOv5 algorithms, in order to provide an efficient solution for the real-time monitoring of smoking behavior.
The main research contents of this paper include: First, Introduced the research status of smoking behavior detection at home and abroad, The advantages and disadvantages of the existing methods are analyzed; next, Proposed a YOLOv8-based detection system for smoking behavior, Combining the comparison of YOLOv7, YOLOv6 and YOLOv5 algorithms, Analyze the differences in the detection performance, accuracy and speed of different algorithms; once more, Explore the processing methods of the dataset, The process of algorithm principle and model training is described in detail; besides, Designed an interactive Web application interface based on Streamlit, Implement the smoking behavior detection of images, video and real-time cameras, Support the upload and inference prediction of different YOLO training models, Users can modify the detection settings as necessary, It further improves the flexibility and practicality of the system.
The main advantages of this study are that the YOLOv8-based smoking behavior detection system can not only achieve high precision and efficient real-time detection, but also has flexible interface design, support a variety of training models and reasoning prediction, and can provide customized services in different application scenarios.
Keywords: YOLOv8; smoking behavior detection; deep learning; Streamlit; target detection
目 录
第1章 绪 论
1.1 研究背景
1.2 目的及意义
1.3 国内外现状
1.3.1 国外研究现状
1.3.2 国内研究现状
1.4 主要研究内容
第2章 关键技术介绍
2.1 YOLOv8检测算法
2.2 Streamlit开源库
2.3 Python编程语言
2.4 Pytorch深度学习框架
2.5 PyCharm开发工具
第3章 系统设计
3.1 系统设计目标
3.2 数据集处理
3.3 数据预处理
3.4 YOLOv8算法原理
第4章 系统实现
4.1 系统运行环境要求
4.2 系统功能模块实现
4.2.1 模型构建
4.2.2 训练代码
4.3 实验结果与分析
4.3.1 训练曲线
4.3.2 混淆矩阵
4.3.3 YOLOv8/v7/v6/v5对比实验
第5章 系统实现
5.1 系统架构核心组件
5.1.1 数据处理层
5.1.2 模型训练层
5.1.3 检测推理层
5.2 系统界面实现
5.2.1 图片检测界面实现
5.2.2 视频文件检测界面实现
5.2.3 摄像头实时检测界面实现
5.2.4 结果导出界面实现
第6章 结 论
参考文献
致 谢
第1章 绪 论
1.1 研究背景
吸烟已成为全球公共健康领域最严峻的挑战之一。根据世界卫生组织的统计,全球约有11亿吸烟者,其中中国约有3.5亿吸烟者,且这一数字每年以惊人的速度持续增长。吸烟不仅直接危害吸烟者的身体健康,还通过二手烟对非吸烟者产生严重的危害。最新研究显示,全球每年因吸烟而死亡的人数达到6000万以上,这一数字超过了艾滋病、结核病和疟疾等传染病引发的死亡人数总和。更令人担忧的是,吸烟群体的年龄正逐渐年轻化,未成年人模仿成年人吸烟的现象日益严重,这对社会的整体健康水平及青少年的成长带来了极大的负面影响。
吸烟的危害不仅仅限于直接影响身体健康,它还可能引发一系列社会问题。例如,由于吸烟者随意丢弃未完全熄灭的香烟,火灾的发生几率显著增加,导致了大量人员伤亡和财产损失。烟蒂引发的火灾已成为全球范围内一个不可忽视的安全隐患。据统计,烟蒂引发的火灾和事故在多个国家和地区都是火灾发生的主要原因之一。随着城市化进程的加快,公共场所吸烟的管理变得尤为复杂,吸烟对社会的危害愈加显现。因此,如何有效检测和遏制公共场所吸烟行为,已经成为全球公共安全领域亟待解决的问题。
1.2 目的及意义
随着公共健康问题日益严峻,吸烟行为的监控与管理已成为现代社会亟待解决的重要议题。传统的吸烟监测方法,如烟雾探测器和人工监视,虽然一定程度上可以监控吸烟行为,但往往存在响应延迟、误报率高以及缺乏精准度等问题。这些传统方法的局限性使得公共场所的吸烟行为难以实现实时、准确的管理。因此,探索一种高效、准确、实时的吸烟行为检测系统显得尤为重要。本研究旨在基于最新的YOLOv8深度学习目标检测算法,开发一种高效的吸烟行为自动监控系统,克服传统方法的不足,并提升公共场所吸烟行为的管理效果。
通过对YOLOv8算法的优化与改进,本研究不仅推动了吸烟行为监测技术的发展,也为公共健康管理提供了创新的技术支持。同时,本研究将为智能监控系统在公共健康领域的进一步应用提供宝贵经验,推动深度学习技术在实际生活中的广泛应用。总之,基于YOLOv8的吸烟行为检测系统将为减少公共场所吸烟、保护非吸烟者健康以及提升公共健康管理水平做出积极贡献。
1.3 国内外现状
1.3.1 国外研究现状
Varghese R 和 Sambath M[1](2024)在他们的论文中介绍了一种新的目标检测算法——YOLOv8。该算法在YOLO系列的基础上进行了多项改进,旨在提高检测性能和鲁棒性。文章详细描述了YOLOv8的架构设计、关键技术以及实验结果,并与现有的其他目标检测算法进行了对比。
Marie[2]等人(2023)在《BMC Public Health》上发表的文章《Up in smoke? Limited evidence of a smoking harm paradox in 17-year cohort study》通过对17岁青少年的队列研究,探讨了这一悖论是否存在,并提供了重要的实证证据。吸烟是全球主要的公共卫生问题之一,尤其是对青少年的健康影响尤为严重。青少年时期是形成吸烟习惯的关键阶段,因此,了解这一时期吸烟的危害对制定有效的预防措施至关重要。
Fu[3]等人(2022)提出了一种基于Harr小波变换与非负矩阵分解(NMF)相结合的方法用于多层次教育技术教学系统中的特征提取。该研究旨在通过改进数据处理技术来提高教育信息系统的效率及安全性。
1.3.2 国内研究现状
《中国吸烟危害健康报告》[4]由中华人民共和国卫生部发布,系统地阐述了吸烟及二手烟暴露对健康的危害。报告指出,全球每年因吸烟导致的死亡人数高达600万,超过因艾滋病、结核、疟疾导致的死亡人数之和。在中国,吸烟人群逾3亿,另有约7.4亿不吸烟人群暴露于二手烟的危害中。
李晨[5]等人研究提供了一个全面的视频行为识别技术综述,涵盖了技术背景、工作原理、性能比较、未来发展方向等多个维度,为后续研究提供了宝贵的参考和指导。在撰写文献综述时,可以依据该综述的结构和内容,深入分析和讨论视频行为识别技术的最新进展和挑战。指明了行为识别领域的未来发展方向,研究成果可为视频特征提取和视觉内容理解提供理论参考和技术支撑。
荆于勤[6](2020)在其文章中探讨了使用卷积神经网络(Convolutional Neural Networks, CNN)进行视频中人体行为识别的方法。作者首先介绍了卷积神经网络的基本原理及其在图像处理中的应用,随后详细描述了如何将CNN应用于视频数据以实现高效的行为识别。文章指出,通过结合时间维度的信息,CNN能够更准确地捕捉到视频中人体动作的变化特征。
高星[7](2023)在其硕士学位论文中提出了一种基于深度学习的口罩佩戴目标检测方法,旨在提高检测的准确性和实时性。高星的研究首先回顾了现有的口罩佩戴检测方法,包括传统的基于手工特征的方法和基于深度学习的方法。他指出,传统方法虽然在某些特定场景下表现良好,但在复杂背景下往往难以达到满意的性能。相比之下,基于深度学习的方法通过端到端的学习过程能够更好地适应不同的环境和光照条件。
王超平[8](2023)在其硕士学位论文中提出了一种基于改进YOLOv5的吸烟场景目标检测算法,旨在提高在复杂环境中识别吸烟行为的准确性和实时性。
1.4 主要研究内容
在Web网页中,本系统支持图像、视频和实时摄像头进行吸烟行为检测,用户可上传不同训练模型(如YOLOv8/v7/v6/v5)进行推理预测,且界面可灵活调整和修改。具体功能如下:
(1)开启摄像头实时检测:本系统允许用户通过网页直接开启摄像头,实现对实时视频流中的吸烟行为检测。系统将自动识别并分析画面中的吸烟行为,如烟雾、烟蒂等,并将检测结果实时显示在用户界面上,为用户提供即时反馈。此功能适用于公共场所和办公环境,能帮助管理人员实时发现吸烟行为并采取相应措施,确保遵守公共场所禁烟规定。
(2)选择图片检测:用户可以上传本地的吸烟行为图片文件到系统中进行检测。系统会自动分析上传的图片,识别出吸烟行为,并在界面上展示带有行为标签和置信度的检测结果,帮助用户准确了解图像中是否存在吸烟行为及其严重程度。
(3)选择视频文件检测:系统支持用户上传视频文件进行吸烟行为识别。上传的视频将逐帧分析,每一帧中的吸烟行为将被检测和标记。用户可以观看带有标记的视频,了解吸烟行为的发生时间、频率以及趋势,为公共健康管理提供决策支持。
(4)选择不同训练好的模型文件:系统集成了多个训练好的深度学习模型(如YOLOv8),用户可以根据需求选择不同的模型进行吸烟行为分析。该功能使用户能够灵活比较不同模型的效果,选择最适合当前检测任务的模型,从而提高检测的准确性和效率。
(5)检测画面展示功能:用户可以选择将检测结果与原始画面同时或单独显示,为结果提供灵活的视觉对比。此外,特定目标的标记与筛选功能允许用户通过下拉框选择特定类型的吸烟行为进行标记和展示,便于集中分析某一类吸烟行为。
(6)检测结果展示与参数调整:检测结果将实时显示在页面的表格中,包括目标类别、问题描述、置信度等信息。同时,系统提供置信度与IOU(交并比)阈值调整功能,允许用户动态调整检测算法的精度,适应不同场景和需求,确保检测效果最优化。
(7)结果导出功能:为了便于数据记录和后续分析,系统提供检测结果的导出功能,用户可以将检测结果表格导出为CSV格式文件。同时,带有标记的图像、视频及摄像头画面结果也支持导出为AVI格式文件,方便用户保存、分享和进一步分析吸烟行为的检测结果。
通过以上功能,本系统能高效、精准地为吸烟行为检测提供强有力的支持,帮助公共场所管理者提升禁烟监管能力,保障非吸烟者的健康并推动公共健康管理的智能化发展。
第2章 关键技术介绍
2.1 YOLOv8检测算法
YOLOv8(You Only Look Once version 8)是YOLO系列目标检测算法的最新版本,继承了YOLO系列的优势,进一步优化了目标检测的速度和精度。YOLO算法的核心思想是通过一次前向传播就能同时完成目标定位和分类任务,具有较高的实时性。YOLOv8在YOLOv7的基础上,进一步提升了模型的性能,特别是在小目标检测和复杂背景下的鲁棒性方面。通过优化网络架构,YOLOv8能够处理更高分辨率的图像,同时在不同大小目标的检测上表现更为均衡。
YOLOv8采用了轻量级的设计,能够在嵌入式设备和移动设备上高效运行。此外,YOLOv8的训练过程通过改进的损失函数和数据增强技术,提升了模型的泛化能力。该模型支持多种任务,如目标检测、实例分割和关键点检测等,并且在准确率和处理速度之间取得了良好的平衡。得益于其高效的推理速度和广泛的应用场景,YOLOv8被广泛应用于自动驾驶、安防监控、工业检测等领域。
2.2 Streamlit开源库
Streamlit 是一个开源的 Python 库,专门用于快速构建和共享数据应用程序。它的设计理念是让用户能够用最少的代码构建交互式网页应用,尤其适用于机器学习和数据分析的展示。Streamlit 的优势在于其简单易用的API和高度的灵活性,允许开发者快速将Python代码转化为可交互的Web应用,无需前端开发经验。
Streamlit 可以支持实时数据展示、交互式可视化以及自动化报告生成等功能。通过其简洁的命令式接口,用户只需要专注于Python代码的编写,不需要处理复杂的HTML、CSS和JavaScript代码。尤其在机器学习领域,Streamlit 的集成和支持使得用户可以轻松地展示数据集、模型训练过程、实验结果以及可视化分析。随着流行的机器学习框架如TensorFlow和PyTorch的集成,Streamlit已成为机器学习工程师和数据科学家展示模型、分享研究成果和进行调试的热门工具。
2.3 Python编程语言
Python 是一种高级编程语言,以其简洁易懂、跨平台和广泛的应用范围著称。它的设计哲学强调代码的可读性,特别适合快速开发和原型设计。Python 提供了丰富的标准库和第三方库,涵盖了从Web开发到数据科学、人工智能等多个领域,广泛应用于自动化脚本、数据分析、机器学习、科学计算等场景。
在深度学习和人工智能领域,Python 是最受欢迎的语言之一,原因在于其强大的库支持,如NumPy、Pandas、Matplotlib、TensorFlow、PyTorch等,使得数据处理、数学计算、模型训练和可视化变得非常高效和直观。Python 还具备良好的社区支持和丰富的资源,使其成为研究人员和开发者进行算法开发和应用部署的首选语言。由于其简洁的语法和广泛的生态系统,Python 已成为自动驾驶、机器人技术、自然语言处理等领域的核心语言。
2.4 Pytorch深度学习框架
PyTorch 是一个开源的深度学习框架,由Facebook AI Research开发,广泛应用于学术界和工业界。与TensorFlow相比,PyTorch 在动态图(Dynamic Computation Graph)方面的优势使其更加灵活和易于调试,尤其适合研究人员和开发人员快速实验和迭代。PyTorch 提供了灵活的API,支持自动微分和GPU加速,能够高效地进行深度神经网络的构建和训练。
PyTorch 的深度学习模块包括了神经网络(torch.nn)、优化算法(torch.optim)和数据处理工具(torch.utils.data)等。它支持卷积神经网络(CNN)、循环神经网络(RNN)、强化学习等多种模型,已成为训练自动驾驶系统、计算机视觉模型、自然语言处理任务等应用领域的标准工具。得益于其强大的GPU加速支持和灵活的动态计算图,PyTorch 在大规模模型训练、图像分类、目标检测等任务中表现优异。
2.5 PyCharm开发工具
PyCharm 是由 JetBrains 开发的一款强大的 Python 集成开发环境(IDE)。它提供了全面的开发工具支持,包括智能代码补全、调试、单元测试、版本控制以及项目管理等功能,使得 Python 开发变得更加高效。PyCharm 不仅适用于Python开发,还支持包括Django在内的Web框架,提供了良好的代码提示、错误检查以及重构功能,帮助开发者提高代码质量和开发效率。
在深度学习和机器学习领域,PyCharm 可以很好地集成各种Python库,如TensorFlow、PyTorch等。其内置的虚拟环境支持和对Jupyter Notebook的兼容,使得数据科学家和机器学习工程师能够高效地进行模型开发和调试。此外,PyCharm 提供了优秀的调试功能,可以帮助开发者快速定位和解决代码中的问题。凭借强大的智能功能和用户友好的界面,PyCharm 是Python开发人员,尤其是机器学习和自动驾驶领域开发人员的首选开发工具。。
作者:AA-老高(接毕设)