文献阅读-GNC----IEEE Robotics and Automation Letters (RA-L), 2020.

稳健空间感知的渐进非凸性:从非最小解算器到全局离群剔除

(Graduated Non-Convexity for Robust Spatial Perception:From Non-Minimal Solvers to Global Outlier Rejection-------IEEE Robotics and Automation Letters (RA-L), 2020.)

0 问题的引出

问题1

在outlier-free情况下,可以用最小二乘求解x。
x: 待求量;
yi:第i次测量值 ;
r(yi,x): 残差函数
在这里插入图片描述

问题2

存在outlier时,上图中式(1)失效,产生(1)的变形式:
(2)也称为Robust estimation
在这里插入图片描述
即通过将最小二乘问题(1)中的二次代价替换为稳健代价ρ(·)来恢复稳健性。

I 摘要

Semidefinite Programming (SDP) and Sums-of-Squares (SOS) 产生最优 non-minimal solvers。

但是,大多数non-minimal solver使用了最小二乘公式,对outlier很敏感。

虽然针对异常值恢复鲁棒性的标准方法是使用鲁棒代价函数,但后者通常会引入其他非凸性,从而阻止使用现有的non-minimal solvers。

在本文中,我们通过提供一种鲁棒全局估计的通用方法,使非最小求解器和鲁棒估计能够同时使用

为此,我们利用了健壮估计离群过程(传统上应用于早期视觉问题)之间的Black-Rangarajan对偶性,并表明渐进非凸性(GNC)可以与非最小解一起使用来计算健壮解,而不需要初始猜测

non-minimal solvers只能在outlier被去除后才能开始应用。

II 相关工作

A. outlier-free Estimation

A1. Minimal Solvers(最小求解器)

最小求解器使用所需的最小数量的测量值 来估计变量x。

A2. Non-minimal Solvers

最小求解器不利用数据冗余,因此可能对测量噪声敏感。由此导致非最小求解器的发展。

通常,非最小求解器假定测量噪声为高斯,这将导致最小二乘优化框架

B. Robust Estimation

B1. Global Methods

如果一种稳健的方法不需要初始猜测,我们将其称为全局方法。

1.几种全局方法采用==共识最大化( consensus maximization)==的框架,该框架寻找 在规定的估计误差内 使测量值数量最大化的 变量x的估计值。

RANSAC是一种广泛使用的启发式算法,适用于存在最小求解器的情况。但RANSAC并不提供最优性保证,其运行时间随离群值比率呈指数增长。

2.全局方法的另一个框架是M-估计,它求助于稳健的成本函数(cost)。
3.最后,还采用了渐进式非凸性(GNC)方法来优化稳健成本(robust cost)。

B2. local Methods

与全局方法不同,局部方法需要初始猜测

III. Black-Rangarajan对偶与渐近非凸性(GNC)

A. Black-Rangarajan Duality

已知Robust estimation 问题(2):
在这里插入图片描述
Black-Rangarajan Duality引理如下: 该引理的主要结论是:在一定条件下,问题(2)和(3)等价。

问题(3)也称为outlier process
在这里插入图片描述

B. Graduated Non-Convexity (GNC)

Graduated Non-Convexity (GNC)是一般非凸代价函数ρ(·)的一种常用优化方法。

GNC的基本思想:

引入由控制参数µ控制的代理 cost ρµ(·),使得:
(I)对于某一µ值,函数ρµ(·)是凸的
(ii)在µ取某个极限值时(通常是µ到1或无穷大时),恢复原始的(非凸)ρ(·)。

GNC算法流程

GNC从其凸cost ρµ(·)开始,逐渐改变µ(即逐渐增加非凸量),直到恢复原来的非凸函数,从而计算出非凸问题的解。每次迭代得到的解被用作后续迭代的初始猜测。

IV. THE GNC ALGORITHM FOR ROBUST ESTIMATION

A. Overview: GNC Algorithm with Non-minimal Solvers

我们提出了一种结合GNC、BlackRangarajan对偶和非最小求解器的算法来==解决稳健估计问题(2),==而不需要初始猜测。
对问题(2)的解决是使用GNC的思想。

外迭代

问题(2)是非凸问题,将问题(2)的cost函数用凸cost== ρµ(·)代替,每次迭代中逐渐改变µ(即逐渐增加非凸量),直到恢复原来的非凸函数,从而计算出非凸问题的解。每次迭代得到的解被用作后续迭代的初始猜测。

在这里插入图片描述

内迭代

每次进行外迭代时,µ的值是固定的。利用Black-Rangarajan Duality将上式等价转化为下式,来完成:
在这里插入图片描述
在每次外迭代中,存在 内迭代:
内迭代步骤:
第t次内迭代
(1) 固定wi(t−1),最优化下式得到x:(第二项与x无关,直接删去)
在这里插入图片描述

(2)固定x (即(1)中求出的x) ,最优化权重wi:
在这里插入图片描述

B. The GNC Algorithm with GM and TLS Costs

### 解析 Import Error 的常见原因 当遇到 `ImportError: cannot import name 'Generic'` 错误时,通常意味着尝试从模块中导入的对象不存在或无法访问。此问题可能由多种因素引起: - 版本不兼容:不同库之间的版本冲突可能导致此类错误。 - 安装缺失:目标库未正确安装或路径配置有误。 - 导入语句不当:可能存在循环依赖或其他语法层面的问题。 ### 针对 Generic 类型的具体解决方案 对于特定于 `Generic` 的情况,考虑到 Python 中 `Generic` 是 typing 模块的一部分,在处理该类别的 ImportError 时可采取如下措施[^1]: #### 方法一:确认typing模块可用性 确保环境中已安装标准库中的 typing 模块,并且其版本支持所使用的特性。可以通过以下命令验证: ```bash python -c "from typing import Generic; print(Generic)" ``` 如果上述命令执行失败,则可能是由于 Python 或者相关扩展包的版本过低造成的。此时应考虑升级至更高版本的解释器以及对应的开发工具链。 #### 方法二:调整导入方式 有时直接通过顶层命名空间来获取所需组件会更稳定可靠。修改代码以采用这种做法可能会解决问题: ```python from collections.abc import Iterable # 如果是迭代器相关接口 from typing import TypeVar, Protocol # 对于协议和泛型定义 T = TypeVar('T') class MyContainer(Protocol[T]): ... ``` 注意这里并没有显式提到 `Generic` ,而是利用了更为基础的数据结构抽象基类或是其他替代方案实现相同功能[^2]。 #### 方法三:排查环境变量设置 检查系统的 PYTHONPATH 和虚拟环境配置是否正常工作。任何异常都可能导致某些第三方软件包找不到必要的资源文件而引发类似的错误提示。建议清理并重建项目专属的工作区以便排除干扰项的影响。 #### 示例修正后的代码片段 假设原始代码试图这样引入 `Generic` : ```python from some_module import Generic # 可能导致 ImportError ``` 改为遵循官方文档推荐的方式后变为: ```python from typing import Generic # 正确的做法 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值