PANet[详解]

2023-11-07

一、Abstract摘要&Introduction介绍

Abstract

信息在神经网络中的传播方式非常重要。本文提出了一种基于提议的实例分割框架下的路径聚合网络Path Aggregation Network (PANet),旨在促进信息的流动。具体地说,我们通过自底向上的路径增强,利用准确的低层定位信号增强整个特征层次,从而缩短了低层与顶层特征之间的信息路径。我们提出了自适应特征池adaptive feature pooling,它将特征网格和所有的特征层连接起来,使每个特征层中的有用信息直接传播到下面的建议子网络。为了进一步改进掩码预测,创建了一个互补的分支,用于为每个提案捕获不同的视图。

这些改进很容易实现,但需要额外的计算开销。我们的PANet在COCO 2017挑战实例分割任务中获得第一名,在没有大批量训练的对象检测任务中获得第二名。它也是在MVD和Cityscapes上state-of-the-art级别的方法。

Introduction

实例分割Instance segmentation是最重要、最具挑战性的任务之一。它的目的是预测类标签和像素化实例掩码来定位图像中呈现的不同数量的实例。这项任务广泛地惠及自动驾驶汽车、机器人、视频监控等等。

在深度卷积神经网络的帮助下,提出了几种分割框架,如[21,33,38],其中性能增长较快的是(VOC) challenge[12]。掩码R-CNN[21]是一种简单有效的实例分割系统。基于Fast/Faster R-CNN[16,51],采用全卷积网络(full tional network, FCN)进行掩码预测,并进行box回归和分类。为了获得较高的性能,利用特征金字塔网络(feature pyramid network, FPN)[35]提取网络内的特征层次结构,通过对具有横向连接的自顶向下路径进行扩展来传播语义上较强的特征。

几个新发布的数据集[37,7,45]为算法改进提供了很大的空间。COCO[37]由200k张图片组成。每幅图像中都有大量具有复杂空间布局的实例。不同的是,Cityscapes[7]和MVD[45]在每个图像中都提供了大量的交通参与者的街景。这些数据集中出现了模糊、严重遮挡和非常小的实例。在

图像分类中提出了一些设计网络的原则,这些原则同样适用于目标识别。例如,通过干净的剩余连接[23,24]和密集连接[26]来缩短信息路径和简化信息传播是有用的。通过按照splittransform-merge策略创建并行路径来增加信息路径的灵活性和多样性[61,6]也是有益的。

Our Findings

我们的研究表明,在最先进的Mask R-CNN中信息传播可以进一步改进。具体来说,低级别的特征有助于大量数据的识别。但从底层结构到最顶层的特征,越来越难以访问准确地定位信息。此外,每个建议都是基于一个特征级别的特征池化网格预测的,每个特征池化网格都是已经被分配的。这个过程可以持续更新,因为在其他级别被丢弃的信息可能有助于最终预测。最后,在单一点上进行了Mask预测,失去了收集更多样化信息的机会。

Our Contributions

受这些原则和观察的启发,我们建议使用PANet,如图1所示用于分割的网络。

首先,缩短信息路径,提高特征金字塔,准确定位信号存在于低水平,创建了自底向上路径增强。事实上,低层的特征被应用于系统中[44 42 13 46 35 5 31 14]。但是,不开发提高实例识别的整个特征层次结构的低层次特征。

第二,在每个建议和所有功能级别之间恢复故障信息路径,我们开发自适应特性池。它是一个简单的组件,从所有特征级别的集合特征到每个建议,避免任意分配的结果。与此操作相比,创建更干净的路径与[4,62]相比。

最后,为了捕捉每个建议的不同视图,我们用小的全连接(fc)层来增加Mask预测,它对FCN最初使用的FCN具有互补的特性。通过对这两种观点的预测,信息多样性增加和质量更好的Masks。前两个组件通过对象检测和实例分割共享,这增强了两个任务的性能。

Experimental Results

在PANet上,我们在几个数据集上实现了国家的艺术表现。带着反射- 50作为初始网络,我们的PANet在两个对象检测[27]和实例分割[33]任务中已经超过了COCO 2016挑战赛的冠军。注意,这些之前的结果是通过较大的模型[23,58]和多尺度和水平翻转测试来实现的。

