- 博客(46)
- 资源 (2)
- 收藏
- 关注
原创 pytorch之tensorboard的使用
pytorch之tensorboard的使用导入模块from torch.utils.tensorboard import SummaryWritertb_writer = SummaryWriter()关于向量的可视化获取需要可视化的值,下面是将训练集上每个batch的平均损失及准确度可视化。tb_writer.add_scalars("loss", {"train": np....
2020-03-07 16:03:59
1108
原创 yolo_v3_1
研习yolo_v31、准备数据目标识别所需标注的图片格式如下,label boxes需显示每个待识别目标的位置信息,位置信息的格式一般为:[xmin, ymin, xmax, ymax], 即标注框左上角和右下角坐标。上图对应的标注存储为一XML文件,解析文件,在原图像显示矩形框即为上图。<?xml version="1.0" encoding="UTF-8"?>-<...
2019-09-29 14:32:28
346
原创 CNN拟合-基于Keras
CNN拟合-基于Keras此项目类似与由人脸预测年龄,输入一张图片,要求CNN预测一个近似连续的数值,利用CNN做自动特征提取。数据增强keras自带了ImageDataGenerator做数据增强,包含了基本的旋转,缩放,裁剪等功能。from keras.preprocessing.image import ImageDataGenerator# construct the trai...
2019-08-16 09:29:07
2202
原创 基于K-Means的彩色图像分割
基于K-Means的彩色图像分割下面的例子将展示如何通过K-Means和Lab颜色空间的彩色图像分割。首先读入图片,下图显示了一张用血毒素和伊红(H&E)染色的组织图像。这种染色方法有助于病理学家区分不同的组织类 型。如果忽略亮度的变化,你可以从上图中观察到多少种颜色?显然,你可以轻易的观察到红色,蓝色和粉色。而Lab颜色空间可以准确的定量这些颜色变化。下面使用makecfor...
2019-08-07 14:39:52
7673
10
原创 基于LAB颜色空间的彩色图像分割
基于LAB颜色空间的彩色图像分割首先加载原始图像fabric = imread('fabric.png');figure(1), imshow(fabric), title('fabric');上述彩图包含背景黑色,红色,绿色,紫色,紫红色以及边缘的黄色。LAB颜色空间是基于色彩进行图像分割的最优空间。 Lab颜色模型由三个要素组成,一个要素是亮度(L),a 和b是两个颜色通道。a包括...
2019-08-06 17:49:38
7802
3
原创 FIR滤波器设计
FIR滤波器设计介绍经典的滤波器分为IIR和FIR两种,分类的依据是根据设计的滤波器H(z)逆Z变换h(n),即:单位脉冲响应有限长无限长划分。实际上有限长的单位脉冲响应也是通过将非因果的有限长脉冲响应截断所得到的,这样就导致了FIR滤波器在通带存在纹波,这也就是所谓的吉布斯效应。产生这个现象的根本原因就是截断相当于在时域乘以一个矩形框,矩形框的频响有边瓣效应, 无论什么窗函数都有边
2018-01-20 11:36:59
13696
原创 CT图像增强
CT图像增强简介如下图所示,希望对这幅人体骨骼扫描图片实现增强的效果。 通过这个实验, 我们可以了解到一阶微分算子以及二阶微分算子在图像细节信息以及边缘信息获取的原理;以及将其用在图像增强上的优缺点。处理过程首先我们选择二阶微分算子-Laplace算子来处理图像g2,然后通过原图f2(double类型)减去g2来获取增强的图像。 这里说明以下做减法而不是加法的原因,图像的二阶微分不为零的区域是
2017-11-30 17:21:03
8335
原创 脉搏波信号处理
脉搏波信号处理%信号采样N = 256;fs = fr;data = data(1:N);n = 1:N;t = n/fs;plot(t,data);首先,我们将原始一维脉搏波信号做256点的采样,以便其方便fft计算。采样频率和原信号的频率一样均为30hz。画出此信号,可见其包含一些高低频的噪声。y=fft(data,N); %对信号进行快速Fourier变换mag=abs(
2017-10-31 10:13:25
16177
17
原创 caffe基础-14cifar10数据集的训练
准备数据集cifar10的数据集介绍见官网:https://www.cs.toronto.edu/~kriz/cifar.html它是个小的数据集,有10个类。每张图片的size是33*32*3,一共有60000张图片。我们可以在官网下载其二进制的版本,放到~/caffe/data/cifar10文件夹下。执行脚本:get_cifar10.sh,其内容如下,要注意注释掉wget 命令(因为
2017-09-24 09:50:36
845
原创 caffe基础-13AlexNet模型bvlc_reference_caffenet的测试
1、 准备AlexNet模型的相关caffe资料在Github均可见,https://github.com/BVLC/caffe/tree/master/models/bvlc_reference_caffenet我们把这个训练好的模型下载下来后,测试一下模型的分类效果。在目录:/home/username/caffe/examples/images下,有一些小猫的图片。我们以其作为模型的输入
2017-09-21 15:23:02
1855
2
原创 opencv-视频图像的前景动态追踪
opencv2的前景分割方法主要是高斯混合背景/前景分割方法,而3.0版本才增加了knn前背景分割器。高斯混合背景/前景分割方法可以通过两个类BackgroundSubtractorMOG 和BackgroundSubtractorMOG 2实现,测试后发现BackgroundSubtractorMOG 2的实现效果要好。关于这个构建这个类相关的参数说明参见博客:http://blog.csdn
2017-09-18 14:41:03
2453
原创 opencv02-策略模式设计
opencv02-策略模式设计先来看看我们的代码效果,输入一张图片: 我们算上图中的像素点与RGB(20, 220, 20)的距离,也就是与一个偏绿色像素点的距离。如果距离小于一定的值,就将这个像素值置为255,否则置为0。则,我们得到的输出图片是: 想要实现上述效果实际并不难,我们这里打算用一种设计模式来实现这个过程。我们将一些算法封装在头文件里,比如计算距离,设置最小距离等等。而在类里就
2017-09-03 13:43:30
488
原创 opencv01-像素的访问
opencv01-像素的访问这一系列的博客代码所搭建的环境是:opencv2.4.12+vs2013。 对于像素的访问,可以有很多种方法,不同的访问方式有着不同的效率。 下面我们将用不同的访问像素的方法来对图像随机加一些椒盐噪声。方法一:void salt(Mat &img, int n){ for (int k = 0; k < n; k++){ //添加k个随机噪声
2017-09-02 15:23:35
477
原创 图像项目-基于opencv的人脸识别
基于opencv的人脸识别opencv的一个目录:opencv/sources/data/haarcascades 提供了用于人脸检测相关的文件,加载这些文件,就可以方便的实现人脸检测的相关工作。face_cascade = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')faces = face_cascade.det
2017-08-24 20:16:36
13470
2
原创 图像处理项目-车标识别
图像处理项目-车标识别概述我们的目标是提供一张原始车标图像作为基准。然后,提供一个实际车辆图片的车标部分的截图。然后实现两者之间的匹配。实现车标识别显然其特征是与图像尺度及旋转无关的,所以SIFT特征是一个不错的选择。匹配算法的选择:FLNN相同车标的匹配效果:不同车标的匹配效果:
2017-08-23 20:38:32
6422
2
原创 图像处理项目-监控视频的行人追踪
监控视频的行人追踪概述要求:根据提供的监控视频图像,追踪视频中行人并对其运动轨迹做出预判。实现视频图像的行人认定为图像的前景区域,识别新人即为分割图像的前景背景,故可使用knn实现分割利用opencv的BackgroundSubtractorKNN实现的分割效果如下图所示:对分割出的前景区域,可以计算该区域的HSV颜色模型并计算反投影,再利用camshift( 原理是均值漂移算法 )实现对前
2017-08-16 22:12:01
9427
7
原创 目标追踪-meanshift算法
目标追踪-meanshift算法原理简介开始 结果 如上图所示,meanshift算法原理概括如下:首先设定起始点x,就是圆的圆心。 所有在球内的点就是xi , 黑色箭头就是我们计算出来的向量xxi , 将所有的向量 xxi进行求和计算平均就得到我们的meanshift 向量,也就是图中黄色的向量。接着,再以meanshift向量的终点为圆心,再做一个高维的球,如下图所示,重复上面的步骤,
2017-08-15 10:59:02
1669
原创 目标追踪-背景分割
目标追踪-背景分割介绍传统的前景背景分割方法有GrabCut,分水岭算法,当然也包括一些阈值分割的算法。但是这些算法在应用中往往显得鲁棒性较弱,达不到一个好的分割效果。现代的背景分割算法融入了机器学习的一些方法来提高分类的效果。如KNN,混合高斯(MOG2),Geometric Multigrid。这些算法的基本原理就是对每一帧图像的环境进行学习,从而推断出背景区域。opencv的Backgr
2017-08-15 10:25:59
3179
原创 caffe应用-01灰度图像分类之手写体数字识别
caffe应用-01灰度图像分类之手写体数字识别很多情况下,我们去做图像的分类可能和图像的颜色没有太大的关系,像手写体识别,人脸识别等。mnist的这个例子是caffe官方自带的,他的数据源包括60000张的训练数据以及10000张的测试数据。其中,每张都是大小为28*28像素的单通道(灰度值为0-255)图片。1.制作lmdb数据源将所需图片文件夹(tain和test)下载后放在一个文件夹
2017-08-03 16:38:56
2035
原创 caffe基础-12如何成功跑通caffe的example
caffe基础-12如何成功跑通caffe的examplecaffe/examples/mnist目录下有个lenet_train_test.prototxt文件,这个网络是官方库用来做手写体识别的。其网络结构如下图所示(绘图命令参考http://blog.youkuaiyun.com/terrenceyuu/article/details/76531679): 由于lmdb数据源在安装caffe后是没有的,
2017-08-01 17:35:08
855
原创 caffe基础-11绘制网络
caffe基础-11绘制网络1、安装graphViz:# sudo apt-get install graphviz2、安装pip(if need):参考:https://zhidao.baidu.com/question/1240554972151163659.html3 、安装pydot:# sudo pip install pydot4、绘图命令:sudo python /home/t
2017-08-01 15:21:44
391
原创 caffe基础-10常见训练命令解析
caffe基础-10常见训练命令解析###训练网络#sudo sh ./build/tools/caffe train --solver=examples/mnist/train_lenet.sh-solver:必选参数。一个protocol buffer类型的文件,即模型的配置文件。如:# ./build/tools/caffe train -solver examples/mnist/lene
2017-07-29 10:55:05
646
原创 caffe基础-09solver超参数文件配置
caffe基础-09solver超参数文件配置#往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解。#caffe提供了六种优化算法来求解最优参数,在solver配置文件中,通过设置type类型来选择。 Stochastic Gradient Descent (type: "SGD"),#SGD做不了,其他算法基本也不行 AdaDelta (type: "A
2017-07-28 11:00:37
638
原创 caffe基础-07Reshape层的配置
caffe基础-07Reshape层的配置#作用:在不改变数据的情况下,改变输入的维度layer { name: "reshape" type: "Reshape" bottom: "input" top: "output" reshape_param { shape { dim: 0 # copy the dimension f
2017-07-28 09:42:05
6261
原创 caffe基础-06softmax层的配置
caffe基础-06softmax层的配置#softmax-loss layer:输出loss值 具体参见 #http://blog.youkuaiyun.com/supercally/article/details/54234115layer { name: "loss" type: "SoftmaxWithLoss" bottom: "ip1" bottom: "label" top:
2017-07-28 09:34:06
469
原创 caffe基础-05全连接层的配置
caffe基础-05全连接层的配置#全连接层,输出的是一个简单向量 参数跟卷积层一样layer { name: "ip1" type: "InnerProduct" bottom: "pool2" top: "ip1" param { lr_mult: 1 } param { lr_mult: 2 } inner_product_param {
2017-07-28 09:13:11
472
原创 caffe基础-04激活函数层的配置
caffe基础-04池化层的配置#在激活层(接在每个卷积层后)中,对输入数据进行激活操作,是逐元素进行运算的,在运算过程中,没有改变数据的大小,即输入和输出的数据大小是相等的。###Sigmoid (求导导致0,不使用)layer { name: "test" bottom: "conv" top: "test" type: "Sigmoid"}#ReLU是目前使用最多的激活函数
2017-07-28 09:07:51
461
原创 caffe基础-03池化层的配置
caffe基础-03池化层的配置layer { name: "pool1" type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { pool: MAX #池化方法,默认为MAX。目前可用的方法有MAX, AVE kernel_size: 3 #池化的核大小 stride: 2 #池化的步长,
2017-07-28 09:01:45
1269
原创 caffe基础-02卷积层的配置
caffe基础-02卷积层的配置layer { name: "conv1" type: "Convolution" #卷积层 bottom: "data" top: "conv1" param { #最终的学习率是这个数乘以solver.prototxt配置文件中的base_lr。 lr_mult: 1 #lr_mult: w学习率的系数, } param
2017-07-28 08:58:35
548
原创 caffe基础-01数据层的配置
caffe基础-01数据层的配置layer { name: "cifar" type: "Data" #代表是数据层,第一层 top: "data" #一般用bottom表示输入,top表示输出,多个top代表有多个输出 top: "label" #计算loss include { phase: TRAIN #仅用于TRAIN,训练网络分为训练阶段和自测试阶段,如果
2017-07-28 08:37:23
471
原创 python-面向对象
python-面向对象#coding:utf-8class Page: #定义类属性 __name = 'splashPage'; title = '闪屏页面'; #获取类属性 def getName(self): return self.__name; def getTitle(self): return self.tit
2017-07-25 10:29:11
328
原创 python-基本数据类型之字典
python-基本数据类型之字典#coding:utf-8info = {'id':1001, 'name':'terrence', 'address':'Houston'};#添加新元素info['id'] = int('1002');print('new ID = %d' %info['id']);print('*' * 30);#属性操作print(info.keys());print
2017-07-24 14:14:24
334
原创 隐马尔科夫模型Hmm的研究
隐马尔科夫模型Hmm的研究摘要隐马尔可夫模型(Hidden Markov Model,HMM)作为一种统计分析模型,创立于20世纪70年代。80年代得到了传播和发展,成为信号处理的一个重要方向,现已成功地用于语音识别,行为识别,文字识别以及故障诊断等领域。本文主要从以下几个方面研究了hmm。第一,分析了hmm经典三大问题及其推导过程。第二,总结hmm在语音信号处理上一个经典的应用——应用hmm说
2017-06-14 22:02:20
1725
原创 图像复原之退化模型
图像复原之退化模型概述引言退化就是将一幅正常的图像给弄得不正常,从而验证后续的复原方法是否能达到预期的效果。如上图所述,正常的图像经过退化函数H还需要加噪声,下面我们来介绍几种常见的噪声模型。高斯噪声来源于诸如电子线路的传感器噪声;瑞利噪声源于深度成像的表征噪声现象;指数和伽马源于激光成像。对于这些噪声的去除估计大家应该会想到很多的方法。空域包括如均值滤波,统计滤波中的中值滤波,频域的带阻滤波和
2017-03-25 15:17:54
22939
3
原创 图像复原之由投影重建图像
图像重建之由投影重建图像简述部分引言最初接触由投影重建图像这块内容的时候是在车牌识别中。上图是在90°的投影下的结果。下面我们开一个简单图像的特定角度下的投影 当我们收集到各个角度的投影后,并希望通过这些投影的图像重建原图像。上图的最后一张图片就是直接重建的图像。可见,其有非常明显的“晕环”现象。雷登变换雷登变换阐述了一幅图像与其在各个角度下投影的具体表示。 下面我们在matlab上展示一副
2017-03-24 22:36:48
16803
3
原创 小波变换在数字图像上的应用(下)
小波变换在数字图像上的应用(下)仿真示例这里的程序均来自于张德丰版的MATLAB数字图像处理一书中,我只是拿出一部分来和大家分享,准备加上一些自己的理解。1、连续小波变换和离散小波变换‘上图给出了原始信号和离散小波及连续小波变换的结果。可以看出其空间域与频率域的特性,如原信号在320-350是一个近似的直流信号,从小尺度的CWT或DWT都可以看出这段灰度值很小(偏黑色)。2、二维小波变换
2017-03-19 16:15:34
4400
1
原创 小波变换在数字图像上的应用(上)
小波变换在数字图像上的应用(上)小波变换原理的简单概述一维小波变换关于一维连续小波和离散小波变换的公式只能抱书啃了,这里给出一张图展示小包变换分析的一些特点。 第一幅图是原始信号,其右侧是它的傅里叶谱,由傅里叶谱我们可以知道原始信号存在两个频率峰值。但是关于这两个频率峰值出现的时间却无法得知。也许你觉得短时傅里叶变换可以解决这个问题,实际上关于STFT窗宽的选择存在一个矛盾。选择的框太宽时间分辨
2017-03-19 10:42:15
11539
原创 切比雪夫逼近法设计FIR滤波器
切比雪夫逼近法设计FIR滤波器概念切比雪夫逼近法,是在所需要的区间[a,b]内,使误差函数E(x)=|p(x)-f(x)|较均匀一致,并且通过合理选择p(x),使E(x)的最大值En达到最小。切比雪夫最佳一致逼近的基本思想是,对于给定区间[a,b]上的连续函数f(x),在所有n次多项式的集合中,寻找一个多项式,使其在[a,b]上对f(x)的偏差和其他一切属于集合的多项式对f(x)的偏差相比是最小
2017-03-12 10:12:56
8663
原创 matlab双线性z变换法设计数字低通滤波器
matlab双线性z变换法设计数字低通滤波器双线性z变换法利用了正切函数的非线性特点,将整个jΩ轴压缩到了单位圆的一周上。低通:clear; close all; clc;fp=100;fs=300;Fs=1000; rp=3;rs=20; % 3db,20db wp=2*pi*fp/Fs;% 2Pi - Fs —> 100hz - 0.1Fs*2Pi=0.2Pi ws=2*pi*fs
2017-03-10 17:14:45
12612
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人