【深度学习 video detect】Towards High Performance Video Object Detection for Mobiles

文章目录

  • 摘要
  • Introduction
  • Revisiting Video Object Detection Baseline
    • Practice for Mobiles
  • Model Architecture for Mobiles
    • Light Flow

摘要

尽管在桌面GPU上取得了视频目标检测的最近成功,但其架构对于移动设备来说仍然过于沉重。目前尚不清楚在非常有限的计算资源下,稀疏特征传播和多帧特征聚合的关键原则是否适用。在本文中,我们提出了一种适用于移动设备的轻量级视频目标检测网络架构。我们在稀疏关键帧上应用了轻量级图像目标检测器。设计了一个非常小的网络,名为Light Flow,用于在帧之间建立对应关系。我们还设计了一个流引导的GRU模块,以有效地聚合关键帧上的特征。

对于非关键帧,进行了稀疏特征传播。整个网络可以端到端地进行训练。所提出的系统在移动设备上(例如华为Mate 8)以25.6 fps的速度在ImageNet VID验证集上实现了60.2%的mAP分数。

在这里插入图片描述

Introduction

近年来,利用深度神经网络进行目标检测取得了显著的进展[1]。一般趋势是构建更深、更复杂的目标检测网络[2,3,4,5,6,7,8,9,10,11],以达到更高的准确性。然而,这些提高准确性的进展未必能使网络在尺寸和速度方面更加高效。在许多实际应用中,如机器人、自动驾驶汽车、增强现实和移动手机等,目标检测任务需要在计算资源有限的平台上实时执行。

最近,越来越多的人开始关注构建非常小、低延迟的模型,以便轻松适应移动和嵌入式视觉应用的设计要求,例如SqueezeNet [12]、MobileNet [13] 和ShuffleNet [14]。这些结构是通用的,但并非专门为目标检测任务设计。为此,已经探索了一些适用于静态图像目标检测的小型深度神经网络架构,如YOLO [15]、YOLOv2 [11]、Tiny YOLO [16] 和Tiny SSD [17]。然而,直接将这些检测器应用于视频面临新的挑战。首先,在所有视频帧上应用深度网络会带来无法承受的计算成本。其次,识别准确度会受到视频中很少在静止图像中观察到的恶化外观的影响,如运动模糊、视频散焦、罕见的姿势等。

为了解决这些问题,当前的最佳实践[19,20,21]利用了时间信息来加速和提高视频的检测准确性。一方面,在[19,21]中使用稀疏特征传播来节省大部分帧上昂贵的特征计算。在这些帧上的特征从稀疏的关键帧传播而来。另一方面,在[20,21]中进行了多帧特征聚合,以提高特征质量和检测准确性。

基于这两个原则,最新的工作[21]在桌面GPU上实现了很好的速度-准确性权衡。然而,该架构对于移动设备来说并不友好。例如,作为特征传播和聚合的关键和共同组成部分,流估计在移动设备上的实时计算需求仍然远远不够。具有长期依赖性的聚合也受到移动设备有限运行时内存的限制。

本文描述了一种适用于移动设备的轻量级视频目标检测网络架构。它主要基于两个原则——在大多数非关键帧上传播特征,同时在稀疏的关键帧上计算和聚合特征。然而,我们需要仔细重新设计这两个结构,以考虑速度、尺寸和准确性。在所有帧上,我们提出了Light Flow,一个非常小的深度神经网络,用于估计特征流,可在移动设备上立即使用。在稀疏关键帧上,我们提出了基于流引导的门控循环单元(GRU)特征聚合,这是在内存有限的平台上的有效聚合。此外,我们还利用了轻量级图像目标检测器来在关键帧上计算特征,其中使用了先进而高效的技术,如深度可分离卷积 [22] 和Light-Head R-CNN [23]。

所提出的技术统一为一个端到端的学习系统。全面的实验表明,该模型稳步推进了性能(速度-准确性权衡)的界限,朝着在移动设备上实现高性能的视频目标检测前进。例如,我们在移动设备上(例如华为Mate 8)以25.6帧每秒的速度,在ImageNet VID验证集上实现了60.2%的mAP分数。它比先前在快速目标检测方面的最佳努力速度快一个数量级,并且准确性相当(见图1)。据我们所知,我们首次在移动设备上实现了具有合理准确性的实时视频目标检测。

Revisiting Video Object Detection Baseline

