论文笔记:ASLFeat: Learning Local Features of Accurate Shape and Localization
本文是基于 D2-Net 的进一步改进,主要创新点如下:
1)使用 Deformable Convolution 来进行稠密的变换估计和特征提取
2)使用特征金字塔适应空间分辨率以及使用 low-level 细节来进行精确的特征点定位
1 Methods
1.1 Prerequisites
本文的网络设计基于以下两个工作:DCN 和 D2-Net,首先回顾这两个工作的主要思想:
Deformable convolutional networks (DCN)可变形卷积 (Deformable Convolutional Networks, DCN) 的目的主要是学习动态感受野,对于传统卷积来说,其公式为:
其中 代表卷积的中心点坐标, 代表卷积 范围内的偏移量,...
CVPR 2021 Image Matching 挑战赛双冠算法回顾
借之前我们给公司提供的文章,总结一下前一段时间参赛的一些实验和思考。本文版权所有:旷视科技。原文链接:https://www.zhihu.com/question/32066833/answer/2041516754
Image Matching (图像匹配)是计算机视觉领域最基础的技术之一,它是指通过稀疏或者稠密特征匹配的方式,将两幅图像相同位置的局部信息进行关联。Image Matching 在很多领域均有广泛应用,比如机器人、无人车、AR/VR、图像/商品检索、指纹识别等等。
在今年刚刚结束的 CVPR 2021 Image Matching 比赛中,旷视 3D 组获得两冠一亚的成绩,本文介绍了他们的比赛方案、实验和一些思考。比赛介绍
图像匹配是指将两幅图像具有相同或者相似属性的内容或结构进行像素上的识别与对齐。一般而言,待匹配的图像通常取自相同或相似的场景或目标,或者具有相同形状或语义信息的其他类型的图像对,从而具有一定的可匹配性。
Image Matching Challenge本次 Image Matching Challenge(IMC) 比赛还是分为两个赛道 unlimited keypoints 和 restricted keypoints,即每张图片可提取特征点数量分别小于 8k 和...
论文笔记:Linear Attention Mechanism: An Efficient Attention for Semantic Segmentation
由于经典的 Dot product Attention 具有较大的空间和时间复杂度,虽然效果很好,但由于图像和视频输入的数据量经常比文字大很多,这种经典的 Attention 限制了在高分辨率图像中的应用。本文提出了一种线性的 Attention 模块,希望能够解决这样的问题同时在性能上不会有明显的损耗。
本文主要贡献点有:
1)提出了一种新的线性化 Attention 方式,能够将计算复杂度从 降低到
2)该 Attention 机制使得 Attention 与网络的结合更加通用和灵活;
3)在语义分割任务中,该 Attention 机制的引入在多种 baseline 上获得了性能提升。
1 METHODOLOGY
A. Definition of Dot-Product Attention
给定一个输入的特征向量 ,其中 代表特征长度, 代表特征维度。那么 Dot-Product Attention...
Policy Gradient (策略梯度)
Policy Gradient (策略梯度) 是强化学习中的基础概念之一,在很多工作中都会使用(特别是对于可微化的工作)。本文内容主要来自于台大李宏毅的教学课件。
下载地址:1636956663-PPO (v3)
1 Policy of Actor
1.1 基本概念
强化学习是根据环境观测、自身动作以及反馈来学习网络的一种方式。它通常有以下一些概念:Policy 用 表示,它是一个深度神经网络,网络的参数为
Actor 用 表示,它是我们可以控制的动作。比如对于上面的游戏例子来说,我们每一步可以选择 left right fire 三种动作。它就是 Policy Gradient 学习的对象
Environment 表示环境,这是我们无法改变的。我们仅能对其进行观测 Observation
Reward 用 表示,它是我们采用动作后从环境获得结果。比如对于上面的游戏的例子来说就是当前获得的分数。
State 用 表示,它是我们当前所处的状态
Trajectory 用 表示...
论文笔记:RAFT: Recurrent All-Pairs Field Transforms for Optical Flow
本文介绍了一种叫做 Recurrent All-Pairs Field Transforms (RAFT) 的光流网络,在数据集中取得了 SOTA 的结果。主要亮点如下:
(1)State-of-the-art accuracy:本文在 KITTI 相对现有最好结果取得了 16% 的误差下降,达到 5.10%(F1)。在 Sintel 上取得了 30% 的误差下降(像素误差)。是目前最好的结果。
(2)Strong generalization:仅在仿真数据集训练时,RAFT 相比同样在仿真数据集训练的最好的网络结果有 40% 的误差下降。
(3)High efficiency: RAFT 在 1088×436...
论文笔记:Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics
Multi-Task Learning (MTL) 问题一个典型方法就是把所有的 Loss 放在一起优化,但是往往又需要设置不同权重。传统方法中往往根据不同 Loss 的量级等人为分析、实验等设置合理的权重,但是取得理想效果往往需要大量工作。本文提出了一种使用 Uncertainty 自动学习权重的方式。
如下图展示了一个典型的 Multi-Task Learning 的场景,同时学习 Semantic、Instance 和 Depth,这一场景包含了分类、特征学习、回归任务,比较典型,也是本文的示例:本文主要创新点如下:
1)一种创新的原则,利用同方差不确定性的多任务学习方法
2)一个统一的用于学习 semantic segmentation, instance segmentation 和 depth regression 的框架
3)展示了通过学习方法获得权重的有效性
1 Multi Task...
PyTorch Lighting 常见问题整理
0 系统版本
PyTorch Lighting 1.1.7
1 错误:object has no attribute '_metrics_to_agg'
当使用自定义的 Logger 时,如果出现上面的错误,一个很可能的原因是在自定义的 __init__ 函数中忘记调用 super().__init__(),正确的自定义初始化函数用法如下:
Python
class MyLogger(LightningLoggerBase):def __init__(self, a):
...
每次训练自动备份源码的脚本
我们运行深度学习任务时,常常要改改代码就跑个实验,同时跑很多个,时间久了可能会忘记 TensorBoard 上相应的训练任务都改了什么。
这种情况下,记录下每次运行任务时的源码状态就变得非常有必要。这里有很多方法,比如用git保存相应版本之类的。由于通常情况下深度学习的代码文件都非常少(可能也就几十kb),我这里给出一个最简单粗暴的方法:每次将特定扩展名的文件自动备份到另一个目录。
1 脚本源码
直接给出脚本源码,我这里保存其为 train.sh
Shell
#!/bin/bashcurrentdir=${PWD##*/}echo "["${currentdir}"] command line is : " "$*"echo '********************************'
echo 'Begin backup source codes'# backup all necessary files
# "%Y-%m-%d-%H-%M-%S"
time=$(date "+%Y-%m-%d-%H-%M-%S")# echo ${time}destpath='../'${currentdir}'_backups/'${time}'/'echo...
PyTorch 常见问题整理
最近刚刚开始从 Keras 换成 PyTorch,在使用过程中可能会遇到一些常见的问题,做一些整理。
1 Loss 为 NaN
可以在 python 文件头部使用如下函数打开 nan 检查:
Python
torch.autograd.set_detect_anomaly(True)
1
torch.autograd.set_detect_anomaly(True)如果遇到了 nan 的 Tensor,它会抛出异常。幸运的话它会告诉你 nan 产生的位置。比如说我遇到过:
PowerShell
RuntimeError: Function 'SmoothL1LossBackward' returned nan values in its 0th output.
1
RuntimeError:...
几何深度学习(Geometry Deep Learning)相关工作汇总
深度学习喜欢 End-to-End 解决问题,中间过程有比较多的黑盒,在很多很难完整描述出数学模型的识别类任务中表现尤为出色。但是在传统的几何里面,很多工作是有比较好的数学基础的(比如摄影几何、李群与李代数、BA等等),如果抛弃这些理论全盘黑盒方式解决,有时未必有很好的效果。
因此对于 Geometry Deep Learning (几何深度学习)方向来说,如果深度学习的方式能够改进传统的几何方法的某些环节,或者利用深度学习强大的特征学习能力再与几何方式结合,或许会是一个可行的方向。
最近几年这类的工作非常之多,各大顶会也都有类似的专题,这篇博客旨在收集一些相关的内容作为备忘(个人没有太多精力收集,欢迎大家留言推荐相关文章)。
1 相关论文
1.1 传统几何算法的改进
传统几何算法使用深度学习改进其中一个方向就是所谓 ”可微分“ (Differentiable),例如 ICP、RANSAC、Bundle Adjustment 等等算法有很多所谓 ”硬决策“ 部分(Hard Decision)。这方面很多大牛做了不少工作例如 Eric Brachmann 的 DSAC 系列等等。
下面是一些收集的相关论文:
2 相关代码
2.1 3D Deep...