我们在2003年的“COCO 2017”挑战赛中获得了第一名,在没有大规模培训的情况下,在对象检测任务中获得了第二名。我们还在Cityscapes和MVD上进行了测试,同样的,它也有同样的排名,表明我们的PANet是一个非常实用和顶级的框架。


二、Related Work

Instance Segmentation

实例分割主要有两种方法。最流行的是基于提议,这个方法与对象检测有很强的联系。在R-CNN[17]中,object proposals[60,68]被用来提取特征进行分类。而Fast/Faster R-CNN[16,51]和SPPNet[22]则通过汇集全局feature maps中的特征加速了这一过程。早期的工作[18,19]以MCG[1]的mask proposal为输入提取特征,CFM[9]、MNC[10]、Hayder等[20]将特征池合并到网络中,速度更快。较新的设计是按照proposal[48,49,8]或最终结果[10,34,41]在网络中生成实例掩码。Mask R-CNN[21]是这个方法的一个有效框架。我们的工作是建立在Mask R-CNN的基础上,并从不同的方面进行改进。

其他方法主要是基于分段的。他们学习了特殊设计的转换[3,33,38,59]或实例边界[30]。然后根据预测的转换对实例mask进行解码。其他管道的实例分割也存在。DIN[2]融合了目标检测和语义分割系统的预测。在[66,65]中使用图形模型来推断实例的顺序。[53,50]利用RNN在每个时间步中提出一个实例。

Multi-level Features

采用不同层次的特征进行图像识别。SharpMask [49], Peng et al.[47]和LRR[14]融合特征映射进行分割,获得更精细的细节。FCN[44]、U-Net[54]和Noh等人通过skip连接将下层信息融合。TDM[56]和FPN[35]都通过横向连接增强了自顶向下的路径,用于目标检测。不同于TDM采用分辨率最高的融合feature map进行feature pool, SSD [42], DSSD [13], MS-CNN[5]和FPN[35]分配到合适的feature level进行推理。我们以FPN为基准,对其进行了大量的改进。ION [4], Zagoruyko等[62],Hypernet[31]和Hypercolumn[19]将不同层的特征网格拼接在一起进行预测。而是一系列的操作。为了得到可行的新特征,需要进行归一化、级联和降维。相比之下,我们的设计要简单得多。

[52]中还使用了来自不同来源的特性网格对每个提案进行融合。但该方法首先提取不同尺度输入的特征映射,然后进行特征融合(max运算),提高输入图像金字塔的特征选择。相比之下,我们的方法旨在利用单尺度输入的网络内特征层次结构中所有特征层的信息。启用端到端培训。

Larger Context Region

[15,64,62]的方法将每个proposal的特征与中央凹结构结合起来,利用不同分辨率区域的上下文信息。从较大区域汇集的特征提供了周围的上下文。在PSPNet[67]和ParseNet[43]中使用全局池,大大提高了语义分割的质量。Peng等人在使用全局卷积时也观察到了类似的趋势。我们的mask预测分支还支持访问全局信息。但技术完全不同。


三、Framework

我们的框架如图1所示。为了提高性能,进行了路径增强和聚合。增加了自底向上的路径,使低层信息更容易传播。我们设计了自适应特性池,允许每个proposal访问来自各个级别的信息进行预测。一个补充路径被添加到mask预测分支中。这种新结构带来了良好的性能。与FPN类似,改进独立于CNN结构,如[57,32,23]。

1. Bottom-up Path Augmentation

Motivation

[63]是一个很深刻的观点,神经元在高层强应对整个对象而其他神经元更容易激活当地的纹理和图案表现的必要性增加自上而下的路径传播语义功能和加强与合理的所有功能分类能力强在红外系统。

我们的框架通过传播低级模式的强响应来进一步增强整个特性层次结构的本地化能力,这是因为对边缘或实例部件的高响应是准确本地化实例的强指示器。为此,我们建立了一条从低层到高层的干净的横向连接路径。因此,在这些级别上有一个由少于10个层组成的快捷方式(图1中绿色虚线)。相比之下,FPN中的CNN主干提供了一条很长的路径(图1中虚线),从底层到顶层甚至经过100多个层。

Augmented Bottom-up Structure

