【C452】深度学习 :YOLO及SORT算法实现车辆、行人多目标的实时检测和跟踪

2022-02-28 15:02:23      索炜达.猿创      318     

文件编号:C452

文件大小:607M

代码行数:1618行(主程序)

开发环境:Python3.8、OpenCV4.5、YoloV3、YoloV4

猿创承诺:该源码均通过亲自测试可正常运行

简要概述:

       利用深度学习中的YOLO及SORT算法实现车辆、行人等多目标的实时检测和跟踪,并利用PyQt5设计了清新简约的系统UI界面,在界面中既可选择自己的视频、图片文件进行检测跟踪,也可以通过电脑自带的摄像头进行实时处理,可选择训练好的YOLO v3/v4等模型参数。该系统界面优美、检测精度高,功能强大,设计有多目标实时检测、跟踪、计数功能,可自由选择感兴趣的跟踪目标。

效果演示:

        首先展示一下检测跟踪系统软件的功能和效果,系统主要实现的功能是车辆、行人等多目标的实时检测和跟踪,在界面中既可选择自己的视频、图片文件进行检测跟踪,也可以通过电脑自带的摄像头进行实时处理,可选择训练好的YOLO v3/v4等模型参数。

(1)选择视频文件进行检测跟踪:点击左侧视频按钮可弹出文件选择窗口,选择一个自己的MP4或AVI视频文件即可显示视频画面,目标标注在画面框中,右侧显示用时、目标数、置信度、位置坐标,要跟踪的目标可通过下拉框选择。

【C452】深度学习 :YOLO及SORT算法实现车辆、行人多目标的实时检测和跟踪

(2)选择画面中要跟踪的目标:在视频或摄像检测跟踪的过程中,如若想指定某个目标进行跟踪,可通过右侧的目标下拉选框选择,选择时画面暂停等待选择完成,画面中标注框定位到选中的目标。

【C452】深度学习 :YOLO及SORT算法实现车辆、行人多目标的实时检测和跟踪

(3)目标检测、跟踪、计数功能的切换:选择左侧选项,可切换检测、跟踪、计数功能,选择“跟踪计数”可在目标上标记运动轨迹并计数。

【C452】深度学习 :YOLO及SORT算法实现车辆、行人多目标的实时检测和跟踪

(4)利用摄像头进行检测跟踪:点击左侧摄像头按钮,则自动打开电脑上的摄像头设备,检测跟踪的标记信息同样显示在界面中。

【C452】深度学习 :YOLO及SORT算法实现车辆、行人多目标的实时检测和跟踪

(5)选择图片进行目标检测:点击图片选择按钮,弹出图片选择框选中一张图片进行检测,可自由浏览选中某个或多个对象。

【C452】深度学习 :YOLO及SORT算法实现车辆、行人多目标的实时检测和跟踪

由于整个软件的实现代码复杂,为了使得介绍循序渐进,首先介绍如何利用YOLO进行视频中目标对的检测。对于图像中的目标检测算法,其中比较流行的有YOLO、SSD等算法。

注意:本资源已经过调试通过,下载后可通过PyCharm运行;运行界面的主程序为runMain.py,在配置好Python环境后可完美运行;camera_detection_tracking.py及video_detection_tracking.py这两个分别为使用摄像头、视频检测跟踪的脚本文件,亦可直接运行;为确保程序顺利运行,建议配置的Python依赖包版本如下:

(Python版本:3.8)

opencv-contrib-python 4.5.1.48

PyQt5 5.15.2

scikit-learn 0.22

numba 0.53.0

imutils 0.5.4

filterpy 1.4.5

tqdm 4.56.0

目录│文件列表:

 ├ 演示视频

 │  └ 演示视频.mp4

 ├ 运行截图

 │  │ 实时.PNG

 │  │ 汽车图片.PNG

 │  │ 行人图片.PNG

 │  │ 行人视频.PNG

 │  └ 车辆视频.PNG

 └ 项目源码

    │ camera_detection_tracking.py

    │ sort.py

    │ video_detection_tracking.py

    ├ .idea

    │  │ .gitignore

    │  │ .name

    │  │ misc.xml

    │  │ modules.xml

    │  │ workspace.xml

    │  │ yolov3_sort.iml

    │  └ inspectionProfiles

    │     │ profiles_settings.xml

    │     └ Project_Default.xml

    ├ UI_tracker

    │  │ DetectionTracking.py

    │  │ DetectionTracking_UI.py

    │  │ DetectionTracking_UI.ui

    │  │ Detector_Model.py

    │  │ image1.qrc

    │  │ image1_rc.py

    │  │ pedestrian.jpeg

    │  │ runMain.py

    │  │ street.jpeg

    │  ├ images_test

    │  │  │ author.png

    │  │  │ background1.png

    │  │  │ count.png

    │  │  │ Cute_Vehicle.png

    │  │  │ folder_web.png

    │  │  │ g1.png

    │  │  │ ini-image.png

    │  │  │ light.png

    │  │  │ menu.png

    │  │  │ net_speed.png

    │  │  │ Ordinateur.png

    │  │  │ pai.png

    │  │  │ person.png

    │  │  │ recovery.png

    │  │  │ result.png

    │  │  │ save.png

    │  │  │ Score.png

    │  │  │ selection.png

    │  │  │ settings.png

    │  │  │ tally.png

    │  │  │ tracking.png

    │  │  │ versions.png

    │  │  └ video.png

    │  └ __pycache__

    │     │ DetectionTracking.cpython-38.pyc

    │     │ Detector_Model.cpython-38.pyc

    │     │ Detector_Model.cpython-39.pyc

    │     │ image1_rc.cpython-38.pyc

    │     │ image1_rc.cpython-39.pyc

    │     └ runMain.cpython-38.pyc

    ├ video

    │  │ JapanStreet-det.avi

    │  │ JapanStreet.mp4

    │  │ overpass-det.avi

    │  │ overpass.mp4

    │  │ pedestrian-det.avi

    │  └ pedestrian.mp4

    ├ yolo-obj

    │  │ coco.data

    │  │ coco.names

    │  │ yolo3_object.names

    │  │ yolov3-tiny.cfg

    │  │ yolov3-tiny.weights

    │  │ yolov3.cfg

    │  │ yolov3.weights

    │  │ yolov3_1.cfg

    │  │ yolov4-tiny.cfg

    │  │ yolov4-tiny.weights

    │  │ yolov4.cfg

    │  └ yolov4.weights

    └ __pycache__

       └ sort.cpython-38.pyc

TAGYOLO
  • 1 次
  • 900 分