- 博客(50)
- 资源 (9)
- 问答 (6)
- 收藏
- 关注
原创 空间域滤波、频率域滤波及其关系
空间域滤波、频率域滤波实现,以及使用傅里叶变换和卷积定理说明其等价性。观察不同空间域卷积核对应的频谱图,从不同的角度理解其原理。
2022-09-21 22:28:31 5371
原创 BatchNorm原理以及PyTorch实现
BatchNorm算法简单来说BatchNorm对输入的特征按照通道计算期望和方差,并标准化(均值为0,方差为1)。但这会降低网络的表达能力,因此,BN在标准化后还要进行缩放平移,也就是可学习的参数γ\gammaγ和β\betaβ,也对应每个通道。BatchNorm的原理并不清楚,可能是降低了Internal Covariate Shift,也可能是使得optimization landscape变得平滑。优点提高训练稳定性,可使用更大的learning rate、降低初始化参数的要求并可以构建
2021-11-22 16:54:23 2549
原创 torchvision.transforms.RandomResizedCrop()代码解析
ENVpyorch 1.9.1torchvision 0.10.1关键代码注释transforms.RandomResizedCrop :先按照设置的缩放和宽高比切割图片,然后将切割后的图片缩放到指定大小。主要需要解释的是get_params函数如何获取切割位置信息和函数的执行流程:class RandomResizedCrop(torch.nn.Module): """初始化""" def __init__(self, size, scale=(0.08, 1.0), ratio
2021-09-25 16:20:21 2676
原创 VAE——变分自编码器的数学推导
问题考虑一个生成模型(Generative model),可以从一个隐变量(latent variable, z)映射到一张图片(x),用有向无环图模型(directed acyclic graphical model / Bayesian network)表示为上图表示,x的分布可以通过首先从p(z)采样得到z后再从p(x|z)采样建模。p(z) 是先验概率,意味着只需要选择一个合适的分布就可以了,一般采用单位高斯分布(unit Gaussian distribution),因为高斯分布的熵最大
2021-03-25 10:08:21 685
原创 Nginx搭建RTMP+HLS流媒体服务器
ENVUbuntu 20.04Windows 10FFmpegPot PlayerUbuntu使用Nginx 搭建RTMP服务器安装Nginx和RTMP模块sudo apt install nginx libnginx-mod-rtmp修改nginx的配置文件sudo vim /etc/nginx/nginx.conf在文件后追加以下内容rtmp { server { listen 1935; ch
2021-01-21 23:31:22 619
原创 VS Code + LaTex + SumatraPDF
VS Code + Latex Workshop + SumatraPDF三者搭配以实现最好的Latex编辑体验。重点设置PDF的预览以及编辑时的正向和反向跳转,可以极大的提高编辑效率。
2020-12-22 08:49:56 3075 4
原创 CentOS 7.9 从源码安装PyTorch
ENVCentOS Linux release 7.9.2009 (Core)GCC 4.8.5Driver Version: 440.95.01CUDA 10.2.89cuDNN 7.6.5conda 4.8.3Tesla K40m升级GCC系统自带的4.8.5的gcc不满足编译要求,所以需要升级一下。我直接从源码编译安装gcc 7.5.0tar xzf gcc-7.5.0.tar.gzcd gcc-7.5.0/mkdir build && cd build.
2020-12-10 23:01:57 806
原创 在Windows 10上用Virtualbox安装MacOS 10.13
ENVWindows 10 1909VirtualBox 6.1.0MacOS 10.13.iso安装在官网下载最新的Virtualbox和扩展包,并全部安装。新建虚拟机使用管理员权限打开CMD,运行以下指令,把"MacOS"改成你的虚拟机名字cd "C:\Program Files\Oracle\VirtualBox\"VBoxManage.ex...
2019-12-19 14:41:01 3159 4
原创 Windows下CMake编译OpenCV 4.1.2+contrib + CUDA
ENVCMake 3.16.0Visual Studio 2019Windows 10 1909CUDA 10.2.89 + CUDNN 7.6.5OpenCV 4.1.2opencv_contrib 4.1.2Core i7 9700K + RTX 2080Eigen(可选)Eigen官网Compile# 注意替换命令中的安装路径和contrib的路径cmake -A...
2019-12-05 17:24:59 983
原创 最大似然估计、KL散度和交叉熵
深度学习建立在概率论的基础上,本质是估计数据集(具有随机误差)的分布。极大似然估计极大似然估计是点估计的一种,我们定义一个似然函数来作为对真实分布的估计,取似然程度最大的一组参数作为估计值。根据大数定理,当数据量足够大时,其差为0。给定分布P(x;θ)P(x; \boldsymbol{\theta})P(x;θ),从中取一组样本X1,X2,X3,...,XnX_1, X_2, X_3, .....
2019-09-18 20:10:24 1759 2
原创 模板类型推断、auto和decltype
template type deductionreference or pointerint x = 27; const int cx = x;const int& rx = x; template<typename T>void f(T& param); int : int&const int : const int&cons...
2019-05-17 10:43:56 426
原创 CMake笔记
Hello world文件目录./_01 | +- main.cpp +- CMakeLists.txt /// main.cpp#include <iostream>int main(){ std::cout << "Hello world!" << std::endl; return 0;}# CMakeList...
2019-03-22 11:41:49 332
原创 一切皆对象
一切皆为对象Python中的函数、类、类型、对象都是对象。分类python中的对象可以分为三类class objecttype objectobject一等对象满足以下条件的编程实体被称为“一等对象”:在运行时创建能赋值给变量作为参数传递给函数作为函数的返回结果function object、class object、object都是一等对象,而type objec...
2019-03-06 16:00:35 332
原创 引用计数与智能指针
C++没有完善的GC机制,直到C++11才在STL中正式引入了智能指针。出现在库中说明智能指针不是语言特性。C++智能指针实现了部分自动内存管理的目的。引用计数引用计数是使用资源管理函数(构造析构复制等函数)和作用域原理实现的。每块动态分配的内存(堆内存)都维护一个相应的计数器,来记录指向该内存的变量数目,当值为0时,意味着没有变量再使用该部分内存,意味着可以删除掉。引用计数的优缺点引用计...
2019-03-01 15:31:10 352
原创 类与对象——PyObject
对象和类型对象——Object &amp;amp; type objectObject是分配在堆(heap)上的结构,使用引用计数方法进行垃圾回收(Type Object例外)。Object永远不会被静态分配或者分配在栈上,必须只能通过特殊宏或函数来访问。对象都拥有一个reference count属性,用来记录指向该对象的指针数量,当引用计数归零时,该对象将被从堆上移除。对象都拥有一个type...
2019-02-28 21:06:27 6426
原创 从C++对象模型谈C语言的继承与多态
C++对象模型C++类中一般包含两种数据成员和三中函数成员非静态数据成员静态数据成员非静态成员函数静态成员函数虚函数在类的每个实例化对象中,只包含两种数据,非静态数据成员和指向虚函数表(virtual table)的指针(vptr)继承的内存模型在不考虑多态的情况下,也就只考虑继承过程中的非静态数据成员的内存模型就可以了。在C++中,每个子类对象的内存空间中包含所有的父类的...
2019-02-28 16:57:07 336
原创 Windows编译安装OpenCV 3.4.3(CMake + VS2017)
本文使用命令行在windows上编译安装OpenCV,使用界面请参考(Windows 正确安装OpenCV及使用(CMake+VS2015))[https://blog.csdn.net/ice__snow/article/details/55803856]ENVOpenCV 3.4.3Visual Studio 2017CMake 3.12.3Windows 10Compil...
2018-10-20 12:33:19 1967
原创 Ubuntu配置及美化 (18.04 / 20.04 / 22.04基本相同)
Ubuntu 18.04、20.04 以及 22.04 的基础配置、常用软件安装以及美化
2018-04-30 21:04:23 145352 27
原创 Ubuntu 18.04 安装 CUDA 9.1
安装GCC/G++ - 5Ubuntu18.04默认GCC-7.3.0,由于CUDA未支持GCC-7,所以需要安装低版本的5或者<= 6.3.0,并设置为默认版本sudo apt install gcc-5 g++-5# 设置默认版本sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 --s...
2018-04-29 18:10:24 10860 5
原创 右值、移动语义和完美转发
1. lvalue / rvalue An lvalue is an expression that refers to a memory location and allows us to take the address of that memory location via the & operator. An rvalue is an expression that is ...
2018-04-25 18:22:48 363
原创 SVM
WhatSVM即Support Vector Machines——支持向量机,是一种分类器,属于监督学习的范畴。 Q: 给定训练样本{(x1,y1),....,(xi,yi)},yi∈{−1,+1}{(x1,y1),....,(xi,yi)},yi∈{−1,+1}\{(\boldsymbol{x}_1, y_1), ...., (\boldsymbol{x}_i, y_i)\}, y_...
2018-03-28 17:40:22 328
原创 使用CuDNN进行卷积运算
CuDNNNVIDIA ® cuDNN is a GPU-accelerated library of primitives for deep neural networks. It provides highly tuned implementations of routines arising frequently in DNN applications:Convolution fo...
2018-03-26 16:12:50 15815 7
原创 OpenCV Haar cascade人脸识别
源代码#include <iostream>#include <vector>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ CascadeClassifier cascade("/home/ffiirree/Code/...
2018-03-20 16:49:18 3064
原创 感知器和神经网络训练(公式推导及C++实现)
感知器感知器是一个二元线性分类器,其目标是找到一个超平面将训练样本进行分隔(分类),其表示为 一般使用的激活函数不是阶跃函数,常用的有sigmoid函数(其导数: σ′=σ(1−σ)\sigma' = \sigma(1-\sigma)) 在1个样本的训练集上代价函数(最小均方误差)通常为 C=12|a−y|2C = \frac{1}{2} |a - y|^2 训练过程中步长(学习速率
2017-12-04 00:11:38 1568
原创 空间域和变换域(以傅里叶变换为例)
空间域(spatial domain)以图像左上为原点,横为y竖为x的二维平面。 变换域在有些情况下,通过变换输入图像来表达处理任务,在变换域执行处理任务,然后再反变换到空间域会更好。 二维线性变换的通用形式可表示为: T(u,v)=∑x=0M−1∑y=0N−1f(x,y)r(x,y,u,v) T(u, v) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x, y
2017-11-25 22:10:14 31010 5
原创 FFmpeg读取摄像头用OpenCV显示
Environment Ubuntu 16.04 GCC 5.4 CMake 3.9.6 OpenCV 3.3.1Source code#include <opencv2/core/mat.hpp>#include <opencv2/highgui/highgui.hpp>extern "C" {#include <swscale.h>#include "avforma
2017-11-22 21:39:05 2192
原创 FFmpeg 小记
FFmpeg是什么(官网传送) A complete, cross-platform solution to record, convert and stream audio and video.——官网 FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——一个音频和视频的解码器库,以及libavformat——一个音频与视频格式转
2017-11-22 21:14:56 374
原创 Spring MVC之最简Mybatis配置(全注解)
上一篇文章中建立了一个可以运行的Spring MVC程序,这一篇文章使用Mybatis来操纵数据库。依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.8.RELEASE<
2017-07-05 09:37:03 1698
原创 Spring MVC之最简项目配置(全注解)
Environment: Java 1.8.0_131 maven 3.5.0 InteliJ IDEA 2017.1.4 tomcat 8.5.15简介Spring 的目的在于简化Java EE应用程序的开发,依赖注入和AOP是它的核心。使用Spring可以大大的简化开发,提高效率。 这篇文章记录一下Spring MVC的全java配置方式。 Spring主要有两种配置
2017-07-04 14:20:56 4472
原创 Effective Modern C++(笔记)
All parameters are lvalues. class Widget { public: Widget(Widget&& rhs); // rhs is an lvalue, though it has an rvalue ... // reference type. } std::move // C++1
2017-04-09 01:16:39 436
原创 Windows 正确安装OpenCV及使用(CMake+VS2015)
环境 Windows 10 家庭中文版 OpenCV 2.4.13 CMake 3.7.2 Visual Studio 2015 update 3OpenCV 3.0+和VS 2017同理。使用exe安装的问题在Windows上安装OpenCV后,如果是直接使用Visual Studio来创建工程的话,每次都要配置头文件和库文件,非常麻烦由...
2017-02-19 14:20:59 17857 4
原创 DFT,FFT和卷积(笔记)
在学习图像处理的过程中,首先碰上的是滤波算法,在滤波算法中首先碰到了难以理解的卷积运算,关于卷积的概念,刚上来看维基百科中的卷积概念,我看完是崩溃的,很难理解,当时也没有学习离散数学,对于计算机离散的概念并不是很理解,作为计算机的学生,也没有学习复变函数和数字信号处理,对这些概念的确难以理解。 虽然难以理解,但是看到图像卷积与滤波的一些知识点这篇文章后,可以使用卷积这种东西了。在这里滤波的时候我是
2016-10-04 16:25:27 14817
原创 使用libjpeg库读取JPEG图像数据
jpeg是一个国际图像压缩标准,图像的后缀一般为jpeg或者jpg。这种图片格式非常常见,还是有必要知道怎样将数据读取出来的。在我做的zMatrix库里,之前一直使用openCV的函数imread()读取图像,不是很方便,查过很多资料后发现,如果自己从零写一个读取jpeg的程序非常麻烦(可能水平不够吧,可以查一下都是需要什么算法),需要用到一些比较复杂的压缩算法,又因为读取图像不是重点,所以可以使用
2016-09-17 18:11:00 17194 8
原创 操作系统之中断(四)
上一篇文章中简单的提到了IDT是记录了终端号和中断函数之间的关系,实际上在保护模式下,IDT在中断中的地位举足轻重。一、实模式切换到保护模式IDT是在保护模式中出现的,计算机启动后运行在实模式下,所以需要将CPU从实模式切换到保护模式。切换这一步大约位于BIOS加载完bootsector后,执行部分或者执行完bootsector代码时进行的,这么靠前是因为如果不切换就无法进入32位模式,寻址空间还是
2016-02-16 13:09:36 3556 1
流畅的Python.中文版.文字版.精编目录
2017-11-25
Effective.Modern.C++-42.Specific.Ways.to.Improve.Your.Use.of.C++11.and.C++14
2017-11-25
Digital Image Processing[3rd][Rafael C. Gonzalez][Richard E. Woods]
2017-11-25
怎样将一段内存中的数据作为位图显示出来,用windows上的win32api
2016-09-21
如何使用C++控制台程序 显示一张图片
2016-09-14
网站部署,Servlet问题
2016-05-10
java web 的站内链接问题
2016-05-07
CentOS 7.2+Windows 10+UEFI安装双系统,不能进入CentOS
2016-02-25
Makefile切换目录(windows平台)
2016-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人