superpixels(超像素)

1.理解:

超像素不是在普通的像素基础上继续微观细分,超像素是一系列像素的集合,这些像素具有类似的颜色、纹理等特征,距离也比较近。其中超像素比较常用的一种方法是SLIC

  • Semantic Segmentation(语义分割):把图像中每个像素赋予一个类别标签(比如汽车、建筑、地面、天空等),比如把图像分为了草地(浅绿)、人(红色)、树木(深绿)、天空(蓝色)等标签,用不同的颜色来表示。
  • Instance Segmentation(实例分割):有点类似于物体检测,不过物体检测的输出一般是bounding box,实例分割输出是一个mask
  • panoptic segmentation(全景分割):他是语义和实例分割的结合。

SLIC超像素

​ 简单的线性迭代聚类,将彩色图像转化为CIELAB颜色空间和XY坐标下的5维特征向量,然后对5维特征向量构造距离度量标准,对图像像素进行局部聚类的过程。SLIC算法能生成紧凑、近似均匀的超像素,在运算速度,物体轮廓保持、超像素形状方面具有较高的综合评价

SLIC的优点:

1.生成的超像素如同细胞一般紧凑整齐,领域特征比较容易表达,这样基于像素的方法可以很容易改造维基于超像素的方法

2.不仅可以分割彩色图,还可以分割灰度图

3.需要设置的参数非常少,默认情况下只需要设置一个预分割的超像素的数量

4.相比其他超像素分割方法,SLIC在运行速度、生成超像素的速度、轮廓保持方面都比较理想

SLIC实现的步骤:

1.初始化种子点(聚类中心):按照规定的超像素个数,在图像内均匀的分配种子点。假设图片总共有N个像素点,预分割为为K个相同尺寸的超像素,那么每个超像素的大小为N/K,则相邻种子点的距离(步长)近似为S=sqrt(N/K)(聚类过程从初始化步骤开始,k个聚类中心在间隔S个像素的规则网格上采样,为了产生大致相等的超像素,网络间隔为S=(N/k)^1/2)。

2.在种子点的n*n(n=3)邻域内重新选择种子点:将中心移动到3X3领域中的最低梯度位置相对应的种子位置。这样是为了避免超像素定位在边缘上,并且减少用噪声像素接触超像素的机会,以免影响后续的聚类效果。

