Fast YOLO:用于实时嵌入式目标检测

人工智能 新闻
目标检测被认为是计算机视觉领域中最具挑战性的问题之一,因为它涉及场景中对象分类和对象定位的组合。今天分享这个框架有点陈旧,但精髓!

本文经计算机视觉研究院公众号授权转载,转载请联系出处。

一、前言

目标检测被认为是计算机视觉领域中最具挑战性的问题之一,因为它涉及场景中对象分类和对象定位的组合。最近,与其他方法相比,深度神经网络 (DNN) 已被证明可以实现卓越的目标检测性能,其中YOLOv2是基于DNN的最先进技术之一。

图片

目标检测方法在速度和准确性方面。尽管YOLOv2可以在强大的GPU上实现实时性能,但在计算能力和内存有限的嵌入式计算设备上利用这种方法进行视频中的实时目标检测仍然非常具有挑战性。

二、概要

在今天分享中,有研究者提出了一个名为Fast YOLO的新框架,这是一个快速的You Only Look Once框架,它可以加速YOLOv2以便能够以实时方式在嵌入式设备上执行视频中的目标检测。

首先,利用进化深度智能框架来进化YOLOv2网络架构,并产生一个优化的架构(这里称为O-YOLOv2),其参数减少了2.8倍IOU下降了约2%。为了在保持性能的同时进一步降低嵌入式设备的功耗,在提出的Fast YOLO框架中引入了一种运动自适应推理方法,以降低基于时间运动特性的O-YOLOv2深度推理的频率。实验结果表明,与原始YOLOv2相比,所提出的Fast YOLO框架可以将深度推理的数量平均减少38.13%视频中目标检测的平均加速约为3.3倍,导致Fast YOLO运行在Nvidia Jetson TX1嵌入式系统上平均约为18FPS。

三、新框架

图片

提出的Fast YOLO框架分为两个主要部分:i)优化的YOLOv2架构,以及ii运动自适应推理(见上图)。对于每个视频帧,由带有参考帧的视频帧组成的图像堆栈被传递到1×1卷积层。卷积层的结果是一个运动概率图,然后将其送入运动自适应推理模块以确定是否需要深度推理来计算更新的类概率图。正如介绍中提到的,主要目标是引入一个视频中的目标检测框架,该框架可以在嵌入式设备上更快地执行,同时减少资源使用,从而显着降低功耗。通过利用这种运动自适应推理方法,深度推理的频率大大降低,并且仅在必要时执行。

图片

深度神经网络的主要挑战之一,尤其是在将它们用于嵌入式场景时,是网络架构设计。设计过程通常由人类专家执行,他探索大量网络配置,以在建模精度和参数数量方面为特定任务找到最佳架构。寻找优化的网络架构目前通常作为超参数优化问题来解决,但这种解决问题的方法非常耗时,而且大多数方法对于大型网络架构来说要么在计算上难以处理,要么导致次优解决方案不够嵌入式使用。

图片

例如,超参数优化的一种常用方法是网格搜索,其中检查大量不同的网络配置,然后选择最佳配置作为最终的网络架构。然而,为视频中的目标检测而设计的深度神经网络(如YOLOv2)具有大量参数,因此在计算上难以搜索整个参数空间以找到最佳解决方案。

图片

因此,研究者没有利用超参数优化方法来获得基于YOLOv2的最佳网络架构,而是利用专为提高网络效率而设计的网络优化策略。特别是,研究者利用进化深度智能框架来优化网络架构,以合成满足嵌入式设备内存和计算能力限制的深度神经网络。

图片

为了进一步降低处理器单元的功耗,用于视频中的嵌入式目标检测,研究者利用了这样一个事实,即并非所有捕获的视频帧都包含唯一信息,因此不需要对所有帧进行深度推理。因此,研究者引入了一种运动自适应推理方法来确定特定视频帧是否需要深度推理。通过在必要时使用前面介绍的O-YOLOv2网络进行深度推理,这种运动自适应推理技术可以帮助框架减少对计算资源的需求,从而显着降低功耗系统以及处理速度的提高。

四、实验

图片

原始YOLOv2网络架构与优化后的YOLOv2之间的架构和性能比较

提出的Fast YOLO、O-YOLOv2和原始YOLOv2在Nvidia Jetson TX1嵌入式系统上运行的平均运行时性能和深度推理频率。

图片

责任编辑:张燕妮 来源: 计算机视觉研究院
相关推荐

2021-09-13 09:50:28

MicroEJ开源JavaScript框

2018-07-06 11:49:51

Linux嵌入式系统工具

2021-12-16 22:39:45

Linux发行版开发

2011-01-14 13:13:23

嵌入式Linux开发

2022-04-01 08:09:03

操作系统嵌入式重构

2023-11-20 09:47:14

自动驾驶视觉

2011-04-18 11:34:34

嵌入式软件测试

2009-12-17 10:33:05

嵌入式Linux

2009-12-16 15:41:40

嵌入式Linux入门

2009-07-17 16:06:59

ARM嵌入式开发

2009-12-09 10:12:28

嵌入式Linux

2014-11-17 21:19:58

VxWorks 7风河

2014-05-26 15:14:04

DIGIA嵌入式Qt

2009-12-24 17:21:38

嵌入式Linux

2011-07-05 15:42:02

QT 嵌入式 Embedded

2022-12-14 08:06:08

2021-10-26 21:50:10

Rust嵌入式开发

2021-12-19 22:34:45

Linux容器系统

2022-01-04 22:19:38

Linux开发嵌入式

2022-01-03 23:33:40

Linux组件系统
点赞
收藏

51CTO技术栈公众号