关注公众号,发现CV技术之美

编者按:目标检测技术在视频分析系统中是十分基础的功能模块,在许多视频分析场景中,若可以在边缘设备上直接运行目标检测模型,可极大提升检测效率,同时也可以降低使用成本。但是,如何在边缘设备运行计算密集的 DNN,以及降低在边缘设备进行检测时的推理延迟,成为了相关领域工作者们重点研究的方向。

为此,微软亚洲研究院的研究员们提出了 Remix 计算框架。其在充分分析和利用现有模型多样性能力的基础上,通过对有限计算资源的合理分配调度,实现了灵活可调谐的高分辨率目标检测。经评估,其效果已经达到 SOTA。相关研究成果“Flexible High-resolution Object Detection on Edge Devices with Tunable Latency”已被 MobiCom’21 (Winter Round) 收录。欢迎感兴趣的读者阅读论文全文,希望对你的研究能带来新的启发和灵感!

如今,视频分析系统正被广泛应用。例如,纽约市曾斥资3.5亿美元,在全市范围内部署了超过18,000枚摄像头,其收集到的视频数据与其他大数据一道被分析,用以安防等目的。在一众视频分析系统中,作为基础功能模块,目标检测技术扮演了至关重要的角色。同时,得益于深度学习的发展,基于深度神经网络(DNN)的目标检测模型在众多公开数据集上都取得了不错的效果。

在许多视频分析的场景中,人们发现相比于使用云服务,如果可以在边缘设备,如智能摄像头上直接运行目标检测模型,将会带来诸多便利,包括更低的网络延迟、更少的带宽使用、更低廉的部署和使用成本、更好的隐私保护等等。然而边缘设备上的运算资源非常有限,如何使其可以运行计算密集的 DNN 充满了挑战。

与此同时,近些年来高分辨率相机的成本越来越低,大量装配与部署 4K 甚至 8K 摄像头的设备屡见不鲜。高分辨率设备带来更清晰画面细节的同时,也要求使用更大规模的 DNN 来进行处理,进而就导致了在边缘设备更高的推理延迟。

一方面是有限的计算资源,另一方面则是快速准确的目标检测需求。为了弥合这一差距,微软亚洲研究院的研究员们最近作出了一些尝试,提出了名为 Remix 的计算框架,在充分分析和利用现有模型多样性能力的基础上,通过对有限计算资源的合理分配调度,实现了灵活可调谐的高分辨率目标检测。在给定的任一边缘设备上,Remix 都会试图找到最佳运行方案,以保证在不超过设定延迟约束的前提下,达到最佳检测性能。经评估,与 SOTA 目标检测模型相比,Remix 在多种边缘设备上到达相同检测性能时可以加速推理最高达8.1倍;同时,在相似延迟约束下,Remix 也可以取得平均65.3%的检测准确率增幅。

论文链接:

https://dl.acm.org/doi/abs/10.1145/3447993.3483274

现有方法性能的观测与分

首先,研究员们对现有的主流模型在高分辨率(4K)下目标检测任务的性能进行了评估。主要有以下几个观察:

  • 缩小高分辨率图片至现有模型的输入尺寸会极大降低目标检测的准确率。目前,现有模型接受的输入尺寸普遍偏小,如640x640,512x512。把 4K 的图片压缩至这样的尺寸,待检测的目标将会变得极小以至于很难被成功检测。例如,EffcientDet-D0 (512x512) 在 4K 测试数据集上只能达到1.1%  mAP。

  • 增大现有模型的规模至4K会极大增加推理延迟。构建更大的模型也可以处理更大尺寸的输入,然而通过在英伟达 Jetson Xavier 实测得到的数据显示,随着模型输入尺寸的增加,推理延迟呈现出指数级的增长。例如,EfficientDet-D7 (1536 x 1536) 的推理延迟已超过2秒,处理 4K 输入的模型推理延迟将会更大。

  • 均匀分割高分辨率图片并处理仍会导致巨大的推理延迟。另外,目前普遍使用的工程实践是把图片按照现有模型的大小进行均匀分割,再使用对应的模型进行处理。经评估,这种做法会提高检测精度,但是会导致更大的推理延迟。例如,使用 EfficientDet-D0 均匀分割并处理一张 4K 图片,在 Jetson 上需要超过2秒的处理时间。

  • 模型与其“边际收益”的多样性。图1展示的是不同规模的模型(EfficientDet-D0 ~ D7)在小(S0 ~ S3),中(M0 ~ M3),大(L0 ~ L3)不同尺寸的目标上所取得的检测精确度。如图所示,即便是小模型,在大尺寸的目标中也可以取得不错的效果。更重要的是,随着目标尺寸的变化,不同规模模型的“边际效应”截然不同。举例说明,EfficientDet-D6的推理延迟是 EfficientDet-D3 的5.4倍,EfficientDet-D6 检测准确率在 L3 尺寸的目标上,比 EfficientDet-D3 提高10%。然而在更小的目标,如 S3、M2 上,则会带来3.3倍与1.6倍的性能提升。从这个观察中可知,付出相同算力在不同目标上,带来的收益却完全不同。