我们的框架首先完成自底向上路径扩展。我们按照FPN定义生成具有相同空间大小的特征映射的层处于相同的网络阶段。每个特性级别对应一个阶段。以ResNet[23]为基本结构,采用表示FPN生成的特征级。我们的扩展路径从最底层P2开始,逐渐接近P5,如图1(b)所示。从P2到P5,空间大小随因子2逐渐下采样。我们使用表示fP2对应的新生成的feature map:。注意,N2只是P2,没有任何处理。

如图2所示,每个构建块通过横向连接,采用更高分辨率的feature map Ni和更粗的map Pi+1,生成新的feature map: Ni+1。每个feature map Ni首先通过一个步长为2的3 x 3卷积层来减少空间大小。然后通过横向连接,将feature map Pi+1中的每个元素和向下采样的map相加。融合后的feature map由另外3 x 3卷积层处理,生成Ni+1用于后续的子网络。这是一个迭代过程,在接近P5之后结束。在这些构建块中,我们始终使用256通道的feature map。所有卷积层后面都有一个ReLU[32]。然后,从新的功能图中汇集每个提案的功能网格,即

2. Adaptive Feature Pooling

Motivation

在FPN[35]中,根据proposals的大小将提案分配到不同的feature level。它将小的proposal分配给较低的功能级别,而将大的proposal分配给较高的功能级别。虽然简单有效,但仍然可能产生非最优结果。例如,可以将两个相差10像素的proposal分配到不同的级别。事实上,这两项proposal相当相似。此外,特性的重要性可能与它们所属的级别没有很强的相关性。使用大的接受域生成高级特性,并捕获更丰富的上下文信息。允许小型proposal访问这些特性可以更好地利用有用的上下文信息进行预测。同样的,低层特征具有很多细节和较高的定位精度。让大型提案访问它们显然是有益的。基于这些想法,我们建议对每个proposal的所有层每个池化特征都进行预测。我们称之为adaptive feature pooling.


现在我们用自适应特征池分析不同层次的特征池的比例。我们使用max操作来融合不同层次的特性,让网络选择元素有用的信息。我们将proposal按照最初在FPN中分配的级别分为四个类。对于每一组proposal,我们计算从不同级别选择的特性的比例。在表示法中,级别1-4表示从低到高的级别。如图3所示,蓝色的线表示最初在FPN中分配给级别1的小proposal。令人惊讶的是,近70%的功能来自其他更高级别。我们还使用黄线表示FPN中分配给第4级的大型proposal。同样,50%以上的特征来自其他较低的级别。这一观察清楚地表明,多个层次的特征在一起有助于准确预测。它也是自底向上路径增强设计的有力支撑。

Adaptive Feature Pooling Structure

图1(c)展示了Adaptive feature pooling的简单实现。首先,对于每个proposal,我们将它们映射到不同的特征级别,如图1(b)中深灰色区域所示。在Mask R-CNN[21]之后,ROIAlign用于从每个级别汇集特征网格。然后利用融合操作(基于元素的max或sum)融合不同层次的特征网格。

在后续的子网络中,汇聚的特征网格独立通过一个参数层,然后进行融合特征操作,使网络能够适应特征。例如,FPN中的box分支中有两个fc层。我们在第一层之后应用融合特征操作。由于在mask R-CNN的mask预测分支中使用了4个连续的卷积层,所以我们将融合操作放在了第一个和第二个卷积层之间。Ablation study见4.2节。融合特征将网格作为每个方案的特征网格进行进一步预测,即、分类、盒回归和Mask预测。box分支上的自适应特性池的详细说明如附录中的图6所示。
我们的设计重点是融合来自网络特征层次的信息,而不是来自输入图像金字塔[52]的不同特征映射的信息。与需要L-2 Norm、级联和降维的[4,62,31]过程相比,该方法更简单。

3. Fully-connected Fusion

Motivation

全连通层(MLP)被广泛应用于实例分割中的mask预测[10,41,34]和mask proposal生成[48,49]。[8,33]的结果表明,FCN在预测像素级mask方面也有一定的能力。最近,Mask R-CNN[21]在池特征网格上应用了一个小FCN来预测相应的Mask,从而避免类之间的竞争。

