精华内容
下载资源
问答
  • Segmentation

    2016-09-30 16:28:00
    https://handong1587.github.io/deep_learning/2015/10/09/segmentation.html#semantic-segmentation

    https://handong1587.github.io/deep_learning/2015/10/09/segmentation.html#semantic-segmentation

    语义分割资料大全


    http://groups.csail.mit.edu/vision/datasets/ADE20K/


    展开全文
  • segmentation-源码

    2021-03-30 14:37:52
    segmentation
  • Segmentation-源码

    2021-03-11 03:10:37
    Segmentation
  • 背景 Mask = Function(I) 1. 什么是图像分割问题呢? 简单的来讲就是给一张图像,检测是用框出框出物体,而图像分割分出一个物体的准确轮廓。也这样考虑,给出一张图像 I,这个问题就是求一个函数,从I映射...

    ##背景
    分割

    	Mask = Function(I)
    
    1. 什么是图像分割问题呢? 简单的来讲就是给一张图像,检测是用框出框出物体,而图像分割分出一个物体的准确轮廓。也这样考虑,给出一张图像 I,这个问题就是求一个函数,从I映射到Mask。至于怎么求这个函数有多种方法。我们可以看到这个图,左边是给出图像,可以看到人和摩托车,右边是分割结果。
      图二
    2. 求这个函数有很多方法,但是第一次将深度学习结合起来的是这篇文章全卷积网络(FCN),利用深度学习求这个函数。在此之前深度学习一般用在分类和检测问题上。由于用到CNN,所以最后提取的特征的尺度是变小的。和我们要求的函数不一样,我们要求的函数是输入多大,输出有多大。为了让CNN提取出来的尺度能到原图大小,FCN网络利用上采样和反卷积到原图像大小。然后做像素级的分类。可以看图二,输入原图,经过VGG16网络,得到特征map,然后将特征map上采样回去。再将预测结果和ground truth每个像素一一对应分类,做像素级别分类。也就是说将分割问题变成分类问题,而分类问题正好是深度学习的强项。如果只将特征map直接上采样或者反卷积,明显会丢失很多信息。

    图三
    3. FCN采取解决方法是将pool4、pool3、和特征map融合起来,由于pool3、pool4、特征map大小尺寸是不一样的,所以融合应该前上采样到同一尺寸。这里的融合是拼接在一起,不是对应元素相加。

    图四
    4. FCN是深度学习在图像分割的开山之作,FCN优点是实现端到端分割等,缺点是分割结果细节不够好,可以看到图四,FCN8s是上面讲的pool4、pool3和特征map融合,FCN16s是pool4和特征map融合,FCN32s是只有特征map,得出结果都是细节不够好,具体可以看自行车。由于网络中只有卷积没有全连接,所以这个网络又叫全卷积网络。

    ##Unet网络结构图五

    1. 很多分割网络都是基于FCNs做改进,包括Unet。Unet包括两部分,可以看右图,第一部分,特征提取,VGG类似。第二部分上采样部分。由于网络结构像U型,所以叫Unet网络。

      1. 特征提取部分,每经过一个池化层就一个尺度,包括原图尺度一共有5个尺度。
      2. 上采样部分,每上采样一次,就和特征提取部分对应的通道数相同尺度融合,但是融合之前要将其crop。这里的融合也是拼接。
        个人认为改进FCN之处有:
        1. 多尺度
        2. 适合超大图像分割,适合医学图像分割
    2. Unet——输入输出
      图六
      医学图像是一般相当大,但是分割时候不可能将原图太小输入网络,所以必须切成一张一张的小patch,在切成小patch的时候,Unet由于网络结构原因适合有overlap的切图,可以看图,红框是要分割区域,但是在切图时要包含周围区域,overlap另一个重要原因是周围overlap部分可以为分割区域边缘部分提供文理等信息。可以看黄框的边缘,分割结果并没有受到切成小patch而造成分割情况不好。
      3.Unet——反向传播
      Unet反向传播过程,大家都知道卷积层和池化层都能反向传播,Unet上采样部分可以用上采样或反卷积,那反卷积和上采样可以怎么反向传播的呢?那什么是反卷积呢?先来讲下卷积的过程

       				Y = Matrix_1(Filter)* Matrix_2(Image)
      

    Matrix_1和Matrix_2分别是将卷积核和图像转成矩阵函数。也就说给一个输入X,利用矩阵乘法能得到卷积后输出Y。

    								Y=C*X
    

    所以卷积可以分解成两个矩阵相乘。很显然,卷积反向传播就是C的转置相乘。举个例子:

    							Y=[1,2]*[X,x_1]T
    

    Y对x求导,dy/dx=[1,2]^T。
    图7
    反卷积就是转置卷积,也是一种卷积,可以看到图7,这个就是转置卷积,由小尺寸到大尺寸的过程。也就是说反卷积也可以表示为两个矩阵乘积,很显然转置卷积的反向传播就是也是可进行的。所以说整体是Unet是可以反向传播的。
    3.Unet——与其他结构比较之FPN
    这里写图片描述
    这是FPN检测网络,可以看到红框,如果将红框到过来可以发现,FPN部分结构和Unet相似之处。从而说明Unet网络结构是基于多尺度的。

    如果大家觉的文章有帮助或者有用,麻烦关注下我的个人公众号
    在这里插入图片描述

    展开全文
  • segmentation papers

    2017-11-17 14:20:55
    segmentation papers in CNN segmentation papers in CNN
  • hand_segmentation

    2018-04-17 11:38:38
    hand_segmentation hand_segmentation hand_segmentation
  • part segmentation:零件分割,给定一个形状,分割出它的不同零部件。 semantic segmentation:语义分割,给定一个场景,对它进行语义分割,即分割出不同类别,比如人,车,桌子等等。 instance segmentation:实例...

    classification:分类,给定一个形状,预测它的类别。
     part segmentation:零件分割,给定一个形状,分割出它的不同零部件。
     semantic segmentation:语义分割,给定一个场景,对它进行语义分割,即分割出不同类别,比如人,车,桌子等等。
     instance segmentation:实例分割,和语义分割相似,在语义分割的基础上进一步精确分割,能分割出同一类别中的不同实例,比如人这一类别中不同的人。
     

    展开全文
  • Segmentation Fault错误原因总结

    万次阅读 多人点赞 2017-09-01 17:24:52
    一、 什么是“Segmentation fault in Linux”所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存...

    一、 什么是“Segmentation fault in Linux”

    所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及相应的断限和页面交换还有程序运行级别和内存粒度等信息,一旦一个程序发生了越界访问,CPU就会产生相应的异常保护,于是segmentation fault就出现了。

    即“当程序试图访问不被允许访问的内存区域(比如,尝试写一块属于操作系统的内存),或以错误的类型访问内存区域(比如,尝试写一块只读内存)。这个描述是准确的。为了加深理解,我们再更加详细的概括一下SIGSEGV。段错误应该就是访问了不可访问的内存,这个内存要么是不存在的,要么是受系统保护的

    Ø SIGSEGV是在访问内存时发生的错误,它属于内存管理的范畴

    Ø SIGSEGV是一个用户态的概念,是操作系统在用户态程序错误访问内存时所做出的处理。

    Ø 当用户态程序访问(访问表示读、写或执行)不允许访问的内存时,产生SIGSEGV。

    Ø 当用户态程序以错误的方式访问允许访问的内存时,产生SIGSEGV。

    用户态程序地址空间,特指程序可以访问的地址空间范围。如果广义的说,一个进程的地址空间应该包括内核空间部分,只是它不能访问而已。

    二、 SIGSEGV产生的可能情况

    指针越界和SIGSEGV是最常出现的情况,经常看到有帖子把两者混淆,而这两者的关系也确实微妙。在此,我们把指针运算(加减)引起的越界、野指针、空指针都归为指针越界。SIGSEGV在很多时候是由于指针越界引起的,但并不是所有的指针越界都会引发SIGSEGV。一个越界的指针,如果不引用它,是不会引起SIGSEGV的。而即使引用了一个越界的指针,也不一定引起SIGSEGV。这听上去让人发疯,而实际情况确实如此。SIGSEGV涉及到操作系统、C库、编译器、链接器各方面的内容,我们以一些具体的例子来说明。

    (1)错误的访问类型引起

    #include<stdio.h>
    #include<stdlib.h>
    
    int main(){
        char *c = "hello world";
        c[1] = 'H';
    }

    上述程序编译没有问题,但是运行时弹出SIGSEGV。此例中,”hello world”作为一个常量字符串,在编译后会被放在.rodata节(GCC),最后链接生成目标程序时.rodata节会被合并到text segment与代码段放在一起,故其所处内存区域是只读的。这就是错误的访问类型引起的SIGSEGV。

    (2)访问了不属于进程地址空间的内存

    #include <stdio.h> 
    #include <stdlib.h>
    
    int main(){ 
        int* p = (int*)0xC0000fff; 
        *p = 10; 
    } 

    还有一种可能,往受到系统保护的内存地址写数据,最常见的就是给一个指针以0地址;

    int  i=0; 
    scanf ("%d", i);  /* should have used &i */ 
    printf ("%d\n", i);
    return 0; 

    (3)访问了不存在的内存

    最常见的情况不外乎解引用空指针了,如:

    int *p = null;
    *p = 1;

    在实际情况中,此例中的空指针可能指向用户态地址空间,但其所指向的页面实际不存在。

    (4)内存越界,数组越界,变量类型不一致等

    #include <stdio.h>
    
    int  main(){ 
            char test[1]; 
            printf("%c", test[10]); 
            return 0; 
    } 

    这就是明显的数组越界了,或者这个地址根本不存在。

    (5)试图把一个整数按照字符串的方式输出

    int  main() { 
        int b = 10; 
        printf("%s\n", b);
        return 0; 
    } 

    这是什么问题呢?由于还不熟悉调试动态链接库,所以我只是找到了printf的源代码的这里。

    声明部分:
       int pos =0 ,cnt_printed_chars =0 ,i ;
      unsigned char *chptr ;
      va_list ap ;
    %s格式控制部分:
    case 's':
          chptr =va_arg (ap ,unsigned char *);
          i =0 ;
          while (chptr [i ])
          {...
              cnt_printed_chars ++;
              putchar (chptr [i ++]);
      }

    仔细看看,发现了这样一个问题,在打印字符串的时候,实际上是打印某个地址开始的所有字符,但是当你想把整数当字符串打印的时候,这个整数被当成了一个地址,然后printf从这个地址开始去打印字符,直到某个位置上的值为\0。所以,如果这个整数代表的地址不存在或者不可访问,自然也是访问了不该访问的内存——segmentation fault。
    ​ ​类似的,还有诸如:sprintf等的格式控制问题,比如,试图把char型或者是int的按照%s输出或存放起来,如:

    #include <stdio.h>
    #include <string.h>
    char c='c';
    int i=10;
    char buf[100];
    printf("%s", c);        //试图把char型按照字符串格式输出,这里的字符会解释成整数,再解释成地址,所以原因同上面那个例子
    printf("%s", i);            //试图把int型按照字符串输出
    memset(buf, 0, 100);
    sprintf(buf, "%s", c);    //试图把char型按照字符串格式转换
    memset(buf, 0, 100);
    sprintf(buf, "%s", i);   //试图把int型按照字符串转换

    (6)栈溢出了,有时SIGSEGV,有时却啥都没发生

    ​大部分C语言教材都会告诉你,当从一个函数返回后,该函数栈上的内容会被自动“释放”。“释放”给大多数初学者的印象是free(),似乎这块内存不存在了,于是当他访问这块应该不存在的内存时,发现一切都好,便陷入了深深的疑惑。

    三、调试定位SIGSEGV

    在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的。实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除。但是手工“除虫”(debug),往往是效率低下且让人厌烦的,使用gdb来快速定位这些”段错误”的语句。其实还有很多其他的方法。对于一些大型一点的程序,如何跟踪并找到程序中的段错误位置就是需要掌握的一门技巧拉。

      1)在程序内部的关键部位输出(printf)信息,那样可以跟踪段错误在代码中可能的位置

      为了方便使用这种调试方法,可以用条件编译指令#ifdef DEBUG和#endif把printf函数给包含起来,编译的时候加上-DDEBUG参数就可以查看调试信息。反之,不加上该参数进行调试就可以。

      2)用gdb来调试,在运行到段错误的地方,会自动停下来并显示出错的行和行号
      这个应该是很常用的,如果需要用gdb调试,记得在编译的时候加上-g参数,用来显示调试信息。gcc应该都有安装的。

      首先安装gdb: sudo aot-get install gdb

    下面是对某个小程序的的调试过程截图:

      运行gcc的时候加上-g这个参数查看调试信息,

      l:(list)显示我们的源代码

      b 行号:在相应的行上设置断点,我在第六行设置

      r : run 运行程序至断点

      p:p(print)打印变量的值

      n:n(next)执行下一步 出现错误信息了

      c : continue 继续执行

      quit : 退出gdb

    这里写图片描述

    这里写图片描述

    防止Segmentation fault的出现需要注意:

    • 定义了指针以后记得初始化,在使用的时候记得判断是否为NULL;
    • 在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等;
    • 在变量处理的时候变量的格式控制是否合理等;
    展开全文
  • segmentation-开源

    2021-05-09 13:30:41
    多光谱图像区域合并分割。 请使用Subversion下载最新版本。 存储库地址为https://segmentation.svn.sourceforge.net/svnroot/segmentation
  • ImageSegmentation-源码

    2021-03-20 03:58:48
    ImageSegmentation
  • part segmentation:零件分割,给定一个形状,分割出它的不同零部件。 semantic segmentation:语义分割,给定一个场景,对它进行语义分割,即分割出不同类别,比如人,车,桌子等等。 instance segmentation:...
  • Instance Segmentation Semantic Segmentation

    千次阅读 2016-10-18 19:59:27
    Instance Segmentation 比 Semantic Segmentation 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 最近也在做跟这个相关的问题,来分享一下自己的见解. 图1. 这张图清楚说明了image ...
  • Image Segmentation 图像分割 Image Segmentation 图像分割 Image Segmentation 图像分割 Image Segmentation 图像分割
  • 作者:周博磊 ...来源:知乎 著作权归作者所有,转载请联系作者获得授权。... 这张图清楚说明了image classification, object detection, semantic segmentation, instance segmentation之间的关系. 摘自C...
  • Segmentation Fault

    2020-05-12 08:34:49
    Segmentation Fault 最近做题总是会出现Segmentation Fault 的问题,现在将原因进行查找分析。 错误的原因:访问的内存超出了系统所给这个程序的内存空间,程序访问不被允许访问的内存区域,或者用错误的类型访问...
  • Efficient Graph-Based Image Segmentation & k-means Image Segmentation
  • Semantic Segmentation, Edge Detection,State of Art
  • Segmentation fault

    2021-06-04 14:06:39
      在 Unix/Linux 类的操作系统中编译程序时出现 Segmentation fault 的提示,这条消息说明该程序试图访问未分配的内存。
  • brain_segmentation-master

    2018-04-19 10:07:06
    brain_segmentation-master brain_segmentation-master brain_segmentation-master
  • IIC-segmentation-源码

    2021-03-26 23:07:54
    IIC-segmentation
  • 【Semantic SegmentationSegmentation综述

    千次阅读 2018-11-25 20:43:00
    【Semantic SegmentationSegmentation综述 部分转自:https://zhuanlan.zhihu.com/p/37618829 一.语义分割基本介绍 1.1 概念 语义分割(semantic segmentation) : 就是按照“语义”给图像上目标...
  • tf-segmentation-源码

    2021-03-10 17:17:36
    tf-segmentation
  • rat_segmentation-源码

    2021-02-13 07:18:53
    rat_segmentation
  • SemanticSegmentation-源码

    2021-04-05 02:24:01
    克隆仓库git clone https://github.com/MR3z4/SemanticSegmentation.git 运行训练代码python main.py 用法 它将随着时间的推移完成。 路线图 多GPU支持 增加RMI损失 添加用于训练的混音选项 毫不犹豫地添加混音...
  • keras-segmentation Implementation is not original papers. The purpose of this project is to get started with semantic segmentation and master the basic process. FCN32/8、SegNet、U-...
  • matlab代码影响iph_segmentation 这是一个带有神经网络的图像分割项目,旨在区分野外图像上的IPH(枕内-碎屑岩熔岩)。 该管道的下游(当前不在此文件夹中)是%IPH的分析+计算和玄武岩的渗透率特征(了解有关%IPH...
  • Image Segmentation

    千次阅读 2018-05-28 05:29:35
     语义分割(semantic segmentation)2. 目标检测(object detection)3. 目标识别(object recognition)4. 实例分割(instance segmentation)一、语义分割首先需要了解一下什么是语义分割(semantic segmentation).语义...
  • Semantic Segmentation

    千次阅读 2017-10-26 16:28:13
    Semantic Segmentation Deep Dual Learning for Semantic Image Segmentation-2017 [Paper]Segmentation-Aware Convolutional Networks Using Local Attention Masks - 2017 [Paper] [Code-Caffe][Project]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,885
精华内容 27,154
关键字:

segmentation