Object Detection at the Edge: Making the Right Choice

对象检测是一项基本的计算机视觉任务,可以对图像中的所有对象进行分类和定位。它广泛用于汽车智能城市智能家居工业4.0应用中。

边缘运行物体检测具有多个优点。首先,对于许多应用程序来说,用于将原始图像发送到云的带宽和延迟可能是不切实际的。在某些情况下,这可能至关重要:例如,在自动驾驶中,需要尽快检测道路上的物体​​,以提高乘客的安全性。其次,出于安全和隐私考虑,使用边缘设备可能是必不可少的。例如,公共安全应用程序应通过将其图像发送到远程位置来警告可疑活动,而不会侵犯在街上行走的个人的隐私。

边缘具有AI功能的传感器的系统设计
图1 –边缘具有AI功能的传感器的系统设计

然而,边缘处的运行物体检测也具有一些缺点。原因之一是计算和内存在边缘设备上受到限制,这限制了对象检测网络的选择。例如,深度学习文献中定义的标准移动/ CPU机制通常每帧允许大约800M FLOPS。在这种情况下,所选的目标检测器将需要高效且小巧,例如MobileNet-v2-SSD(对于〜0.1MPixel [i]输入为760M FLOPS )。边缘设备中的另一组限制是功耗和散热,这也限制了处理吞吐量。


流行物体检测器的计算/精度权衡
图2 –流行物体检测器的计算/精度权衡(最后附有源代码)

由于这些原因,近年来,我们已经看到对边缘化的AI加速器的需求急剧增加。AI加速器是专门设计的硬件,专门用于以速度和效率推论深度学习网络。最先进的AI加速器具有足够的计算能力(以TOPS或每秒Tera操作数衡量),可以实时运行最精确的对象检测器,而仅消耗几瓦的功率。但是,即使是这样的专用硬件,通常也需要对最佳的物体检测器进行合理的选择。

物体检测网络

深度学习对象检测器背后的主要概念是,每个对象都有一组独特的功能。这些特征使用卷积神经网络(CNN)从输入帧中提取,然后用于对帧中特定位置的对象进行分类。例如,CNN用像素定位的汽车处理输入帧时,将在特征图的位置生成与该特定类关联的一组特征。

深度学习对象检测器
图3 –深度学习对象检测器

对象检测体系结构可以分为单阶段(例如:SSD,YOLO和CenterNet)和两阶段(快速/更快-RCNN)。按时间顺序,两阶段体系结构是第一个出现的。在这些任务中,任务分为两部分:为输入框生成与类无关的框提议(本地化而不分类),处理每个方案以进行分类和对预测框的最终回归(主要是分类)。为第一阶段的预测而提取的特征也被重新用作第二阶段的输入。另一方面,单阶段体系结构可以同时执行本地化和分类,这两个任务仅使用一个阶段。在这些网络中,单个前向通过可直接从输入图像中预测边界框和分类概率。

重要对象检测的时间线
图4 –重要物体检测网络的时间表

选择一个物体检测网络

为您的边缘设备选择最佳的对象检测网络有多种标准。通常,单级检测器比两级体系结构的计算效率更高,这通常使它们成为边缘的更好选择。例如,Faster-RCNN-ResNet50在COCO val2017上的精度为38.4mAP,每帧520G FLOPS,而YOLOv5m在同一数据集上达到44.5mAP,每输入帧仅51.3G FLOPS。在单级目标检测器中,我们还可以看到内存占用量的巨大变化。例如,仅具有7.3M参数的YOLOv5与具有62M参数和相似精度的YOLOv3相比。

减少的内存和网络的计算量通常会导致较低的功耗和较高的FPS,因此应同时考虑这两个参数。要考虑的另一个因素是后处理。由于许多边缘设备不支持NMS(非最大抑制),因此运行不需要NMS的体系结构(如CenterNet)可以降低主机利用率并提高应用程序的整体FPS。

接下来,我们回顾一些用于基于边缘的对象检测的主要单阶段体系结构:

  • SSD:Single Shot Multi-box Detector(SSD)是一种非常流行且轻巧的体系结构。SSD基于锚点-用于预测的预定义框。网络会为每个对象预测类别概率和最佳锚点匹配,并对预定义的框进行其他小的修复。预测是根据网络中不同的特征图进行汇总的,以改善网络的多尺度能力。主要思想是,大特征图将具有足够的分辨率以对小物体进行准确的预测,而小特征图将包含足够的接受场以对大物体进行准确的预测[i]。来自所有特征图的最终建议被汇总并提供给NMS块,该块仅输出尚存的最终预测[ii]
  • YOLO:也许是最受欢迎的深度学习探测器系列,YOLO –“只看一次”,是基于锚的单级物体探测器,尽管参数设置很严格,但性能却很出色。YOLO有许多变体和版本,但是“对象”的独特概念在整个模型系列中都很常见。它指出,CNN提取的特征集将用于预测每个空间位置中不同锚点的置信度。因为所有类别的对象都是相同的,所以这在本地化和分类预测之间提供了概念上的隔离。与SSD一样,YOLO也使用NMS抑制大多数建议,仅输出尚存的框和类概率。在YOLOv5中,还有一个独特的盒解码优化功能,这样就可以用相对便宜的移位操作来替换昂贵的指数函数,因此即使没有强大的主机也可以使体系结构运行得非常快。例如,一个连接到Celeron N4100主机的Hailo-8 AI处理器设备可以以超过30 FPS的速度运行YOLOv5m。
  • CenterNet是一种高效的单级无锚物体检测器。无锚架构不使用预定义的框,而是直接从生成的特征图中预测框的尺寸。每个对象都由其边界框的中心点表示,并且网络会预测所有框中心的关键点热图。为了抑制不相关的框,我们仅从关键点热图中提取局部峰。无需使用NMS即可完成此操作,这使得抑制过程非常有效且快速。在无锚架构中,锚和超参数的先验值会从模型中减少,这意味着减少了对新数据集的调整。

总之,要在边缘设备上运行的对象检测网络的选择包括许多变体,例如计算,内存和后处理。所有这些都应考虑在内。因此,下次您需要为您的应用选择对象检测器时,请务必检测正确的对象

 

https://hailo.ai/hailo-blog/object-detection-at-the-edge-making-the-right-choice/

标签

发表评论