震惊,一男子居然一个人搞完了yolov5的小项目

基于yolov5的防溺水检测系统

.

  1. 前言:

    这是一个基于yolov5的防溺水检测系统,主要用到pyqt5+yolov5+ffmpeg。该系统对视频图片进行检测,如果检测到holding超过一定时间会报警提醒。

    本项目只是一个demo版本,视频检测很卡顿😭(别问,问就是拿cpu跑的😋),借鉴诸多大佬东拼西凑出来的一个项目,优化不是很好,总之没有达到开始的预期,后面会继续优化的😋。

    话不多说,上图:

    [登陆界面]

    [主界面]

  2. 模型训练

    1. 相关环境依赖

      1. 配置环境在windows上部署,需要用到Anaconda+Pycharm,最后打包成exe文件,这样就可以在本地直接运行啦。

      2. 这里大致是这样,需要补充

        image

      3. cuda、cudnn配置、pyqt5界面相关配置太复杂了出门左转问问度娘,还需要报警播放器ffmpeg这里放个链接:
        https://gitee.com/mirrors/ffmpeg?_from=gitee_search

    2. 训练模型

      这里我是按照大佬的流程来的超详细 👉传送

    3. 配置数据文件

      image

    4. 训练结果
      F1_curve

    5. 检测结果

      在yolo文件夹下可以找到一个weights的文件夹,里面存放.pt文件就是训练的模型,将模型的相对路径复制到detect.py对应位置
      image

      运行detect.py

      python detect.py
      

      检测结果如下:

      IMG_4468

      这里模型运行结束

  3. pyqt界面

    1. 登录界面

      主要功能实现:登陆、注册、重置密码,登陆成功页面跳转。一搜有很多登陆界面教程,俺也是现学现卖,设计非常简陋😩

    2. 主界面

      借鉴大佬: https://github.com/Javacr/PyQt5-YOLOv5
      主要功能有检测视频图片,视频流

      非常喜欢这个界面,很友好,稍作修改就ok了。

  4. 报警机制

    # 警报1
    if names[int(cls)] == 'holding':  # 检测到holding报警
        value = det[:, 4].max().item()  # 进行多个目标检测,检测的所需目标才发出语音告警
        if value > 0.70:
            count += 1
            if count > 800:  # 当检测到value>0.70时的次数>800时报警
                count = 0
                if time.time() - tplay > 4.0:
                    import os
                    os.system(
                        'start /b F:/PyQt5-YOLOv5/ffplay.exe -autoexit -nodisp F:\PyQt5-YOLOv5\警报1.mp3')  # 音乐播放
                    # 参数含义: start /b 后台启动  ffplay音乐播放软件的位置   -autoexit 播放完毕自动退出  -nodisp不显示窗口    mp3语音的位置
                    tplay = time.time()
    
    /**未能将报警机制实现:当检测到单个物体hoding>0.70时,
    追踪该物体并增加一个计时器,
    如果在一段时间内(30s)hoding持续存在则报警,
    每隔4s报警一次,直到该物体holding消失**/
    
  5. 项目打包

    将该项目打包成exe,发送给你的好朋友

    1. 打开conda环境切换到配置环境中

      pip install pyinstaller

    2. 选择main.py

      pyinstaller -F -i 图标.ico main.py
      

      如需要需要其他打包配置,请自行搜索

      打包好的目录如下:

      image

  6. 本地运行双击swim_detect.exe就行

  7. 总结

    该项目有很多没有完善的地方,需要大家支持与帮助
    这里我将打包好的项目已上传,热乎的😋

    点这里

    看不了?那试试网盘: https://pan.baidu.com/s/1alV_eOQ1Q8Q4NeX6xaU1qg?pwd=y5qv

该项目制作不易,如转载请声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值