我们注意到fc层与FCN层产生不同的属性,FCN层根据局部接受域给出每个像素的预测,并且在不同的空间位置共享参数。相反,fc层是位置敏感的,因为不同空间位置的预测是通过不同的参数集实现的。所以他们有能力适应不同的空间位置。并利用整个方案的全局信息对各个空间位置进行预测。区分实例[48]和识别属于同一对象的不同部分是有帮助的。考虑到fc层和卷积层的特性不同,我们融合了这两种层的预测,以更好地进行mask预测。

Mask Prediction Structure

我们的掩模预测组件重量轻,易于实现。掩码分支对每个提案的池功能网格进行操作。如图4所示,主路径为一个小FCN,由4个连续卷积层和1个反卷积层组成。每个卷积层由256个3×3过滤器和de convolutional层完样本特性因素2。它独立预测每个类的二进制像素级掩码来解耦分割和分类,类似于Mask R-CNN。我们进一步创建一条从层conv3到fc层的短路径。有2个3x3的卷积层,其中第二个将通道压缩到一半,以减少计算开销。

fc层用于预测与类无关的前台/后台掩码。它不仅效率高,而且允许在fc层中使用更多的样本进行参数训练,具有更好的通用性。我们使用的掩码大小是28x28,因此fc层生成一个784x11向量。这个向量被重新塑造成与FCN预测的掩码相同的空间大小。为了得到最终的掩码预测,我们添加了FCN中的每个类的掩码和fc中的前台/后台预测。使用单一fc层而不是多个fc层进行最终预测,避免了将隐藏的空间feature map压缩成一个短的feature vector,而丢失空间信息的问题。


