特征提取

pytorch提取某一层网络特征图

扶醉桌前 提交于 2019-12-05 08:33:59
pytorch提取某一层网络特征图 由于pytorch的原模型很多用到了 nn.Sequential ,因此中间的特征图难提取。 解决办法:自己写一个 forward 函数,然后 索引 需要的那一层。 import torch import torchvision.models as models import numpy as np import torch.nn.functional as F input_data = torch.randn(1,3,256, 256) def resnet_cifar(net,input_data): x = net.conv1(input_data) x = net.bn1(x) x = F.relu(x) x = net.layer1(x) x = net.layer2(x) x = net.layer3(x) x = net.layer4[0].conv1(x) #这样就提取了layer4第一块的第一个卷积层的输出 x=x.view(x.shape[0],-1) return x model = models.resnet18() x = resnet_cifar(model,input_data) 来源: CSDN 作者: CCB_307 链接: https://blog.csdn.net/qq_24306353/article

CNN提取图片特征,之后用SVM分类

眉间皱痕 提交于 2019-12-05 08:06:09
先用CNN提取特征,之后用SVM分类,平台是TensorFlow 1.3.0-rc0,python3.6 这个是我的一个小小的测试,下面这个链接是我主要参考的, 在实现过程中,本来想使用 vgg16 或者 VGG19 做迁移来提取特征 ,但是担心自己的算力不够,还有就是 UCI 手写数据集本来就是一个不大的数据集,使用 vgg16 或 vgg19 有点杀鸡用牛刀的感觉。于是放弃做迁移。 我的代码主要是基于下面链接来的。参考链接 点击打开链接 这个代码主要是,通过一个CNN网络,在网络的第一个全连接层也就h_fc1得到的一个一维的256的一个特征向量,将这个特征向量作为的svm的输入。主要的操作是在代码行的140-146. 同时代码也实现了CNN的过程(读一下代码就知道)。 如果你要是知道你的CNN的结构,然后就知道在全连接层输出的其实就是一个特征向量。直接用这个特征向量简单处理输入到svm中就可以。 具体的参考论文和代码数据集等, 百度网盘 来源: CSDN 作者: 邓乐乐 链接: https://blog.csdn.net/qq_27756361/article/details/80479278

高光谱遥感图像相关知识梳理大全

て烟熏妆下的殇ゞ 提交于 2019-12-05 07:35:02
前言 ​ 本资料整理了高光谱遥感图像概念定义、分析处理与分类识别的基本知识。第一部分介绍高光谱图像的一般性原理和知识,第二部分介绍了高光谱图像的噪声问题;第三部分介绍高光谱图像数据冗余问题以及数据降维解决冗余的方法;第四部分介绍高光谱图像的混合像元问题,对光谱解混做了一定介绍;第五部分和第六部分分别介绍了高光谱图像的监督分类和分监督分类的特点、流程和常用算法。 1.基本介绍 高光谱遥感(Hyperspectral remote sensing) 是将成像技术和光谱技术相结合的多维信息获取技术,同时探测目标的二维集合空间与一维光谱信息,获取高光谱分辨率的连续、窄波段图像数据。 高光谱图像与高分辨率图像、多光谱图像不同。 高光谱识别优势: 光谱分辨率高、波段众多,能够获取地物几乎连续的光谱特征曲线,并可以根据需要选择或提取特定波段来突出目标特征; 同一空间分辨率下,光谱覆盖范围更宽,能够探测到地物更多对电磁波的响应特征; 波段多,为波段之间的相互校正提供了便利; 定量化的连续光谱曲线数据为地物光谱机理模型引入图像分类提供了条件; 包含丰富的辐射、空间和光谱信息,是多种信息的综合载体。 高光谱在识别方面的困难: 数据量大,图像包含几十个到上百个波段,数据量是单波段遥感图像的几百倍;数据存在大量冗余,处理不当,反而会影响分类精度;

深度学习-语言处理特征提取 Word2Vec笔记

会有一股神秘感。 提交于 2019-12-05 05:02:07
Word2Vec的主要目的适用于词的特征提取,然后我们就可以用LSTM等神经网络对这些特征进行训练。 由于机器学习无法直接对文本信息进行有效的处理,机器学习只对数字,向量,多维数组敏感,所以在进行文本训练之前还要做一些转化工作,Word2Vec就是担负此重任的有效工具,当然还有其他工具,就不再说明。本次只是简单介绍Word2Vec的工作原理,想要详细理解还请看一下文章最后分享的链接。 Word2Vec工作过程 1.建立字典,每个词生成 one-hot 向量 Word个数为 n ,产生 n 维向量,第i 个 word 的向量为(0, 0, 0,…. 1, 0, 0, 0, 0)其中1的位置在向量的第i个位置上。     2.训练数据集构建 我门可以使用长度为4的滑动窗口进行取“词对”,如下图: 3.建立简单的神经网络 建立神经网络的真正意义在于要学到当前词是通过何种向量映射到其它词的。最后这个向量才是能够作为文本学习的特征向量。 Word2Vec本身不具有多大的学习作用,但它产生的词映射向量在当前的技术看来是作为机器学习语言的前提。如下图,我们所需要的就是中间的神经元模型: 4 . 生成最终 Vect 训练 model 特征提取,每个 one-hot 对应一个300d向量如下图 生成最终 look up word table Word2Vec 特点 1.利用上下文 (context)

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

