精华内容
下载资源
问答
  • %批量把文件夹中的mask 转换为 轮廓 clear,clc Original_image_dir = 'C:\Users\11549\Desktop\Object_Contour_Encoder-Decode\tensorflow-object-contour-detection-master\spliced_NIST\masks\'; fpath = fullfile...
    %批量把文件夹中的mask 转换为 轮廓
    clear,clc
    Original_image_dir  = 'C:\Users\11549\Desktop\Object_Contour_Encoder-Decode\tensorflow-object-contour-detection-master\spliced_NIST\masks\';
    fpath = fullfile(Original_image_dir, '*.png');
    im_dir  = dir(fpath);
    im_num = length(im_dir);
    
    for i=1:im_num
        str1=im_dir(i).name;
     
        I =imread(fullfile(Original_image_dir, im_dir(i).name));
        contour = bwperim(~I,4);
        B6=ones(5,5);
        Z1=imerode(~contour,B6);
        
        str3= ['C:\Users\11549\Desktop\Object_Contour_Encoder-Decode\tensorflow-object-contour-detection-master\spliced_NIST\groundtruth\',str1];
        imwrite(double(~Z1), str3);
        
    end

     

    展开全文
  • MATLAB编程技巧:设置Simulink模块中的mask属性 通过m代码设置Simulink中Subsystem的mask属性,也可以直接删除mask上的注释 下面展示一些 内联代码片。 % 设置subsysytem中的mask % Example: % SubsystemMaskSet('...

    MATLAB编程技巧:设置Simulink模块中的mask属性

    通过m代码设置Simulink中Subsystem的mask属性,也可以直接删除mask上的注释

    下面展示一些 内联代码片

    % 设置subsysytem中的mask
    % Example:
    %        SubsystemMaskSet('Model')   
    
    %% File Content
    function SubsystemMaskSet(ModelName)
    All_Subsystem = getfullname(Simulink.findBlocks(ModelName,'BlockType','SubSystem'));
    
    for i = 1 : size(All_Subsystem)
        
        if ischar(All_Subsystem)
            open_system(All_Subsystem);
        else
            open_system(All_Subsystem{i});
        end
        
        set_param( gcs,'ContentPreviewEnabled','off');
        
        set_param( gcs, 'Mask', 'on' );
        
        set_param( gcs, 'MaskDisplay', '' );
        %set_param( destination_path, 'MaskDisplay', [ 'image(imread(''', block.picture, '''))' ] );
        
        set_param( gcs, 'MaskIconFrame', 'off' );
    end
    
    展开全文
  • 作者:Kayo Yin编译:ronghuaiyang导读只使用1349张图像训练Mask-RCNN,有代码。...在这些任务,我们依靠机器能力来识别物体。我们经常看到与目标识别相关任务有4个:分类和定位、目标检测、语义分割和...

    作者:Kayo Yin

    编译:ronghuaiyang

    导读

    只使用1349张图像训练Mask-RCNN,有代码。

    代码:https://github.com/kayoyin/tiny-inst-segmentation

    6c48413ace9f18c7d55847f73ed09c5f.png

    介绍

    计算机视觉的进步带来了许多有前途的应用,如自动驾驶汽车或医疗诊断。在这些任务中,我们依靠机器的能力来识别物体。

    我们经常看到的与目标识别相关的任务有4个:分类和定位、目标检测、语义分割和实例分割。

    21609856c3cd7eb6eb3a9651d4594e46.png

    分类和定位中,我们感兴趣的是为图像中目标的分配类标签,并在目标周围绘制一个包围框。在这个任务中,要检测的目标数量是固定的

    物体检测不同于分类和定位,因为这里我们没有预先假设图像中物体的数量。我们从一组固定的目标类别开始,我们的目标是分配类标签,并在每次这些类别中的一个目标出现在图像中时绘制边界框。

    语义分割中,我们为每个图像像素分配一个类标签:所有属于草的像素被标记为“grass”,属于羊的像素被标记为“sheep”。值得注意的是,例如,这个任务不会对两只羊产生区别。

    我们的任务是实例分割,它建立在目标检测和语义分割之上。在目标检测中,我们的目标是在预定义的类别中标记和定位目标的所有实例。但是,我们没有为检测到的目标生成边界框,而是进一步识别哪些像素属于该目标,就像语义分割一样。与语义分割不同的是,实例分割为每个目标实例绘制一个单独的掩码,而语义分割将为同一类的所有实例使用相同的掩码。

    在本文中,我们将在一个很小的Pascal VOC数据集上训练一个实例分割模型,其中只有1349张图像用于训练,100张图像用于测试。这里的主要挑战是在不使用外部数据的情况下防止模型过拟合。

    数据处理

    标注采用COCO格式,因此我们可以使用pycocotools中的函数来检索类标签和掩码。在这个数据集中,共有20个类别。

    dbacf7f21bffe82cc190ed388daf71f3.png

    下面是一些训练图像和相关mask的可视化显示。mask的不同阴影表示同一目标类别的多个实例的不同掩码。

    f7cb60b184609758e9ba4ce35e3f7752.png

    图像的大小和长宽比各不相同,因此在将图像输入模型之前,我们调整每个图像的尺寸500x500。当图像尺寸小于500时,我们对图像进行优化,使最大边的长度为500,并添加必要的零以获得正方形图像。

    8abd791e2e57e92c63d1db0a6e2e0f75.png

    为了使模型能够很好地泛化,特别是在这样一个有限的数据集上,数据增强是克服过拟合的关键。对于每一个图像,以0.5的概率水平翻转,以0.9到1倍的尺度进行随机剪裁,以0.5的概率进行高斯模糊,标准差为随机,对比度随机调整尺度为0.75和1.5之间,亮度随机调整尺度在0.8和1.2之间,以及一系列随机仿射变换如缩放、平移、旋转,剪切。

    Mask-RCNN

    我们使用matterport实现的Mask-RCNN进行训练。虽然结果可能会很好看,但我们不会用MS COCO的预训练权重来展示我们如何只用1349张训练图像就能得到好的结果。

    Mask-RCNN是在2017年Mask-RCNN论文中提出的,是同一作者对Faster-RCNN的扩展。Faster-RCNN被广泛应用于目标检测,模型在被检测物体周围生成包围盒。Mask-RCNN进一步生成了目标的mask 。

    我将在下面简要介绍模型体系结构。

    e968b28e930a82bfc7197315068a0cec.png

    首先,我们使用一个主干模型从输入图像中提取相关的特征。在这里,我们使用ResNet101架构作为骨干。图像由张量(500,500,3)转换为特征图(32,32,2048)。

    然后将之前获得的特征输入到一个区域建议网络(RPN)中。RPN扫描feature map的区域,称为anchors,并尝试确定包含目标的区域。这些anchor的尺寸和纵横比各不相同。RPN为每个anchor分配一个类别:前景(正样本anchor)或背景(负样本anchor)。中性anchor是指不影响训练的anchor。

    a8d6d4567d6300d8f4eb78cb096f66f0.png

    正样本anchors(左),中性anchors(中),负样本anchors(右)

    建议层然后挑选最有可能包含目标的anchor,并优化anchor框以更接近目标。当太多anchor点重叠时,只保留前景分数最高的那个(非最大抑制)。这样,我们就得到了感兴趣的区域 (ROI)。

    32f9e72a8e5c8c1fba92f1c1eb7f699d.png

    对于每个由ROI分类器选中的目标区域,模型生成28x28的mask。在训练过程中,将 ground truth mask缩小,用预测的mask计算损失,在推理过程中,将生成的mask放大到ROI的边界框大小。

    迁移学习

    特别是在数据有限的情况下,更快更好地训练模型的关键是迁移学习Imagenet数据集是一个巨大的自然图像语料库,类似于我们的图像。因此,我们可以将Resnet101骨干模型的权值初始化为在Imagenet上预先训练的权值。这将提高我们得到的特征图的准确性,从而提高整个模型。

    ddf31ab7be18753dd1cdda5876080d9c.png

    为了微调在Imagenet上预训练的模型,我们首先只训练model heads。然后我们在剩下的epochs中训练从ResNet level 4和以上的层。这个训练方案也有助于最小化过拟合。我们可以不去微调第一层,因为我们可以重用模型从自然图像中提取特征的权重。

    结果 & 检测pipeline可视化

    我们的测试集上获得的mAP为0. 53650。下面是随机选择测试图像的模型输出的一些可视化结果:

    88538091e1e6d72cd27673989336c0b5.png

    我们还可以看到算法不同步骤的输出。下面,我们有在边界框细化之前的top anchors的得分。

    ec48a3ef14f3387203783dceb8cd7256.png

    接下来,我们有了细化的边界框和非最大抑制后的输出。这些建议然后被输入分类网络。注意,在这里,我们有一些框框住了一些目标,比如标志,这些目标不属于我们定义的目标类别。

    03576325317117f2270f9306081be595.png

    在建议区域上运行分类网络,得到正样本的检测,生成类概率和边界框回归。

    6aa2eeac9d588ebeb88113b5efe7b0f8.png

    在得到边界框并对其进行细化后,实例分割模型为每个检测到的目标生成mask。mask是soft masks(具有浮点像素值),在训练时大小为28x28。

    d1e13a7a00e54392d1a38dfb9a4d3a40.png

    最后,预测的mask被调整为边界框的尺寸,我们可以将它们覆盖在原始图像上以可视化最终的输出。

    738f94d96c0799ac1cba3b9c05f10720.png

    英文原文:https://towardsdatascience.com/overcome-overfitting-during-instance-segmentation-with-mask-rcnn-32db91f400bc

    更多内容,请关注微信公众号“AI公园”。

    展开全文
  • 首先,matlab中any函数:检测矩阵mask中是否有非零元素,如果有,返回1,;如果没有非零元素,即所有元素都是0,那么则返回0。 assert()是一个调试程序时经常使用宏,在程序运行时它计算括号内表达式,如果...

    首先,matlab中any函数:检测矩阵mask中是否有非零元素,如果有,返回1,;如果没有非零元素,即所有元素都是0,那么则返回0。

    assert()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为false,程序将报告错误,并且终止执行;如果表达式不为0,即为true,则继续执行后面的语句。

    所以, assert(any(mask(:)));语句的意思是,如果mask中全都是0元素,则程序将报告错误,并且终止执行。

    转载于:https://www.cnblogs.com/rong86/p/5366828.html

    展开全文
  • matlab里面motion c++实现,返回是一个双指针矩阵。需要输入角度以及距离;double PI=3.1415926;int sx, sy;float *mask=0;float *mask2=0;int mask_width;int mask_height;float half = (length-1)/2;float phi...
  • 比如以图像某点为中心,取到中心距离<n点集 for循环来计算距离比较耗时 x = 1:rows; //rows为图像行数 y = 1:cols; //cols为图像列数 [xx,yy] = meshgrid(y,x); dist = (yy-row).^2 + (xx-col).^2; //...
  • matlab——遍历文件夹中的图像

    千次阅读 2018-05-29 19:41:54
    matlab——遍历文件夹中的图像任务:遍历多个文件夹的子文件夹中的多张同等尺寸的图片(png格式),将其二值图合并为一张二值图,并保存到上级文件夹中。说明:目标:matlab代码:close all;clear all;clc; %% 合并...
  • 文章目录传递函数由来MATLAB simulink子系统封装simulink子系统mask绘制完整流程图--运行显示绘制子系统传递函数bode图、nyquist图、step图等修改参数后两个图相比较: 传递函数由来 MATLAB simulink子系统...
  • matlab中使用unique函数获取某向量中不重复数值的集合时,默认会对这个集合中的元素排序。在某些应用场合当中,这种排序会带来某种不方便,这里实现了一个保持原来数值顺序的unique函数。程序代码function ...
  • squeeze()是来减少一个维度的 unsqueeze()是来增加一个维度的 pytroch ...print(mask.shape,'初始的mask维度') mask = mask.unsqueeze(-1) #在最后增添一维 print(mask.shape,'增加一个维度以后'
  • This script is being used for image processing by multiplying a set of 2000 images with a mask and then summing the values in each frame. These values are entered into a row vector called Intensity.I ...
  • 待处理眩光图grids.png一个Matlab代码提示How to remove the glare and brightness in an image (Image preprocessing)?m_img = cv2.medianBlur(img,5) ret,th1 = cv2.threshold(m_img,180,255,cv2.THRESH_BINARY) ...
  • php中的matlab函数输出

    2016-10-16 02:00:31
    <p>Hello everyone please i need help with this issue.I have a matlab function that returns a value 'pourcentage' i want to retrieve this value in php file . here is my function <pre><code> function ...
  • 1.首先获取训练样本数据。 在arcmap中人工的圈出各个种类的...具体的步骤为 toolbox中的spatial analysis tools下的extraction by mask功能。 对选中的样本数据进行裁剪。 裁剪得到的结果即为各个类别的样本的栅格数据
  • 参考:https://www.cnblogs.com/bithuaning/p/6925037.html 测试: arr=[1 2 3;4 5 6;7 8 9] mask=[1 0 1;0 1 0;1 0 1]; ret = arr.*mask
  • 关于simulink中xy graph中的图形编辑问题平台:MATLAB2014在simulink仿真时,经常用到XY graph来显示波形图,但是会遇到不能编辑标题,XY轴的名称,如图:解决办法:选中xy Graph,然后点鼠标右键,点look under mask...
  • Simulink对于工科生来说,必不可少,它应用大大缩减了我们产品开发成本与开发周期,但是随着其不断地更新换代,对于算法精确度越来越高,现实我们对系统要求也越来越高... 模型有一个 MATLAB 函数块 :...
  • (2)mark_rect.py 将视频分成多个帧,在每一帧中将运动对象用矩形标注出来,并生成mask图,将mask图保存到“mask”目录下。 (3)merge.py 拼接图片,将视频原始帧图片和各个帧遮罩层进行拼接,获得拼接后...
  • 记录一些简单matlab用法 matlab中mask与原图像叠加 -eg. 原图为RGB图像,由matlab读入之后,经处理得到而知图像,其与原图像叠加可以这样写:im(mask) = 0; 可方便理解。
  • 简短回答是您可以使用nlfilter,您可以在其中指定图像像素邻域操作 . 具体来说,你会像这样调用 nlfilter :B = nlfilter(A, [m n], fun);A 将是一个图像, [m n] 将指定您正在考虑像素邻域大小( m x n )...
  • 封装完成后,将封装好模块添加到自定义simulink库,方便建模日常使用Matlab版本:2018a1、封装子系统创建1.1 功能模型搭建创建如上所示模型,该模块实现了下降沿检测逻辑功能,其中date...
  • 今天重新回到MATLAB/simulink,介绍是关于模块封装介绍。首先搭建一个简单模型:全选,点击右键,createsubsystemfromselection。然后选中subsystem点击右键,选择mask-createmask出现下面面板第一个部分...
  • 我想在Python使用edge() Matlab函数:mask = double(edge(mask,'canny',threshold));我试图找到一个等效于Pythonedge() Matlab函数函数。 我曾在那个论坛上尝试过建议先用高斯模糊对图像进行模糊处理,但结果...
  • count = length(find(mask(:)>0))
  • &gt;&gt; mask=floor(rand(10,10)*100) mask =  39 77 36 26 80 96 43 27 32 70  41 48 14 59 8 7 56 62 47 9  65 18 56 4 94 ...
  • OpenCV3.1实现matlab中strel('disk', n)函数

    千次阅读 2017-02-27 16:52:55
    在数字图像处理过程常会用到形态学处理函数,比如膨胀和腐蚀等操作,在次之前往往需要创建一个掩膜(mask),本文仿照matlab的strel函数实现了OpenCV下近似版本。
  • 通过卷积寻找信号序列特征峰值点 然后进行计算….. clear;clc;close; mask=[.1:.1:3 3.1 3:-.1:.1]; a=randi([0,5],1,1000); w = conv(a,mask); %% [~,mpos]=max(w); k=0; for i=mpos-31:mpos+31 for j...
  • Matlab中很多函数我们用起来很方便,比如:imhmax,imhmin,imreconstruct,imregionalmin。这个代码就是基于opencv实现Matlab函数 cv::Mat imhmax(cv::Mat im, double thresh); cv::Mat imhmin(cv::Mat im, ...

空空如也

空空如也

1 2 3 4
收藏数 79
精华内容 31
关键字:

matlab中的mask

matlab 订阅