【计算机科学与应用】一种基于多摄像头的行人追踪和重识别方案
随着城市交通管理、安保和智慧城市建设的需求日益增长,研究高效、准确、实时的行人定位和追踪系统具有重要的研究意义和实用价值。本文针对目前计算机视觉和人工智能领域的行人检测和跟踪技术,提出了一个基于视觉的行人定位和追踪系统。系统采用YOLOv5算法进行行人检测,DeepSORT算法进行多目标跟踪,并使用ResNet50模型实现行人重识别。此外,系统还支持目标运动轨迹绘制、行人数量统计等功能。
基金项目:
警务物联网应用技术公安部重点实验室开放课题(JWWLWKFKT2022002)。
作者信息:
谭丽欢, 郭萍, 罗 颂*:警务物联网应用技术公安部重点实验室,北京;重庆理工大学计算机科学与工程学院,重庆;宋鹃伲:成都市公安局锦江区分局信息通信科,四川 成都;周俊豪:重庆理工大学两江国际学院,重庆
导读:
随着城市交通管理、安保和智慧城市建设的需求日益增长,研究高效、准确、实时的行人定位和追踪系统具有重要的研究意义和实用价值。本文针对目前计算机视觉和人工智能领域的行人检测和跟踪技术,提出了一个基于视觉的行人定位和追踪系统。系统采用YOLOv5算法进行行人检测,DeepSORT算法进行多目标跟踪,并使用ResNet50模型实现行人重识别。此外,系统还支持目标运动轨迹绘制、行人数量统计等功能。实验结果表明,该系统在公开数据集(例如Market-1501数据集)和现实场景数据上具有良好的性能表现,可为城市交通管理、安保和智慧城市建设等领域提供有力支持。未来,将继续优化算法和模型结构,提高系统的准确性和实时性,为计算机视觉和人工智能领域的研究和应用带来更多创新。
正文
近年来,计算机视觉和人工智能领域的发展为行人定位和追踪技术的研究提供了新的机遇。是在实际应用中仍然面临一些挑战,例如:
-
道路复杂多变的环境条件,如光照变化、天气变化、遮挡等,给行人定位和追踪带来困难;
-
行人密度高、运动快速、姿态多样、外观变化等,给行人特征提取和匹配带来困难;
-
行人跨摄像头跨场景下的识别与检索,需要考虑不同摄像头之间的视角变化、分辨率变化、时间差异等因素;
-
行人定位和追踪系统的实时性、准确性、鲁棒性等性能指标还有待提高。
因此,如何克服这些挑战,设计并实现一个高效、准确、实时的行人定位和追踪系统,是本课题需要解决的核心问题。
研究方法
1. 目标行人检测
如图1所示,YOLOv5的网络架构主要包括三个模块:backbone,neck和head。这些模块在目标检测任务中起到不同的作用,共同构成了整个网络结构。
2. 目标行人跟踪
DeepSORT算法在行人跟踪任务上展现出显著的优势。首先,算法具有较强的鲁棒性,基于深度学习的特征提取使其能够适应遮挡、光照变化等复杂场景。其次,DeepSORT能够在实时视频流中进行多目标跟踪,满足实时性能要求。最后,通过引入卡尔曼滤波和匈牙利算法,该算法在多目标跟踪任务上具有较高的精确度。综上所述,DeepSORT算法在行人跟踪任务上具有显著的优势。
3. 行人重识别
行人重识别(Person Re-Identification, Person Re-ID)是指在不同场景下,通过图像或视频序列识别出同一个行人。基于深度学习的行人重识别方法主要分为深度度量学习、局部特征学习、生成对抗学习和序列特征学习。
设计架构
系统的主要架构如图2所示。
系统实现和测试
1. 实验环境
本文采用Python作为编程语言,以PyTorch为深度学习框架,借助PySide2 (连接QT界面)和QT Designer (设计系统界面)进行界面开发,使用PyCharm Community Edition 2020 3.5作为开发工具,计算设备包括训练用GPU (如RTX 3080)、高清摄像头、Intel i5-9300H CPU等,在该开发和运行环境下实现了基于视觉的行人定位和追踪系统,且通过公开数据集(如Market-1501数据集) 和现实场景数据测试评估,证明系统具备良好性能和鲁棒性。
2. 系统实现
本系统主要使用了Pyside2作为GUI库来创建用户界面。用户操作界面的设计主要分为两个模式:多目标行人跟踪模式和目标行人重识别模式。
如图3所示,在多目标行人跟踪模式下,用户操作界面会实时显示系统检测结果,并在右上角实时计算并更新帧率(FPS)。
视频流处理流程为:
-
本地视频通过cv2.VideoCapture (video_path)读取,每帧格式为(H, W, 3)的BGR矩阵;
-
调用resize_frame函数将帧调整为YOLOv5输入尺寸(640 × 640),通过cv2.resize (frame, (640, 640))实现;
-
处理后的帧通过Qimage (frame.data, W, H, QImage.Format_BGR888)转换为Qt格式,再通过label.setPixmap (QPixmap.fromImage())显示。
如图6所示,我们使用训练好的行人重识别模型来识别和追踪目标行人。
结论
在系统设计方面,我们采用了YOLOv5和DeepSORT等算法来实现行人检测和多目标行人跟踪。同时,引入了行人重识别算法,通过基于Resnet50网络结构实现的重识别模块对选择的目标行人进行跟踪,实现了跨摄像头的行人身份识别。系统界面采用了Pyside2和QT进行开发,提供了用户友好的操作界面。在系统实现过程中,我们进行了系统架构设计、功能设计和类的设计,并进行了原型设计。通过实现用户交互界面、视频流处理、行人检测、多目标行人跟踪、目标行人重识别和运动轨迹绘制等功能模块,完成了整个系统的搭建和实现。在系统测试方面,我们对系统进行了功能测试和性能测试。功能测试验证了系统的各项功能是否正常运行,性能测试评估了系统的运行性能和实时性。
更多推荐
所有评论(0)