十年热恋 提交于 2019-12-04 12:17:53
一、研究意义 卷积神经网络(CNN)由于其强大的特征提取能力,近年来被广泛用于计算机视觉领域。1998年Yann LeCun等提出的LeNet-5网络结构,该结构使得卷积神经网络可以端到端的训练,并应用于文档识别。LeNet-5结构是CNN最经典的网络结构,而后发展的卷积神经网络结构都是由此版本衍生而来。 在过去六年中,由于深度学习和卷积网络的发展和进步,基于图像的目标检测和分类能力已经大大提高。而目标检测是计算机视觉领域一个重要的研究方向,是众多高级任务的必备前提,包括场景理解,事件识别等。目前,目标检测也广泛用于安全监控,自动驾驶,人机交互,增强现实等众多领域。目标检测对计算机视觉和产业界实际应用都有十分重要的意义。 然而, 由于视角、遮挡、姿态等因素引起目标发生形变, 导致目标检测成为一个具有挑战性的任务。设计高准确率高效率的目标检测算法仍具有重大意义。 二、研究现状 如今, 基于卷积神经网络的目标检测已经超越传统目标检测方法, 成为当前目标检测的主流方法。本文根据卷积神经网络的使用方式,将基于卷积神经网络的目标检测分为两大类: 基于分类的卷积神经网络目标检测和基于回归的卷积神经网络目标检测。 1. 基于分类的卷积神经网络目标检测 基于分类的CNN也可以成为two-stage检测算法,传统目标检测方法包含预处理、窗口滑动、特 征提取、特征选择、特征分类、后处理等步骤

pytorch模型中间层特征的提取

匿名 (未验证) 提交于 2019-12-03 00:43:02
转载自: https://blog.csdn.net/LXX516/article/details/80132228 定义一个特征提取的类: #中间特征提取 class FeatureExtractor(nn.Module): def __init__(self, submodule, extracted_layers): super(FeatureExtractor,self).__init__() self.submodule = submodule self.extracted_layers= extracted_layers def forward(self, x): outputs = [] for name, module in self.submodule._modules.items(): if name is "fc": x = x.view(x.size(0), -1) x = module(x) print(name) if name in self.extracted_layers: outputs.append(x) return outputs #特征输出 myresnet=resnet18(pretrained=False) myresnet.load_state_dict(torch.load('cafir_resnet18_1.pkl'))

形态学操作--特征提取

匿名 (未验证) 提交于 2019-12-03 00:19:01
膨胀 与 腐蚀 ,使用不同的结构元素实现对输入图像的操作、得到想要的结果。 (1)二值图像与灰度图像上的腐蚀操作原理 (2)二值图像与灰度图像上的膨胀操作 原理 (3)结构元素,上述膨胀与腐蚀过程可以使用任意的结构元素(矩形、圆、直线) 操作步骤 (1)输入图像彩色图像 - imread () (4)定义结构元素 - getStructuringElement() (5)开操作 (腐蚀+膨胀)提取 水平与垂直线 (6)后处理 - bitwise_not() 源代码 #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; int main(int argc, char** argv) { Mat src, dst; src = imread("C:/Desktop/omd_Opencv/ms/2018-05-09_161301.png");//输入彩色图像 if (!src.data){ printf("could not load image...\n"); return -1; } char INPUT_WIN[] = "input image"; char OUTPUT_WIN[] = "result image"; namedWindow(INPUT_WIN,CV_WINDOW

无人驾驶软件开发工具

匿名 (未验证) 提交于 2019-12-03 00:17:01
1.系统:ubuntu 14.04 2.IDE:VSCode,Qt 3.可视化库: OpenCV 。封装了大量的可应用于无人驾驶研究的函数,包括各种滤波器算法、特征点提取、矩阵运算、投影坐标转换、机器学习算法等。(Learning OpenCV3) libQGLViewer。OpenGL 适配 qt 的一个库。官网及压缩包内的 example。 Boost 库。相关的(电子或纸质)书,把目录读一遍。 QCustomplot。对照着 example 中的例程写代码,可以快速把自己的数据变成可视化图像。 4.通信机制:Ros,LCM 5.Git & Github。廖雪峰的 Git 教程,浅显易懂,而且还配合图文+视频,简直良心。 参考:https://mp.weixin.qq.com/s/cvnQaS6lsSGljt1IiUU7tA 来源:博客园 作者: 寒江小筑 链接:https://www.cnblogs.com/yrm1160029237/p/11796817.html

鸢尾花数据(PCA主成分分析)

匿名 (未验证) 提交于 2019-12-03 00:14:01
1.导包 2.提取数据 3.PCA降维 提取两个主成分的累计贡献率达到了0.9777,说明主成分的解释效果较好。 当参数n_components中不填写任何值时,默认返回min(X.shape)个特征。一般来说,样本量都会大于 特征数目,所以什么都不填就相当于转换了新特征空间,但没有减少特征的个数。一般不会使用 _components取值。 来源:博客园 作者: lvzw 链接:https://www.cnblogs.com/lvzw/p/11655902.html

[opencv]keypoint数据结构分析

匿名 (未验证) 提交于 2019-12-03 00:11:01
KeyPoint 这数据结构中有如下数据成员: angle: 角度,表示特征点的方向,通过Lowe大神的论文可以知道,为了保证方向不变形,SIFT算法通过对特征点周围邻域进行梯度运算,求得该点方向。-1为初值。 class_id :当要对图片进行分类时,我们可以用class_id对每个特征点进行区分,未设定时为-1,需要靠自己设定。 size :特征点领域的直径。 octave :代表是从金字塔哪一层提取的得到的数据。 pt :特征点的坐标。 response :响应程度,代表该点强壮大小,即该点是特征点的程度。 注意:keypoint只是保存了opencv检测到的特征点的一些基本信息,也就上面所说的这些,但每个特征点所提取出来的特征向量其实不是在这个里面,特征向量结果放在一个Mat的数据结构中。 这个数据结构才真正保存了该特征点所对应的特征向量。 来源:博客园 作者: CodeByLinXu 链接:https://www.cnblogs.com/lx17746071609/p/11591980.html