热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

【转载】分水岭超像素

版权声明:本文非为博主原创文章,原文地址:http:blog.csdn.netguzenyelarticledetails49281167前言:超像素这个概念被提出以来,各种方法层出不穷~

前言:

超像素这个概念被提出以来,各种方法层出不穷~在计算机视觉和模式识别中也被广泛的应用。最近几年,CVPR,ICCV,PAMI,TIP,ICIP等各种期刊、会议关于超像素的论文超多。其实,这也说明了一个问题,超像素的实现其实很简单,所以才蹦出那么多算法的文章来....


其实早在2010年冬天,帮同学下载一篇论文,就是大名鼎鼎的 Turbo Pixel,PAMI上的一篇文章,同学是想把这个跟遥感结合以下,搞来应用一下。论文下载下来一看,我去...这不是很普通嘛,为啥能发PAMI。顺便去下载了作者的代码,那叫一个慢啊......以我这个性,480*320的图一秒钟跑不出来结果我就直接关掉了...

因为我本身是搞遥感图像处理的,对什么分水岭算法、Meanshift算法、多尺度区域合并等等钻研的比较多,各种算法也都自己实现了一遍。转念一想,这玩意儿有啥难啊?我现有的算法加点儿料,就能出同样的效果了....然后就开始动手改我自己写的分水岭算法... 结果当天晚上就搞定了....算法效率比Turbopixel快了不知道多少倍,普通大小481*321的图片一点就开,毫无延迟,顺便就把TurboPixel鄙视了一番。搞遥感的人对计算机视觉的热点一点都不敏感...直到第二年又发现了PAMI上出了SLIC的文章,又是一篇超像素的文章...于是决定动手把这个写个文章。奈何写作水平就那样,原理太简单了,都没啥高深的理论,墨迹了很久终于墨迹出来两页纸,哪儿也投不了。最后终于找到一个收短文的期刊,Electrics Letters, 正合我意,却不想被人家鄙视了,连审稿意见都没有....从此这个文章就沉默了三年半。直到14年底,某师兄说投了个ICIP的论文,有没有材料再搞一个?反正注册一个人可以覆盖3篇论文的费用...于是又重新搞出来,跟师兄一起扩充到了5页。这里不得不说,写作能力很重要,我就只能写2页,被师兄指导着写成了5页...然后..就中了。。


正题:


传统的分水岭,特别是Meyer的标记分水岭算法,是以影像的梯度级作为地形表面,梯度值高的地方地形高。这么一看,就形成了一系列坑坑洼洼的盆地。如果从坑里冒水出来了,那么这些盆地就会蓄水,形成一堆堆的水坑。水一直涨,不同的水坑就会合并,如果强制修筑堤坝,不让这些水坑连在一起,那么一个个的水坑最后就成为匀质的区域。那么在水从底部开始积累的时候,总是会先淹没地形的低洼处(梯度值较小的地方),因此,可以理解为这些低洼处具有较高的优先级。(这里如果不明白,可以参考一下分水岭算法的具体原理,用必应搜索 watershed transform,有个主页讲这个)。


但是,实际中,大家可以发现,荷叶上的水珠,总是呈现出比较规整的外形,为什么呢?其实是 因为水滴的外形不仅受重力作用的影响会流向低处,还会受到内在的张力约束而保持紧凑的外形。因此,如果从微观的角度来重新考虑标记分水岭算法,水坑形成的过程就不仅仅只流向梯度最低处了,还应该有形状上的约束。那么,我们要做的就是考虑怎么加入这个形状约束?



跟传统的超像素类似,首先我们设定一些均匀分布的种子点。假设水只能从这些洞洞中涌出来,然后去形成水坑,使水坑继续膨胀。那么,当水从坑的底部冒出来的时候,其必然使水坑变大,往外扩张。这时候,我们给他一个力,使之往外扩的时候,受到张力的影响而保持紧凑。当然,当水珠越小的时候,张力越大,水珠越大的时候,外围的张力越小。


因此,我们定义这样一个公式:



红框里面表示由梯度决定的优先级,蓝色框里面表示由张力决定的优先级。(水滴膨大过程中,从优先级最高的点开始向外扩张)。



我们定义以上公式来描述张力,即距离越远,优先级越低。同时,为了保护边缘,使得边缘越强,优先级更低。E(x,y)表示边缘的强度。

最后梳理一下这个算法的步骤:

(1) 计算梯度

(2)根据超像素个数,均匀的布设种子点(泉水眼);

(3)模拟泛洪过程,淹没整个地形。跟传统标记分水岭唯一不同的就是在定义像素的处理优先级上,动了一点手脚。



由于分水岭本身超高的效率,使用这个算法的优点也没明显,高效!

最后,给出两张论文图:



有兴趣的同学同学可以参考论文: Watershed Superpixel,  IEEE ICIP2015

相关的可执行代码可以去这里下载:

http://download.csdn.net/detail/guzenyel/9197835


推荐阅读
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
author-avatar
ranger
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有