3.在每个种子点周围的领域内为每个像素点分配标签。(每个像素i与搜索区域与其位置重叠的最近聚类中心相关联,由于限制搜索区域的大小显着地减少了距离计算的数量,并且导致相对于常规kmeans聚类的显着的速度优势,其中每个像素必须与所有聚类中心比较,对该算法加速起到了作用。

4.这只能通过引入距离测量D来实现,该距离测量D确定每个像素的最近聚类中心


其中dc代表颜色距离,ds代表空间距离,Ns是类内最大空间距离,定义为Ns=S=sqrt(N/K),适用于每个聚类。最大的颜色距离Nc既随图片不同而不同,也随聚类不同而不同,所以我们取一个固定常数m(取值范围[1,40],一般取10)代替。最终的距离度量D’:


由于每个像素点都会被多个种子点搜索到,所以每个像素点都会有一个与周围种子点的距离,取最小值对应的种子点作为该像素点的聚类中心。

5.迭代优化。理论上上述步骤不断迭代直到误差收敛(可以理解为每个像素点聚类中心不再发生变化为止),10次迭代对绝大部分图片都可以得到较理想效果,所以一般迭代次数取10(L2范数用于计算新聚类中心位置和先前聚类中心位置之间的残差误差E)

6.将不相交像素重新分配给附近的超像素来实施连通性

算法如下:

算法 SLIC超像素分割/*初始化*/
通过以步长S对像素进行采样初始化聚类中心Ck=[lk,ak,bk,xk,yk]T
移动聚类中心到3X3中梯度最小的位置
设置标签l(i)=-1对每个像素i
设置距离d(i)=无穷 对灭个像素i
重复
/*分配*/
for 每个聚类中心Ckfor 每个像素i在Ck周围的2SX2S区域计算Ck与i的距离Dif D<d(i)d(i) = Dl(i)=kENDIFENDFORENDFOR
/*更新*/
计算新的聚类中心
计算残差E
直到计算E<=阈值

superpixels(超像素)相关推荐

  1. SLIC与目前最优超像素算法的比较 SLIC Superpixels Compared to State-of-the-art Superpixel Methods

    SLIC与目前最优超像素算法的比较 Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sa ...

  2. 图像分割:Python的SLIC超像素分割

    图像分割:Python的SLIC超像素分割 1. 什么是超像素? 2. 为什么超像素在计算机视觉方面有重要的作用? 3. 简单线性迭代聚类(SLIC) 4. 效果图 5. 源码 参考 1. 什么是超像 ...

  3. 超像素、语义分割、实例分割、全景分割 傻傻分不清?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在计算机视觉中,图像分割是个非常重要且基础的研究方向.简单来说,图 ...

  4. 开源人工智能算法一种新颖的超像素采样网络深层特征来估计任务特定的超像素

    开源人工智能算法一种新颖的超像素采样网络深层特征来估计任务特定的超像素摘要: 超像素提供图像数据的有效低/中级表示,这极大地减少了后续视觉任务的图像基元的数量. 现有的超像素算法无法区分,因此难以集成 ...

  5. VLFeat SLIC超像素分割(Cpp版)

    这段时间对VLFeat的C接口非常的感兴趣,以前用的都是其Matlab接口,虽然很方便,而且提供的Matlab接口要比C接口功能更强大,但Matlab终归只能用来做一下快速的方法验证,所以想比较完整的 ...

  6. 超像素SLIC算法源码阅读

    超像素SLIC算法源码阅读 超像素SLIC算法源码阅读 SLIC简介 源码阅读 实验结果 其他超像素算法对比 超像素SLIC算法源码阅读 SLIC简介 SLIC的全称Simple Linear Ite ...

  7. julia 调用python库_Julia调用Python实现超像素分割SLIC算法

    最近想要在julia中实现 Simple Linear Iterative Clustering (SLIC) 算法对图像进行超像素分割,关于SLIC超像素分割算法,请参考SLIC Superpixe ...

  8. 超像素分割(Superpixel Segmentation)发展

    转自:http://blog.csdn.net/anshan1984/article/details/8918167 最近实验需要用到超像素的一些算法,之前也有看过一下分水岭这个老算法,想着找找近年来 ...

  9. SLIC 超像素分割详解(三):应用

    看过上面的介绍后,我们应该思考一下:分割好的超像素有什么用?怎么用?用到哪里? 首先,超像素可以用来做跟踪,可以参考卢湖川课题组发表在IEEE TIP上的<Robust superpixeltr ...

  10. SLIC超像素分割的算法介绍和源码分析

    前述 最近在看显著性检测,发现很多算法的基础是超像素分割,而正在看的Saliency Optimization from Robust Background Detection算法的预处理是SLIC算 ...

最新文章

  1. XML DOM 解析器概述
  2. windows 2003 下oracle从10.2.0.1升级到10.2.0.4
  3. java支持iSCSI协议,ISCSI协议
  4. 保存和恢复应用程序状态
  5. 9.png(9位图)在android中作为background使用导致居中属性不起作用的解决方法
  6. 看django视频笔记
  7. linux之tr命令使用和总结
  8. linux 分区 文件,Linux的分区与文件结构
  9. C# 杀掉指定进程
  10. 对话彭军、楼教主:1.12亿美元融资来了,Pony.ai车队也已在路上 | 变局者
  11. Linux多进程编程之在线词典
  12. Newtonsoft.Json取json字符串中的值得用法 看红色的部分就可以了
  13. 又臭又长的if...else太多了,不知道如何消除?
  14. 易语言5.4一键破解工具
  15. 小白入门必学——python循环语句
  16. 创建带有实时在线数据备份的指纹考勤系统
  17. 《我的初恋、我的老婆》超爆笑!!
  18. fast lio测试
  19. 网页下载模板前台后台
  20. 2022全国中学生数学奥林匹克竞赛(决赛)获奖名单来了!

热门文章

  1. WIFI 2.4G及5G信道一览表
  2. 如何备考系统集成项目管理工程师?
  3. [算法]详解关键路径算法
  4. using eclipse to write c programe
  5. 单机MySQL性能_单机数据库性能测试总结
  6. 移动产品原型和线框图设计工具介绍
  7. origin 快捷键
  8. 安卓车载中控竖屏分三屏
  9. 微信小程序之 swiper 的 tab 选项卡高度自适应问题解决方案
  10. linux如何查看内存?