在静态图像中的目标检测在近年来利用深度卷积神经网络(CNN)取得了显著的进展[1]。最先进的检测器共享相似的网络架构,包括两个概念步骤。第一个步骤是特征网络,它通过一个完全卷积的主干网络[24,25,26,27,28,29,30,13,14]从输入图像I中提取一组卷积特征图F,表示为Nf eat(I) = F。第二个步骤是检测网络,它通过在特征图F上执行区域分类和边界框回归,使用多分支子网络生成检测结果y,可以是针对稀疏物体提案[2,3,4,5,6,7,8,9]或密集滑动窗口[10,15,11,31],即Ndet(F) = y。

它是随机初始化并与Nf eat一起进行训练。

将这些检测器直接应用于视频目标检测面临两个方面的挑战。就速度而言,将单一图像检测器应用于所有视频帧并不高效,因为主干网络Nf eat通常较深且较慢。

就准确性而言,检测准确性会受到视频中很少在静态图像中观察到的恶化外观的影响,如运动模糊、视频散焦、罕见的姿势。

目前的最佳实践[19,20,21]通过稀疏特征传播和多帧特征聚合分别利用时间信息来解决速度和准确性问题。

稀疏特征传播 由于连续帧之间的内容之间存在很强的关联性,不必在大多数帧上进行详尽的特征提取计算。深度特征流[19]提供了一种高效的方法,它仅在稀疏的关键帧(例如每10帧)上计算昂贵的特征网络,并将关键帧特征图传播到大多数非关键帧,从而实现了5倍的速度提升,但准确性略微降低。

在推断过程中,任何非关键帧i上的特征图都是通过从其前面的关键帧k传播而来的,即:

在这里插入图片描述
多帧特征聚合 为了提高检测准确性,流导引特征聚合(FGFA)[20]从附近的帧中聚合特征图,这些特征图通过估计的光流进行了很好的对齐。

在帧i上的聚合特征图 ˆFi 是通过加权平均附近帧的特征图得到的,其表达式为:
在这里插入图片描述
在这里插入图片描述
为了避免在所有帧上进行密集的聚合,[21] 提出了稀疏递归特征聚合,仅在稀疏的关键帧上操作。这种方法保留了聚合的特征质量,同时降低了计算成本。

具体而言,在连续的两个关键帧 k 和 k0 上,帧 k0 上的聚合特征被计算为:

在这里插入图片描述

Practice for Mobiles

由于稀疏特征传播和多帧特征聚合这两个原则在桌面GPU上产生了最佳实践,以实现高性能(速度和准确性的权衡)的视频目标检测[21]。然而,在移动设备上的计算能力和运行时内存非常有限,因此需要探索适用于移动设备的原则。

  • 特征提取和聚合仅在稀疏的关键帧上操作,而在大多数非关键帧上执行轻量级特征传播。
  • 流估计是特征传播和聚合的关键。然而,在[19、20、21]中使用的流网络Nf low在移动实时处理方面仍然远远不够。具体而言,FlowNet [32] 在相同的输入分辨率下是MobileNet [13] 的11.8倍FLOPs。即使在[19]中使用的最小的FlowNet Inception也多了1.6倍的FLOPs。因此,需要更加轻量级的Nf low。
  • 特征聚合应该在根据光流对齐的特征图上进行操作。否则,由于大目标运动引起的位移会导致聚合严重错误。聚合中的长期依赖也是受欢迎的,因为可以融合更多的时间信息以获得更好的特征质量。
  • 单张图像检测器的主干网络应尽可能小,因为我们需要它来计算稀疏关键帧上的特征。

Model Architecture for Mobiles

基于上述原则,我们设计了一个更小的移动视频目标检测网络架构。推理管道如图2所示。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下来,我们将介绍两种专门为移动设备设计的新技术,包括Light Flow,一种更有效的移动设备流量网络,以及一种基于流导向GRU的特征聚合,用于更好地建模长期依赖关系,从而获得更好的质量和准确性。

Light Flow

FlowNet [32]最初是为像素级光流估计而提出的。它设计为编码-解码模式,后面是多分辨率光流预测器。两个输入的RGB帧被连接在一起形成一个6通道的输入。在编码器中,通过一系列卷积层,输入被转换成在空间维度上缩小到输入大小的1/64的特征图束。在解码器中,特征图被馈送到多个反卷积层,以实现高分辨率的光流预测。在每个反卷积层之后,特征图与编码器中的最后特征图连接在一起,它们具有相同的空间分辨率和上采样的粗糙光流预测。每个解码器中连接的特征图后面跟随多个光流预测器。对每个预测器应用损失函数,但在推断过程中仅使用最精细的预测。

