摘要:这是一个集成了深度学习算法和嵌入式硬件控制的智能野猪检测与预警系统。系统采用YOLOv5目标检测模型实现实时野猪识别,通过STM32微控制器驱动声光报警装置,并配备邮件通知、检测历史记录、用户认证等完整功能,是一个软硬件深度融合的综合解决方案。

项目简介

基于深度学习与STM32的野猪检测与预警系统是一个集成深度学习算法与嵌入式硬件控制的智能监控系统。系统采用YOLOv5目标检测模型实现实时野猪识别,通过STM32F103C8T6微控制器驱动LED指示灯和蜂鸣器进行声光报警,并配备邮件自动通知、语音播报、检测历史记录、用户认证管理等完整功能。系统基于PyQt5构建现代化图形界面,使用SQLite数据库存储检测数据,支持摄像头、视频文件、图片等多种输入源,通过串口通信实现软硬件协同工作。该系统具有实时性强、可靠性高、功能完整、易于使用等特点,适用于农田野猪防护、自然保护区监控、智慧农业等场景,是一个软硬件深度融合、技术先进、质量优秀的综合解决方案

核心技术

智能检测

本系统采用YOLOv5深度学习模型作为核心检测引擎,实现对野猪目标的实时智能识别。系统支持多种输入源,包括USB摄像头实时视频流、本地视频文件以及静态图片,能够灵活适应不同的应用场景。通过优化的多线程架构和高效的推理算法,系统在保证高精度识别的同时实现了低延迟响应,检测帧率可达30fps以上,从目标出现到触发报警的延迟小于100毫秒,确保了预警系统的实时性和可靠性,为野外安全监控提供了强有力的技术保障。

硬件控制

本系统采用STM32F103C8T6微控制器作为硬件控制核心,基于ARMCortex-M3架构,主频72MHz,具备高性能和低功耗特性。系统通过PC13引脚驱动LED指示灯和蜂鸣器,实现声光一体化报警功能,当检测到野猪入侵时,LED指示灯立即点亮提供视觉警示,蜂鸣器同步发出声音报警,形成立体化的现场预警效果。上位机与STM32之间通过USART1串口进行通信,采用9600波特率、8位数据位、1位停止位、无校验位的标准配置,支持”LED_ON”和”LED_OFF”等简单指令控制,通信协议简洁可靠,确保了软硬件之间的实时协同工作,为整个预警系统提供了快速响应的硬件执行能力。

多重预警

本系统构建了四位一体的多重预警机制,确保在检测到野猪入侵时能够通过多种方式及时通知用户。首先,硬件声光报警作为第一道防线,通过STM32控制LED指示灯和蜂鸣器实现即时响应,从检测到报警触发延迟小于100毫秒,为现场人员提供最快速的警示。其次,系统自动通过SMTP协议发送邮件通知到预设邮箱,邮件中包含检测时间、置信度等详细信息,并附带检测图片作为附件,方便用户远程查看现场情况。同时,系统利用pyttsx3语音合成技术播报”野猪入侵”语音提示,为现场人员提供听觉警告。最后,PyQt5图形界面实时显示检测画面和检测结果,用户可以直观地看到目标位置、数量和置信度等信息。这种多层次、多感官的预警体系确保了警报信息能够及时、准确地传达给用户,大大提高了系统的实用性和可靠性。

数据管理

本系统采用SQLite轻量级数据库实现完整的检测数据管理功能,自动记录每次检测的时间、结果、置信度、目标数量、邮件发送状态等详细信息,支持百万级数据存储而不影响系统性能。系统提供丰富的统计分析功能,能够自动计算总检测次数、野猪检测率、平均置信度、最高置信度、邮件发送次数等六项关键指标,帮助用户全面了解系统运行状况和野猪活动规律。所有检测到野猪的图片都会自动保存到本地目录,并在数据库中记录图片路径,用户可以通过历史查看窗口快速预览检测图片,直观回顾历史事件。系统还提供强大的历史记录查询功能,支持按日期范围筛选记录,并可将查询结果导出为CSV格式文件,方便用户进行二次分析或生成报表,为野猪活动监测和防护策略制定提供了可靠的数据支撑。

