分享

xYOLO | 最新最快的实时目标检测

 taotao_2016 2020-05-25

      随着物联网(IoT)、边缘计算和自主机器人等领域的车载视觉处理技术的出现,人们对复合高效卷积神经网络模型在资源受限的硬件设备上进行实时目标检测的需求越来越大。Tiny-YOLO通常被认为是低端设备中速度更快的对象探测器之一,这个也是今天作者工作的基础。





今天要分享的这篇目标检测,在Raspberry PI 3B上实验,Tiny-YOLO可以达到每秒0.14帧的速度,对于足球机器人检测球门和球来说太慢了。今天要说的这个技术,一种改进的YOLO CNN模型xYOLO,它可以在Raspberry PI 3 B上以9.66 FPS的速度实现目标检测,这是通过交换一个可接受的精度来实现的,使网络比Tiny-YOLO快约70倍。在CPU和GPU上也实现了更大的推理速度。此外,还提供了一个带注释的Darknet数据集,用于球门和球的检测。

相关工作


传统上,在机器人杯类人机器人比赛中,基于颜色分割的技术被用来检测足球场的特征,如球门和球。这些技术是快速和可以实现良好的精度在简单的环境,例如使用橙色的球,控制室内照明和黄色的目标。然而,根据RoboCup 2050年的球门,球队已经看到了自然光照条件(暴露在阳光下)、白色背景的球门和各种颜色的国际足联球。基于颜色分割的技术在这些具有挑战性的场景中无法发挥作用,主要推动了实现多种神经网络方法的竞争。

基于CNN的模型在复杂场景中的目标检测精度方面取得了很大进展。然而,这些基于cnn的高性能计算机视觉系统,虽然比全连接的网络精简得多,但仍然具有相当大的内存和计算消耗,并且只有在高端GPU设备上才能实现实时性。因此,这些型号中的大多数不适合于低端设备,如智能手机或移动机器人。这就限制了它们在实时应用中的应用,比如自主的仿人机器人踢足球,因为有权力和重量方面的考虑。因此,开发轻量级、计算效率高的模型,使CNN能够使用更少的内存和最少的计算资源,是一个活跃的研究领域。

最近发表了大量关于适合于低端硬件设备的目标检测的轻量级深入学习模型的研究论文。这些模型大多基于SSD、SqueezeNet、AlexNet和GoogleNet。在这些模型中,目标检测流水线通常包含预处理、大量卷积层和后处理等几个部分。分类器在图像中的不同位置和多尺度上使用滑动窗口方法或区域候选方法进行评估。这些复杂的目标检测计算量大,因此速度慢。XNOR-Net使用二进制运算的近似卷积,与传统卷积中使用的浮点数相比计算效率高。XNOR网络的一个明显的缺点是类似大小的网络的准确性下降。

另一方面,在you only look once(YOLO),目标检测是一个单一的回归问题。YOLO工作在边界框级别,而不是像素级别,即YOLO同时预测边界框和相关的类概率,从整个图像中在一个“看”。YOLO的一个主要优点是它能够对上下文信息进行编码,因此在混淆目标图像中的背景时出错较少。

“Lighter”版本的YOLO v3,称为Tiny-YOLO,设计时考虑到了速度,并被普遍报道为表现较好的模型之一,在速度和准确性的权衡。Tiny-YOLO有九个卷积层和两个全连接层。实验表明,Tiny-YOLO能够在Raspberry PI 3上实现0.14 FPS,这与实时目标检测相差很远。


从有些文章中的结果可以看出,这些目标检测器不能在计算资源最少的低端硬件上提供实时性能(例如,以Raspberry PI作为计算资源的类人机器人)。在作者使用的机器人中,使用一个计算资源来处理几个不同的过程,例如行走引擎、自我定位等。视觉系统只剩下一个核心来执行所有的目标检测。

新的框架方法


作者提出的网络xYOLO是从YOLO v3 tiny派生而来的,具体而言,使用AlexeyAB的DarkNet,它允许XNOR层,并建立在下图所示的Raspberry PI的基础上,xYOLO在训练和recall中都使用了正常的卷积层和XNOR层。

每年的RoboCup比赛都会带来新的挑战,在比赛开始的时候,模型必须使用收集到的图像进行再训练。因此,作者设计这一网络的方法是将训练时间减少到45分钟以下,以便对不同的网络配置和新的足球场条件进行相对快速的测试。

上图是一个网络的例子,其中的参数太小,以至于无法检测对象。在下图中,这将表现为损失均方误差在不能将损失降低到可接受的值(即1.5以下)的1000次迭代或模型之前没有减少到6以下。一般来说可以得出结论,一个网络是否在训练的前15分钟有一个合理的机会成功。

实验及结果


下面是xYOLO网络的结构:

如下表所示,与其他测试模型相比,xYOLO在计算效率方面取得了更好的性能。

基于仿人足球数据集的目标检测精度结果

观察到上图,模型在训练和未见测试集上都取得了相似的精度。与其他模型相比,Tiny-YOLO实现了更好的目标检测精度。在验证数据集上,xYOLO能够达到约68%的准确率,在测试集上达到约67%,这在考虑到xYOLO的速度和大小时是很好的。

示例目标检测结果由模型产生。左侧:Tiny-YOLO,中间:xYOLO,右侧:Tiny-YOLO-XNOR。当每个网络识别达到检测阈值的对象时,球和球门被标记。可以观察到,xYOLO的目标检测结果优于Tiny-YOLO-XNOR,其结果与Tiny-YOLO具有可比性。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多