超像素(superpixel)——SLIC和深度学习法

定义

可以理解成在图像上做的聚类问题。超像素的做法是将感知上相似的像素组在一起,称为一个超像素,以此来提供图像数据的紧凑表示。然后在后续的处理,处理单位就变成了超像素,而不是我们常用的像素。

一般超像素的结果可以为下游任务提供帮助,比如说语义分割、对象检测等。

SLIC

Simple Linear Iterative Clustering,简单的线性迭代聚类

论文2011-PAMI-SLIC Superpixels Compared to State-of-the-art Superpixel Methods

前提:这个算法实在CIELAB这个颜色空间上做的,即每个pixel的值用[l_i, a_i, b_i]^T来表示,其中l_i表示亮度(取值范围0-100,数值越大越亮);a_i表示红色到绿色之间的色域(负值表示绿色,正值表示红色);b_i表示黄色和蓝色之间的色域(负值表示蓝色,正值表示黄色)。

符号表示:

假设一张图片有N个像素,需要我们人为去设定的超参数有且仅有一个,就是超像素的个数k。

那么,每个超像素的平均面积是S=\frac{N}{k},每个超像素中心的平均间隔是\sqrt{S}

算法实现:

关于初始化:

  1. 初始化各个超像素中心的位置。比如一张图片的大小为\sqrt{N}\times\sqrt{N},将其均分\sqrt{k}\times \sqrt{k}个grid,然后设置每个grid的中心为一个超像素的中心。
  2. 微调这些超像素的中心,在以它们为中心的3\times3邻域里进行计算,将超像素中心更换成其中梯度值最小的。这样做的目的是为了防止超像素中心落在边缘/噪点上。
  3. 标签l(i)表示像素i属于哪一个superpixel,距离d(i)表示像素i与其所属的superpixel的中心的距离。初始化每一个像素i的l(i)=-1d(i)=\infty

进行下面迭代直到收敛,收敛的前提是误差满足一定要求:

对于每个聚类中心c_k

        对于以其为中心的2S\times 2S邻域内的每个像素i: 

                计算c_k与i之间的距离D

                如果D< d(i),那么更新d(i)=Dl(i)=k

         &n

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值