“Canny”的版本间的差异

来自眩晕文档
跳转至: 导航搜索
第250行: 第250行:
  
 
不合格边界元的定义,可以规范边缘的位置,使得不同尺度空间获得的边缘保持一致,不会出现虚假边缘。
 
不合格边界元的定义,可以规范边缘的位置,使得不同尺度空间获得的边缘保持一致,不会出现虚假边缘。
区别时不同尺度空间,获取不同结构的边缘。
+
区别是不同尺度空间,获取不同结构的边缘。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 +
我们希望对边缘进行准确的定义。
 +
从原始图片来看,边缘应该是确定性的,只是结构和细节的问题,是筛选的问题。
 +
不管是清晰边缘还是模糊边缘,其边缘位置应该是固定的,不能因为高斯平滑sigma不同而发生变化。
 +
但是,目前的类似Canny算法的单尺度空间边缘获取方法就存在这个问题。
 +
3D NMS 结合光度不增原理,可以解决自适应尺度空间问题。
 +
我们需要结合光度三维尺度图、梯度三维尺度图对三维边缘图进行处理。
 +
在三维尺度空间,光度增加但上一个尺度为死亡,其后尺度的边缘都不合格。
 +
在小尺度空间没有资格成为边界元的,在大尺度空间,同样没有资格成为边界元。
  
  

2025年7月25日 (五) 08:31的版本

canny算法不能满足同时多尺度边缘提取。 不同尺度(边缘模糊程度)的边缘提取,需要不同尺度(sigma)高斯平滑。 多个不同尺度的canny 边缘合并能够改进效果。 问题的关键是尺度空间理论。 边缘的评估需要放在尺度空间进行,不同尺度空间边缘不同。

像素的尺度空间特征为三维曲线特征(尺度,梯度强度,梯度方向)。 分析和提取像素的关键尺度空间特征,是边缘检测,目标分类的重要工作。

这个问题涉及图像特征的提取。

理论上,图像的缩小和放大,会引起像素尺度空间特征的缩放,主要是尺度轴的缩放。

也就是尺度轴需要按照图像的缩放进行校准,如此像素特征具备可比性。 与众不同的像素特征,可以作为匹配的瞄点。

如此,像素分类问题转变为三维曲线的分类问题。

和方向轴垂直的曲线为边缘(方向一致) 可以在三维空间中进行像素的分类。 首先筛查出和方向轴垂直的曲线(边缘) 然后根据尺度和梯度强度进行分类。


直线的边缘像素,由于梯度方向一致,尺度和梯度强度的关系一致,在三维空间呈现束形分布 (bundle-like distribution)。 圆形的边缘像素,梯度方向发生改变,但是尺度和梯度强度的关系一致,在三维空间呈现扁平分布

设计合成图像,测试能否从像素的尺度空间特征识别和分类边缘


像素轨迹流形 (Pixel Trajectory Manifold)




numpy多为数组,在多维数组空间实现尺度空间Canny算法

建立一个核心的、四维的**“状态数组(State Array)”,其维度为 (num_sigmas, height, width, num_features)。这个数组中的每个点 (s, y, x) 都不是一个简单的标量,而是一个描述该点在特定尺度下完整状态的特征向量**。

这个特征向量可以包含:

梯度强度 (Magnitude) 梯度方向 (Orientation) 方向稳定性 (Stability) - 这需要一个巧妙的处理,我们稍后讨论 ...未来还可以加入更多特征,如拉普拉斯响应、曲率等。


在这种范式下,尺度空间Canny算法的逻辑将变为:

构建状态空间:一次性计算出这个包含所有信息的4D状态数组。 在空间中进行NMS:直接在3D的梯度强度“子空间” (s, y, x) 上执行非极大值抑制。 在空间中进行滞后阈值:直接在经过NMS筛选后的3D空间中,根据高、低阈值定义“强边”和“弱边”体素(Voxel)。 在空间中连接边缘:在3D空间中寻找与“强边”体素相连通的“弱边”体素。 投影到二维:最后,将3D空间中最终确定的边缘体素投影到一个2D平面上,形成最终的二值化图。

尺度可以用于边缘的分类。 原始图 二值化图(尺度空间Canny算法) 稳定性图 特征强度图 尺度图 原始图+尺度图半透明叠加 稳定性图+尺度图半透明叠加 二值边缘+尺度图半透明叠加 特征强度图+尺度图半透明叠加



    1. 四维向量尺度空间

建立一个核心的、四维的状态数组(State Array),其维度为 (num_sigmas, height, width, num_features)。 num_features为特征向量,最基本特征包括像素值,梯度强度 (Magnitude),梯度方向 (Orientation) 根据梯度矢量可以推导的纳入延伸特征场。 延伸特征包括方向稳定性 (Stability) ,特征尺度 (Characteristic Scale, σ_char),尺度显著性 (Scale Saliency),拉普拉斯响应 (Laplacian Response), 形状指数与曲度 (Shape Index & Curvedness)等

