opencv 计数后不动了 训练模型时_利用YOLOv4和Deep SORT实现多摄像头实时目标跟踪和计数(已开源)...

opencv 计数后不动了 训练模型时_利用YOLOv4和Deep SORT实现多摄像头实时目标跟踪和计数(已开源)..._第1张图片

代码现已开源!本项目是目标计数应用的一个扩展。包括Tensorflow 2.0、异步视频处理和低置信度跟踪过滤

本文转载自:AI公园
作者:LeonLok | 编译:ronghuaiyang 注:文末附CV学习交流群。

导读

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

项目github仓库地址:

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相机

opencv 计数后不动了 训练模型时_利用YOLOv4和Deep SORT实现多摄像头实时目标跟踪和计数(已开源)..._第2张图片

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

我使用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

CVer-学术交流群

建了CVer微信交流群!想要进计算机视觉学习交流群的同学,可以直接加微信号:CVer5555。加的时候备注一下:研究方向+学校+昵称,即可。然后就可以拉你进群了。

强烈推荐大家关注CVer知乎账号和CVer微信公众号,可以快速了解到最新优质的CV论文。

推荐阅读

NeurIPS 20 | 超越EfficientNet!TinyNet:玩转网络的分辨率,深度和宽度

涨点技巧!汇集13个Kaggle图像分类项目的性能提升指南

利用知识蒸馏改进目标检测:面向准确高效的检测器

使用深度学习从视频中估计车辆的速度(已开源)

ECCV 2020 | 旷视开源LabelEnc:提升目标检测的新型中间监督方法

这9个技巧让你的PyTorch模型训练得飞快!

牛津博士论文 | 学习重建和分割3D目标(143页PDF)

谷歌刚刚发布Objectron新数据集,可完美检测3D目标,超过4百万幅图像和15K视频剪辑!

综述 | MIT提出视频理解/行为识别:全面调研(2004-2020)

综述 | 基于无人机的目标跟踪的相关滤波器:全面调研

从三个维度加速你的CNN:全面的剪枝框架

Recall Loss:用于不平衡图像分类和语义分割的召回损失

即插即用!Rotate to Attend:卷积Triplet注意力模块

旷视提出MegDetV2:目标检测/实例分割系统

综述 | 基于深度学习的医学图像分割技术:全面调研

ResNet还是DenseNet?即插即用的DS涨点神器来了!

综述 | 基于深度学习的端到端人脸识别技术:全面调研

TBC:共享Thinner Filters,实现更强的CNN!

综述 | 行人检测技术(从手工特征到深度学习):全面调研

超越EfficientNets!无需注意力,也能让你的网络更快更强!

OpenCV 4.5来了!更强的SIFT,改进RANSAC算法,新增目标跟踪网络SiamRPN++

综述 | 基于深度学习的实时语义分割方法:全面调研

涨点神器!南航提出AFF:注意力特征融合

NeurIPS 2020 | 谷歌大脑提出:重新思考预训练和自训练

NeurIPS 2020 | 用于图像复原/恢复的神经稀疏表示

NeurIPS 2020 | aLRPLoss:统一目标检测中的分类和定位的平衡损失函数

CCE:具有互补交叉熵的不平衡图像分类

谷歌地标检索2020 Kaggle 第一名解决方案

ECCV AIM 2020 真实图像超分辨率挑战赛3项冠军解决方案

LVIS 实例分割挑战赛2020的第一名解决方案:好的Box不能保证好的Mask

ETH Zurich提出DPIR:具有Denoiser先验的即插即用图像恢复

综述 | 人脸图像质量评估:全面调研(2004-2020)

ECCV 2020 | NAS-DIP:通过NAS实现DIP(去噪/去雾/超分辨率/修复等)

TIP 2020 | PNEN:金字塔Non-Local增强型网络

综述 | 小样本学习:全面调研(Few-shot)

使用深度神经网络从Noisy Labels中学习:全面调研

剪枝filter?还是剪枝layer?这是个问题

ECCV 2020 | WeightNet:重新探索Weight网络的设计空间

Mask TextSpotter v3:用于场景文字检测和识别的分割Proposal网络

ECCV 2020 | 魔鬼在细节中:车辆重识别的自监督注意力(SAVER)

ECCV 2020 | 53.5 AP!PAA:用于目标检测的IoU预测的概率Anchor分配

ECCV 2020 | 南京理工提出FPT:特征金字塔Transformer

ECCV 2020 | BMask R-CNN:边界保持的Mask R-CNN

ECCV 2020 | 即插即用!PSConv:将特征金字塔压缩到紧凑

你可能感兴趣的:(opencv,计数后不动了,训练模型时)