0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用光流 + CNN的方法来预测车辆的速度

新机器视觉 来源:新机器视觉 作者:Sharif Elfouly 2020-11-27 09:05 次阅读

导读

使用光流 + CNN的方法来预测车辆的速度,用PyTorch实现,有代码。

代码:https://github.com/SharifElfouly/vehicle-speed-estimation

我想要解决的问题是:在一辆车里有一个摄像头,我想知道车开得有多快。你显然不能看速度表,只能看视频片段本身。深度学习魔法应该能帮助我们。

数据

我有两个不同的视频。一个用于训练,另一个用于测试。训练视频有20399帧,测试视频有10797帧。视频下载地址:https://github.com/commaai/speedchallenge。下面是一些例子:

视频中的样本图像

训练视频的标签是a .txt文件,其中每一行对应于特定帧的速度。

方法

这个问题最有趣的地方是你的神经网络输入会是什么样子。仅从一个静态图像计算速度是不可能的。一种有效的方法是将两个或更多的图像堆叠在一起,或者像LSTM或Transformer那样连续地堆叠。另一个是计算光流,我决定用它。

什么是光流?它基本上是一种为每个像素计算矢量的方法,告诉你两幅图像之间的相对运动。有一个很棒的computerphile视频:https://www.youtube.com/watch?v=4v_keMNROv4,你可以了解更多细节。有一些“经典”的计算机视觉算法可以用来计算光流,但深度学习已经变得更好了(这一点也不奇怪)。那么什么是SOTA方法,让我们看看paperswithcode:

RAFT 看起来不错,它还有PyTorch的实现。我forked原始存储库,并使其更简单一些。我不需要训练,评估等等。我只会用它来推理。

计算光流

为了进行推断,网络将两幅图像拼接起来,并预测了一个维度为*(2, image_height, image_width)*的张量。如前所述,图像中的每个像素对应一个二维向量。我们将在实际训练中使用这些文件,因此我们将它们保存为.npy文件。如果你想象光流图像它会是这样的:

训练

记住我们训练的目的:

光流→模型→车速估计

我选择的模型是EfficientNet。我非常喜欢它,因为它的可扩展性。它有8个不同的版本供你选择,最大的一个,EfficientNet-B7仍然非常非常好。你可以从一个像B0这样的小变体开始,然后如果一切工作正常,你有一个足够好的GPU,你可以选择一个更大的。还有一个PyTorch库,我会使用它来非常容易地加载预先训练好的网络模型,地址:https://github.com/lukemelas/effecentnet-PyTorch。如果你打开[train.ipynb](https://github.com/sharifelfouly/vehicle-speed - estimate),你就可以看到训练是如何运作的。

我总是从B0开始,然后放大到B3,因为我的GPU只有6 GB内存。经过训练,我得到如下结果(loss为均方误差):

训练损失

验证损失

很好,看起来一切都很正常!训练和验证损失都在降低,网络没有过拟合。

结果如下:

虽然不完美,但它确实有一些用

总结

我通常不太喜欢特征工程,但我认为在这种情况下它做得很好。下一步是尝试一些序列化的东西,比如Transformer或LSTM。

英文原文:https://medium.com/@selfouly/vehicle-speed-estimation-from-video-using-deep-learning-18b41babda4c

责任编辑:xj

原文标题:使用深度学习从视频中估计车辆的速度

文章出处:【微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8105

    浏览量

    130542
  • 深度学习
    +关注

    关注

    73

    文章

    5232

    浏览量

    119892
  • cnn
    cnn
    +关注

    关注

    3

    文章

    326

    浏览量

    21296