广义张量场 (Generalized Tensor Field)

四维状态数组不仅仅是一个向量场,而是一个包含向量、标量和高阶导数(张量)信息的广义张量场 (Generalized Tensor Field)。

统一状态空间描述符 (Unified State-Space Descriptor, USSD)

统一状态空间描述符 (USSD) 的设计哲学 核心思想:一个像素点的终极描述符,应该是在其最显著的时刻(特征尺度 σ_char),对其**所有内在属性(状态向量)**进行的一次全面、规范化的“快照”。

这个设计过程分为两个核心阶段:

阶段一:尺度轴坍塌 (Scale-Axis Collapse) - 如何从一个像素点的3D轨迹中,提取出一个单一的、最具代表性的“原始特征向量”。 阶段二:向量组装与规范化 (Vector Assembly & Normalization) - 如何将这个原始特征向量,处理成一个对光照、对比度等变化具有鲁棒性的、固定长度的最终描述符。 阶段三: 宏伟蓝图 —— 完整的USSD生成算法 广义张量场 (The Generalized Tensor Field)


    1. 尺度空间理论
      1. 梯度归一化

高斯偏导数,也就是Gx和Gy需要根据尺度空间进行归一化。尺度空间越大,梯度下降,所以梯度需要乘上空间尺度。 如此,Mag=np.sqrt((Gx*sigma)**2+(Gy*sigma)**2)=sigma*np.sqrt(Gx**2+Gy**2)。

      1. 黑洞效应

强边缘会对附近的弱边缘产生影响,大尺度空间会将其纳入到强边缘范畴。

局部观察比较,不采用梯度归一化,

    1. 基于像素尺度空间特征的图像分析框架

1.像素尺度空间特征张量公理

2. 像素尺度空间特征分析原则

张量坍塌为二维,提取特征。 能量特征图:尺度空间自身最大梯度值 尺度特征图:该尺度自身梯度值最大 湮灭尺度图:该尺度丧失梯度(小于阈值)


    1. 概念

结构是一个梯度和尺度相关的像素特征。在特定尺度空间,存在梯度的像素为结构。 结构的组合形成水墨边缘。所谓水墨边缘,是指边缘有宽度,且内部结构像素之间存在梯度。 在不同尺度观察,结构会发生改变。水墨边缘也会发生改变。



像素在尺度空间维持梯度存在的能力。

结构的最小单位是像素,结构的内在聚合力是梯度。 在特定尺度空间,有梯度的像素为结构。结构外部和内部没有梯度的像素为非结构。

结构是像素在尺度空间维持梯度存在的能力,是相对的概念。任何结构在相应的尺度空间都会丧失梯度。

结构的评估指标是湮灭尺度,指改尺度空间像素丧失梯度。


首先可以确定,在特定观察尺度,所有存活的都是水墨边缘的一部分,是否存活的判断标准是梯度差是否存在而不是归一化梯度差是否存在,是否正确?所以在观察尺度展示的能量图是哪个尺度的梯度而不是归一化的梯度。是否正确?那么问题来了,如果要采用NMS寻找水彩边缘的素描边缘,是在这个尺度空间寻找还是在整个尺度空间寻找?


    1. 尺度空间理论

特征点: 尺度空间不变特征点 像素尺度空间特征的筛选: 同类像素 特殊像素


    1. 尺度空间理论分析

1. 基本特征 光度在空间阈的各阶导数 光度各阶导数在尺度空间的各阶导数 2. 生命周期高级特征 生命周期次数 首次生命周期特征 巅峰生命周期特征 末次生命周期特征

生命开始(尺度,光度),巅峰梯度(梯度值,梯度方向,尺度,光度),生命湮灭(尺度,光度),生命跨度,梯度面积,光度面积

我们应该首先进行生命周期分析,可以基于梯度在尺度空间的导数,获取生命周期的起始尺度,终末尺度,生命周期次数。 然后分析每一次的生命周期高级特征。 尺度空间生命特征分析,涉及边缘检测,像素分类和图片分割,特征提取等。 主要特性: 1. 丰富的特征 2. 语义信息

      1. 边缘检测

不同尺度空间的边缘并不一致。可以合并。 巅峰梯度图和本源梯度图可以解决多尺度空间边缘检测问题。

      1. 像素分类

1. 边界元生死分类 2. 特征筛选和分类 3. 特征提取 局部独特特征能单独分类的像素都属于特征点


特征是有尺度的,在某个尺度下B是关键点,但在更大的尺度下可能就不是了

特征描述符 1. 巅峰梯度 2. 方向稳定性 3. mag_t_max 4. L_t_max 5. mag_tt_max 6. L_tt_max


特征张量,主成分分析,张量子空间降维

斑点性状描述

    1. 思考
      1. 伪边缘问题

