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

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

3天内不再提示

可视化CNN和特征图

颖脉Imgtec 2023-04-19 10:33 次阅读

作者:Ahzam Ejaz来源:DeepHub IMBA


卷积神经网络(cnn)是一种神经网络,通常用于图像分类、目标检测和其他计算机视觉任务。CNN的关键组件之一是特征图,它是通过对图像应用卷积滤波器生成的输入图像的表示。

7544889c-da9d-11ed-ad0d-dac502259ad0.png


理解卷积层

1、卷积操作

卷积的概念是CNN操作的核心。卷积是一种数学运算,它把两个函数结合起来产生第三个函数。在cnn的上下文中,这两个函数是输入图像和滤波器,而得到的结果就是特征图。

2、卷积的层

卷积层包括在输入图像上滑动滤波器,并计算滤波器与输入图像的相应补丁之间的点积。然后将结果输出值存储在特征映射中的相应位置。通过应用多个过滤器,每个过滤器检测一个不同的特征,我们可以生成多个特征映射。

3、重要参数

Stride:Stride 是指卷积滤波器在卷积运算过程中在输入数据上移动的步长。

Padding:Padding是指在应用卷积操作之前在输入图像或特征映射的边界周围添加额外像素。Padding的目的是控制输出特征图的大小,保证滤波窗口能够覆盖输入图像或特征图的边缘。如果没有填充,过滤器窗口将无法覆盖输入数据的边缘,导致输出特征映射的大小减小和信息丢失。有两种类型的填充“valid”和“same”。755ec400-da9d-11ed-ad0d-dac502259ad0.pngkernel/filter:kernel(也称为filter 或 weight )是一个可学习参数的小矩阵,用于从输入数据中提取特征。在下图中,输入图像的大小为(5,5),过滤器filter 的大小为(3,3),绿色为输入图像,黄色区域为该图像的过滤器。在输入图像上滑动滤波器,计算滤波器与输入图像的相应像素之间的点积。Padding是valid (也就是没有填充)。stride值为1。

758e6bba-da9d-11ed-ad0d-dac502259ad0.gif

4、特征图特征图是卷积神经网络(CNN)中卷积层的输出。它们是二维数组,包含卷积滤波器从输入图像或信号中提取的特征。卷积层中特征图的数量对应于该层中使用的过滤器的数量。每个过滤器通过对输入数据应用卷积操作来生成单个特征映射。特征图的大小取决于输入数据的大小,卷积操作中使用的过滤器、填充和步幅的大小。通常,随着我们深入网络,特征图的大小会减小,而特征图的数量会增加。特征图的大小可以用以下公式计算:

Output_Size = (Input_Size - Filter_Size + 2 * Padding) / Stride + 1

这个公式非常重要,因为在计算输出时肯定会用到,所以一定要记住来自一个卷积层的特征映射作为网络中下一层的输入数据。随着层数的增加,网络能够学习越来越复杂和抽象的特征。通过结合来自多层的特征,网络可以识别输入数据中的复杂模式,并做出准确的预测。


特征图可视化

这里我们使用TF作为框架进行演示

## Importing libraries#Imageprocessinglibraryimportcv2#Kerasfromtensorflowimportkeras#InKeras,thelayersmoduleprovidesasetofpre-builtlayerclassesthatcanbeusedtoconstructneuralnetworks.fromkerasimportlayers#Forplotinggraphsandimagesimportmatplotlib.pyplotaspltimportnumpyasnp

使用OpenCV导入一张图像,并将其大小调整为224 x 224像素。

img_size=(224,224)file_name="./data/archive/flowers/iris/10802001213_7687db7f0c_c.jpg"img=cv2.imread(file_name) #readingtheimageimg=cv2.resize(img,img_size)

我们添加2个卷积层:

model=keras.Sequential()filters=16model.add(layers.Conv2D(input_shape=(224,224,3),filters=filters,kernel_size=3))model.add(layers.Conv2D(filters=filters,kernel_size=3))

