12、论文阅读:SpikeYOLO:高性能低能耗目标检测网络

devtools/2024/10/23 19:59:18/

SpikeYOLO:高性能低能耗目标检测网络

  • 前言
    • 解释
  • 介绍
  • 相关工作
  • 论文提出的方法
    • 网络输入
    • SpikeYOLO架构
      • 概述
      • 网络输出
      • 宏观设计
      • 微观设计
    • I-LIF脉冲神经元
      • LIF
      • I-LIF
  • 实验
  • 代码

前言

脉冲神经网络(Spiking Neural Networks, SNNs)具有生物合理性低功耗的优势,相较于人工神经网络(Artificial Neural Networks, ANNs)。然而,由于性能较差,目前 SNNs 的应用仅限于简单的分类任务。

在这项工作中,我们专注于缩小 SNNs 和 ANNs 在物体检测任务上的性能差距。我们的设计围绕网络架构脉冲神经元展开。

首先,YOLO 系列在转换为对应的脉冲版本时,由于模块设计过于复杂,导致了脉冲退化。为了解决这个问题,我们设计了一种 SpikeYOLO 架构,通过简化原始 YOLO 并引入元 SNN 模块来解决这一问题。

其次,在脉冲神经元将膜电位转换为二进制脉冲的过程中,物体检测对量化误差更加敏感。为了解决这个挑战,我们设计了一种新型脉冲神经元,在训练过程中激活整数值,并通过扩展虚拟时间步长在推理过程中保持脉冲驱动。该方法在静态和神经形态物体检测数据集上进行了验证。

在静态 COCO 数据集上,我们获得了 66.2% mAP@50 和 48.9% mAP@50:95,分别比之前最先进的 SNN 高 15.0% 和 18.7%。 在神经形态 Gen1 数据集上,我们实现了 67.2% mAP@50,比具有同等架构的 ANN 高出 2.5%,并且能量效率提高了 5.7 倍。

解释

(1)低功耗
由于神经元只有在特定条件下才会发放脉冲,这种机制使得 SNNs 的活动非常稀疏。这种稀疏性降低了整体的计算需求,因此大大减少了能耗
(2)脉冲退化
“脉冲退化”指的是在脉冲神经网络(SNNs)中,由于某些因素导致脉冲信号的质量下降或失去原有特性 。这种退化可能源于以下几个方面:
在这里插入图片描述
“脉冲退化”本质上是指脉冲神经网络在信息处理和传递过程中,由于架构复杂性、时间特征丢失、量化误差或噪声干扰等因素,导致脉冲信号无法准确保留和传递原始信息。这种现象会降低网络的整体性能,尤其是在处理复杂任务(如物体检测)时影响更大
(3)膜电位转换为二进制脉冲
在这里插入图片描述

介绍

受到大脑启发的脉冲神经网络(SNN)以其低功耗而闻名。脉冲神经元结合了时空信息,当膜电位超过阈值时发出脉冲。因此,脉冲神经元仅在接收到脉冲时触发稀疏加法,其余时间保持闲置。这种脉冲驱动的特性使得SNN在部署于神经形态芯片时,相较于人工神经网络(ANN)展现出明显的低功耗优势。然而,复杂的神经动态和脉冲驱动特性带来的负面影响是,SNN难以训练,任务性能和应用场景有限

例如,脉冲神经网络(SNN)算法在计算机视觉中的大多数应用仅限于简单的图像分类任务。而另一种更常用且具有挑战性的计算机视觉任务——目标检测,在SNN中很少被探索。2020年,Spiking-YOLO提供了深度SNN中第一个目标检测模型,利用将人工神经网络(ANN)转换为SNN的方法,并使用了数千个时间步【时间步在脉冲神经网络(SNN)中指的是神经元状态更新的离散时间间隔。SNN的计算是基于时间的,神经元在每个时间步内根据输入和自身状态进行更新,并决定是否发放脉冲。整个计算过程通常在多个时间步内进行,网络会随着时间的推移不断积累信息,从而捕捉时序和空间上的特征。在SNN中,时间步的数量决定了神经元可以更新和发放脉冲的频率。因此,更多的时间步通常意味着网络有更多的机会去模拟连续信号,从而减少量化误差,提高ANN2SNN转换过程中精度的保真度。不过,增加时间步的同时也会增加计算复杂度和功耗】。