1. 第一个生命周期是本我生命周期,光度消散的才有可能成为边缘 由此可以区分伪边缘和大尺度空间的边缘

      1. 多尺度空间边缘问题

本我生命周期最大梯度图NMS获取所有尺度空间边缘

      1. 通过多个特征参数来筛选边缘

巅峰梯度图可以获取大结构边缘,其缺点是丢失边缘细节 高阶导数作为像素特征可能是有效的

      1. 尺度空间像素特征提取

本源梯度,方向,梯度尺度空间导数最大值,梯度方向尺度空间导数最大值, 大尺度空间存活,具备特征唯一性即可。 特征是有生命周期的,部分特征在特定尺度空间存活。

    1. 3D NMS

建立尺度空间图像场,获取尺度空间梯度三维结构,每一个像素根据梯度为0分割为不同周期,每一个周期提取最大梯度,由此建立三维空间点云。 尺度空间3DNMS总是比较和分析临近点最近尺度最大梯度值。 所有最大梯度值均经过比较和分析,由此可以获取三维的边缘结构。 可以根据特征来筛选边缘或直接在边缘获取过程施加筛选条件。 我们可以分析BSDS500人类提取的边缘在尺度空间的分布特征,探索人类边缘特征。

1. 3D NMS 能够获取三维空间结构边缘,有着非常重要的意义。 2. 尺度均衡和更多切面有利于获取更精细的边缘 3. 不同生命周期梯度结构可以分别获取和叠加。比如第一个生命周期和全生命周期最大梯度图像。 4. 光度升高的点是否肯定不是边缘? 5. 通过多特征可以在三维尺度空间筛选边缘。 6. 第二次生命不可能成为边缘

优势: 更高纬度 劣势: 更高运算量

3D NMS 取得极大的成功。关键点是梯度尺度方向导数需要尺度归一化。 理论上,这是获取边缘的正确方法。其实现简洁优美。

各个结构在尺度空间实际上时分离的,需要在不同的尺度获取不同结构的边缘。

基于本源梯度获取边缘时可行的,存在的问题是边界元可能存在多个生命周期,也就是在不同的尺度空间属于不同的结构。 可以根据巅峰梯度来获取大结构的边缘。 2D NMS是3D NMS算法的已经简便替代。

边缘是尺度相关的,必须建立这样的观念。 Canny算法在单个尺度获取的边缘,存在测不准问题。高斯平滑小sigma能获取准确清晰边缘(小尺度),但是不能获取模糊边缘(大尺度)。反之,高斯平滑大sigma能获取模糊边缘(大尺度),但是不能获取准确清晰边缘(小尺度)。 3D NMS算法和2D NMS算法也可能存在差异,主要是部分结构边缘存在于不同尺度空间,难以用单个像素宽度来表示其边缘。

自适应尺度空间概念也无法解决Canny算法单个尺度缺陷问题,如果定义边缘为单个像素宽度。 在不同尺度空间,根据最强梯度强度获取的边缘是会变动的。 预处理消除伪边缘至关重要。 1. 生命开始是由于光度增加的,不能成为边缘,适用于所有生命周期。 2. 生命还没有结束,出现光度增加的,可以成为边缘,其融合入大结构。 不合格边界元的综合判断标准是上一刻是死亡的,下一个出现光度增加。 如此,可以消除所有伪边缘。 3D NMS是在梯度三维尺度空间进行的,进行预处理消除不合格边界元,有利于获取准确的3D边缘。

不合格边界元的定义,可以规范边缘的位置,使得不同尺度空间获得的边缘保持一致,不会出现虚假边缘。 区别是不同尺度空间,获取不同结构的边缘。

我们希望对边缘进行准确的定义。 从原始图片来看,边缘应该是确定性的,只是结构和细节的问题,是筛选的问题。 不管是清晰边缘还是模糊边缘,其边缘位置应该是固定的,不能因为高斯平滑sigma不同而发生变化。 但是,目前的类似Canny算法的单尺度空间边缘获取方法就存在这个问题。 3D NMS 结合光度不增原理,可以解决自适应尺度空间问题。 我们需要结合光度三维尺度图、梯度三维尺度图对三维边缘图进行处理。 在三维尺度空间,光度增加但上一个尺度为死亡,其后尺度的边缘都不合格。 在小尺度空间没有资格成为边界元的,在大尺度空间,同样没有资格成为边界元。


















    1. 3D 特征提取

3D尺度空间多维特征


    1. 混合模型

原始图片,输出概率图 1.作为NMS边缘图筛选条件,输出边缘图,计算损失函数。 2.作为初始点,结合梯度图找到局部最大梯度点。


让模型在前向传播的过程中就直接输出一个满足NMS约束的细化的边缘图。 DSCD(Deep structural contour detection):设计一个可微的NMS层(或模块),并将其嵌入到神经网络中