当前位置:网站首页>PSPNet | 语义分割及场景分析
PSPNet | 语义分割及场景分析
2022-07-05 15:44:00 【小白学视觉】
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
本次, 由香港中文大学(CUHK)和商汤科技(SenseTime)提出的金字塔场景解析网络(Pyramid Scene Parsing Network, PSPNet)已经过审阅。
语义分割的目标仅仅是获知已知对象的每个像素的类别标签。
场景解析是基于语义分割的,它的目标是获知图像内所有像素的类别标签。
场景解析
通过使用金字塔池化模块(Pyramid Pooling Module),在整合基于不同区域的上下文后,PSPNet在效果上超过了FCN、DeepLab和DilatedNet等时下最佳的方法。PSPNet最终:
获得2016年ImageNet场景解析挑战的冠军
在PASCAL VOC 2012和Cityscapes数据集上取得当时的最佳效果
工作已发表于2017年CVPR,被引量超过600次。(SH Tsang @ Medium )
本文提纲
1. 对全局信息的需要
2.金字塔池化模块
3. 一些细节
4. 模型简化研究
5. 与时下最佳方法的比较
1. 对全局信息的需要
(c) 原有的未经上下文整合的FCN,(d) 经上下文整合的PSPNet
关系错误匹配:FCN基于外观将黄色框内的船预测为“汽车”。但根据常识,汽车很少会出现在河面上。
类别混淆:FCN将框内的对象一部分预测为“摩天楼”,一部分预测为“建筑物”。这些结果应当被排除,这样对象整体就会被分在“摩天楼”或“建筑物”其中一类中,而不会分属于两类。
细小对象的类别:枕头与床单的外观相似。忽略全局场景类别可能对导致解析“枕头”一类失败。
因此,我们需要图像的一些全局特征。
2.金字塔池化模块
特征提取后的金字塔池模块(颜色在本图中很重要!)
(a)和(b)
(a)为我们的一个输入图像。(b)采用扩展网络策略(DeepLab / DilatedNet)提取特征。在DeepLab后面加上扩张卷积。特征map的大小是这里输入图像的1/8。
(C).1
在(c)处,对每个特征map执行子区域平均池化。
红色:这是在每个特征map上执行全局平均池的最粗略层次,用于生成单个bin输出。
橙色:这是第二层,将特征map划分为2×2个子区域,然后对每个子区域进行平均池化。
蓝色:这是第三层,将特征 map划分为3×3个子区域,然后对每个子区域进行平均池化。
绿色:这是将特征map划分为6×6个子区域的最细层次,然后对每个子区域执行池化。
(c).2. 1×1 卷积用于降维
然后对每个得到的特征map进行1×1卷积,如果金字塔的层次大小为N,则将上下文表示减少到原始的1/N(黑色)。
在本例中,N=4,因为总共有4个级别(红色、橙色、蓝色和绿色)。
如果输入特征map的数量为2048,则输出特征map为(1/4)×2048 = 512,即输出特征map的数量为512。
(c).3. 双线性插值用于上采样
采用双线性插值对每个低维特征map进行上采样,使其具有与原始特征map相同的大小(黑色)。
(c).4. 连接上下文聚合特征
所有不同级别的上采样特征map都与原始特征map(黑色)连接在一起。这些特征映射融合为全局先验。这就是金字塔池模块(c)的终止。
(d)
最后,通过卷积层生成最终预测的分割图(d)。
子区域平均池的概念实际上与SPPNet中的空间金字塔池化非常相似。先采用1×1卷积然后串联,与Xception或MobileNetV1使用的深度可分离卷积中的深度卷积非常相似,除了只是使用双线性插值使所有特征map的大小相等。
3.一些训练细节
中间的辅助损失项
· 辅助损失项用于训练过程中。辅助损失项有0.4的权重,以用来平衡最终损失和辅助损失。在测试时,则会放弃辅助损失。这是一种针对深度网络训练的深度监督训练策略。这个想法类似于GoogLeNet / Inception-v1中的辅助分类器(https://medium.com/coinmonks/paper-review-of-googlenet-inception-v1-winner-of-ilsvlc-2014-image-classification-c2b3565a64e7)。
· “多元”学习代替了“单元”学习。
4. 模型简化测试
ADE2K 数据集是ImageNet场景解析挑战赛2016中的数据集。它是一个更具挑战性的数据集,包含多达150个类和1,038个图像级标签。有20K/2K/3K图像用于训练/验证/测试。
验证集用于模型简化测试。
4.1. 最大值池化vs 平均池化,以及降维(DR)
不同算法在ADE2K验证集上的结果
ResNet50-Baseline: 基于ResNet50的扩张FCN。
‘B1’和‘B1236’: bin大小分别为{1×1}和{1×1,2×2,3×3,6×6}的池化特征map。
‘MAX’和‘AVE’: 最大池操作和平均池操作
‘DR’: 降维.
平均池始终有更好的结果。使用降维比不使用降维要好。
4.2 辅助损失
辅助损失项的不同权重在ADE2K验证集上的结果
α= 0.4得到最好的性能。因此,使用权重α= 0.4。
4.3. 不同网络层数和不同尺度(MS)的测试
不同层数以及不同尺度的网络在ADE2K验证集上的结果
如我们知道的一样,更深的模型有更好的结果。多尺度测试有助于提高测试结果。
4.4. 数据增强 (DA)以及与其他算法的对比
在ADE2K验证集上与最新的方法的比较结果(除最后一行外,所有方法都是单尺度的)。
ResNet269+DA+AL+PSP: 对于单一尺度的测试,所有的技巧结合在一起的话,这种算法比最先进的方法有很大的优势。
ResNet269+DA+AL+PSP+MS: 同时进行了多尺度测试,取得了较好的效果。
下面是一些例子:
ADE2K中的样例
5. 与最先进方法的比较
5.1. ADE2K - ImageNet场景解析挑战赛2016
ADE2K测试集结果
PSPNet赢得了2016年ImageNet场景解析挑战赛冠军。
5.2. PASCAL VOC 2012
在使用数据增强的情况下,有10582/1449/1456张图像用于训练/验证/测试。
PASCAL VOC 2012测试集结果
“+”表示模型经过MS COCO数据预训练。
同样,PSPNet优于所有最先进的方法,如FCN、DeconvNet、DeepLab和Dilation8。
下面是一些例子:
PASCAL VOC 2012样例
5.3. Cityscapes
这个数据集包含了来自50个不同季节的城市的5000张高质量的像素级精细注释图像。分别有2975/500/1525张图像用于训练/验证/测试。它定义了包含材料和物品的19个类别。此外,我们亦为两种设定提供了20000张粗略注释的图像作比较,即,只使用精细数据以及同时使用精细和粗略标注数据进行训练。两者的训练都用“++”标记。
Cityscapes测试集结果
采用精细标注数据训练,或采用精细数据与粗略标注数据同时训练,PSPNet都取得了较好的效果。
下面是一些例子:
Cityscapes样例
作者还上传了Cityscapes数据集的视频,令人印象非常深刻:
另外两个视频例子:
https://www.youtube.com/watch?v=gdAVqJn_J2M
https://www.youtube.com/watch?v=HYghTzmbv6Q
采用金字塔池化模块,获得了图像的全局信息,提升了结果。
好消息!
小白学视觉知识星球
开始面向外开放啦
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
边栏推荐
- Query the latest record in SQL
- 《MongoDB入门教程》第04篇 MongoDB客户端
- Research and development efficiency measurement index composition and efficiency measurement methodology
- ES6 deep - ES6 class class
- 事务回滚异常
- 后台系统发送验证码功能
- Transaction rollback exception
- 21.[STM32]I2C协议弄不懂,深挖时序图带你编写底层驱动
- Noi / 1.4 07: collect bottle caps to win awards
- vant popup+其他组件的组合使用,及避坑指南
猜你喜欢
抽象类和接口的区别
19.[STM32]HC_ SR04 ultrasonic ranging_ Timer mode (OLED display)
Data communication foundation OSPF Foundation
Li Kou today's question -729 My schedule I
Pits encountered in the use of boolean type in development
新春限定丨“牛年忘烦”礼包等你来领~
The OBD deployment mode of oceanbase Community Edition is installed locally
Clock switching with multiple relationship
list去重并统计个数
SQL injection sqllabs (basic challenges) 1-10
随机推荐
Replknet: it's not that large convolution is bad, but that convolution is not large enough. 31x31 convolution. Let's have a look at | CVPR 2022
obj解析为集合
APICloud云调试解决方案
vant tabbar遮挡内容的解决方式
践行自主可控3.0,真正开创中国人自己的开源事业
21.[STM32]I2C协议弄不懂,深挖时序图带你编写底层驱动
Record the pits encountered in the raspberry pie construction environment...
ES6深入—ES6 Generator 函数
Which keywords will conflict with the abstract keyword
抽象类中子类与父类
Mongodb getting started Tutorial Part 04 mongodb client
The visual experience has been comprehensively upgraded, and Howell group and Intel Evo 3.0 have jointly accelerated the reform of the PC industry
Intel 13th generation Raptor Lake processor information exposure: more cores, larger cache
10分钟帮你搞定Zabbix监控平台告警推送到钉钉群
Use of RLOCK lock
Research and development efficiency measurement index composition and efficiency measurement methodology
Cartoon: what is service fusing?
Cartoon: what is distributed transaction?
The computer is busy, and the update is a little slow
Boost the development of digital economy and consolidate the base of digital talents - the digital talent competition was successfully held in Kunming