为了极大地加速流网络Nf low,我们提出了Light Flow,它是一个基于FlowNet [32]进行若干有意设计的轻量级流网络。它在准确性方面只会带来轻微的降低(端点误差增加了15%),但在理论上速度提高了近65倍(见表2)。
在编码器部分,卷积始终是计算的瓶颈。受MobileNet [13]的启发,我们将所有的卷积替换为3×3的深度可分离卷积[22](每个3×3的深度可分离卷积后面跟着一个1×1的点卷积)。与标准的3×3卷积相比,3×3深度可分离卷积的计算成本减少了8~9倍,而准确性略有降低[13]。

在解码器部分,每个反卷积操作都被最近邻上采样和随后的深度可分离卷积所取代。[33]用最近邻上采样代替了反卷积,然后是标准卷积,以解决反卷积引起的棋盘状伪影。相比之下,我们借鉴了这个想法,进一步将标准卷积替换为深度可分离卷积,以减少计算成本。

最后,我们采用了一种简单有效的方式来考虑多分辨率的预测。这受到了FCN [34]的启发,FCN在明确的求和方式下融合了多分辨率的语义分割预测作为最终预测。

与[32]不同,我们在推断过程中不仅使用最精细的光流预测作为最终预测。相反,多分辨率的预测被上采样到与最精细预测相同的空间分辨率,然后求平均作为最终预测。此外,在训练期间,仅对平均光流预测应用单个损失函数,而不是在每个预测之后应用多个损失函数。这种方法可以将端点误差减少近10%。

Light Flow的网络架构和实现在表1中进行了说明。每个卷积操作之后都跟随批量归一化[35]和Leaky ReLU非线性变换[36],斜率固定为0.1。与[32,37]类似,Light Flow在Flying Chairs数据集上进行了预训练。在训练Light Flow时,使用Adam [38]作为优化方法,权重衰减为0.00004。在4个GPU上进行了70k次迭代,每个GPU持有64个图像对。

采用了热身学习率策略,首先训练学习率为0.001的模型进行10k次迭代。然后使用学习率为0.01进行20k次迭代,并在每10k次迭代后将学习率除以2。

在将Light Flow应用于我们的方法时,为了进一步提速,进行了两个修改。首先,与[19,20,21]一样,Light Flow应用于输入分辨率为特征网络的一半,并且输出步幅为4的图像。由于特征网络的输出步幅为16,流场被下采样以匹配特征图的分辨率。其次,由于Light Flow非常小,计算量与检测网络Ndet相当,因此在检测网络的中间特征图上应用稀疏特征传播(参见第3.3节,RPN [5]中的256维特征图和Light-Head R-CNN [23]中的490维特征图),以进一步减少非关键帧的计算量。

后面略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT的界面切换

QT的界面切换 步骤一: 创建一个新的 ui 界面

使用基于jvm-sandbox的对三层嵌套类型的改造

使用基于jvm-sandbox的对三层嵌套类型的改造 问题背景 先简单介绍下基于jvm-sandbox的imock工具,是Java方法级别的mock,操作就是监听指定方法,返回指定的mock内容。 jvm-sandbox 利用字节码操作和自定义类加载器的技术,将原始方法…

【JVM】CPU飙高排查方案与思路

文章目录 CPU飙高排查方案与思路 CPU飙高排查方案与思路 1.使用top命令查看占用cpu的情况 2.通过top命令查看后,可以查看是哪一个进程占用cpu较高,上图所示的进程为:40940 3.查看进程中的线程信息 4.可以根据进程 id 找到有问题的线程&a…

挂载 IK 分词器至 Elasticsearch Docker 容器 - Docker Docker Compose 教程

简介 本博客将讲解如何在 Docker 和 Docker-Compose 中运行 Elasticsearch,并挂载 IK 分词器。 步骤 一、快速运行Elasticsearch:8.1.3 1.首先,我们需要创建一个新的 Docker 网络:"elastic"。这个网络会提供给我们接下来所要创…

Ceph分布式存储系统优化分析

Ceph支持多种存储访问接口,现有的多种性能测试工具都可用于Ceph的性能测试,如测试块接口性能的fio,iometer等;测试CephFS接口的filebench,fio等;测试对象接口的cosbench等。Ceph有专用的基准测试集CBT,其包…

1. VisionOS平台介绍

介绍 VisionOS 可实现与现实世界无缝集成并与其他虚拟内容共存的 3D 多任务体验。这为个人生产力、生活方式和娱乐应用打开了一个充满新可能性的世界,并为开发人员打开了一个全新的市场。然而,它也带来了围绕多任务处理和与身体互动的新挑战。Unity Poly…

【数据结构与算法】十大经典排序算法-插入排序

🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…

云原生应用场景及交付部署