图1:不同规模的模型(EfficientDet-D0 ~ D7)在小(S0 ~ S3),中(M0 ~ M3),大(L0 ~ L3)不同尺寸的目标上所取得的检测精确度

提升性能的机会与挑战

基于如上的测量与观察,研究员们发现有机会去设计一个更灵活的、面向高分辨率的目标检测系统。具体来说,有以下两个机会:

1. 基于卷积神经网络(CNN)的模型和前文提到的均匀分割的方法,都在均匀的分配算力,即“平等”地计算每一个像素。然而实际上像素中所包含的信息不尽相同,像素与像素之间也并不“平等”。所谓“好钢要用到刀刃上”,所以应该“不均匀”地分割出不同的像素区域,把更多的算力分配给可以取得收益更大的区域;

2. 可以通过混合使用多个不同的模型,来实现算力的灵活分配。目标检测技术发展至今,人们已经提出了种类繁多的模型,其中有些模型小、快,但不精准;又有一些模型足够精准,但是推理速度慢。它们有着多样的推理延迟、检测准确率等特性。另一方面,模型在不同尺寸的目标上,又有着不同的“边际收益”。所以可以通过综合使用多种模型的方式来实现灵活的算力分配与调节。

下面的示例简述了主要的设计思想。研究员们把图片分割成多个区域,对于蓝色区域,目标多且难以检测。因此需要分配更多算力,即用一个大模型来处理以保证检测成功率。对于绿色区域,目标少或容易检测,中小模型就可以保证准确率,且可以加速推理。对于红色区域,没有目标,可以直接跳过来进一步减少系统延迟。

图2:非均匀分割与适应性算力分配

然而要实现这个目标,还面临着几个主要挑战:

  • 需要找到合适的区域划分方式并且针每个区域选择合适的模型,来平衡检测成功率与总体系统延迟。

  • 需要找到目标的长期分布,同时也不能忽视内容的短期变动。

  • 系统总体需要轻量化,支持多种边缘设备以及多样化设定。

灵活可调谐的目标检测框架 Remix

为此,微软亚洲研究院的研究员们设计了 Remix,一个灵活可调谐的目标检测框架。图3是 Remix 的架构示意图。其包括两个主要模块:适应性分割模块和选择性执行模块。在适应性模块中,研究员们试图找到对于图片的最佳分割方式。具体来说,它有三个输入:一系列多样化的神经网络、视频历史数据以及一个由用户设定的延迟约束。

首先,研究员们在目标设备上评估测试了这些神经网络,得到了其有关推理延迟、检测成功率和“边际效应”等信息。视频历史数据用以分析目标空间分布。基于评估得到的神经网络信息以及统计得出的目标空间分布信息,研究员们都递归式地枚举了每一种分割图片与分配模型的方案,并设计了对应的方法估算其总体延迟以及可以达到的检测成功率。由于递归的过程极其耗时,研究员们还设计了一个启发式搜索的方法来加速此过程。最后,那些延迟接近用户设定延迟约束的,且有最高检成功率的分割方案将会被存储到一个方案池中,并部署到边缘设备上。

