0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于深度学习网络识别的详细介绍

MATLAB 来源:djl 2019-09-11 17:53 次阅读

你有没有想过,你经常使用的深度学习网络在看图像的什么部分进行分类?

例如下图:

如果深度学习网络将此图像分类为“圆号”,你认为图片的哪个部分对分类最重要?

MathWorks Computer Vision System Toolbox 开发工程师Birju Patel专注于深度学习,设计了如下案例进行解答这一问题:

我们使用预训练好的 ResNet-50 网络进行此实验。

* He, Kaiming, Zhang, Xiangyu, Ren, Shaoqing, Sun, Jian. "Deep Residual Learning for Image Recognition." In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 770-778. 2016.

获取 MATLAB 中 ResNet-50 网络的方法是启动 Add-On Explorer(MATLAB 的 HOME 选项卡)并搜索 resnet。

net = resnet50;

我们需要注意 ResNet-50 需要输入特定尺寸的图像。网络的初始层提供了这一信息

sz = net.Layers(1).InputSize(1:2)sz = 224 224

所需的图像尺寸可以直接传递给 imresize 函数。)

在网络中调用 classify ,查看图片可能的分类:

classify(net,rgb)ans = categorical French horn

ResNet-50 认为这是圆号。

Birju 在一篇关于卷积神经网络可视化技术的论文中,了解到遮挡敏感性的概念。如果阻挡或遮挡图像的一部分,将如何影响网络的预测得分?遮挡不同的部分又将如何影响结果?

Birju 做了如下尝试:

rgb2 = rgb; rgb2((1:71)+77,(1:71)+108,:) = 128; imshow(rgb2)

classify(net,rgb2)ans = categorical notebook

Hmm...估计网络“认为”灰色方块看起来像笔记本。被遮挡的区域对于图像分类来说应该很重要。再试试不同的遮挡位置:

rgb3 = rgb;rgb3((1:71)+15,(1:71)+80,:) = 128;imshow(rgb3)

classify(net,rgb3)ans = categorical French horn

好吧,脑袋并不重要。

Birju 编写了一些 MATLAB 代码来系统地量化不同图像区域对分类结果的相对重要性。他使用 MATLAB 构建了大量图像,并对遮挡不同区域的图像进行批处理。对于遮挡的不同位置,记录预期类(本例为“法国号”)的概率得分。

我们制作一批带有 71x71 遮挡区域的图像。首先计算所有遮挡模块的顶点,用 (X1,Y1) 和 (X2,Y2) 表示。

mask_size = [71 71]; [H,W,~] = size(rgb); X = 1:W; Y = 1:H; [X1, Y1] = meshgrid(X, Y); X1 = X1(:) - (mask_size(2)-1)/2; Y1 = Y1(:) - (mask_size(1)-1)/2; X2 = X1 + mask_size(2) - 1; Y2 = Y1 + mask_size(1) - 1;

注意不要让遮挡区域的顶点偏离图像边界。

X1 = max(1, X1); Y1 = max(1, Y1); X2 = min(W, X2); Y2 = min(H, Y2);

批处理:

batch = repmat(rgb,[1 1 1 size(X1,1)]); for i = 1:size(X1,1) c = X1(i):X2(i); r = Y1(i):Y2(i); batch(r,c,:,i) = 128; % gray mask. end

注意:这一批包含 50,000 多张图像。你需要大量的 RAM 才能同时创建和处理如此大量的图像。

这里有一些遮挡的图像:

现在,我们将使用 predict(而不是 classify)来获取每个图像在每个类别中的预测分数。MiniBatchSize 参数是用来限制 GPU 内存的使用,意味着 predict 函数将一次发送 64 个图像到 GPU 进行处理。

s = predict(net, batch, 'MiniBatchSize',64);size(s)ans = 50176 1000

我们获得了很多的概率得分!其中 51,529 个图像,共有 1,000 个类别。矩阵 s 具有每个类别和每个图像的预测分数。

我们重点关注预测原始图像类别的预测分数:

scores = predict(net,rgb); [~,horn_idx] = max(scores);

这里是每一个圆号类别中的图像预测分数:

s_horn = s(:,horn_idx);

将圆号类别的分数转换为图像显示:

S_horn = reshape(s_horn,H,W); imshow(-S_horn,[]) colormap(gca,'parula')

最亮的区域表示遮挡对概率得分影响最大的遮挡区间。

下面我们找到了最影响圆号概率得分的遮挡位置:

[min_score,min_idx] = min(s_horn); rgb_min_score = batch(:,:,:,min_idx); imshow(rgb_min_score)

结果可见,识别圆号的关键在于螺旋形管身和阀键,而不是号嘴。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4402

    浏览量

    126562
  • 图像分类
    +关注

    关注

    0

    文章

    87

    浏览量

    11836
  • 深度学习
    +关注

    关注

    73

    文章

    5220

    浏览量

    119863
