Count_People/python/Readme.md

2.6 KiB
Raw Blame History

客流统计算法Python

概述

这是一个基于YOLOV8的客流统计算法。该算法利用摄像头实时捕获监控画面通过画拌线的方式规定越线区域结合YOLOV8中的行人检测和行人跟踪算法实现门店客流的准确统计。

环境配置

python==3.10
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118(GPU环境)
pip install ultralytics==8.0.170
pip install onnx==1.14.1
pip install onnxruntime==1.15.1

运行说明

配置好运行环境之后,运行find_region_and_exec.py文件,运行该py文件会弹出文件选择窗口在此窗口选择要进行跟踪检测的视频文件仅支持.mp4 .avi .mov且视频编码正确的视频然后程序会播放该视频,敲击键盘空格键,视频会暂停播放并进入编辑界面,然后就可以在画面上划定区域了。按照下面的步骤进行区域划定:

1. 鼠标左键点击选点

2. 选两个点之后(两个点自动连线),自动退出编辑页面,然后等待一段时间系统自动弹窗

注意说明

  1. 运行find_region_and_exec.py进入编辑页面在视频中选两个点连线之后程序会自动退出此时不是程序有bug相反程序是在正常执行等待一段时间之后又会弹窗显示此时才是按照画的线统计人流量。

  2. 目标跟踪是建立在目标检测的基础之上非常耗费算力有gpu一定要用gpu推理特别注意如果没有英伟达显卡,视频或者摄像头实时推理速度会很慢很慢,但是如果有显卡推理速度还是很慢,检查自己的环境pytorch是不是装成了cpu版本的,要安装成gpu版本的torch推理速度才会快

  3. 推理速度非常慢,如何加速。有以下几点优化建议:

    (1) 有gpu要用gpu推理;

    (2) 加载更小的yolo8模型(yolo8n、8s、8m、8l、8x模型权重依次增大,检测精度依次高,推理速度依次减慢,速度与精度不可兼得);

    (3) 替换追踪算法,

yolo8中内置了byte-tacker与BoT-Sort两个多目标检测算法,这两个算法与经典的Sort、DeepSort相比检测速度快但检测精度不如这两个经典算法。 可以考虑替换yolo8内置的目标跟踪算法为DeepSort算法或者Sort算法但要权衡检测速度与精度互相矛盾的问题.

  1. 如何提高检测精度、跟踪精度加载更大的yolo8模型(yolo8n、8s、8m、8l、8x模型权重依次增大,检测精度依次增高,但速度与精度不可兼得);yolo8中内置了byte-tacker与BoT-Sort两个多目标检测算法,Bot-Sort算法精度更高