# passenger-flow-counter **Repository Path**: minerva/passenger-flow-counter ## Basic Information - **Project Name**: passenger-flow-counter - **Description**: passenger-flow-counter - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-14 - **Last Updated**: 2025-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 公交车客流统计系统 (Baseline) 这是一个基于计算机视觉的公交车上下车客流统计基线系统。它使用 [YOLOv8](https://github.com/ultralytics/ultralytics) 进行目标检测和 [SORT](https://github.com/abewley/sort) (Simple Online and Realtime Tracking) 算法进行多目标跟踪,以实现对视频中上下车人数的精确统计。 ## 主要功能 - **目标检测**: 从视频帧中实时检测乘客(“person” 类别)。 - **多目标跟踪**: 为每个检测到的乘客分配一个唯一的 ID,并在连续的帧中进行跟踪。 - **跨线计数**: 在画面中定义一条虚拟计数线,当跟踪到的目标穿越该线时进行计数。 - **方向判断**: 根据穿越方向,区分是上车 (“In”) 还是下车 (“Out”)。 - **结果可视化**: 生成一个新的视频文件 (`output.mp4`),其中包含绘制了检测框、跟踪 ID 和实时计数的画面。 ## 项目结构 ``` bus_counter/ │ ├── configs/ │ └── config.yaml # 项目配置文件 (视频源, 模型路径, 计数线等) │ ├── src/ │ ├── main.py # 主程序入口 │ ├── detector.py # 目标检测模块 (YOLOv8) │ ├── tracker.py # 多目标跟踪模块 (SORT) │ └── counter.py # 计数逻辑模块 │ ├── videos/ │ └── test.mp4 # 存放输入测试视频 │ ├── requirements.txt # Python 依赖库 └── README.md # 项目说明文档 ``` ## 安装与环境设置 1. **克隆项目** (如果您是通过 Git 管理) ```bash git clone cd bus_counter ``` 2. **创建并激活 Python 虚拟环境** (推荐) ```bash python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` ## 如何使用 1. **放置视频**: 将您需要处理的视频文件放入 `videos/` 目录下。 2. **修改配置**: 打开 `configs/config.yaml` 文件,根据您的需求进行修改: ```yaml # 视频源路径 (相对于项目根目录) video_source: 'videos/test.mp4' # YOLOv8 模型路径 (如果不存在,程序会自动下载 yolov8n.pt) yolo_model_path: 'yolov8n.pt' # 计数线的坐标 [[x1, y1], [x2, y2]] # 您需要根据视频画面的实际情况调整这两个点的位置 line_points: [[100, 400], [800, 400]] ``` **注意**: `line_points` 的坐标需要根据您视频中车门的实际位置进行精确调整,以确保计数的准确性。 3. **运行程序**: 从项目的根目录运行主程序。 ```bash python src/main.py ``` 4. **查看结果**: 程序运行结束后,会在项目根目录下生成一个名为 `output.mp4` 的视频文件,其中包含了完整的检测、跟踪和计数可视化结果。 ## 后续优化方向 此版本为mvp预览版本,后续不再更新,需要升级的服务可以联系ylfuestc@163.com交流合作,产品覆盖云、端各种版本和场景。 这个基线系统提供了一个坚实的基础,商业版本几个方面优化: - **集成 Re-Identification (ReID)**: 将当前的 `SORT` 跟踪器升级为 `DeepSORT`。通过引入 ReID 特征提取网络,可以显著提升在拥挤和遮挡场景下的跟踪鲁棒性,减少因目标丢失导致的 ID 切换问题。 - **相机标定与透视变换**: 对摄像头的参数进行标定,并将图像坐标转换为真实世界坐标或鸟瞰图视角。这可以消除透视畸变带来的影响,使计数区域的定义更准确,并能进行更高级的分析(如速度估计)。 - **模型优化与量化**: 针对边缘计算设备(如 Jetson Nano),可以使用 TensorRT 等工具对 YOLO 模型进行优化和量化,以在算力受限的硬件上实现实时处理。 - **数据增强与模型微调**: 使用特定场景(如不同光照、天气、拥挤程度)的数据对 YOLO 模型进行微调,以提升在特定部署环境下的检测精度。 - **构建交互式 UI**:图形用户界面 (GUI),允许用户更方便地加载视频、交互式地绘制计数线、查看实时统计数据并调整参数。 - **其他定制化场景、目标、需求等**:ylfuestc@163.com