Experiments

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PANet[详解] 的相关文章

  • 整数乘法运算

    在高级语言中 两个n位整数相乘得到的结果通常也是一个n位整数 即结果只取2n位乘积中的低n位 这导致乘法运算得到结果必须在范围 2n 1 lt x y lt 2n 1才不会溢出 假设为4位 进行52 0101 0101 0101 0101
  • 用Rust生成Ant-Design Table Columns

    经常开发表格 是不是已经被手写Ant Design Table的Columns整烦了 尤其是ToB项目 表格经常动不动就几十列 每次照着后端给的接口文档一个个配置 太头疼了 主要是有时还会粘错就尴尬了 那有没有办法能自动生成columns配
  • ​EcomGPT:指令微调的电商领域大模型

    论文链接 https arxiv org abs 2308 06966 GitHub链接 https github com Alibaba NLP EcomGPT 今天给大家介绍下我们在训练电商领域大模型方面的尝试 希望对研发相关或其他领域
  • RTL8762DK-最小系统板

    目录 概述 一 原理图 二 PCB 三 总结 概述 此 RTL8762DK 最小系统板 已画了有一段时间 思来想去 还是开源了 供大家参考 环境是使用AD绘制 学习RTL8762DK 可以在淘宝购买一块开发板 当然 喜欢折腾的人 自己动手画
  • 解决master主分支与其他分支冲突的问题

    我们在拉取代码的时候 有时候会本地修改一些东西 这就需要解决方法 出现 MERGING 报错后 先手动清除报错的地方 然后操作 git add git commit m ceshi git pull origin master 由于我在本地
  • 搭建Web环境、JSP初识

    理解C S和B S架构及其优缺点 B Browser S Server 网站 优点 不需要更新 服务器端更新 客户端基本不受影响 刷新一下可能就更新了 跨平台 只需要有浏览器 就可以使用 write once run anywhere 缺点
  • 机器学习技法 之 聚合模型(Aggregation Model)

    聚合模型实际上就是将许多模型聚合在一起 从而使其分类性能更佳 aggregation models mix or combine hypotheses for better performance 下面举个例子 你有 T T T 朋友 他们
  • 深入解构objc_msgSend函数的实现

    阅读本文后你将会进一步了解Runtime的实现 享元设计模式的实践 内存数据存储优化 编译内存屏障 多线程无锁读写实现 垃圾回收等相关的技术点 objc class Class对象 结构简介 熟悉OC语言的Runtime 运行时 机制以及对
  • spark应用tips

    1 正常sprkui会在scan和exchange都有数据显示 前者是条数 后者是存储 如果不显示说明这个阶段没有数据 2 stats size 是逻辑上基于读取表存储估算的可能广播的数据大小 data size 是执行期间 根据shuff
  • [linux] shell 输入/输出重定向 、 文件包含

    Shell 输入 输出重定向 大多数 UNIX 系统命令从终端接受输入并将所产生的输出发送回 到终端 一个命令通常从一个叫标准输入的地方读取输入 默认情况下 这恰好是自己的终端 同样 一个命令通常将其输出写入到标准输出 默认情况下 这也是自
  • flask 视频流直播

    flask 视频流直播 本文将介绍如何本地通过浏览器查看远端服务器的摄像头采集到的视频 服务端 实现实时视频流式传输主要采用服务器推送技术 服务器在响应请求时 HTTP使用MIME报文格式来封装数据 通常一个HTTP响应只能包含一个数据块
  • 关于 Error: Cannot find module ‘webpack/lib/RuleSet‘ 的详细解决方法(亲测有效)- 以及删除脚手架的方法

    对于出现的这个错误 之前我也尝试了网上的多种解决方案 最终经过测试后 是通过将原来的 vue cli 版本降级到 4 5 15 版本 最后再重新安装 node modules 包 才得以解决 下面是我将介绍怎么安装 4 5 15 版本的脚手
  • linux svn 用户名存储,Linux下SVN账户密码保存设置

    Linux下用SVN进行更新等操作时 总是提示输入用户名和密码 很不方便 因此搜了下解决办法 总结如下 Linux下用SVN进行更新等操作时 总是提示输入用户名和密码 很不方便 因此搜了下解决办法 总结如下 打开SVN配置文件 vim ho
  • SQL注入(2)——各种注入

    本专栏是笔者的网络安全学习笔记 一面分享 同时作为笔记 前文链接 WAMP DVWA sqli labs 搭建 burpsuite工具抓包及Intruder暴力破解的使用 目录扫描 请求重发 漏洞扫描等工具的使用 网站信息收集及nmap的下
  • 亲密关系沟通-【独特性】尊重与探索他人

    忽视自己是逃避 忽视对方也是逃避 故事 理发师抱怨老婆不换空调 你有没有问过她 为什么不愿意换 谁知道她怎么想的 你承认对方的独特性 就不用做任何改变 叙述测试 你讲述经历里的别人有ta的想法吗 如何把对方从一个活生生的人变成ta就是那样的
  • HTTPS为什么安全 &分析 HTTPS 连接建立全过程

    本文将分两个专题去理解HTTPS 专题一 HTTPS为什么安全 1 http为什么不安全 http协议属于明文传输协议 交互过程以及数据传输都没有进行加密 通信双方也没有进行任何认证 通信过程非常容易遭遇劫持 监听 篡改 严重情况下 会造成
  • WSL无法保存文件(权限不足)

    sudo chown R username 其中username是你的用户名
  • windows vscode 安装+配置go环境

    一下载 go语言官方下载地址 https golang org dl 找到适合你系统的版本下载 本人下载的是windows版本 也可以下载Source自己更深层次研究go语言 二安装 一路next 三 安装后目录 Go语言安装之后 C Go