安全机制

本系统建立了完善的用户认证与安全防护体系,确保系统访问的安全性和可靠性。系统采用用户注册与登录认证机制,所有用户必须通过身份验证才能使用检测功能。为保障账户安全,系统实施了严格的密码强度验证策略,要求用户密码最少8位,且必须同时包含数字和字母,系统会实时评估密码强度并给出弱、中、强三个等级的反馈,引导用户设置更安全的密码。针对暴力破解攻击,系统设计了智能登录失败锁定机制,当用户连续5次登录失败时,账户将自动锁定30分钟,有效防止恶意登录尝试。所有用户密码均采用SHA256哈希算法加密存储,即使数据库泄露也无法还原明文密码,充分保护用户隐私。这套多层次的安全防护机制使系统达到了企业级安全标准,为野猪检测系统的稳定运行提供了坚实的安全保障。

技术架构

软件架构

图1 软件架构图

技术栈

上位机 (Python)

Python技术栈基于PyTorch和YOLOv5 7.0实现目标检测,结合OpenCV进行图像处理,使用PyQt5构建图形界面,并集成pyttsx3语音播报和smtplib邮件通知功能。

下位机 (STM32)</h3

基于STM32F103C8T6(ARM Cortex-M3,72MHz主频,64KB Flash,20KB RAM)的野猪检测报警系统,通过串口接收上位机命令,控制蜂鸣器和LED实现声光报警功能。

工作流程

图2 工作流程图

硬件配置

主控芯片

基于STM32F103C8T6(ARM Cortex-M3,72MHz主频,64KB Flash,20KB RAM)的野猪检测报警系统,通过串口接收上位机命令,控制蜂鸣器和LED实现声光报警功能。

外设配置

系统通过串口1(PA9/PA10,波特率9600)与上位机通信,接收检测命令后驱动PC13引脚控制蜂鸣器和LED指示灯实现声光报警。

通信协议

串口通信采用9600波特率、8数据位、1停止位、无校验位的标准配置,支持简单的命令协议:上位机发送字符1或LED_ON触发报警(点亮LED并蜂鸣器响铃5次),发送0或LED_OFF解除报警(熄灭LED并确认响铃),所有命令以换行符结尾,STM32接收后通过串口回传状态码确认执行结果。

快速开始

安装Python依赖

使用 pip install -r requirements.txt 命令一键安装项目所需的所有Python依赖包,包括PyTorch、OpenCV、PyQt5、pyttsx3等核心库。

配置邮箱

复制 config.ini.example 为 config.ini 并填写邮箱配置信息(发件人、授权码、收件人、SMTP服务器),注意QQ邮箱必须使用授权 码而非登录密码,授权码可在QQ邮箱设置中开启POP3/SMTP服务后获取。

烧录STM32程序

使用Keil MDK 5打开 stm32_keil5_project 工程,编译生成HEX文件后通过ST-Link或J-Link调试器将程序烧录到STM32F103C8T6开发板。

运行主程序

执行 python wild_boar_detection.py 启动野猪检测系统主程序,进入登录界面后注册或登录账号即可开始使用图像检测、视频检测或实时摄像头监控功能。

配套资源

包括完整的项目源代码、演示视频、运行截图,开箱即用。

项目文档

有偿提供开题材料、系统设计说明书和成果汇报PPT,完整呈现项目的研究依据、设计过程与最终成果。

使用授权

本项目采用AGPL-3.0开源协议,允许个人和组织自由使用、修改和分发代码,但基于本项目的衍生作品必须同样开源,且用于提供网络服务时需向用户提供完整源代码。本项目仅供学习研究使用,作者不对使用本项目产生的任何后果承担责任,使用者应遵守当地法律法规,合理合法使用本项目。如本项目对您的研究或工作有所帮助,欢迎引用并注明出处。

作者联系

作者信息

改进作者:Steven(可提供二次开发有偿技术服务)
项目编号:STM32-2
原创声明:本项目为原创作品

联系方式

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。