原文标题:使用深度学习从视频中估计车辆的速度

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如果是使用六步方波的方法来控制电机,要如何实现过电流保护?

    请问一下如果是使用六步方波的方法来控制电机,要如何实现过电流保护? 以免电流过大造成板子损坏
    发表于 04-22 08:10

    基于区块链的自动驾驶车辆电池寿命预测方法

    基于区块链的自动驾驶车辆电池寿命预测方法
    的头像 发表于 01-05 10:27 188次阅读
    基于区块链的自动驾驶<b class='flag-5'>车辆</b>电池寿命<b class='flag-5'>预测</b><b class='flag-5'>方法</b>

    通过设置外部电容Cout和外部电阻Rout的方法来设置ADXRS646的带宽,请问这么做有带宽上限吗?

    fout = 1/(2 ×× Rout × Cout); Rout = (180 k× Rext)/(180 k+ Rext)通过设置外部电容Cout和外部电阻Rout的方法来设置ADXRS646的带宽,请问这么做有带宽上限吗?最佳带宽是多少?多谢各位大神!
    发表于 12-29 08:32

    LabVIEW进行癌症预测模型研究

    LabVIEW进行癌症预测模型研究 癌症是一种细胞异常增生的疾病。随着年龄的增长,细胞分裂速度放缓,但癌细胞会失去控制地不断分裂,形成可能良性或恶性的肿瘤。 2012年的国际癌症数据显示,新发癌症
    发表于 12-13 19:04

    基于CNN-LSTM网络的电力负荷预测

    为了及时掌握电力负荷的变动信息,就需要对电力负荷进行准确预测。鉴于此,探究出一种CNN和LSTM的组合模型来预测一日到一周的电力短期负荷波动情况。CNN模型负责从输入信息中提取特征,L
    的头像 发表于 11-09 14:13 1422次阅读
    基于<b class='flag-5'>CNN</b>-LSTM网络的电力负荷<b class='flag-5'>预测</b>

    开关电源传导EMI预测方法

    针对开关电源设计阶段应考虑的EMC问题,介绍了PCB及其结构寄生参数提取和频域仿真的方法,在开关电源设计阶段对其传导EMI进行预测,定位开关电源传导EMI传播路径的影响因素,在此基础上给出开关电源
    发表于 09-22 07:18

    基于机器学习的车位状态预测方法

    本发明公开一种基于机器学习的车位状态预测方法,基于历史数据,建立回归决策树模型进而构建改进决策树模型,对每个区域的停车率进行预测,基于停车率和用户喜好度为用户推荐相应的停车区域,获取相应停车区域
    发表于 09-21 07:24

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型  卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习神经网络,最初被广泛应用于计算机
    的头像 发表于 08-21 17:11 797次阅读

    一文详解CNN

    1 CNN简介 CNN即卷积神经网络(Convolutional Neural Networks),是一类包含卷积计算的神经网络,是深度学习(deep learning)的代表算法之一,在图像识别
    发表于 08-18 06:56

    车辆健康监测和预测性维护

    电子发烧友网站提供《车辆健康监测和预测性维护.zip》资料免费下载
    发表于 07-03 14:29 0次下载
    <b class='flag-5'>车辆</b>健康监测和<b class='flag-5'>预测</b>性维护

    使用声纳测量交通速度

    测量车辆速度的最常见方法之一是使用雷达,这通常涉及产生无线电波,将其指向移动的车辆,以及测量它们返回设备的各种方式。这是一种久经考验的真实方法
    的头像 发表于 06-25 17:02 302次阅读

    雷达测速传感器LP-DS100用于车辆实时对地速度测量

    这些车辆往往需要根据道路状况、交通和其他因素以特定速度行驶,而实时准确的车辆速度测量有助于司机根据情况保持适当的速度,避免事故。 目前有几种
    的头像 发表于 06-16 11:33 499次阅读
    雷达测速传感器LP-DS100用于<b class='flag-5'>车辆</b>实时对地<b class='flag-5'>速度</b>测量

    PyTorch教程-14.8。基于区域的 CNN (R-CNN)

    应用于对象检测的许多开创性方法之一 (Girshick等人,2014 年)。在本节中,我们将介绍 R-CNN 及其一系列改进:fast R-CNN ( Girshick, 2015
    的头像 发表于 06-05 15:44 379次阅读
    PyTorch教程-14.8。基于区域的 <b class='flag-5'>CNN</b> (R-<b class='flag-5'>CNN</b>)

    PyTorch教程14.8之基于区域的CNN(R-CNN)

    电子发烧友网站提供《PyTorch教程14.8之基于区域的CNN(R-CNN).pdf》资料免费下载
    发表于 06-05 11:09 0次下载
    PyTorch教程14.8之基于区域的<b class='flag-5'>CNN</b>(R-<b class='flag-5'>CNN</b>)

    nodemcu sdk 151如何添加一种方法来更改UART缓冲区大小?

    nodemcu sdk 151 如何添加一种方法来更改 UART 缓冲区大小.. uart.set_buffer( id, bufsize ) eLUA 支持更改 我需要大 Rx 和小 Tx。 我
    发表于 05-09 11:16