从卷积层中获取过滤器。

filters, bias = model.layers[0].get_weights()min_filter = filters.min()max_filter = filters.max()filters = (filters - min_filter) / (max_filter - min_filter)p

可视化

figure=plt.figure(figsize=(10,20))filters_count=filters.shape[-1]channels=filters.shape[0]index=1forchannelinrange(channels):forfilterinrange(filters_count): plt.subplot(filters_count, channels, index) plt.imshow(filters[channel, :, :, filter]) plt.xticks([]) plt.yticks([]) index+=1plt.show()

75a017ca-da9d-11ed-ad0d-dac502259ad0.png将图像输入到模型中得到特征图

normalized_img=(img-img.min())/(img.max()-img.min())normalized_img=normalized_img.reshape(-1,224,224,3)feature_map=model.predict(normalized_img)

特征图需要进行归一化这样才可以在matplotlib中显示

feature_map = (feature_map - feature_map.min())/ (feature_map.max() - feature_map.min())

提取特征图并显示

total_imgs = feature_map.shape[0]no_features=feature_map.shape[-1]fig=plt.figure(figsize=(10,50))index=1 forimage_noinrange(total_imgs): forfeatureinrange(no_features):#plottingfor16filtersthatproduced16featuremapsplt.subplot(no_features,3,index)plt.imshow(feature_map[image_no,:,:,feature],cmap="gray")plt.xticks([])plt.yticks([])index+=1plt.show()

75beca4e-da9d-11ed-ad0d-dac502259ad0.png


总结

通过可视化CNN不同层的特征图,可以更好地理解网络在处理图像时“看到”的是什么。例如,第一层可能会学习简单的特征,如边缘和角落,而后面的层可能会学习更抽象的特征,如特定物体的存在。通过查看特征图,我们还可以识别图像中对网络决策过程重要的区域。

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

    关注

    42

    文章

    4771

    浏览量

    100726
  • cnn
    cnn
    +关注

    关注

    3

    文章

    352

    浏览量

    22204
