概述
PicoDet是在2021年11月发布的一种机器学习模型。它将最近在目标检测模型方面的研究成果集成到一个轻量级模型中,以在移动CPU上实现高准确度和高速目标检测。
COCO dataset
架构
PicoDet通过使用轻量级结构作为骨干,提高了特征提取的速度。通过改进损失函数,它还提高了训练的稳定性和效率。
最近几年来,基于无锚点的检测器在目标检测中变得越来越受欢迎,而全卷积单阶段目标检测(FCOS)解决了重叠的地面实况标签问题。而典型的锚框为每个坐标都有多个锚点,FCOS为每个坐标只有一个中心点;使用FCOS的无锚点方法具有无需超参数调整的优势。
然而,通常无锚点的检测器用于服务器端处理的模型,这些模型相对较大。用于移动应用的无锚点模型仅限于NanoDet和YOLOX-Nano。对于轻量级无锚点检测器来说,很难平衡准确性和效率。PicoDet是一种受FCOS和广义焦点损失(GFL)启发的新尝试。
PicoDet
CSP是ResNet等模型中使用的“跳跃连接”机制的进化。它通过添加一个机制来切断和连接先前阶段的特征图,而无需进行卷积运算,从而便于反向传播并减少操作量。在PicoDet中,将3x3深度卷积扩展为5x5深度卷积,以扩大感受野。
CSPNet
为了改善标签分配策略,采用了SimOTA,并采用了Varifocal Loss(VFL)和GIoU损失作为损失函数。
SimOTA也用于YOLOX。在确定预测边界框与地面实况边界框之间的映射以计算损失时,该方法不是分配最近的地面实况,而是解决了一个优化问题,以分配更合适的地面实况。SimOTA是OTA(Optimal Transport Assignment)的更快版本。
SimOTA
在这个目标检测模型中,通过将地面实况边界框分配给HEAD预测的每个边界框,并反向传播损失来进行学习。地面实况边界框可能会重叠。如果预测边界框落在该区域内,我们将出现一种称为“模糊锚点”的情况,我们不知道要分配哪个地面实况。OTA具有一种算法,使将地面实况边界框分配给模糊锚点变得困难。
模糊锚点
以下是OTA分配的结果示例。图像中的点是预测边界框的中心点,红色椭圆显示了分配策略的差异。
OTA分配的结果
PicoDet中用于特征提取的骨干是Enhanced ShuffleNet,这是ShuffleNetV2的改进版本,是一种适用于移动设备的高效模型架构。ShuffleNet引入了“逐点组卷积”和“通道混洗”操作,以加速1x1卷积,这是MobileNet的瓶颈。
Enhanced ShuffleNet
一次性神经架构搜索(NAS)被引入以搜索每层的最佳通道数量。搜索结果显示,使通道数量成为8的倍数对提高推断速度的贡献最大。
性能
以下是使用高通骁龙865 CPU的性能。在使用NCNN在CPU上运行时,YOLOX-Tiny在mAP 32.8时需要32.77毫秒,而PicoDet在mAP 30.6时需要12.37毫秒。在17.39毫秒内可以实现mAP 34.3。
这种性能提升是在CPU上运行推断时可以测量到的,而在GPU上运行时它们表现相同。因此,YOLOX-Tiny可能更适用于Jetson设备,而PicoDet可能最适合树莓派等设备。
用法
可以使用以下命令将PicoDet与ailia SDK一起用于检测网络摄像头视频流中的对象。
$ python3 picodet.py -v 0
ax Inc. 开发了ailia SDK,该SDK支持跨平台、基于GPU的快速推断。ax Inc. 提供从咨询和模型创建到基于AI的应用程序和SDK开发的广泛服务。如有任何疑问,请随时与我们联系。
· END ·
HAPPY LIFE
本文仅供学习交流使用,如有侵权请联系作者删除
更多【计算机视觉-PicoDet:专为移动CPU优化的快速目标检测】相关视频教程:www.yxfzedu.com