图3:Remix 示意图

在边缘设备上,研究员们运行了选择性执行模块。在方案池中,初始地选择了满足延迟约束且检测准确率最高的方案。然后图片被按照这个方案分割并交付对应的模型进行处理。在运行时,该框架会动态地决定哪些分块可以被跳过。比如一个分块内连续多帧都没有目标,那么就会选择下帧不处理它,以进一步减少延迟。

Remix 也会“时不时”地再回来看看这些被跳过的分块,以防又有目标出现,研究员们设计了一个基于检测结果的反馈回路来进行控制。同时,因为跳过了一些分块,总体延迟可能会小于延迟约束,算力有剩余。于是研究员们还设计了另外一个反馈回路用来动态调整分割方案,力求最大化利用边缘设备上的算力。在设计 Remix 的过程中,研究员们也考虑了诸多实际问题,比如如何避免目标在分割时被切分开、如何快速估算比较分割方案等等。

最后,研究员们在多种边缘设备上评估了 Remix 的性能,包括英伟达 Jetson Xavier、骁龙855芯片组、麒麟970芯片组等。在公开数据和自己采集的数据上, Remix 都展现了出非常优越的性能。同时研究员们对系统的各个模块进行了详细的评估,也对系统开销包括能耗、内存占用等做出了分析。有关性能评估,请参考论文原文获取更多细节。

总结与展望

“Remix”这个单词,按照维基百科上的解释是“重混音”。混音师们通过对原歌曲的再加工,增加、减除一些音符,改变其强弱、音高、速度、曲调长度等音乐元素,最终创作出令人耳目一新的音乐形式。事实上,这与研究员们的思想不谋而合,通过对高分辨率图片的适应性分割,合理分配算力以及选择性执行,实现了这个灵活高效可调谐的目标检测框架。

在工程实践过程中,研究员们总结了一些对于边缘智能的认识。这些认识指导了 Remix 的设计,并且也是接下来继续探索的方向,主要有以下几点供大家参考:

  • 垂直应用领域的域信息可以被充分挖掘与利用。在实际的应用部署场景中,合理利用域信息、上下文信息往往可以起到事半功倍的效果,这与强调泛化能力的深度学习推理,或许可以形成良好的互补。Remix 的设计利用了视频分析(监控)应用中固定场景目标分布稳定并且稀疏的特性,大大减少了推理延迟,并把算力重新分配,又提高了检测准确率。

  • 云(Cloud)与端(Edge)可以有更紧密的互动。在云上训练模型,然后部署到边缘设备上,这种单向的互动是普遍的工程实践。然而研究员们认为云上的强大算力应该为边缘智能的全生命周期“保驾护航”。比如在 Remix 中,边缘设备可以得益于云上分析得出的分割方案来加速推理提高准确率。再比如,近期讨论颇多的面向边缘设备的 Lifelong Learning, Continuous Learning 也是这种紧密互动的范例。

  • 灵活可调谐的边缘推理。近年来人们设计出了多种多样的模型,但与此同时,边缘设备也越来越多样化。显然给每一个设备都设计一个最合适的模型是不现实的,那么有没有一劳永逸的方式来实现灵活可调谐的推理呢?即给定一个算力约束,模型或框架总能自动地最大化利用好所有资源并提供最佳性能。Remix 是一个尝试,接下来研究员们还会做更多的探索。

微软亚洲研究院异构计算组(Heterogeneous Extreme Computing)正在招聘实习生,欢迎对相关领域感兴趣的同学加入我们!

岗位详情:

https://www.msra.cn/zh-cn/jobs/interns/hex-research-intern

简历投递邮箱:

MSRAih@microsoft.com

END

欢迎加入「目标检测交流群