收藏 人收藏

    评论

    相关推荐

    如何使用Python进行图像识别的自动学习自动训练?

    如何使用Python进行图像识别的自动学习自动训练? 使用Python进行图像识别的自动学习和自动训练需要掌握一些重要的概念和技术。在本文中,我们将
    的头像 发表于 01-12 16:06 199次阅读

    详解深度学习、神经网络与卷积神经网络的应用

    处理技术也可以通过深度学习来获得更优异的效果,比如去噪、超分辨率和跟踪算法等。为了跟上时代的步伐,必须对深度学习与神经网络技术有所
    的头像 发表于 01-11 10:51 690次阅读
    详解<b class='flag-5'>深度</b><b class='flag-5'>学习</b>、神经<b class='flag-5'>网络</b>与卷积神经<b class='flag-5'>网络</b>的应用

    离线语音识别和控制的工作原理及应用

    神经网络(RNN)和卷积神经网络(CNN)是最常用的两种技术。RNN 适用于处理时间序列数据,如语音信号,而 CNN 则适用于处理具有网格结构的数据,如图像。通过深度学习技术,可以有效
    发表于 11-07 18:01

    什么是卷积神经网络?如何MATLAB实现CNN?

    卷积神经网络(CNN 或 ConvNet)是一种直接从数据中学习深度学习网络架构。 CNN 特别适合在图像中寻找模式以识别对象、类和类别
    发表于 10-12 12:41 553次阅读
    什么是卷积神经<b class='flag-5'>网络</b>?如何MATLAB实现CNN?

    深度学习在语音识别中的应用及挑战

    一、引言 随着深度学习技术的快速发展,其在语音识别领域的应用也日益广泛。深度学习技术可以有效地提高语音
    的头像 发表于 10-10 18:14 475次阅读

    深度学习在医学图像分割与病变识别中的应用实战

    等方面具有重要意义。本文将介绍这一领域的背景、挑战,以及通过一个代码实例展示如何利用深度学习方法进行医学图像分割与病变识别。 背景与挑战医学图像分割是将医学影像中的结构区域分离出来,
    发表于 09-04 11:11

    深度学习的定义和特点 深度学习典型模型介绍

    深度学习(Deep Learning)是一种基于人工神经网络的机器学习算法,其主要特点是模型由多个隐层组成,可以自动地学习特征,并进行预测或
    发表于 08-21 18:22 1221次阅读

    深度学习算法mlp介绍

    深度学习算法mlp介绍  深度学习算法是人工智能领域的热门话题。在这个领域中,多层感知机(multilayer perceptron,MLP
    的头像 发表于 08-17 16:11 2562次阅读

    深度学习框架tensorflow介绍

    深度学习框架tensorflow介绍 深度学习框架TensorFlow简介 深度
    的头像 发表于 08-17 16:11 1369次阅读

    什么是深度学习算法?深度学习算法的应用

    。 在深度学习中,使用了一些快速的算法,比如卷积神经网络以及深度神经网络,这些算法在大量数据处理和图像
    的头像 发表于 08-17 16:03 1437次阅读

    深度学习算法简介 深度学习算法是什么 深度学习算法有哪些

    深度学习算法作为其中的重要组成部分,不仅可以为诸如人工智能、图像识别以及自然语言处理等领域提供支持,同时也受到了越来越多的关注和研究。在本文中,我们将着重介绍
    的头像 发表于 08-17 16:02 6666次阅读

    深度学习视角下的猫狗图像识别实现

    来源: 易百纳技术社区, 作者: 稗子酿的酒 人工智能技术在图像识别领域取得了显著进展,其中基于深度学习的图像分类方法在猫狗图像识别中表现出色。本文将
    的头像 发表于 08-15 10:38 1849次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>视角下的猫狗图像<b class='flag-5'>识别</b>实现

    基于深度阈值噪声消除的多尺度分析调制识别网络

    为了提高多变环境下调制信号识别的准确性、减少先验知识不足等因素对识别结果的影响,研究人员逐渐采用深度学习技术来替代传统的调制信号处理技术。
    的头像 发表于 06-20 15:03 283次阅读
    基于<b class='flag-5'>深度</b>阈值噪声消除的多尺度分析调制<b class='flag-5'>识别</b><b class='flag-5'>网络</b>

    深度Q学习网络:弥合从虚拟游戏到实际应用的差距

    解决复杂、顺序决策问题的有力工具。RL 的一个重大进步是深度 Q 学习网络 (DQN) 的出现,它将深度学习的力量与 Q 学习的战略决策能力
    发表于 06-15 09:45 211次阅读

    浅析三种主流深度神经网络

    深层神经网络的迅速发展应用致使语音识别错误率上较传统语音识别方法错误率减少30%(20年来最大降幅),同时也大幅削减了图像识别的错误率,自2011年以来
    的头像 发表于 05-15 14:18 701次阅读
    浅析三种主流<b class='flag-5'>深度</b>神经<b class='flag-5'>网络</b>