随机推荐

  • WebApi 打个Attribute 统一处理异常

    我们处理异常的时候通常都要写形如以下的代码 try xxxxx catch Exception ex log write ex Message 前一段时间看杨中科的视频 其中吐糟了 mvc 的管道机制 当然用在web ui 的渲染上这个还不
  • Buck电路基础知识

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net weixin 42005993 article details 120144144 这
  • Windows下libmodbus库的编译和使用

    一 前言 最近要搞一个PC端Qt上位机控制机械手的移动 需要用到串口io卡 控制的话需要使用libmodbus库 就想着自己编译一下libmodbus库 过程如下 二 编译过程 2 1 libmodbus的下载和安装 下载地址 https
  • pytorch7-可视化训练过程(过程中显示)

    import torch import torch nn as nn import torchvision import torchvision utils as vutils from torch optim import SGD imp
  • 安全连载——CSDN区块链大本营出品

    史上杀伤力最大的溢出型漏洞到底是什么 看这一篇就够了 第1期 4月发生的BEC事件以及SMT事件已经沉淀一段时间了 具体的情况也被多方媒体所报道 相关的漏洞根源问题也有很多大神团队的分析和指正 近日 有安全团队将各种已经发生或可能发生的类似
  • Marshaller和Unmarshaller用法示例

    import java io FileNotFoundException import java io FileOutputStream import java io OutputStream import javax xml bind J
  • Qt之QDialog禁用右上角关闭按钮

    setWindowFlags windowFlags Qt WindowCloseButtonHint
  • 【深度学习】笔记12:win10下的VS2013编辑代码的时候,非常卡顿,怎么样解决?

    给新电脑连续配置了三天环境 双系统下的caffe和NVIDIA环境配置好之后 终于可以看代码了 结果在vs2013下对代码进行注释的时候 代码编辑器用起来非常卡顿 这个问题的解决方法如下所示 1 首先确定是不是硬件和系统的问题 据说win8
  • 2.4.1 C# 和 F# 中的类型推断

    2 4 1 C 和 F 中的类型推断 大多数的类型有简称 例如 int 或 Random 只有很少一部分需要类型推断 因为手写类型名称并不困难 C 2 0 支持泛型 因此 可以构造更复杂的类型 在函数语言中的类型 像 F 是相当复杂的 尤其
  • R语言legend函数参数详解

    legend x y NULL legend fill NULL col par col border black lty lwd pch angle 45 density NULL bty o bg par bg box lwd par
  • Scala学习系列(二)——环境安装配置

    Scala下载地址 https www scala lang org download 一 安装JDK 首先 因为Scala是运行在JVM平台上的 所以安装Scala之前要安装JDK 二 二进制安装方式 我们可以直接用二进制安装Scala
  • 合并BPL包图文教程

    Delphi IDE 本身就是一个插件模式的工具 插件的好处不用多说 运行包的BPL 其实就是众多单元的集合 因此可以再次重新组合 只要你将各个BPL包用到的单元再组合一次 本文以 http code google com p tangra
  • libuv源码分析(1)事件循环分析

    前言 libuv总是报出一些让人难以理解的错误 作为一个C的项目 不具有Java JavaScript php那样的人气 很难百度到一些问题的答案 甚至google也不行 为了用好libuv 也为了学习吧 我开始看libuv的源码 不知道自
  • 【正点原子STM32连载】 第三十一章 睡眠模式实验 摘自【正点原子】APM32F407最小系统板使用指南

    1 实验平台 正点原子stm32f103战舰开发板V4 2 平台购买地址 https detail tmall com item htm id 609294757420 3 全套实验源码 手册 视频下载地址 http www openedv
  • 《机器学习》周志华(西瓜书)学习笔记 第二章 模型评估与选择

    机器学习 周志华 学习笔记 总目录 世上只有一种投资是只赚不赔的 那就是学习 当你的的能力还驾驭不了你的目标时 就应该沉下心来历练 当你的才华撑不起你的野心时 就应该静下心来学习 第二章 模型评估与选择 2 1 经验误差与过拟合 错误率 E
  • 11 【标准库之JSON对象 JSON5】

    13 JSON 对象 13 1 JSON 格式 JSON 格式 JavaScript Object Notation 的缩写 是一种用于数据交换的文本格式 2001年由 Douglas Crockford 提出 目的是取代繁琐笨重的 XML
  • 递归视角下

    def listSum numbers if not numbers return 0 else f rest numbers return f listSum rest myList 1 2 3 4 None total listSum
  • 在存储过程中IN传入参数无效的解决方法

    列 SELECT count COUNT sysid FROM Student WHERE Id IN Sysids 想要得到count 但是在in的时候 传入的参数无效 得到的结果只能为0 这时候可以将其转化成一条变量语句 然后去执行这条
  • websocket即时通讯

    目录 一 websocket简介 二 背景 三 优点 1 控制开销 2 实时性更强 3 保持连接状态 4 更好的二进制支持 5 支持扩展和更好的实现压缩效果 四 原理 1 客户端 服务器建立TCP连接 三次握手 2 TCP连接成功后 客户端
  • PANet[详解]

    一 Abstract摘要 Introduction介绍 Abstract 信息在神经网络中的传播方式非常重要 本文提出了一种基于提议的实例分割框架下的路径聚合网络Path Aggregation Network PANet 旨在促进信息的流