• 基于YOLO检测算法(单检测器网络+多视频输入)设计与实现


    在单摄像头目标检测的基础上,实现单网络多线程的实时目标检测

    1,应用场景

    在安防领域,YOLO的多摄像头实时目标检测应用具有以下特点和优势:

    1. 实时性能: YOLO算法以非常高的速度运行,能够实现实时目标检测。这对于安防系统来说至关重要,因为它允许系统实时监控多个摄像头的视频流,并及时发现异常行为或事件。

    2. 高精度检测: YOLO在目标检测方面具有较高的准确性和精度。它能够快速而准确地检测出视频流中的各种物体,包括人、车辆、动物等。这种高精度检测对于安防应用非常重要,因为它可以帮助系统及时发现潜在的安全威胁或异常情况。

    3. 多摄像头支持: YOLO可以轻松地集成到多摄像头系统中。通过在每个摄像头上部署YOLO模型,安防系统可以同时监控多个区域或角度,从而提高监控范围和覆盖率。

    4. 实时警报和响应: 结合YOLO的实时性能,安防系统可以立即识别出异常情况并触发警报或采取相应的措施。例如,当YOLO检测到入侵者、交通违章行为或其他异常事件时,系统可以立即发出警报,通知相关人员或自动启动相应的安全程序。

    5. 灵活性和可扩展性: YOLO算法灵活且易于定制和扩展,可以根据具体的安防需求进行定制和优化。例如,可以针对特定的场景或目标对象进行模型训练和调整,以提高检测的准确性和适用性。

    2,实现方法

    1. 在detect.py同级目录下新建streams.txt文件,每个视频流源单独成行:

    本地摄像头填0

    USB摄像头填1,2,3…

    IP摄像头要根据摄像头类型,按下面格式填写

    rtsp://admin(账号):admin(密码)@ip:端口/(主码流,辅码流之类的)

    parser.add_argument('--source', type=str,default='streams.txt', help='source') #单网络多线程 实时检测

    给出更改后参数配置部分完整代码:

    1. if __name__ == '__main__':
    2. parser = argparse.ArgumentParser()
    3. parser.add_argument('--weights', nargs='+', type=str, default='yolov5s.pt', help='model.pt path(s)')
    4. #parser.add_argument('--source', type=str, default='data/images', help='source') # file/folder, 0 for webcam
    5. #parser.add_argument('--source', type=str, default='data/video', help='source') # file/folder, 0 for webcam
    6. #parser.add_argument('--source', type=str, default='0', help='source') # file/folder, 0 for webcam
    7. parser.add_argument('--source', type=str, default='streams.txt', help='source') # file/folder, 0 for webcam
    8. parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')
    9. parser.add_argument('--conf-thres', type=float, default=0.25, help='object confidence threshold')
    10. parser.add_argument('--iou-thres', type=float, default=0.45, help='IOU threshold for NMS')
    11. parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    12. parser.add_argument('--view-img', action='store_true', help='display results')
    13. parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')
    14. parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels')
    15. parser.add_argument('--nosave', action='store_true', help='do not save images/videos')
    16. parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --class 0, or --class 0 2 3')
    17. parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')
    18. parser.add_argument('--augment', action='store_true', help='augmented inference')
    19. parser.add_argument('--update', action='store_true', help='update all models')
    20. parser.add_argument('--project', default='runs/detect', help='save results to project/name')
    21. parser.add_argument('--name', default='exp', help='save results to project/name')
    22. parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')
    23. opt = parser.parse_args()
    24. print(opt)
    25. check_requirements(exclude=('pycocotools', 'thop'))

    效果

    以电脑自带摄像头和一个外接USB摄像头为例。

    检测效果图:

    3,安防应用(单检测器网络+多视频输入)

  • 相关阅读:
    结构体类型数据单链表的操作
    【信号处理】卡尔曼(Kalman)滤波(Matlab代码实现)
    c语言:解决数组元素右旋问题,时间复杂度O(N)
    使用标准C++ 生成一个循环输出数字格式化前面补零的简单demo
    Git的一些常见的操作
    Docker背后的标准化容器执行引擎——runC
    20220726汇承科技的蓝牙模块HC-05的AT命令测试
    链表的常见数据结构及题目
    电工三级证(高级)实战项目:信号交通灯的PLC控制
    Mysql高阶语句 (一)
  • 原文地址:https://blog.csdn.net/qq_53545309/article/details/139655962