-
2022-03-01 21:03:31
整理一些网友的贴子和博客,供自己学习用,感谢~
用文氏图来理解卷积神经网络如何决定提取哪些特征:https://blog.csdn.net/kane7csdn/article/details/84890592
为什么卷积能够提取图像的特征?看完此文应该能够给你一个答案:
https://blog.csdn.net/charleswangzi/article/details/82733016
浅析卷积神经网络为何能够进行特征提取:
https://blog.csdn.net/weixin_42078618/article/details/83895555
cnn卷积核参数如何确定_CNN(卷积神经网络)卷积核的特征提取:
https://blog.csdn.net/weixin_30066287/article/details/112118576
卷积神经网络怎样获得softmax层前的特征输出?:
https://www.zhihu.com/question/459938742/answer/1891865776
迁移学习之利用keras预训练网络提取图片特征:
https://blog.csdn.net/qq_31207499/article/details/84294790
【keras系列】学习笔记一
其中:
1、如何已经把模型下载到本地模型已经下载,不再每次从网站进行加载,可以修改以下内容。
WEIGHTS_PATH = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels.h5' WEIGHTS_PATH_NO_TOP = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5' weights_path = get_file('vgg16_weights_tf_dim_ordering_tf_kernels.h5', WEIGHTS_PATH, cache_subdir='models') weights_path = get_file('vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5', WEIGHTS_PATH_NO_TOP, cache_subdir='models')
https://blog.csdn.net/u011511601/article/details/80621511
神经网络第三篇:输出层及softmax函数:
https://blog.csdn.net/u012132349/article/details/86698193
深度学习-CNN提取图像特征:
https://blog.csdn.net/qq_30815237/article/details/86703620?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E7%89%B9%E5%BE%81%E6%8F%90%E5%8F%96&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-86703620.nonecase&spm=1018.2226.3001.4187
【初级】使用 Python 从图像数据中提取特征:
提取边缘特征,包括水平边缘和竖直边缘https://www.jianshu.com/p/612fdd882eed
机器学习实战13-卷积神经网络:
https://blog.csdn.net/qq_30815237/article/details/89040284
CNN基础二:使用预训练网络提取图像特征:
https://www.cnblogs.com/inchbyinch/p/11980247.html
可视化VGG19类激活热力图:
https://zhuanlan.zhihu.com/p/59512926
Keras:使用预训练模型迁移学习单通道灰度图像:
https://blog.csdn.net/qq_15969343/article/details/84673541
Keras 的预训练权值模型用来进行预测、特征提取和微调(fine-tuning):
https://blog.csdn.net/weixin_39506322/article/details/88640679
keras搭建模型训练教程:
https://zhuanlan.zhihu.com/p/58859997
利用卷积神经网络(VGG19)实现火灾分类(附tensorflow代码及训练集) :
https://www.cnblogs.com/vipyoumay/p/7884472.html
【深度学习实战02】——VGG网络提取输入图像的特征并显示特征图:
https://blog.csdn.net/c20081052/article/details/80207906
Keras:使用预训练模型迁移学习单通道灰度图像:
https://blog.csdn.net/qq_15969343/article/details/84673541
VGG网络提取单通道图像特征:
可以把灰度图宽展成3通道的彩图,既把灰度图3层叠加(也可以使用其他办法),然后再有现有的VGG模型,再微调应该就可以来;
或者你参考VGG模型,重新自定义一个对应于单通道图片的网络模型重新训练。更多相关内容 -
qqwwd_floorrbc_卷积神经网络特征提取_
2021-10-04 11:51:12图片中文字的提取应用matlab编程。较好的效果。 -
一维卷积神经网络特征提取下微震能级时序预测.pdf
2021-09-25 15:30:53一维卷积神经网络特征提取下微震能级时序预测.pdf -
卷积神经网络如何提取特征
2021-07-25 19:00:41卷积神经网络中,第一步一般用卷积核去提取特征,这些初始化的卷积核会在反向传播的过程中,在迭代中被一次又一次的更新,无限地逼近我们的真实解。其实本质没有对图像矩阵求解,而是初始化了一个符合某种分布的...图像在计算机中的存储
图像其实就是一个像素值组成的矩阵
。1、黑白或灰度图像如何存储在计算机中
在这里,我们已经采取了黑白图像,也被称为一个灰度图像。
这是数字8的图像。现在,如果我们进一步放大并且仔细观察,你会发现图像变得失真,并且你会在该图像上看到一些小方框。
这些小方框叫做 Pixels。我们经常使用的图像维度是X x Y。这实际上是什么意思?
这意味着图像的尺寸就是图像的高度(x)和宽度(y)上的像素数
。在这种情况下,高度为24像素,宽度为16像素。因此,此图像的尺寸将为24 x 16。尽管我们看到的是这种格式的图像,但
计算机以数字的形式存储图像
。
这些像素中的每一个都表示为数值,而这些数字称为像素值,这些像素值表示像素的强度
。对于灰度或黑白图像,我们的像素值范围是 0 到 255 :接近零的较小数字表示较深的阴影,而接近255的较大数字表示较浅或白色的阴影。因此,计算机中的每个图像都以这种形式保存,其中你具有一个数字矩阵,该矩阵也称为Channel。
总结:●
图像以数字矩阵的形式存储在计算机中,其中这些数字称为像素值
。
● 这些像素值代表每个像素的强度:0代表黑色,255代表白色。
●数字矩阵称为通道,对于灰度图像,我们只有一个通道
。2、彩色图像如何存储在计算机中
现在我们有了关于如何将灰度图像存储在计算机中的想法,让我们看一个彩色图像的示例。让我们以彩色图像为例,这是一条美女的图像:
该图像由许多颜色组成,几乎所有颜色都可以从三种原色(红色,绿色和蓝色)生成。我们可以说每个彩色图像都是由这三种颜色或3个通道(红色,绿色和蓝色)生成
。
这意味着在彩色图像中,矩阵的数量或通道的数量将会更多。
在此特定示例中,我们有3个矩阵:1个用于红色的矩阵,称为红色通道。
另一个绿色的称为绿色通道。
最后是蓝色的矩阵,也称为蓝色通道。
这些像素都具有从0到255的值,其中每个数字代表像素的强度,或者你可以说红色,绿色和蓝色的阴影。最后,所有这些通道或所有这些矩阵都将叠加在一起,这样,当图像的形状加载到计算机中时,它会是N * H * W
其中 N 表示通道数(彩色图像 N 为 3),H 是整个高度上的像素数,W 是整个宽度上的像素数。在这种情况下,我们有3个通道R、G和B。在我们的示例中,彩色图像的形状将是 6 x 5 x 3,因为我们在高度上有6个像素,在宽度上有5个像素,并且存在3个通道。
矩阵的特征值与特征向量
这个式子要怎么理解呢?
首先得先弄清矩阵的概念:一个矩阵代表的是一个线性变换规则
,而一个矩阵的乘法运行代表的是一个变换。
也就是说,我们有一个方阵(n x n),总能找到一些向量,这个矩阵跟这些向量的作用效果,只是对这个向量造成了拉伸的作用
,换句话说,矩阵的作用跟一个系数的作用是等价的。也就是如下这个式子:
在图像处理中,有一种方法就是特征值分解。我们都知道图像其实就是一个像素值组成的矩阵,假设有一个100x100的图像,对这个图像矩阵做特征值分解,其实是在提取这个图像中的特征,这些提取出来的特征是一个个的向量,即对应着特征向量。而这些特征在图像中到底有多重要,这个重要性则通过特征值来表示
。比如 100x100 的图像矩阵A分解之后,会得到一个100x100的特征向量组成的矩阵Q,以及一个100x100的只有对角线上的元素不为0的矩阵E,这个矩阵E对角线上的元素就是特征值,而且还是按照从大到小排列的(取模,对于单个数来说,其实就是取绝对值),也就是说这个图像A提取出来了100个特征,这100个特征的重要性由100个数字来表示,这100个数字存放在对角矩阵E中。在实际中我们发现,提取出来的这100个特征从他们的特征值大小来看,大部分只有前20(这个20不一定,有的是10,有的是30或者更多)个特征对应的特征值很大,后面的就都是接近0了,也就是说后面的那些特征对图像的贡献几乎可以忽略不计。我们知道,图像矩阵A特征值分解后可以得到矩阵Q和矩阵E:
那么反推出去,把右边的三个矩阵相乘肯定也能得到矩阵A。既然已经知道了矩阵E中只有前20个特征值比较重要,那么我们不妨试试把E中除了前20个后面的都置为0,即只取图像的前20个主要特征来恢复图像,剩下的全部舍弃,看看此时会发生什么:
原图:【注意:特征值分解要求必须是nxn的方阵,如果不是行列相等的方阵,请使用奇异值分解】
只取前10个特征值:
只取前20个特征值:
只取前50个特征值:
只取前100个特征值:
我们可以看到,在只取前20个特征值和特征向量对图像进行恢复的时候,基本上已经可以看到图像的大体轮廓了,而取到前50的时候,几乎已经和原图像无异了。明白了吧,这就是所谓的矩阵的特征向量和特征值的作用。所以归根结底,
特征向量其实反应的是矩阵A本身固有的一些特征
,本来一个矩阵就是一个线性变换,当把这个矩阵作用于一个向量的时候,通常情况绝大部分向量都会被这个矩阵A变换得“面目全非”,但是偏偏刚好存在这么一些向量,被矩阵A变换之后居然还能保持原来的样子,于是这些向量就可以作为矩阵的核心代表了。于是我们可以说:一个变换(即一个矩阵)可以由其特征值和特征向量完全表述,这是因为从数学上看,这个矩阵所有的特征向量组成了这个向量空间的一组基底。而矩阵作为变换的本质其实不就把一个基底下的东西变换到另一个基底表示的空间中么?图像特征与特征向量
假设我们要判断一个人是男的还是女的,第一反应可能是“头发”,其次是“声音”,或者“衣着”之类的,一般通过以上3个特征就能非常直观地判断出来是男的还是女的。
但是呢,出题人A特别坏,出题人A说:这个人,他有一双明亮的大眼睛,有一头乌黑的头发,喜欢出入酒吧,一般十点钟上班,声音比较细腻,走路比较急,还有,喜欢吃零食,喜欢穿浅色衣服。
出题人B比较好,出题人B说:他头发比较长,说话比较温柔,穿的比较阳光,声线比较细。
我们一听B的说法,就很直观地觉得这个人八九不离十是位女生,而从A的判断中,我们还是模棱两个。这个就涉及到信息量的问题。A给的特征非常多,信息量很大,但是。。。似乎没什么用,而B给的特征少,但是基本足够了。就像图1,他的数据分布特别散漫,而图3的分布相对集中,是一个道理的。相对于信息量大的特征,我们去挑选特征、做出判断是非常困难的。
所以!!!我们就需要想办法对特征做特征提取。也就是说,提取主要的、关键的特征就够了!!!而这个提取的方法就是:特征向量!!!
以椭圆举例:
以上几个图,全都可以分类为椭圆,但是因为形状各异,导致数据也是不对称的,尤其体现在rgb值上(当然在对图像的数据处理,还有很多,比如subtraction,BN),其次体现在在各个轴的投影。但是,如果如果我们可以对它做旋转,缩放,平移等操作,变成如下的图:
那,是不是就非常好辨认了,而且数据也非常集中,至少在某一维度上。于是乎,我们就需要去找这么一个特征向量。卷积的过程,就是通过反向传播,无限去拟合这么一个非常非常非常逼近的特征向量集(这个特征向量集其实就是咱们的卷积核)!!!!为什么是特征向量集呢(其实单个特征向量(一个列向量或者行向量)也行)?因为一个列向量,我们只能在一种维度做变换,多个列向量,就意味着多个维度联合进行特征提取或者曰之为特征映射。总结一下:卷积核 ≈ 特征向量集,反向传播 ≈ 求解特征向量集,我们的图片 ≈ 矩阵A,注意,这些概念不是等价的,只是用易懂的方式去解释这些原理。
卷积神经网络中,第一步一般用卷积核去提取特征,这些初始化的卷积核会在反向传播的过程中,在迭代中被一次又一次的更新,无限地逼近我们的真实解
。其实本质没有对图像矩阵求解,而是初始化了一个符合某种分布的特征向量集,然后在反向传播中无限更新这个特征集,让它能无限逼近数学中的那个概念上的特征向量,以致于我们能用特征向量的数学方法对矩阵进行特征提取。卷积提取特征
卷积核(滤波器,convolution kernel)是可以用来提取特征的。图像和卷积核卷积,就可以得到特征值,就是 destination value。
卷积核放在神经网络里,就代表对应的权重(weight)。
卷积核和图像进行点乘(dot product),就代表卷积核里的权重单独对相应位置的Pixel进行作用。至于为什么
要把点乘完所有结果加起来,实际上就是把所有作用效果叠加起来
。就好比前面提到的RGB图片,红绿蓝分量叠加起来产生了一张真正意义的美女图。假设我们已经知道 RGB 的三个对应分量以及卷积核(里面的数字即相当于权重):
于是发生以下过程:
我们卷积输出的特征图(feature map),除了特征值本身外,还包含相对位置信息,比如人脸检测,眼睛,鼻子,嘴巴都是从上到下排列的,那么提取出的相应的特征值也是按照这个顺序排列的。
因此我们实现卷积运算的方式就是:从左到右,每隔 stride(步幅)列 Pixel,向右移动一次卷积核进行卷积;从上到下,每隔 stride(步幅)行 pixel,向下移动一次卷积核,移动完成。
就这样,我们先从左到右,再从上到下,直到所有 pixels 都被卷积核过了一遍,完成输入图片的第一层卷积层的特征提取。 -
基于卷积神经网络特征提取的MRI脑肿瘤图像分割.pdf
2021-09-26 12:15:12基于卷积神经网络特征提取的MRI脑肿瘤图像分割.pdf -
CEEMD与卷积神经网络特征提取的故障诊断方法研究.pdf
2021-09-26 09:16:28CEEMD与卷积神经网络特征提取的故障诊断方法研究.pdf -
基于卷积神经网络特征提取与融合的心律失常分类.pdf
2021-09-25 16:11:27基于卷积神经网络特征提取与融合的心律失常分类.pdf -
图像特征提取--深度学习卷积神经网络.pdf
2021-08-29 22:03:12主要说明VGG和Resnet网络提取图像特征 -
基于Word2vec和卷积神经网络特征提取的双高疾病预测.pdf
2021-09-25 16:15:10基于Word2vec和卷积神经网络特征提取的双高疾病预测.pdf -
卷积神经网络特征提取并放入SVM
2018-06-04 17:06:54CNN特征是由INCEPTION_V3模型得到的bottleneck(即卷积神经网络倒数第二层学到的特征),是一系列2048维特征向量,将一系列特征向量作为输入,放入SVM中进行分类(用的是matlab版libsvm),实验结果如下数据集 plant...实验记录
CNN特征是由INCEPTION_V3模型得到的bottleneck(即卷积神经网络倒数第二层学到的特征),是一系列2048维特征向量,将一系列特征向量作为输入,放入SVM中进行分类(用的是matlab版libsvm),实验结果如下
数据集 plant_photos12(12种,每种50~100张图像)
训练集—验证集
不降维(%)
PCA降维(%)
PCA+LDA降维(%)
80-20
40.9574
40.4255
78.7234
60-40
38.0319% (143/376)
37.766% (142/376)
75.7979% (285/376)
50-50
37.6596% (177/470)
40.8511% (192/470)
66.1702% (311/470)
40-60
35.6383% (201/564)
41.6667% (235/564)
55.3191% (312/564)
20-80
36.8351% (277/752)
37.234% (280/752)
38.5638% (290/752)
实验结果超级不好,最好的也就78%左右,难过
,直接修改softmax分类器为12,得到的结果都是91.4%,之前看到一篇论文对23 类鱼种数据集, 共 27 370 张鱼的图像进行分类,用CNN+SVM方法得到了98%左右的识别率。难道是因为数据集太少?
对数据集进行数据增强(水平翻转+垂直翻转)后,实验结果惨不忍睹,我的课题创新点啊,本想着结果会很好呢。问题出在哪里?
为什么用传统的形状特征、lbp特征放入svm得到的结果比cnn+svm好呢?
cnn+softmax结果就比传统方法好,想不明白啊!
-
卷积神经网络提取特征原理
2021-03-01 18:31:46众所周知,卷积神经网络是深度学习中非常有代表性的学习领域,而深度学习又是机器学习的主要分支,因此卷积神经网络就是用来让机器学习的过程途径,而机器要学的就是图像中的特征,“卷积”就是用来提取特征的。...众所周知,卷积神经网络是深度学习中非常有代表性的学习领域,而深度学习又是机器学习的主要分支,因此卷积神经网络就是用来让机器学习的过程途径,而机器要学的就是图像中的特征,“卷积”就是用来提取特征的。
在卷积神经网络面前,所有图像都是矩阵,矩阵中就是一个个的像素,这些像素组成了我们肉眼看到的图像。最经典的CNN便是Let-5网络
卷积过程有三个重要的概念需要知道:局部感知、参数共享、池化
局部感知:
即网络部分连通,每个神经元只与上一层的部分神经元相连,只感知局部,而不是整幅图像。
局部感知通过滑窗实现,局部像素关系紧密,较远像素相关性弱。因此只需要局部感知,在更高层将局部的信息综合起来就得到了全局的信息。受启发于生物视觉系统:局部敏感;对外界认知从局部到全局。
权值共享:
从一个局部区域学习到的信息,应用到图像的其它地方去。即用一个相同的卷积核去卷积整幅图像,相当于对图像做一个全图滤波。一个卷积核对应的特征比如是边缘,那么用该卷积核去对图像做全图滤波,即是将图像各个位置的边缘都滤出来。(帮助实现不变性)。不同的特征靠多个不同的卷积核实现。
图像的局部统计特征在整幅图像上具有重复性(即位置无关性)。即如果图像中存在某个基本图形,该基本图形可能出现在任意位置,那么不同位置共享相同权值可实现在数据的不同位置检测相同的模式。比如我们在第一个窗口卷积后得到的特征是边缘,那么这个卷积核对应的就是边缘特征的提取方式,那么我们就可以用这个卷积核去提取其它区域的边缘特征。
池化:
比如max pooling,它是取一个区域的最大值。因此当图像发生平移、缩放、旋转等较小的变化时,依然很有可能在同一位置取到最大值,与变化前的响应相同,由此实现了仿射不变性。average pooling同理,发生较小的仿射变化后,均值可能依然不变。
受启发于生物视觉系统:局部敏感;对外界认知从局部到全局。
图像的卷积过程就相当于设置好的卷积核(滤波器),在图像矩阵上不停的进行滑动,将图片化为一个个patcks,卷积后我们会得到一个全新的图像 -
用MATLAB实现卷积神经网络CNN,并对图像进行特征提取_cnn图像处理matlab,cnn特征提取matalb
2021-05-26 22:12:39用MATLAB实现卷积神经网络,并对图像进行特征提取 文件列表: CNN CNN\cnnapplygrads.m CNN\cnnbp.m CNN\cnnff.m CNN\cnnnumgradcheck.m CNN\cnnsetup.m CNN\cnntest.m CNN\cnntrain.m CNN\expand.m CNN\... -
用MATLAB实现卷积神经网络CNN,并对图像进行特征提取
2020-02-27 12:41:21用MATLAB实现卷积神经网络,并对图像进行特征提取 文件列表: CNN CNN\cnnapplygrads.m CNN\cnnbp.m CNN\cnnff.m CNN\cnnnumgradcheck.m CNN\cnnsetup.m CNN\cnntest.m CNN\cnntrain.m CNN\expand.m CNN\... -
浅析卷积神经网络的图像特征提取技术_薛先贵.pdf
2020-05-18 08:30:59浅析卷积神经网络的图像特征提取技术 -
卷积神经网络是怎么提取特征的
2022-03-18 10:26:42卷积核(convolution kernel)又称为滤波器(filter)是可以用来提取特征的,其本质是一组权重。图像和卷积核卷积,就可以...浅析卷积神经网络为何能够进行特征提取_罗小丰同学的博客-CSDN博客_神经网络特征提取 ... -
利用卷积神经网络提取图像的特征信息_Pytorch
2022-03-25 15:09:510.前言 特征提取的英文叫做feature extractor,它是将一些原始的输入的数据维度减少或者将原始的特征进行重新组合以便于后续的使用。简单来说有两个作用:减少数据维度,整理已有的数据特征。为后续的图像处理任务... -
基于卷积神经网络的织物图像特征提取与检索研究进展_孙洁.pdf
2020-05-18 08:29:10基于卷积神经网络的织物图像特征提取与检索研究进展 -
基于反卷积的卷积神经网络特征可视化.zip
2020-05-27 09:01:06基于反卷积实习卷积神经网络的特征可视化,可视化的网络模型为VGG-19,将每一卷积层的特征图可视化,数量可以自己设置。 -
深度卷积神经网络特征提取的数学理论
2016-01-04 20:33:32深度卷积神经网络特征提取的数学理论 . pdf -
CNN(卷积神经网络)提取图像特征
2021-02-28 14:58:52CNN提取图像特征原文链接 -
浅析卷积神经网络为何能够进行特征提取
2018-11-09 16:56:01在此之前,我们先了解两个数学概念,特征值和特征向量。 这里先放3个传送门: https://blog.csdn.net/hjq376247328/article/details/80640544 https://blog.csdn.net/woainishifu/article/details/76418176 ... -
基于BP神经网络和卷积神经网络的MNIST手写数字识别
2021-01-22 10:44:09本基于BP神经网络和卷积神经网络对手写数字识别进行研究,使用10000张已标注的大小为28*28的手写数字图片进行训练和测试,从所有图片中随机选出9000张作为训练样本对网络进行训练,另外1000张作为测试样本用于测试... -
基于反卷积特征提取的深度卷积神经网络学习
2021-01-12 23:43:10鉴于此,提出一种基于反卷积特征提取的深度卷积神经网络学习方法.首先,采用无监督两层堆叠反卷积神经网络从原始图像中学习得到特征映射矩阵;然后,将该特征映射矩阵作为深度卷积神经网络的卷积核,对原始图像进行逐层... -
利用卷积神经网络提取特征
2018-09-20 22:10:45https://blog.csdn.net/jnulzl/article/details/51440055 https://blog.csdn.net/lcy7289786/article/details/68958662 -
基于卷积神经网络的特征融合视频目标跟踪方法
2021-01-26 10:01:52针对计算机视觉中目标跟踪的问题,提出基于卷积神经网络(CNN)提取深度特征并与边缘特征进行自适应融合的策略来实现视频目标的跟踪算法。卷积神经网络的低层网络可以获取目标的一部分空间结构、形状等特征;高层网络... -
论文研究-基于卷积神经网络的语音特征提取算法 .pdf
2019-08-17 23:55:01基于卷积神经网络的语音特征提取算法,楚博策,刘刚,语音识别时一种人机交互的手段,在如今电子计算机如此普遍的时代,如何让计算机可以智能化接受人类口头指令,听懂人类语言是一件 -
基于全卷积神经网络的焊缝特征提取的研究_张永帅.pdf
2021-09-20 03:07:22基于全卷积神经网络的焊缝特征提取的研究_张永帅.pdf -
基于多特征融合的卷积神经网络图像去雾算法
2021-01-27 10:42:52针对传统去雾算法需要人工提取特征,对比度低、信噪比低等问题, 提出一种基于多特征融合的卷积神经网络去雾算法。利用卷积神经网络算法模拟人类视觉系统对雾天图像进行层次化处理, 实现自动提取特征。算法采用直接从... -
基于卷积神经网络提取多尺度分层特征识别玉米杂草.pdf
2021-09-26 12:20:49基于卷积神经网络提取多尺度分层特征识别玉米杂草.pdf