Notes on 'Efficient Graph-Based Image Segmentation'
Notes on Efficient Graph-Based Image Segmentation
算法的目标
按照一种确定的标准, 将图片分割成细粒度的语义区域, 即Super pixel.
算法步骤
- 预处理. 将图片转换为undirected graph: \(G(V, E)\):
- 每一个像素都是一个顶点.
- 只有相邻像素间才存在边
- 边的权重为它连接的两个顶点间的像素距离
作者的代码使用了欧氏距离
- Steps:
- 将\(E\)按权重递增排序: \(\pi = (e_1, e_2, \dots, e_m)\)
- \(S^0 = V\), 即一开始每个顶点都一个单独的region.
- 重复4直到处理完所有的边得到\(S^1, S^2, \dots, S^{m - 1}, S^m\):
- \(S^q\)由\(S^{q - 1}\)得到:
- \(e_q = <v_i, v_j>\)
- 如果: (1) \(v_i, v_j\)不在\(S^{q - 1}\)的同一个连通区域内, 即:\(C_i^{q -1} \neq C_j^{q - 1}\), 且(2)\(e_q\)的权重比两个component内部的像素差异要小, 即:\(w(e_q) < MInt(C_i^{q -1}, C_j^{q - 1})\), 则将\(C_i^{q -1}, C_j^{q - 1}\)在\(S^{q-1}\)内合并.
- \(S^q = S^{q - 1}\)
- Return \(S^m\)
从之前的构图, 到后面的merge, 都是很常规的做法. 算法的关键在于\(MInt(C_i, C_i)\)函数上, 即如何决定是否合并两个相邻像素/相邻区域.
注意, region/区域与component/连通分量在此处含义相同, 可交换使用
Pairwise Region Comparison
具体参考原文Section 3.1
在考虑是否要将两个region合并成一个region时, 需要考虑internal-region的像素差异程度与inter-region的像素差异.
region内部的差异定义为这个region的最小生成树的最大权重:
\[
Int(C) = \max_{e\in MST(C, E)}w(e)
\]
region间的差异定义为连接两个region的最小边的权重:
\[
Dif(C_1, C_2) = \min_{v_i \in C_1, v_j \in C2, <v_i, v_j> \in E} w(<v_i, v_j>)
\]
这个值在上面的算法中为\(w(e_q)\).
\[
MInt(C_1, C_2) = min(Int(C_1) + \tau(C_1), Int(C_2) + \tau(C_2))
\]
其中, \(\tau(C) = \frac {k}{|C|}\). \(k\)是一个指定的常数. \(|C|\)是region的面积(包含的像素个数).
\(Dif(C_1, C_2) < MInt(C_1, C_2)\)是合并\(C_1, C_2\)的前提条件. 之所以加入\(\tau(C)\), 是为了降低小region合并的门槛.
需要设定的参数
- \(\sigma\): 在分割图片之前需要对其进行高斯平滑操作, 使用期望为0, 方差为\(\sigma^2\)的高斯分布.
- \(k\): \(\tau = \frac {k}{|C|}\) 里的\(k\), \(k\)越大, 最后分割出的region也偏大
- \(min_area\): 在初次分割完之后, 会有很多小region, \(min_area\)用于判断小region, 然后将小region合并
Notes on 'Efficient Graph-Based Image Segmentation'的更多相关文章
- VIPS: a VIsion based Page Segmentation Algorithm
VIPS: a VIsion based Page Segmentation Algorithm VIPS: a VIsion based Page Segmentation Algorithm In ...
- Graph Based SLAM 基本原理
作者 | Alex 01 引言 SLAM 基本框架大致分为两大类:基于概率的方法如 EKF, UKF, particle filters 和基于图的方法 .基于图的方法本质上是种优化方法,一个以最小化 ...
- 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》
论文信息 论文标题:Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering论文作者:Chaki ...
- 论文阅读笔记五十二:CornerNet-Lite: Efficient Keypoint Based Object Detection(CVPR2019)
论文原址:https://arxiv.org/pdf/1904.08900.pdf github:https://github.com/princeton-vl/CornerNet-Lite 摘要 基 ...
- 论文阅读-Temporal Phenotyping from Longitudinal Electronic Health Records: A Graph Based Framework
- Awesome Deep Vision
Awesome Deep Vision A curated list of deep learning resources for computer vision, inspired by awes ...
- Computer Vision Tutorials from Conferences (3) -- CVPR
CVPR 2013 (http://www.pamitc.org/cvpr13/tutorials.php) Foundations of Spatial SpectroscopyJames Cogg ...
- PP: Extracting statisticla graph features for accurate and efficient time series classification
Problem: TSC, time series classification; Traditional TSC: find global similarities or local pattern ...
- Survey of single-target visual tracking methods based on online learning 翻译
基于在线学习的单目标跟踪算法调研 摘要 视觉跟踪在计算机视觉和机器人学领域是一个流行和有挑战的话题.由于多种场景下出现的目标外貌和复杂环境变量的改变,先进的跟踪框架就有必要采用在线学习的原理.本论文简 ...
随机推荐
- 嵌入式Linux 修改启动LOGO
1.嵌入式 Linux LOGO显示原理 嵌入式Linux是直接在FrameBuffer的基础上.直接显示一个ppm格式的图象. 它 kernel/drivers/video/fbc ...
- 64位win7硬盘安装64位ubuntu 13.04
最近本来是准备通过升级的方式把ubuntu从12.04升级到12.10再升级到13.04的,但是升级到12.10之后,可能是因为某一步的操作不当,出现无法进入系统的情况.不过还好的是升级之前保存了主要 ...
- WMSYS.WM_CONCAT(distinct(字段名)) 函数,字符串拼接函数。合并列
合并列函数 WMSYS.WM_CONCAT(distinct(字段名)) 函数 可以实现字符串拼接在一起,这种情况可以在要求把一个字段的多个值拼接在一起的时候使用.其中distinct可以去掉重复的值 ...
- JSOI Round 2题解
强行一波题解骗一个访问量好了... http://blog.csdn.net/yanqval/article/details/51457302 http://absi2011.is-programme ...
- Meet Github
Source: http://www.liaoxuefeng.com/ Here only the local part. Install on windows download: https://g ...
- JavaScript中的this关键字
在JavaScript中,函数的this关键字的行为与其他语言相比有很多不同.在JavaScript的严格模式和非严格模式下也略有区别. 在绝大多数情况下,函数的调用方式决定了this的值.this不 ...
- [转]Python 命令行参数和getopt模块详解
FROM : http://www.tuicool.com/articles/jaqQvq 有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Pyt ...
- Nodejs生态圈的TypeScript+React
基于Nodejs生态圈的TypeScript+React开发入门教程 基于Nodejs生态圈的TypeScript+React开发入门教程 概述 本教程旨在为基于Nodejs npm生态圈的前端程 ...
- Palindrome Linked List
Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...
- Linux 信号详解一(signal函数)
信号列表 SIGABRT 进程停止运行 SIGALRM 警告钟 SIGFPE 算述运算例外 SIGHUP 系统挂断 SIGILL 非法指令 SIGINT 终端中断 SIGKILL 停止进程(此信号不能 ...