Remix:高分辨率目标检测,面向边缘设备、可调谐相关推荐

  1. 【活动报名 | 青源Talk第3期】DenseNet发明者黄高:面向边缘设备的轻量神经网络...

    活动议程 日期:12月10日(周四) 时间 主题 19:00-19:05 开场简介 刘知远,清华大学计算机系副教授,智源青年科学家 19:05-19:50 <面向边缘设备的轻量神经网络> ...

  2. 高分辨率目标检测——(转载)【python】小目标检测中对一幅高分辨率图分块且改变目标bounding box的坐标

    https://blog.csdn.net/m0_37615398/article/details/84982384 很多时候,在小目标检测中,对于一副高分辨率图像,我们很难直接输入一整幅大图来进行目 ...

  3. 边缘设备上的实时AI人员检测:入门

    下载数据-19.3 MB 下载模型-43.5 MB 下载结果-36.66 MB 得益于深度学习(DL),实时视频流中的人的实时检测几年前就已经解决了.但是,在边缘和物联网设备上并不总是那么容易,因为它 ...

  4. 2019 ICCV 目标检测 论文简述整理

    2019 ICCV  (43篇) 题目 发表单位 针对问题 创新点 性能 ThunderNet: Towards Real-time Generic Object Detection (实现实时通用对 ...

  5. YOLO系列目标检测算法-YOLOv7

    YOLO系列目标检测算法目录 - 文章链接 YOLO系列目标检测算法总结对比- 文章链接 YOLOv1- 文章链接 YOLOv2- 文章链接 YOLOv3- 文章链接 YOLOv4- 文章链接 Sca ...

  6. YOLOv7:无需预训练模型的最新最实时的目标检测框架

    Yolov7论文翻译 翻译工具: DeepL和 讯飞文档翻译 论文:https://arxiv.org/abs/2207.02696 代码:https://github.com/WongKinYiu/ ...

  7. 目标检测模型从训练到部署!

    Datawhale干货 作者:张强,Datawhale成员 训练目标检测模型并部署到你的嵌入式设备,让边缘设备长"眼睛". 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定 ...

  8. 目标检测模型从训练到部署,其实如此简单

    目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一.目标检测已应用到诸多领域,比如如安防.无人销售.自动驾驶和军事等. 在许多情况下,运行目标检测 ...

  9. YOLObile:面向移动设备的「实时目标检测」算法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 分享一篇AAAI 2021录用论文:YOLObile: Real-Time Object Detect ...

最新文章

  1. SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
  2. SysAid 9.0 发布,增加移动设备管理功能
  3. Codeforces Round #713 (Div. 3)
  4. 2018年4月1日 蓝桥杯 C/C++B组答案 递增三元组
  5. WPF中自定义窗体标题栏
  6. 芯片的反向流程是怎么样的?
  7. 如何理解文件存取单位 -- 块(block)
  8. 判断点是否在给定四边形内的算法
  9. apollo配置中心搭建
  10. windows如何卸载服务
  11. H桥电机驱动基本原理
  12. 在win7上安装AutoCAD2006
  13. 【Hadoop的初级理解】
  14. linux下安装飞信机器人教程
  15. Bomb Game(题目地址链接:https://acs.jxnu.edu.cn/problem/NOIOPJCH02011661)
  16. 微信ANDROID版本解析包错误,终于弄明白为什么手机安装软件会出现“解析包出现问题”...
  17. 01-无线传感器网络(WSN)简介
  18. java获取机器的IP
  19. 国家自然基金上会评审若干情况介绍
  20. Android Factory Images for Nexus Devices

热门文章

  1. 网络爬虫中的验证码识别
  2. selenium模拟登陆时截取验证码
  3. 字典(dict)按键(key)和值(value)排序即item()的常用方式
  4. FFmpeg命令的几种应用
  5. pytorch自动求梯度—详解
  6. linux 判断文件上传轨迹,linux各种常用命令
  7. php前端路由权限,SaaS-前端权限控制
  8. nuke无法理解服务器的响应,cuke4nuke服务器没有重新开始
  9. vue跳转页面之后返回_vue页面跳转后返回原页面初始位置方法
  10. solidworks批量图号分离_SolidWorks图号分离宏-不需要特殊符号