2023年,EMS-YOLO 成为第一个使用直接训练的SNN处理目标检测的工作。最近,直接训练的Meta-SpikeFormer首次以预训练和微调的方式处理目标检测然而,这些工作的性能与ANN之间的差距仍然显著。在本研究中,我们旨在弥补这一差距,展示SNN的低功耗及其在神经形态应用中的独特优势。我们通过两个方面来实现这一目标

首先,我们设计了一种新的架构SpikeYOLO,它结合了YOLO的宏观设计和SNN模块的微观设计。简单地用脉冲神经元替换YOLO系列中的人工神经元通常是行不通的。现有的解决方案包括建立ANN激活与脉冲发放率之间的等价关系,或改善残差设计。我们认为,另一个潜在的原因是YOLO系列中的


http://www.ppmy.cn/devtools/128232.html

相关文章

毕设项目分享 深度学习动物识别系统(源码+论文)

文章目录 0 前言1 项目运行效果1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 …

每日一题——第一百一十七题

题目&#xff1a;使用二分查找&#xff0c;查找一个数是否存在于一个升序数组中 #include <stdio.h>int binarySearch(int arr[], int length, int elem);int main() {int arr[] { 2, 3, 4, 5, 6, 7, 8, 9, 10 };int key;int length sizeof(arr) / sizeof(arr[0]);pri…

Vue预渲染:深入探索prerender-spa-plugin与vue-meta-info的联合应用

在前端开发的浪潮中&#xff0c;Vue.js凭借其轻量级、易上手和高效的特点&#xff0c;赢得了广大开发者的青睐。然而&#xff0c;单页面应用&#xff08;SPA&#xff09;在SEO方面的短板一直是开发者们需要面对的挑战。为了优化SEO&#xff0c;预渲染技术应运而生&#xff0c;而…

C盘爆满,Docker ext4.vhdx 迁移

实操记录&#xff1a;AppData\Local\Docker\wsl\data\ext4.vhdx 是 Docker 在 Windows 系统上使用的虚拟磁盘文件。该文件用于存储 Docker 容器和镜像等数据&#xff0c;且通常会占用较大的磁盘空间。考虑到 C 盘空间有限&#xff0c;且随着 Docker 的使用&#xff0c;该文件的…

transient关键字详解

今天没打算写blog&#xff0c;在看一篇关于多线程环境下SimpleDateFormat线程不安全的问题&#xff0c;一般我们都知道多线程下这个是不安全&#xff0c;但是为什么不安全不太清楚&#xff0c;我在看的这篇文章讲的比较透彻&#xff0c;我根据文章中讲结合SimpleDateFormat源码…

WebRTC音频 03 - 实时通信框架

WebRTC音频01 - 设备管理 WebRTC音频 02 - Windows平台设备管理 WebRTC音频 03 - 实时通信框架(本文) WebRTC音频 04 - 关键类 WebRTC音频 05 - 音频采集编码 一、前言&#xff1a; 前面介绍了音频设备管理&#xff0c;并且以windows平台为例子&#xff0c;介绍了ADM相关的类…

python3的基本数据类型:Number(数字)

一. 简介 本文简单学习一下 python3的一个数据类型&#xff1a;Number&#xff08;数字&#xff09;。 数字用于存储数值&#xff0c;python支持整型&#xff0c;浮点型&#xff0c;复数与分数。 二. python3基本数 据类型&#xff1a;Number&#xff08;数字&#xff09;…

word下宏命令添加右键菜单调用大语言模型

word开发者模式下&#xff0c;直接选visual basic&#xff0c;把代码粘贴进去&#xff0c;CrateSelectedTextWithAI()函数下把apikey换成你自己的密钥&#xff0c;我这个密钥不可用。这里调用的是月之暗面的模型&#xff08;有一定免费额度&#xff09;&#xff0c;其他模型的没…