多摄像头实时目标跟踪和计数,使用YOLOv4,Deep SORT和Flask

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

来源:公众号@AI公园


作者:LeonLok

编译:ronghuaiyang

导读

本文来自github,很实用的一个应用。

git仓库地址:https://github.com/LeonLok/Multi-Camera-Live-Object-Tracking

这个存储库包含了我的目标检测和跟踪项目。所有这些都可以托管在云服务器上。

由于有ImageZMQ,你还可以使用自己的异步处理IP相机。

Deep SORT 和 YOLO v4

Check out我的Deep SORT repository:https://github.com/LeonLok/Deep-SORT-YOLOv4,查看我使用的跟踪算法,其中包括Tensorflow 2.0、异步视频处理和低置信度跟踪过滤。

交通流量计数

这个项目是目标计数应用的一个扩展。

功能

  • 使用DETRAC数据集生成的244,617幅图像进行训练。可以在这里找到我创建的转换代码。

    • 我把这篇论文:https://ieeexplore.ieee.org/document/8909903作为数据准备和训练的指南。

  • 每个跟踪id只计数一次。

  • 通过查看被跟踪目标的路径与计数线的交叉点对目标进行计数。

    • 因此,那些跟丢了但用相同的ID重新跟踪的仍然会被计数。

  • 使用低置信度滤波进行跟踪,来自上面同样的论文。

    • 提供更低的假阳性率。

    • 跟踪目标显示平均检测置信度。

    • 跟踪的类别由最常见的检测类别确定。

  • 显示检测结果是可选的(但是隐藏了平均检测置信度)。

  • 可以使用多个IP摄像头。

  • 方向计数可以配置为基于角度。

  • 每一小时的间隔记录计数。

    • 总的计数

    • 基于类别的计数

  • 记录每个计数目标的交叉详细信息。

    • 交叉时间

    • 交叉点坐标

    • 交叉角度

  • 可以托管在云服务器上。

注意,由于DETRAC不包含任何摩托车,它们是唯一被忽略的车辆。此外,DETRAC数据集只包含中国的交通图像,因此由于缺乏训练数据,它很难正确地检测出其他国家的某些车辆。例如,它经常会将掀背车误归为suv,或者由于不同的颜色方案而无法识别出租车。

目标计数

这个项目最初打算成为一个应用程序,用于使用我自己的智能手机计算当前在多个房间的人数,服务器被远程托管。下面展示了对人和汽车的检测、跟踪和计数。

功能

  • 对当前视场中的物体进行计数

  • 跟踪可选

  • 支持多个IP相机

  • 每间隔一个小时记录一次当前的计数

    • 当前的总数

    • 当前每个类别的计数

  • 可以托管在云服务器上

使用我自己的智能手机作为IP相机

多摄像头实时目标跟踪和计数,使用YOLOv4,Deep SORT和Flask_第1张图片

训练你自己的机动车跟踪模型

我使用DETRAC训练带有v3标注的数据集训练了YOLOv4和Deep SORT模型。我提供了将DETRAC训练图像和v3标注转换为正确格式的脚本,用于训练YOLOv4模型和Deep SORT跟踪模型。

Deep SORT 转换参数

DETRAC图像转换为Market 1501训练格式。

  • 遮挡阈值 - 忽略遮挡比率过高的车辆序列。

  • 截断阈值 - 忽略截断率过高的车辆序列。

  • 出现的次数 - 车辆序列太短(即没有足够的图像)被丢弃后,考虑遮挡和截断比率。

YOLO 转换参数

DETRAC图像被转换成Darknet YOLO训练格式。

  • 遮挡阈值 - 忽略遮挡比率过高的车辆序列。

  • 截断阈值 - 忽略截断率过高的车辆序列。

两种模型都在DETRAC训练集上进行了训练和评估,但由于缺少v3标注,测试集还没有评估,我也没有MATLAB用于Deep SORT的评估软件。到目前为止,对于我的用例来说,它已经足够好了。

使用的硬件

  • Nvidia GTX 1070 GPU

  • i7-8700K CPU

为了让大家了解我们的期望,我可以运行两个流量计数流,每个流大约10fps(正如你在流量计数gif中看到的)。当然,这在很大程度上取决于流分辨率以及用于检测和跟踪的帧数。

YOLO v3 vs. YOLO v4

当我第一次开始目标计数项目时,我使用YOLOv3,跟踪帧率大约是10FPS,很难一次运行多个流。使用YOLOv4可以更容易地运行具有更高分辨率的两个流,并提供更好的检测精度。

依赖

  • Tensorflow-GPU 1.14

  • Keras 2.3.1

  • opencv-python 4.2.0

  • ImageZMQ

  • numpy 1.18.2

  • Flask 1.1.1

  • pillow

这个项目是在Python 3.6上构建和测试的。

感谢相关贡献者

  • https://github.com/miguelgrinberg/flask-video-streaming

  • https://github.com/Ma-Dan/keras-yolo4

  • https://github.com/nwojke/deep_sort

  • https://github.com/Qidian213/deep_sort_yolov3

  • https://github.com/yehengchen/Object-Detection-and-Tracking

—END—

英文原文:https://github.com/LeonLok/Multi-Camera-Live-Object-Tracking

                                             

本文仅做学术分享,如有侵权,请联系删除。

下载1

在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2

在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3

在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

多摄像头实时目标跟踪和计数,使用YOLOv4,Deep SORT和Flask_第2张图片

▲长按加微信群或投稿

多摄像头实时目标跟踪和计数,使用YOLOv4,Deep SORT和Flask_第3张图片

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

多摄像头实时目标跟踪和计数,使用YOLOv4,Deep SORT和Flask_第4张图片

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  多摄像头实时目标跟踪和计数,使用YOLOv4,Deep SORT和Flask_第5张图片

你可能感兴趣的:(人工智能,计算机视觉,机器学习,深度学习,微软)