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
    +关注

    关注

    28

    文章

    5110

    浏览量

    134511
  • 图像分类
    +关注

    关注

    0

    文章

    96

    浏览量

    12419
  • 深度学习
    +关注

    关注

    73

    文章

    5591

    浏览量

    123959
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电压放大器在全导波场图像目标识别的损伤检测实验的应用

    图像目标识别的智能损伤检测方法,通过结合超声导波检测技术与深度学习算法,系统探究了损伤引起的波场畸变特性及其识别机制。 测试设备:扫描激光多普勒测振仪、函数发生器、功率放大器ATA-2
    的头像 发表于 12-02 11:37 107次阅读
    电压放大器在全导波场图像目标<b class='flag-5'>识别的</b>损伤检测实验的应用

    如何深度学习机器视觉的应用场景

    检测应用 微细缺陷识别:检测肉眼难以发现的微小缺陷和异常 纹理分析:对材料表面纹理进行智能分析和缺陷识别 3D表面重建:通过深度学习进行高精度3D建模和检测 电子行业应用 PCB板复杂
    的头像 发表于 11-27 10:19 71次阅读

    如何在机器视觉中部署深度学习神经网络

    图 1:基于深度学习的目标检测可定位已训练的目标类别,并通过矩形框(边界框)对其进行标识。 在讨论人工智能(AI)或深度学习时,经常会出现“神经网络
    的头像 发表于 09-10 17:38 723次阅读
    如何在机器视觉中部署<b class='flag-5'>深度</b><b class='flag-5'>学习</b>神经<b class='flag-5'>网络</b>

    深度学习对工业物联网有哪些帮助

    深度学习作为人工智能的核心分支,通过模拟人脑神经网络的层级结构,能够自动从海量工业数据中提取复杂特征,为工业物联网(IIoT)提供了从数据感知到智能决策的全链路升级能力。以下从技术赋能、场景突破
    的头像 发表于 08-20 14:56 783次阅读

    深度学习遇上嵌入式资源困境,特征空间如何破局?

    近年来,随着人工智能(AI)技术的迅猛发展,深度学习(Deep Learning)成为最热门的研究领域之一。在语音识别、图像识别、自然语言处理等领域,
    发表于 07-14 14:50 1125次阅读
    当<b class='flag-5'>深度</b><b class='flag-5'>学习</b>遇上嵌入式资源困境,特征空间如何破局?

    深度学习赋能:正面吊车载箱号识别系统的核心技术

    支撑。 深度学习驱动的智能识别 传统OCR技术易受光线、污损或箱体图案干扰,而新一代识别系统通过深度卷积神经网络(CNN)和注意力机制,实现
    的头像 发表于 05-07 10:10 439次阅读

    【「# ROS 2智能机器人开发实践」阅读体验】+ROS2应用案例

    的应用。书中详细介绍了如何在ROS 2中实现二维码识别,包括二维码扫描库Zbar的使用,以及如何通过相机识别二维码。 通过学习这一部分,我了
    发表于 04-27 11:42

    嵌入式AI技术之深度学习:数据样本预处理过程中使用合适的特征变换对深度学习的意义

      作者:苏勇Andrew 使用神经网络实现机器学习网络的每个层都将对输入的数据做一次抽象,多层神经网络构成深度
    的头像 发表于 04-02 18:21 1297次阅读

    【幸狐Omni3576边缘计算套件试用体验】人脸识别

    进的 ArcFace 能够改善其面部验证结果; 通过采用轻量级骨干网络,RetinaFace 可以在单个 CPU 核心上实时运行 VGA 分辨率的图像。 环境部署 这里简要介绍环境部署流程,详细方案参考前面
    发表于 04-01 21:46

    【幸狐Omni3576边缘计算套件试用体验】车牌识别

    和停车场管理中,车牌识别是一项重要且极具挑战性的任务。 车牌识别网络 (License Plate Recognition Network, LPRNet) 是一种专门设计用于车牌识别的
    发表于 04-01 02:45

    SLAMTEC Aurora:把深度学习“卷”进机器人日常

    在人工智能和机器人技术飞速发展的今天,深度学习与SLAM(同步定位与地图构建)技术的结合,正引领着智能机器人行业迈向新的高度。最近科技圈顶流DeepSeek简直杀疯了!靠着逆天的深度学习
    的头像 发表于 02-19 15:49 736次阅读

    军事应用中深度学习的挑战与机遇

    ,并广泛介绍深度学习在两个主要军事应用领域的应用:情报行动和自主平台。最后,讨论了相关的威胁、机遇、技术和实际困难。主要发现是,人工智能技术并非无所不能,需要谨慎应用,同时考虑到其局限性、
    的头像 发表于 02-14 11:15 834次阅读

    BP神经网络深度学习的关系

    BP神经网络深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本概念 BP神经
    的头像 发表于 02-12 15:15 1379次阅读

    深度学习入门:简单神经网络的构建与实现

    深度学习中,神经网络是核心模型。今天我们用 Python 和 NumPy 构建一个简单的神经网络。 神经网络由多个神经元组成,神经元之间通过
    的头像 发表于 01-23 13:52 860次阅读

    传统机器学习方法和应用指导

    在上一篇文章中,我们介绍了机器学习的关键概念术语。在本文中,我们会介绍传统机器学习的基础知识和多种算法特征,供各位老师选择。 01 传统机器学习
    的头像 发表于 12-30 09:16 1992次阅读
    传统机器<b class='flag-5'>学习</b>方法和应用指导