云原生是一种软件架构和开发方式,旨在支持在云环境中构建、部署和管理应用程序。它是为了克服传统应用程序在云环境中所面临的挑战而提出的一种方法。云原生应用场景广泛,以下是一些常见的云原生应用场景,并提供了一些详细解释: …

第57步 深度学习图像识别:CNN可视化(Pytorch)

基于WIN10的64位系统演示 一、写在前面 由于不少模型使用的是Pytorch,因此这一期补上基于Pytorch实现CNN可视化的教程和代码,以SqueezeNet模型为例。 二、CNN可视化实战 继续使用胸片的数据集:肺结核病人和健康人的胸片的识别。其中&…

问DAO成都丨CyberDAO共识会议在成都圆满落幕

过往匆匆,唯有共识绵延;未来已来,愿与智者同谋。2023年8月9日至8月10日,CyberDAO共识会议在成都市大邑县顺利召开,吸引了上百名Web3.0与元宇宙爱好者参与本次会议。CyberDAO大中华区运营团队合伙人JR、漫威、安祈、可乐…

【0.1】lubancat鲁班猫4刷入debian网络ping 域名不通问题

目录 1. 环境2. 操作步骤 1. 环境 lubancat4鲁班猫4 (4G0)不带emmc系统镜像lubancat-rk3588-debian11-gnome-20230807_update.img官方资料地址https://doc.embedfire.com/products/link/zh/latest/linux/ebf_lubancat.html 2. 操作步骤 从官网给的百度网盘下载linux系统全部…

10、杂项:遍历指定目录计算文件的md5并输出到文件

目录 🍅点击这里查看所有博文 随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记…

【Rust】Rust学习 第十一章编写自动化测试

Rust 是一个相当注重正确性的编程语言,不过正确性是一个难以证明的复杂主题。Rust 的类型系统在此问题上下了很大的功夫,不过它不可能捕获所有种类的错误。为此,Rust 也在语言本身包含了编写软件测试的支持。 编写一个叫做 add_two 的将传递…

[C++ 网络协议编程] TCP/IP协议

目录 1. TCP/IP协议栈 2. TCP原理 2.1 TCP套接字中的I/O缓冲 2.2 TCP工作原理 2.2.1 三次握手(连接) 2.2.2 与对方主机的数据交换 2.2.3 四次握手(断开与套接字的连接) TCP(Transmission Control Protocol传输控…

无涯教程-Perl - ref函数

描述 如果EXPR为引用,则此函数返回真值;如果未提供EXPR,则为$_。返回的实际值还定义了引用所引用的实体的类型。 内置类型为- REFSCALARARRAYHASHCODEGLOBLVALUEIO::Handle 如果使用bless()函数为变量设置了祝福,则将返回新的数据类型。新的数据类型通常将是一个…

比较编程语言C和Go

使用一个简单的计数程序来比较古老的C语言和现代的Go语言。Go是一种现代的编程语言,它在很大程度上源自C语言。因此,对于任何使用C语言编写程序的人来说,Go可能会感觉很熟悉。Go使得编写新程序变得容易,同时又让C程序员感到熟悉&a…

大数据-玩转数据-Flink 自定义Sink(Mysql)

一、说明 如果Flink没有提供给我们可以直接使用的连接器,那我们如果想将数据存储到我们自己的存储设备中,mysql 的安装使用请参考 mysql-玩转数据-centos7下mysql的安装 创建表 CREATE TABLE sensor (id int(10) ) ENGINEInnoDB DEFAULT CHARSETutf8二…

二 根据用户行为数据创建ALS模型并召回商品

二 根据用户行为数据创建ALS模型并召回商品 2.0 用户行为数据拆分 方便练习可以对数据做拆分处理 pandas的数据分批读取 chunk 厚厚的一块 相当大的数量或部分 import pandas as pd reader pd.read_csv(behavior_log.csv,chunksize100,iteratorTrue) count 0; for chunk in …

DNS协议及其工作原理

DNS是域名系统(Domain Name System)的缩写,它是一种用于将域名转换为IP地址的分布式数据库系统。它是因特网的基石,能够使人们通过域名方便地访问互联网,而无需记住复杂的IP地址。 DNS的历史可以追溯到1983年&#xf…

4个简化IT服务台任务的ChatGPT功能

最近几个月,ChatGPT 风靡全球,这是一个 AI 聊天机器人,使用户能够生成脚本、文章、锻炼图表等。这项技术在各行各业都有无穷无尽的应用,在本文中,我们将研究这种现代技术如何帮助服务台团队增强服务交付和客户体验。 什…