精华内容
下载资源
问答
  • 金字塔分割算法

    2015-12-06 13:55:45
    这是我参考大神的作品,金字塔分割算法的大概意思就是,像金字塔那样,上层都是以下层为基础的,所以只要上下层之间在某个阈值1内就可以形成链接关系,而同之间的差值在阈值2范围内,就能确定他们的同层关系,opencv...

    这是我参考大神的作品,金字塔分割算法的大概意思就是,像金字塔那样,上层都是以下层为基础的,所以只要上下层之间在某个阈值1内就可以形成链接关系,而同之间的差值在阈值2范围内,就能确定他们的同层关系,opencv有专门的函数来实现这种算法,pyrSegmentation,这个函数的参数可以轻松地查到,我把程序贴在下面:

    #include "cv.h"
    #include "highgui.h"
    #include <opencv2/legacy/legacy.hpp>
    int main(){
    IplImage *img1 = cvLoadImage("rice.png",CV_LOAD_IMAGE_UNCHANGED);
        IplImage *img2 = cvCreateImage(cvSize(img1->width,img1->height), IPL_DEPTH_8U, 1);
        cvNamedWindow("Origion");
        cvNamedWindow("PyrSegmentation");
        CvMemStorage *storage = cvCreateMemStorage(0);
        CvSeq *cmp = NULL;
        cvPyrSegmentation(img1, img2, storage, &cmp, 8, 150, 30);
        cvShowImage("Origion", img1);
        cvShowImage("PyrSegmentation", img2);
        cvWaitKey(0);
        cvReleaseImage(&img1);
        cvReleaseImage(&img2);
        cvDestroyAllWindows();
    return 0;
    }


    有以下几个说明,#include <opencv2/legacy/legacy.hpp>这一句包含了PyrSegmentation()函数,源图像必须是灰度图,而且像素数是偶数。

    展开全文
  • 金字塔图像分割,对于对比度明显的图片 可直接识别出想要的物体
  • 这是用Matlab写的基于形态学经典理论的分割程序。只实现了第一步的原始分割,完整的理论还有多次分割提取最优的过程,这里不展开。有机会把第二部分也写出来。
  • 学习金字塔分割算法:需要建立一个CvMemStorage* storage = cvCreateMemStorage(0)#include"cv.h" #include"highgui.h" int main() { IplImage* src=cvLoadImage("D:/1.jpg",1); //图像大小必须能被2^level整除 ...
    学习金字塔分割算法:需要建立一个CvMemStorage* storage = cvCreateMemStorage(0)
    
    #include"cv.h"
    #include"highgui.h"
    
    int main()
    {
    	IplImage* src=cvLoadImage("D:/1.jpg",1);
    	//图像大小必须能被2^level整除
    	IplImage* resize=cvCreateImage(cvSize(512,512),8,3);
    	IplImage* dst=cvCreateImage(cvSize(512,512),8,3);
    	cvResize(src,resize);
    
    	CvMemStorage* storage = cvCreateMemStorage(0);
    	CvSeq* comp = NULL;
    	cvPyrSegmentation(resize,dst,storage,&comp,6,200,50);
    	cvReleaseMemStorage(&storage);
        cvNamedWindow( "show", 1 );      
    	// Show the image in the named window       
    	cvShowImage( "show", dst );  
    	// Press any key to exit.   
    	cvWaitKey(0);      
    	// Clean up and don’t be piggies   
        cvDestroyWindow( "show");  
    	cvReleaseImage( &src );  
        cvReleaseImage( &dst );  
    	return 0;  
    
    }

     

    http://blog.csdn.net/gnuhpc/article/details/4284463还是这位大牛写得比较好

    展开全文
  • 图像分割--金字塔分割算法

    千次阅读 2014-09-26 10:28:43
    金字塔实现图像分割 void cvPyrSegmentation( IplImage* src, IplImage* dst, CvMemStorage* storage, CvSeq** comp,int level, double threshold1, double threshold2 ); src 输入图像. dst 输出图像...
    PyrSegmentation
    用金字塔实现图像分割

    void cvPyrSegmentation( IplImage* src, IplImage* dst, CvMemStorage* storage, CvSeq** comp, int level, double threshold1, double threshold2 );
    src
    输入图像.
    dst
    输出图像.
    storage
    Storage: 存储连通部件的序列结果
    comp
    分割部件的输出序列指针 components.
    level
    建立金字塔的最大层数
    threshold1
    建立连接的错误阈值
    threshold2
    分割簇的错误阈值
    函数 cvPyrSegmentation 实现了金字塔方法的图像分割。金字塔建立到 level 指定的最大层数。如果 p(c(a),c(b))<threshold1,则在层 i 的象素点 a 和它的相邻层的父亲象素 b 之间的连接被建立起来,

    定义好连接部件后,它们被加入到某些簇中。如果p(c(A),c(B))<threshold2,则任何两个分割 A 和 B 属于同一簇。

    如果输入图像只有一个通道,那么

    p(c1,c2)=|c1-c2|.
    如果输入图像有单个通道(红、绿、兰),那幺

    p(c1,c2)=0,3·(c1r-c2r)+0,59·(c1g-c2g)+0,11·(c1b-c2b) .

    每一个簇可以有多个连接部件。图像 src 和 dst 应该是 8-比特、单通道 或 3-通道图像,且大小一样 

    实验实例:

    #include <iostream>  
    #include<opencv2\highgui\highgui.hpp>
    #include<opencv2\opencv.hpp>
    #include<opencv2\legacy\legacy.hpp>//cvPyrSegmentation函数要加这个头文件
    //#pragma comment(lib, "opencv_legacy249d.lib")
      
    using namespace std;    
    using namespace cv;
     
    void cvPyr( IplImage* src, IplImage* dst);
    static void ShowHelpText() ;
    
    int main(int argc, char** argv)
    {
    	IplImage* src, *dst;
    	CvMemStorage* storage=cvCreateMemStorage(0);
    	ShowHelpText();
    	if (argc==2 && (src=cvLoadImage(argv[1],-1))!=0)
    	{
    		return -1;
    	}
    	else
    	{
    		src=cvLoadImage("lena.jpg",1);
    	}
    	dst = cvCreateImage( cvGetSize(src), src->depth, src->nChannels);
        cvPyr( src, dst);
        // Create a named window with a the name of the file.
        cvNamedWindow( "src", 1 );
        // Show the image in the named window
    	cvShowImage( "src", src );
    	cvShowImage( "dst", dst );
        // Press any key to exit.
        cvWaitKey(0);
        // Clean up and don’t be piggies
        cvDestroyWindow( "src" );
        cvReleaseImage( &src );
    	 cvDestroyWindow( "dst" );
        cvReleaseImage( &dst );
    
        return 0;
    	
    }
    static void ShowHelpText()    
    {    
        //输出一些帮助信息    
    	cout<<endl<<"图像分割--金字塔分割示例程序~"<<endl<<endl;
    	cout<<"当前使用的OpenCV版本为 OpenCV "<<CV_VERSION<<endl;
    	cout<<endl<<"键盘按键任意键- 退出程序"<<endl;
    } 
    void cvPyr( IplImage* src, IplImage* dst )
    {
        CvMemStorage* storage = cvCreateMemStorage(0);
        CvSeq* comp = NULL;
        cvPyrSegmentation( src, dst, storage, &comp, 2, 150, 100 );
        cvReleaseMemStorage( &storage );
    }


    展开全文
  • 关于彩色图像的图像分割算法,算法直接调用Opencv函数库函数,简单方便!
  • 导读本文是通道注意力机制的又一重大改进,主要是在通道注意力的基础上,引入多尺度思想,本文主要提出了金字塔分割注意力模块,即PSA module。进一步,基于PSA ,我们将PSA注意力模...

    导读

     

    本文是通道注意力机制的又一重大改进,主要是在通道注意力的基础上,引入多尺度思想,本文主要提出了金字塔分割注意力模块,即PSA module。进一步,基于PSA ,我们将PSA注意力模块替换ResNet网络Bottleneck中的3x3卷积得到了新的EPSA block。EPSA block可以作为一种“即插即用”模块用于现有骨干网络并显著提升性能。因此,我们将构建的骨干网络称之为EPSANet。相比其他注意力机制(比如SENet、ECANet、FcaNet等),EPSANet在图像分类、目标检测以及实例分割任务上均取得了显著性能提升。

    • 链接:https://arxiv.org/abs/2105.14447

    • 代码地址:https://github.com/murufeng/EPSANet

    Abstract & Introduction

    已有研究表明:将注意力模块嵌入到现有CNN中可以带来显著的性能提升。比如,SENet、BAM、CBAM、ECANet、GCNet、FcaNet等注意力机制均带来了可观的性能提升。但是,目前仍然存在两个具有挑战性的问题需要解决。一是如何有效地获取和利用不同尺度的特征图的空间信息,丰富特征空间。二是通道注意力或者或空间注意力只能有效捕获局部信息,而不能建立长期的依赖关系。最新的一些方法虽然能有效解决上述问题,但是他们同时会带来巨大的计算负担。基于此,本文首先提出了一种新颖的轻量且高效的PSA注意力模块。PSA模块可以处理多尺度的输入特征图的空间信息并且能够有效地建立多尺度通道注意力间的长期依赖关系。然后,我们将PSA 模块替换掉ResNet网络Bottleneck中的3x3x卷积,其余保持不变,最后得到了新的EPSA(efficient pyramid split attention) block.基于EPSA block我们构建了一个新的骨干网络称作:EPSANet。它既可以提供强有力的多尺度特征表示能力。与此同时,EPSANet不仅在图像识别任务中的Top-1 Acc大幅度优于现有技术,而且在计算参数量上有更加高效。具体效果:如下图所示,

    总而言之,无需任何技巧,EPSANet取得了优于当前最好的通道注意力模型的性能。相比SENet-50,本文所提方案在图像分类Top-1 acc上取得了1.93%的精度提升,在目标检测任务上取得2.7 boxAP 提升,在实例分割任务上取得了1.7 mAP 提升。

    主要创新点及贡献如下:

    1. 本文提出了一种新的高效金字塔注意力分割模块(Efficient Pyramid Split Attention, EPSA),该模块可以有效地提取更细粒度的多尺度空间信息,同时可以建立更长距离的通道依赖关系。EPSA模块非常灵活和可扩展的,因此可以直接应用到各类计算机视觉网络架构中。

    2. 本文提出了一种新的骨干网络:EPSANet,它可以学习更丰富的多尺度特征表示,同时可以自适应地对多维度的通道注意力权重进行特征重标定。

    3. 大量实验表明,EPSANet可以在ImageNet和COCO数据集实现图像分类、目标检测和实例分割任务上的性能提升。

    模型方法:

    首先简要回顾一下SENet模块,主要是提取通道注意力权重,具体所下所示:计算公式如下:

    注意力权重计算如下:

    PSA模块:本文主要是建立一个更高效的通道注意力机制。为此,我们主要提出了一种新的金字塔分割注意力(PSA)模块。如图3所示,PSA模块主要通过四个步骤实现。

    • 首先,利用SPC模块来对通道进行切分,然后针对每个通道特征图上的空间信息进行多尺度特征提取;

    • 其次,利用SEWeight模块提取不同尺度特征图的通道注意力,得到每个不同尺度上的通道注意力向量;

    • 第三,利用Softmax对多尺度通道注意力向量进行特征重新标定,得到新的多尺度通道交互之后的注意力权重。

    • 第四,对重新校准的权重和相应的特征图按元素进行点乘操作,输出得到一个多尺度特征信息注意力加权之后的特征图。该特征图多尺度信息表示能力更丰富。SPC模块:由上图所示,在PSA module中实现多尺度特征提取的重要模块就是SPC,如下图所示:

    针对输入特征图 ,首先将特征图 切分为 个部分,用  来表示,每个分割的部分的通道数都为 .同时,每个分割之后的特征图因此,针对划分出来的每个通道特征图,我们应用多尺度卷积的方式来提取不同尺度特征图的空间信息,这里我们主要运用多尺度卷积核分组卷积,分组卷积的作用主要是用来降低参数量。与此同时,我们还探索了一种根据卷积核的大小来自适吟选择Group大小的策略。根据实验结果,Group与Kernel size的关系式为: . 因此多尺度特征提取的过程具体计算方式如下:

    这里,

    最后我们可以得到多尺度融合之后的特征图:

    这里 在提取多尺度特征图之后,我们需要对不同尺度的特征图 进行通道注意力权重提取,具体计算如下:

    并且 然后,整个多尺度通道注意力权重向量为:

    为了建立长期的通道注意力依赖,并且实现多尺度通道注意力之间的信息交互。我们进一步利用Softmax来对通道注意力信息进行权值重标定。

    最后,我们将对应尺度的特征图 与进行权值重标定的注意力向量进行 channel-wise级别的相乘,即:

    最后,我们将得到的多尺度通道注意力加权之后的特征图进行维度拼接,最后输出得到一个多尺度信息更为丰富的特征图,具体计算如下:

    Experiments

    下表给出了EPSANet在ImageNet上与其它网络结构的性能对比,从中可以看到:

    • 相比ResNet50,EPSANet50-Small在Top-1 acc上提高了2.29%,且参数量减少了11.7%,计算量减少了12.1%;

    • EPSANet50-Small取得了与SENet101相似的精度,但参数量却节省了54.2%,计算量节省了53.9%;

    • 相比ResNet101,SENet101,EPSANet101-Small分别在Top-1 acc上提高了1.6%和0.81%,并分别节省了12.7%与21.1%的计算资源;

    • 相比SENet,ECANet,FcaNet,EPSANet-50(large)分别在Top-1 acc上提高了1.93%,1.16%,0.12%。

    • 在与SENet101和CBAM具有相同参数量的情况下,EPSANet-101(large)在Top-1 acc上提高了1.76%和0.89%.

    表3给出了EPSANet-50(small)和EPSANet-50(large)在COCO数据集上进行目标检测任务的性能对比,从中可以看到:我们的方法取得了最佳检测性能;具体来说:

    • EPSANet50(Small)以更少的参数量、更低的计算量超过了SENet50;

    • EPSANet50(Large)在所有检测器上都取得了当前最优的性能。

    • 上述实验结果表明:EPSANet具有很好的泛化性能,可以非常容易应用到其他下游任务。

    表4给出了COCO数据集上实例分割的性能对比,很明显:

    • PSA注意力模块实现了最好的性能,超越了当前其它注意力模块。

    • 与当前性能最好的通道注意力方法FcaNet相比,EPSANet50-Large分别在AP、AP_50、AP_75这三个指标上提高了0.9%,0.4%,1.4%。

    总结

    本文主要提出了一种高效的、即插即用的、轻量级金字塔分割注意力(Pyramid Split Attention, PSA)模块。该注意力模块能够充分提取多尺度特征图空间信息以及实现跨维度通道注意力重要特征交互。基于PSA module,我们提出了一种高效的金字塔注意力分割(EPSA) block,它可以提高模型更细粒度的多尺度特征表示的能力,同时在多尺度通道注意力间建立了一种更长距离的特征依赖关系。最后,本文提出的EPSANet骨干网络有效地融合了多尺度上下文空间信息和图像级别的分类特征。通过大量的定性和定量实验表明,与传统的通道注意力机制相比,本文所提出的EPSANet在图像分类、目标检测和实例分割方面可以达到最先进的性能。未来,我们还将研究我们的PSA模块更轻量级的CNN架构中的性能。

    推荐阅读

    重磅!DLer-CVPR2021论文分享交流群已成立!

    大家好,这是CVPR2021论文分享群里,群里会第一时间发布CVPR2021的论文解读和交流分享会,主要设计方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。

    进群请备注:研究方向+学校/公司+昵称(如图像分类+上交+小明)

    ???? 长按识别,邀请您进群!

    展开全文
  • 全球地理范围二三维空间划分金字塔示意图:
  • 图像金字塔包括高斯金字塔和拉普拉斯金字塔两种实现形式。 1、高斯金字塔:(向下取样,缩小图像) 高斯金字塔的实现包括两步:高斯低通滤波和下采样。首先利用高斯核对图像进行卷积;然后进行下采样,得到不同尺度...
  • 待续 转载于:https://www.cnblogs.com/tyen0921/p/4966291.html
  • 引入通道注意力,并加入多尺度思想,提出金字塔分割注意力模块,PSA module; 论文的方法(默认已经对CenterNet有所了解): 建立PSA模块,主要包含以下4个步骤 1,利用SPC模块提取通道特征图上的多尺度特征 很多...
  • 学习OpenCV——金字塔分割(Trackbar)

    千次阅读 2012-03-23 11:32:44
    运行结果可能会出问题,还是用上一篇的定值效果比较好。 #include"cv.h" #include"highgui.h" char wndname[] = "Show"; char tbarname0[] = "Level"; char tbarname1[] = "Threshold1";...int edge
  • opencv 金字塔图像分割

    千次阅读 2016-04-10 13:07:47
    我所知的opencv中分割函数:watershed(只是看看效果,不能返回每类pixel...金字塔分割原理篇在这里,本文只提供代码。 Segment函数: [cpp] view plain copy   #include  #in
  • 图像分割指的是将数字图像细分为多个图像子区域的过程,在OpenCv中实现了三种跟图像分割相关的算法,它们分别是:金字塔分割算法,分水岭分割算法以及均值漂移分割算法。它们的使用过程都很简单,刚开始学习opencv,先...
  • 金字塔图像分割 图像金字塔 1. 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。 2. 图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是...
  • 图像分割指的是将数字图像细分为多个图像子区域的过程,在OpenCv中实现了三种跟图像分割相关的算法,它们分别是:分水岭分割算法、金字塔分割算法以及均值漂移分割算法。 分水岭分割算法 分水岭分割算法需要您或者...
  • pyramidSegment金字塔图像分割方法C++代码_亲测可用
  • 提出了一种数学形态金字塔图像分割算法。学报上发表的文献
  • 高斯金字塔图像分割

    千次阅读 2014-08-20 09:48:26
    基于高斯金子塔的图像分割的原理是,根据相邻金字塔采样的原理可知,上层金字塔是下层金字塔下采样得到,那么上层金子塔的一个点和下层 金字塔的四个点就有一个映射关系,若他们的差值小于threshold1,则被连接建立...
  • 采用金字塔方法进行图像分割.rar 采用金字塔方法进行图像分割.rar
  • OpenCV学习——金字塔图像分割

    千次阅读 2009-06-21 09:44:00
    本文已搬家至【OpenCV学习】金字塔图像分割

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,111
精华内容 4,844
关键字:

金字塔分割