PANet有什么作用
PANet有什么作用
本篇内容主要讲解“PANet有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PANet有什么作用”吧!
非常简单高效的特征金字塔模块。
是最重要的计算机视觉过程之一,它将图像分割成更小的、多个片段,这样的话,目标的表示和进一步的分析就变得简单。这个过程有各种各样的应用,从在医学图像定位肿瘤和发展机器视觉中的生物测量识别的目标检测。图像分割过程主要分为两个部分:Semantic segmentation和Instance segmentation。
语义分割是指将图像中的像素分类为有意义的目标类别,如天空、道路或公共汽车。
实例分割包括以像素级识别、分类和定位图像中出现的各种实例(对象),并要求保留图像中出现的最精细的特征。它是目标检测过程中最复杂的任务之一。过去,Mask R-CNN是最常用的实例分割技术。单阶段目标测器技术YOLO3使用了特征金字塔。在YOLO的最近的一个版本YOLOv4中,使用了一种新的方法来分割实例,称为Path Aggregation Network或PANet或简称为PAN。让我们更详细地了解一下这项技术。
PANet:
PANet位在于YOLOv4模型的neck,主要通过保留空间信息来增强实例分割过程。
PANet的性质
YOLOv4中选择PANet进行实例分割的原因是它能够准确地保存空间信息,有助于正确定位像素点,形成mask。
使PANet如此准确的特性有:
1. 从底到上的路径增强
当图像经过神经网络的各个层时,特征的复杂度增加,同时图像的空间分辨率降低。因此,像素级mask无法通过高层次的特征准确的识别。
YOLOv3中使用的FPN使用自顶向下的路径来提取语义丰富的特征并将其与精确的定位信息结合起来。但对于为大目标生成mask,这种方法可能会导致路径过于冗长,因为空间信息可能需要传播到数百个层。
另一方面,PANet使用另一条自底向上的路径,而FPN采用的自顶向下的路径。通过使用从底层到顶层的横向连接,这有助于缩短路径。这就是所谓的**“shortcut”**连接,它只有大约10层。
2. 自适应特征池化
以前使用的技术,如Mask-RCNN使用单一阶段的特征来做mask预测。如果感兴趣区域较大,则使用ROI Align Pooling从较高层次提取特征。虽然相当准确,但这仍然可能导致不希望的结果,因为有时两个proposals只有10像素的差异,但是分配到了两个不同的层,而实际上它们是非常相似的proposals。
为了避免这种情况,PANet使用来自所有层的特征,并让网络决定哪些是有用的。对每个特征图进行ROI对齐操作,提取目标的特征。接下来是元素级的最大融合操作,以使网络适配新的特征。
3. 全连接融合
在Mask-RCNN中,使用FCN来代替全连接层,因为它保留了空间信息,减少了网络中的参数数量。然而,由于所有空间位置的参数都是共享的,模型实际上并没有学会如何使用像素位置来进行预测,默认情况下,它会在图像的顶部显示天空,在底部显示道路。
另一方面,全连接层是位置敏感的,可以适应不同的空间位置。
PANet使用来自这两层的信息来提供更准确的mask预测。
为YOLOv4做的修改
PANet通常使用自适应特征池化将相邻的层相加到一起进行mask预测。但是,在YOLOv4中使用PANet时,这种方法做了点修改,例如,不是相加相邻的层,而是对它们应用一个拼接操作,以提高预测的准确性。
性能分析
使用ResNet-50骨干,使用多尺度图像进行训练,PANet超过了Mask-RCNN和2016年冠军,并且在2017年COCO实例分割挑战中也获得了冠军,在不需要大batch训练的目标检测任务中排名第二。
在Cityscapes数据集上,它的表现也一直优于Mask-RCNN。经过COCO的预训练,该模型能够比Mask-RCNN高出4.4个百分点。
YOLOv4采用了PANet,由于其简单的实现和高性能,提高了预测的准确性,速度是EfficientDet的两倍。
从APs来看,YOLOv4取得AP值为43.5% (65.7% AP₅₀)在MS COCO数据集上,并在Tesla V100上实现了~ 65帧/秒的实时的速度,使其成为最快和最准确的检测器。由于包含了PANet而不是YOLOv3中使用的FPN,YOLOv4的性能提高了10-12% !
到此,相信大家对“PANet有什么作用”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
推荐阅读
-
4个理由告诉你Java为何排行第一
本文由码农网 –单劼原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!Java已经有20年的历史了,甚...
-
写给精明Java开发者的测试技巧
我们都会为我们的代码编写测试,不是吗?毫无疑问,我知道这个问题的答案可能会从“当然,但你知道怎样才能避免写测试吗?”到“必须...
-
Java 微服务框架 Redkale 入门介绍
Redkale功能Redkale虽然只有1.xM大小,但是麻雀虽小五脏俱全。既可作为服务器使用,也可当工具包使用。作为独立的工...
-
Java内存管理原理及内存区域详解
一、概述Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁...
-
2015年Java开发岗位面试题归类
下面是我自己收集整理的Java岗位今天面经遇到的面试题,可以用它来好好准备面试。一、Java基础1.String...
-
Java 虚拟机类加载机制和字节码执行引擎
引言我们知道java代码编译后生成的是字节码,那虚拟机是如何加载这些class字节码文件的呢?加载之后又是如何进行方法调用的呢?...
-
Java常量池理解与总结
一.相关概念什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态...
-
Java 实现线程死锁
概述春节的时候去面试了一家公司,笔试题里面有一道是使用简单的代码实现线程的‘死锁’,当时没有想到这道题考的是Sync...
-
Java:过去、未来的互联网编程之王
Java对你而言是什么?一门你大学里学过的语言?一个IT行业的通用语言?你相信Java已经为下一次互联网爆炸做好了准备么?Java...
-
20个高级Java面试题汇总
本文由码农网 –小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!这是一个高级Java面试系列题中...
