图像分割介绍

来源:互联网 发布:linux权限最大的账户 编辑:程序博客网 时间:2024/06/08 14:14
(一)图像分割介绍
    图像分割在我看来是一个非常基础的工作,它属于计算机视觉中的中层视觉任务。这是因为它是一个利用底层的信息(如颜色,纹理、边界以及对比度等等,)来建立模型,又作为很多其他应用的输入(视频监控、人体部件解析、人体属性分类等)。
    大家平时在使用一些软件时,都会显式或者隐式地用到分割这个工具。比如在我们想从一张自己拍的照片里PS出想要的一个物品。用过PS的人会有这样子的体验:当自己把鼠标移动到想要的区域时,它会自动的分出物体区域,然后你通过调解尺度来做到很精细的抠图。在我看来,这样子的一个过程中需要考虑的有一下几点:
1.当用户在图像上交互后,怎么快速地将物体(或部分物体)分出来。
2.如何做到分割出来的物体的完整性。
3.用户交互方式的友好性。
现在,我们这里先来关注一下一些经典文献中使用的用户交互方式。
1.前背景用户画线
这个方式说白了就是,输入一个待分割的图像(里面包含一个感兴趣的物体),我们在它的物体部分画线,并且在不需要的背景部分画线,最后希望来获得前景物体的完整分割结果。
2.感兴趣物体外接矩形框
这个交互方式中有一个经典的方法是GrabCut(网上有代码)。他通过给感兴趣的物体画一个矩形框来将它分割出来,要是物体的表观(Appearance)不是很复杂,它能很快速地将物体分割出来,并且具有很好的完整性。当然,一次交互获得的结果往往不能让人很满意,后端作者加入了上面提到的前背景交互线(scrribles),来完善结果。
    总的来说,现在出现的一些一般性物体的分割方法都是在此基础上的一些变形,只是用了不同的约束条件。比如说,要求用户输入一个包含物体的紧致的矩形框;假设分割出来的物体是尽量充满矩形框的;前后背景不一致性很大,等等。
    所以说,现有最好的一般物体分割方法,在只能停留在数据集上(存在很大的表观变化,但一般分辨率很高),真正用于自然图像或者复杂条件下(光照、遮挡、低分辨率等)时,现存方法的泛化能力还是很有限的。

    现在来分析一下分割问题中存在的一些挑战;我想通过这个文章,让朋友们知道怎么去分析分割中的问题;怎么样去选择一个适合自己的课题。
 
首先举一个简单的例子。现在有两张图像,各自包含一匹马;非常巧的是,这两匹马都是一个姿态下的,但是颜色不同;也就是说马有相同的pose,大小也相同。当给你展示第一张的时候,你也许会想到这样一个把马分割出来的假设:直接按照颜色分,因为马的颜色与周围背景的颜色不同;现在我们把这个想到的假设记为H,它的含义就是提取图像中某种颜色(R,G,B)(设置为一个定值),出来的就是我们要找的马;这时,第二张图像来了,你把这个H用到第二张上去,就不怎么work了。因为马颜色变化了。用了这么冗余的话来说这个,想表明:一些图像分割的问题,往往要将一个特定类(比如,马,船,花,衣服等)中的物体给分割出来,那么仅仅依靠于你先验获得的颜色信息往往是不够的。对于这个马,我们抓住了颜色这个信息,其实这还是建立在一个隐藏的假设上,就是背景足够简单,尺度一样,姿态一致。要是背景很复杂,我们直接根据颜色截断的结果就是很差:要么多了背景(false positive),要么少了马(false negative)。因此,背景的复杂度往往使得颜色模型性能降低。
    必须要说的是,马的姿态也很有可能变化万千。最直观的想法,就是利用颜色以外的信息来分割。因为是特定类分割,我们有机会去获得一个类的形状。对于每个图像都获得一个形状就能帮助我们很好的来约束的问题;能使得我们更加合理的获得最后结果。可以看的出来,我们的问题现在才可能成为一个真正特定类的问题(因为有了这个类的形状信息)。
    有了形状,你就要将对应的形状对应到一个包含特定尺度物体的图像中去,如果形状对于你的图像来说过大或者过小,都是没有意义的。所以后面要涉及的就是对齐的问题。一般处理这个对齐可以用物体检测的方法,就是在你做分割之前,先对物体进行一个检测,获得大致的区域,在用颜色,形状特征来建模。但是,这样的检测结果很会影响你分割结果。因为检测检测不是物体级别检测,很多都是只检测物体的一个部分,或者提供一个不是很紧致的矩形框。这样在对齐中有了扰动,就很用后端来弥补。
    也有别的方法来处理这个问题。就是建立动态模板。这里不展开讲。它就是把这个对齐的问题放到了后端来处理,而不依赖于前端的检测。
    所以说,这个特定类物体的分割,往往要考虑:颜色、形状、对齐等。要做出一个全自动分割的方法往往存在很大的挑战。



0 0
原创粉丝点击