Large Kernel Matters

本文介绍了一种新的语义分割方法——全局卷积网络(GCN),该方法通过使用大卷积核增强分类能力并引入边界细化模块提高物体边界的定位准确性,从而同时改进分类和定位性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Large Kernel Matters

论文信息

论文地址:Large Kernel Matters ——Improve Semantic Segmentation by Global Convolutional Network

发表日期:8 Mar 2017

创新点

提出全局卷积网络(Global Convolutional Network,GCN),用以同时提高语义分割中分类和定位的准确度。
提出Boundary Refinement block(BR), 用以提高物体边界的定位。
思想

在语义分割中,有两个任务,一个是对像素进行分类,一个是对像素进行定位。这两个任务通常是矛盾的:对于分类任务而言,模型需要对各种变换(比如旋转和平移)具有不变形,但是对于定位任务而言,模型又必须对各种变换保持敏感,因为每个像素都需要在正确的位置上进行分类。

现在很多语义分割方法的主要目标是为了定位,比如下图B所示,这可能会降低分类性能。因此本文提出了GCN来解决以上的矛盾,同时改善分类和定位的性能,如下图C。
在这里插入图片描述

基于以上的讨论,本文提出了模型的设计思路:

从定位角度出发,模型使用FCN来保持位置信息,不使用全连接层或者global pooling,因为这些操作会丧失定位信息。
从分类角度出发,网络应该使用大卷积核,这样能够使分类器具备更强的分类能力来应对各种变换。
使用Boundary Refinement block来进行边界对齐,该模块使用残差结构。
模型

1.GCN

作者发现,目前state-of-the-art的语义分割方法的设计都是为了更好地进行定位,这在某种程度上可能会降低分类的效果。而分类效果变差可能由于感受野造成的。作者举了个例子,如下图所示,当分类器有效感受野(注意这里的有效感受野不同于感受野。有效感受野的概念来自于论文:Object detectors emerge in deep scene cnns ,这篇论文中称,尽管GoogleNet和ResNet等深度网络的感受野通常都大于原图,但网络只能在感受野的一个很小区域获得有效信息,称为有效感受野)足以覆盖整个物体的时候,这时候分类器可能可以正确地分类,但是当图像的尺度变大的时候,这个时候有效感受野就会覆盖不了整个物体,这对分类是非常不利的。
在这里插入图片描述

基于此,作者提出,网络设计要使用FCN,不能使用fully-connected layer或者global pooling,否则丧失位置。另外,卷积的kernel size越大越好。但是越大的卷积核,计算量也越大,所以作者提出使用1xk+kx1和kx1+1xk的卷积组合,这相当于连接了feature map的kxk大小的区域。另外值得注意的是,这里的卷积之后并没有使用非线性激活函数。

2.整体框架

整体框架如下图所示:
在这里插入图片描述
从图中可以看到几点:

基础网络使用了ResNet作为特征提取,使用FCN作为语义分割的框架。
使用了ResNet中不同stage的feature map,因此是多尺度架构。
GCN模块则用于产生低分辨率的的score map,并上采样与更高分辨率的score map加和产生新的score map。
经过最后的上采样,就输出了预测结果。
另外,需要注意的是,在整个网络中还加入了很多Boundary Refinement ,这种结构如下图:

可见这是一种残差连接结构。顶部的wxhx21是一种粗粒度的score map,侧边的残差连接可以对boundary进行refine。两者加和就可以达到Boundary Refinement。

实验

作者进行了很多实验,这里只列出PASCAL VOC 2012的一些可视化结果,更多实验结果请参看原文。
在这里插入图片描述

### 鸿蒙开发 Day Matters 使用指南 #### 日历事项管理功能概述 在鸿蒙操作系统中,`Day Matters` 是指日历应用中的每日重要事件提醒和安排功能[^1]。该特性允许开发者通过 API 接口实现对特定日期的日程创建、查询以及删除操作。 #### 创建日程项接口说明 为了向用户的设备添加新的日程条目,可以调用 `CalendarProvider.insert()` 方法来完成这一过程: ```java ContentValues values = new ContentValues(); values.put(CalendarContract.Events.CALENDAR_ID, calendarId); values.put(CalendarContract.Events.TITLE, title); values.put(CalendarContract.Events.DESCRIPTION, description); values.put(CalendarContract.Events.DTSTART, startTimeInMillis); values.put(CalendarContract.Events.DTEND, endTimeInMillis); Uri uri = getContentResolver().insert(CalendarContract.Events.CONTENT_URI, values); long eventId = ContentUris.parseId(uri); ``` 上述代码片段展示了如何利用 `ContentValues` 对象设置新事件的各项属性,并最终将其插入到系统的日历数据库中。 #### 查询现有日程列表 对于获取已有的日程记录,则可通过执行如下 SQL 查询语句获得符合条件的结果集: ```sql SELECT * FROM Events WHERE DTSTART >= ? AND DTEND <= ? ``` 此命令会返回所有起始时间大于等于给定参数且结束时间小于等于另一个指定参数之间的活动详情。 #### 删除过期或不再需要的日程项目 当某些计划已经过去或者用户决定取消某个预约时,应当及时清理这些数据以保持系统整洁高效运行。这可以通过简单的 DELETE 命令配合适当的选择条件轻松达成目的: ```sql DELETE FROM Events WHERE _ID IN (SELECT _ID FROM Events WHERE DTEND < CURRENT_TIMESTAMP) ``` 这段SQL脚本将会移除所有截止日期早于当前时刻的历史遗留问题,从而释放存储空间并提高性能表现。 #### 用户界面设计建议 考虑到用户体验,在展示 `Day Matters` 的时候应该采用直观易懂的方式呈现信息。比如使用卡片式的布局结构,每张卡片代表一天内的一项事务;还可以加入颜色编码机制区分不同类型的任务优先级等视觉提示手段增强可读性和吸引力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值