收藏 人收藏

    评论

    相关推荐

    什么是大屏数据可视化?特点有哪些?

    大屏数据可视化是指通过大屏幕展示大量数据和信息,以直观、可视化的方式帮助用户理解和分析数据。这种展示方式通常用于展示复杂的数据集、实时监控系统、企业管理仪表盘等。以下是关于 大屏数据可视化 的详细
    的头像 发表于 12-16 16:59 148次阅读

    如何找到适合的大屏数据可视化系统

    选择合适的大屏数据可视化系统是企业或组织在数字转型过程中至关重要的一步。一个优秀的大屏数据可视化系统能够实时呈现关键业务数据,提升决策效率,同时提供直观、易于理解的视觉呈现,助力企业洞察数据背后
    的头像 发表于 12-13 15:47 116次阅读

    智慧能源可视化监管平台——助力可视化能源数据管理

    博达可视化大屏设计平台在智慧能源领域的价值体现在实时监控、数据可视化、决策支持和效率提升等方面。借助该平台,企业可以轻松搭建智慧能源类可视化大屏,更加精确和高效地管理生产和生活,实现能源的可持续发展。
    的头像 发表于 11-29 10:00 278次阅读
    智慧能源<b class='flag-5'>可视化</b>监管平台——助力<b class='flag-5'>可视化</b>能源数据管理

    智慧楼宇可视化的优点

    智慧楼宇可视化是指通过数据可视化技术来展示和分析楼宇的各种数据,为楼宇管理者和用户提供直观、清晰的信息展示和决策支持。以下是智慧楼宇可视化的优点,详细介绍其在楼宇管理和运营中的重要作用: 1.实时
    的头像 发表于 11-19 14:25 180次阅读

    工业数据可视化管理平台是什么

    数据可视化管理平台应运而生,它以其独特的功能和优势,正在成为工业数字转型的重要工具。 工业数据可视化管理平台的定义 工业数据可视化管理平台是一种集成了数据采集、处理、分析和展示功能的
    的头像 发表于 08-28 14:21 290次阅读

    大屏数据可视化 开源

    在当今信息爆炸的时代,数据已经成为各个行业决策制定和业务发展的关键。为了更直观、准确地理解和利用海量数据, 大屏数据可视化 成为一种强大的工具。通过将数据以图表、图形等形式展示在大屏幕上,不仅
    的头像 发表于 06-27 16:06 405次阅读
    大屏数据<b class='flag-5'>可视化</b> 开源

    如何实现园区大屏可视化

    孪生可视化 构建平台利用Web三维可视化技术对现实场景进行仿真,实现园区级业务场景 的可视化呈现,助力企业快速完成项目的实施。实现园区场景立体可先,极致可视。那么,今天古河云科技就来给
    的头像 发表于 06-19 15:39 416次阅读
    如何实现园区大屏<b class='flag-5'>可视化</b>?

    态势数据可视化技术有哪些

    的一些主要类型及特点: 智慧华盛恒辉网络安全态势指标可视化分析系统: 基于地理信息系统、网络拓扑、攻击路径等的安全态势可视化分析系统方法。 通过可视化技术将安全态势数据以多视图、多角
    的头像 发表于 06-11 15:47 371次阅读

    智慧大屏是如何实现数据可视化的?

    智慧大屏,作为数据可视化的重要载体,已在城市管理、交通监控、商业运营等领域广泛应用。本文旨在阐述智慧大屏实现数据可视化的关键技术和方法,包括数据源管理、数据处理、视觉编码、用户界面与交互设计等。
    的头像 发表于 06-04 15:02 602次阅读
    智慧大屏是如何实现数据<b class='flag-5'>可视化</b>的?

    大屏数据可视化的作用和意义

    大屏数据可视化是指利用大屏幕设备展示数据信息,通过图表、图像、动画等视觉手段将数据呈现出来,以便用户能够直观、清晰地理解数据背后的含义和关联。在信息化时代,数据已经成为企业决策和运营的重要依托,而
    的头像 发表于 06-03 17:56 664次阅读

    数据可视化:企业数字建设效果的呈现

    数据可视化即通过图表的形式将数据的内在信息有逻辑性地呈现给用户,使用户更容易发现数据中蕴藏的规律,找出问题,进而做出决策;另一方面,数据可视化项目也是一张重要的名片,是企业数字建设效果的呈现。本文
    的头像 发表于 04-29 10:18 459次阅读
    数据<b class='flag-5'>可视化</b>:企业数字<b class='flag-5'>化</b>建设效果的呈现

    FUXA基于Web的过程可视化软件案例

    FUXA——基于Web的过程可视化软件
    发表于 04-24 18:32 2次下载

    态势数据可视化技术有哪些

    确,计算方法不实用,可视化效果不直观等技术问题,设计并实现了基于地理信息系统,网络拓扑,攻击路径等的安全态势可视化分析系统方法, 通过可视化技术将安全态势数据以多视图,多角度,多层次
    的头像 发表于 04-22 15:17 401次阅读

    态势可视化系统软件

    智慧华盛恒辉态势可视化是一种对特定环境中一段时间内的持续动作和改变的目标实体的感知、认知和理解,并最终以直观、灵活、逼真的方式展示总体状态的技术。 智慧华盛恒辉可视化技术是战场环境表达的最重要形式
    的头像 发表于 04-22 14:48 322次阅读

    可视化全程追溯,可视化资产管理系统

    摘要:本文将从应用价值、系统功能、资产盘点、资产出入库、资产定位以及系统实现能效等几个方面,阐述新导物联可视化资产管理系统为企业提供的优势,以提升资产管理的效率和准确度。 一、应用价值 可视化资产
    的头像 发表于 01-11 13:54 496次阅读
    <b class='flag-5'>可视化</b>全程追溯,<b class='flag-5'>可视化</b>资产管理系统