论文标题:TurboPixels: Fast Superpixels Using Geometric Flows
作者:Alex Levinshtein, Adrian Stere, Kiriakos N. Kutulakos, David J. Fleet, Sven J. Dickinson
期刊:(并没有查到。。。)
算法:
superpixel要求:
1. Uniform size and coverage:superpixel统一大小和形状(有的算法)
2. Connectivity
3. Compactness:superpixel紧凑
4. Smooth,edge-preserving flow:superpixel贴合边界且平滑
5. No superpixel overlap:两个superpixel边界将相碰时,扩展停止
流程:1. 设置初始点,且避免边界位置
2. 扩展边界至T时间之后
3. 计算未分配区域的skeleton
4. 更新边界上和边界附近未分配像素的速度:①速度在边界处减小
②在narrow band 内速度大小与亮度成正比
5. 迭代2,3,4步骤,直到边界不可再延伸
伪代码:
Initial Seed Placement:
以(N/k)^1/2为间隔设置初始点。
沿图像梯度方向移动,避开边界位置。
Numerical Level Set Evolution:
SI表示局部图像结构和superpixel几何形状在边界上的点
SB表示边界点与相邻点相似性
理论上,速度SI·SB根据每个点on the zero level set定义
实践中,我们计算零水平集附近的点的速度。
Proximity-Based Boundary Velocity:
proximity-based boundary velocity确保superpixel不会相交
SB(x,y)=0 当(x,y)位于skeleton,其余情况时取1
曲线不断变化,导致skeleton不断变化。通过homotopy preserving thinning algorithm计算skeleton,即以拓扑排序删除像素。
Image-Based Boundary Velocity:
reaction-diffusion 确保边界扩散速度在高梯度区域减慢。
k(x,y) curvature function 边界上的(x,y)处的曲率,使扩展边界更平滑
α为曲率的权重
α较大:①避免"leakage" through narrow edge gaps ②避免sharp superpixel boundaries
β较大:①在较弱边界停止 ②减慢扩大速度
α=0.3 β=0.1
“doublet” term 确保边界向图像边缘移动
normal N(x,y) 与
负梯度方向重合
Speed Extension:
SI、SB仅在superpixel边界上有意义
问题:1. zero level set为隐式,在离散的像素之间
2. 每次迭代更新level set,边界必须移动
extend
及
▽
Termination Conditions & Final Segmentation:
扩展像素/已覆盖像素<阈值时迭代终止,阈值取10^-4
后续处理:1. 将“未分配”像素归入superpixel
2. 移除较小的superpixel,将其中像素标记为“未分配”
3. 未分配区域按到边界距离配合
-based
term排序,获得平滑superpixel边界且贴合边缘
总结:该算法考虑特征值为颜色和梯度,算法效果和seeds点放置有很大的关系。无法处理细长物体。算法运用level set曲线演化理论,这点可以在其他时候运用。根据图片信息设置seeds可能可以使算法有更好的分割效果,但是使superpixel不再uniform size。
问题:为什么算法要求superpixel有uniform size and sharp。