自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 Chorme下载google drive大文件提示失败-网络错误的解决方案

用chorme下载google drive大文件的时候经常会提示“失败-网络错误”,有篇文章说是Access Token超过3600秒的问题,但是自己下载的时间远没有到这个时间;还有的说是google drive不支持断点续传的原因,但是自己挂的梯子一直很稳定,尝试了网上一些IDM直链下载的方式也都失败了,最后发现一个简单的解决方案:用IE进行下载就可以了!不会出现网络错误的问题!...

2020-07-09 13:10:13 2093

原创 快速理解图神经网络(GCN)

网上对图卷积神经网络(Graph Convolutional Networks)的介绍大都说的云里雾里,让人看了不甚明白,无意中找到了篇很好的文章,让我对图神经网络中f(X, A) = D⁻¹AX这个式子有一个很清楚的了解。本文主要参考这篇文章,强烈建议大家去读一下原文: https://towardsdatascience.com/how-to-do-deep-learning-on-graphs-with-graph-convolutional-networks-7d2250723780。介绍本文的

2020-06-02 18:18:13 489

原创 简单实例理解Unity世界坐标和局部坐标下四元数旋转(四元数乘法)

Unity四元数为了避免万向节死锁的问题,Unity中一般用四元数来表示物体旋转。Unity为物体旋转提供了各种API,例如RotateAround、Rotate、LookAt等方法,本文主要介绍用四元数乘法表示旋转的方法。四元数的乘法可以看做对一个物体施加两次旋转,最终的旋转角度由这两次旋转角度决定,旋转的顺序对旋转的结果会产生影响(q1*q2≠q2*q1),因为四元数乘法的本质是矩阵的乘法...

2020-01-14 14:37:40 1350 2

原创 Unity实现向量跟随/旋转跟随

最近想对人物骨骼做一些旋转操作,但遇到了写问题,于是研究了一下如何在unity中实现向量跟随/旋转跟随问题定义以存在两对节点ParentJoint_master和ChildJoint_master,ParentJoint_slave和ChildJoint_slave,ChildJoint作为ParentJoint的子物体,希望实现ParentJoint_slave和ChildJoint_sla...

2019-12-23 14:32:08 664

原创 Ubuntu下openMVG+openMVS实现三维重建

三维重建简介三维重建是一个计算机视觉领域经典的问题,近年来也出现了许多利用深度学习直接从图像中得到网格的方法,取得了很好的效果。本文主要关注三维重建的经典实现方法,其步骤为:通过相机获取一系列三维物体不同侧面的图片对相机的内外参数进行标定对图像中的特征进行提取(如SIFT、SURF等)从匹配得到的信息中构建三维稀疏点云根据稀疏点云进行稠密点云重建对点云进行预处理(如去噪、下采样等)...

2019-11-22 11:13:48 2510 8

原创 将公式图片转word公式

本文基本实现的基本思路是:将图片中公式转换成LaTex公式,再将LaTex公式转换为word自带公式一、图片中公式转换成LaTex公式 1.下载并安装mathpix 2.Ctrl + Alt + M截取公式图片,获取LaTex公式二、将LaTex公式转换为MathType公式 1.下载并安装MathType ...

2019-05-09 17:33:04 6117 3

原创 win10下C++(VS2015)调用Python3.6(Anaconda)

最近要将神经网络放到编码器中,于是研究了一下C++调用Python的代码。一、API主要用到的API如下:/*PyImport_ImportModule: 加载python模块*szModuleName: 模块名称*返回值: 成功加载返回模块指针*/PyObject *PyImport_ImportModule(const char *szModuleName);/*PyMo...

2019-04-01 19:33:25 2583 10

原创 CNN笔记(CS231N)——强化学习(Reinforcement Learning)

强化学习我们之前讲了监督学习跟无监督学习,这一讲我们采用一种全新的思路来解决问题叫做强化学习。强化学习的目标是让代理学会采取动作来最大化奖励函数下面是强化学习的一些例子我们怎么样对这个问题进行建模呢?我们可以把这个问题看做一个马尔科夫链目标函数是从头到尾的奖励加权相加对于π是固定的,那么怎么解决随机性的问题呢?方案就是采用数学期望来平均这些随机性由于...

2019-02-24 10:30:21 1308

原创 CNN笔记(CS231N)——生成模型(Generative Models)

总览之前我们讲的网络模型都是监督学习,这一讲我们要讲的是无监督学习。以下是本讲的总览无监督学习与监督学习最大的不同就是我们只有数据,没有任何多余的标注,我们要做的就是学习数据中隐藏的某些结构。而生成模型就属于无监督学习的一种生成模型生成模型的目标是给定训练数据,希望能获得与训练数据相同的新数据样本。我们的目标是找到训练数据的分布函数生成模型在很多场景有非常好的应用...

2019-02-22 13:34:48 1368

原创 CNN笔记(CS231N)——网络可视化与理解(Visualizing and Understanding)

网络可视化与理解神经网络对于我们来说就像一个黑盒子,我们有一对输入输出就能对网络进行训练,而不知道内部究竟发生了什么,于是一些研究者开始研究网络内部究竟学习到了什么特征。以下就是一些常用的网络在第一层的卷积核,代表在输入图像中寻找类似的特征,例如边、角、特定方向的线等等由于网络第一层的卷积核深度是3维的,因此我们可以将其作为RGB图来看待,而对于深层的网络,卷积核深度不止是3维,那么我...

2019-02-14 22:11:33 595

原创 CNN笔记(CS231N)——图像检测与图像分割(Detection and Segmentation)

图像检测与图像分割我们之前讲的都是图像分类的问题,在这一讲我们要介绍一些其他的计算机视觉中的问题,例如图像检测与图像分割。我们主要介绍一下四个部分:图像分割、分类+定位、多目标检测、多目标实例分割语义分类第一部分是语义分类。我们需要给每个像素都输出一个值,来代表这个像素属于某一个分类一种传统的方法就是用滑动窗口不断在输入图像上滑动, 然后输出窗口中央的像素属于哪一类。这种方...

2019-02-14 15:24:00 1154

原创 CNN笔记(CS231N)——循环神经网络(Recurrent Neural Networks)

递归神经网络上一讲讲了CNN的架构,那么当我们把时间这个维度考虑进来了以后,我们就得到了递归神经网络(RNN)。RNN的输入输出可以是一对多、多对一、多对多,分别对应不同的应用场景RNN的核心部分是如下公式,旧状态+当前输入,经过一个函数,得到了新状态,新状态会被送到下一个时候参与运算。我们的这个函数fw在不同时间是固定的。普通RNN一般来说这个fw函数是tanh函数,W是...

2019-02-13 21:24:49 442

原创 CNN笔记(CS231N)——CNN架构(CNN Architectures)

CNN架构这一讲主要介绍了一些常用的CNN架构,例如AlexNet、VGG、GoogleNet等AlexNetAlexNet是一个八层的卷积神经网络,它是第一个采用ReLU激励函数的神经网络由于当时内存限制,在这个网络中,同一卷积层被分为两个部分放在两个GPU中分别计算。在1、2、4、5层只计算本GPU中的特征图,在3、6、7、8层中将两个GPU中的特征图放在一起计算...

2019-02-11 20:01:33 533

原创 CNN笔记(CS231N)——深度学习软件(Deep Learning Software)

深度学习框架我们在使用CNN的时候往往会采用深度学习框架来减小我们的工作量,以下是现在常用的一些深度学习框架深度学习框架有以下意义下面让我们来看看如果我们用numpy从头构建一个计算图是怎么样的,我们可以看出它有以下两个问题:不能在GPU上运行以及梯度需要我们手动计算我们采用深度学习的框架可以很好的解决以上问题:让程序在GPU上运行仅仅需要一行代码,以及程序可以自动为我...

2019-02-09 16:25:37 797

原创 CNN笔记(CS231N)——训练神经网络II(Training Neural Networks, Part 2)

训练神经网络我们接着上一讲继续,这一讲主要讲的是优化、正则化与迁移学习高级优化我们首先来看看传统的随机梯度优化有什么问题,如果损失函数在一个维度上梯度比较小,在另一个维度上梯度比较大,那么这种情况下就会出现沿着梯度小的维度变化缓慢,另一个方向变化迅速,出现如下图这种震荡现象导致收敛缓慢除此以外就是局部最小值与驻点的问题,局部最小值在多维特征的情况下出现的几率比较小,最常见的是驻...

2019-02-01 10:46:16 161

原创 CNN笔记(CS231N)——训练神经网络I(Training Neural Networks, Part I)

训练神经网络我们先来看这部分内容的综述,主要介绍了在训练网络中的一些基本方法与基本概念激励函数(Activation Functions)首先我们来看看神经网络用的激励函数之间的对比Sigmoid函数主要有一下三个问题,第一是函数存在饱和区,这部分函数梯度基本为0,导致权重不会变化;第二是函数输出不是以0为中心;第三是指数函数计算量比较大对于第二点我们重点说说,假如...

2019-01-31 09:41:23 249

原创 CNN笔记(CS231N)——卷积神经网络(Convolutional Neural Networks)

卷积神经网络如今卷积神经网络已经应用到生活的方方面面我们上次讲了全连接层,全连接层一般作为卷积神经网络的最后一层卷积层下面我们来看卷积神经网络中最常用的结构:卷积层。由于输入图片的像素很多,如果我们将每个像素进行全连接的话那我们需要学习十分多的权重,这样不仅需要非常多的训练数据,还可能出现过拟合的问题。因此我们采用的结构是定义一个卷积核,让这个卷积核在图片上进行卷积操作...

2019-01-28 09:29:01 574

原创 CNN笔记(CS231N)——反向传播和神经网络(Backpropagation and Neural Networks)

反向传播计算图由于神经网络结构复杂,我们可以采用计算图的形式来把损失函数表示出来,进而利用反向传播算法计算出损失函数对每个权重的偏导数以下是具体的一个例子,具体过程就是先利用前向传播求出输出的值,再利用反向传播来求出输出对每个中间量的偏导,再利用链式法则求出输出对输入的偏导把以上过程抽象出来可以写成如下的形式以下是一个稍微复杂一点的例子在反向传播中不同的门对...

2019-01-25 22:08:25 180

原创 CNN笔记(CS231N)——损失函数与优化(Loss Functions and Optimization)

损失函数我们之前讲了我们对于一张图片,我们对其进行打分,代表它被分为某一类的可能性,那么我们需要建立一个损失函数来对这个分类器的好坏进行衡量我们定义SVM损失函数有如下形式。SVM只是一个二元分类器,我们将其进行推广到多元的情况,定义了SVM损失函数。我们将正确类的打分与其他类打分做差,如果差值大一某个阈值(在下图例子中阈值为1),则损失函数为0,;若小于阈值,我们将损失函数定义为二者...

2019-01-24 23:37:33 1268

原创 CNN笔记(CS231N)——图像分类(Image Classification)

图像分类如果我们想训练一个图像分类器,我们很难想出一个具体的算法步骤将每幅图片都能正确的分类,那么这种情况下我们可以采用数据驱动的方法,利用机器学习来训练分类器KNN一种方法是把全部数据和标签记下来,然后对于一组新的数据,我们去寻找最相近数据的标签作为预测标签那么我们如何去定义所谓的“相近”呢?一种方法是用L1距离,简单的描述了对应像素值的差如果我们站在一个高维的角...

2019-01-23 21:28:13 1336

原创 机器学习笔记——大规模机器学习(large scale machine learning)

大规模机器学习大规模机器学习指的是训练样本数量非常大的情况。随机梯度下降我们在用梯度下降求解代价函数的最小值时我们每一次迭代都要让所有数据都参与一次运算,因此我们也将其叫做批梯度下降(batch gradient desent),这样带来的运算量将会非常大为了解决这个问题,我们可以采用随机梯度下降(stochastic)算法,每次θ更新只将一个数据纳入样本计算,这样相当于每次更...

2019-01-01 17:45:19 477

原创 机器学习笔记——推荐系统(recommender system)

推荐系统我们在平时最常见的就是某个网站给你推荐广告,豆瓣给你推荐电影,网易云给你推荐你喜欢的歌,这种系统我们统一称作推荐系统基于内容的推荐我们举一个电影打分的例子我们可以为某一部电影选定特征,不同人对不同的特征有不同的偏爱特性,借此我们可以预测某个人对某部特定电影的打分,输入x是某部电影的特征,θ是某个人对电影特征的偏爱参数以下是该问题的一些参数因此对于给定电影...

2019-01-01 12:09:58 946

原创 机器学习笔记——异常检测(anomaly detection)

异常检测当我们需要让一个系统从许多未标注的数据中学习到某些正常的特征,从而能够诊断出非正常的数据,我们把这个过程叫做异常检测我们要做的就是对于给定的一组特征值,我们输出一个概率,如果这个概率值小于某个临界值,代表数据异常算法我们可以采用高斯函数来拟合这个概率值,对于某个特征,我们计算出它的均值与方差,之后就可以得到一个高斯概率分布,然后我们将所有特征的高斯分布函数相乘作为我...

2019-01-01 10:57:06 1130

原创 机器学习笔记——降维(dimensionality reduction)

降维目的我们对数据进行降维的目的有两个:一个是数据压缩,对于数据压缩我们可以大大地节省存储空间第二就是使得数据可以可视化,我们将多维数据压缩成二维可以供我们更好地观察数据的特征主成分分析(PAC)主成分分析法可以将n维的数据降为k维,实际上我们是选取了一个k维的基向量,然后将n维的数据映射到k维上,使得投影误差最小。这k个基向量就是我们的主成分在降维之前我们也需...

2018-12-18 17:44:26 951

原创 机器学习笔记——无监督学习(unsupervised learning)

聚类之前我们讲到的都是监督学习,下面让我们来看对于无监督学习我们应该如何进行分类呢?无监督学习对应的就是给定的样本点我们不给输出值来进行分类K-meansK-means是一种十分常用的算法,它的过程就是对于给定的K个初始点,首先根据各个样本点到其的距离进行分类,之后将这K个初始点位置更新为本类内所有点的平均位置,再不断迭代,直到K个聚类中心的位置不变采用这种方法我们对于非分...

2018-12-18 16:51:23 611

原创 机器学习笔记——支持向量机(SVM)

支持向量机除了之前讲的机器学习的方法,还有一种常用的方法叫做支持向量机。我们将logistic回归的假设函数以及代价函数稍加更改就可以得到支持向量机的模型另外还有不同的是SVM的输出并不是一个概率值,而是0或1大间隔我们说SVM是一种大间隔算法,意思是我们进行分类的时候会选择所有样本点离分界线最远的界限。例如下图我们用SVM以后就会得到斜率约为-45°的线而不会收敛到近...

2018-12-18 16:31:37 160

原创 机器学习笔记——机器学习建议与误差分析

建议在实践过程中我们经常会发现我们的建模不合适,那么这种情况我们应该对我们模型的参数进行调整呢评估假设我们首先要做的就是对我们建立的模型进行评估,来判断模型拟合是否合适。我们将利用训练集求出来的网路参数θ应用在测试集上得到的误差叫做测试集误差,这个误差越小代表建模越合适验证集为了选择一个合适的模型,我们需要尝试多种多项式来保证我们既不会过拟合也不会欠拟合。方法就是求出各...

2018-12-17 10:47:11 371

原创 机器学习笔记——神经网络(neural networks)

神经网络非线性假设对于非线性假设而言,当特征足够多的时候,如果我们仍采用多项式进行线性拟合,那么我们将获得数量非常庞大的高次项,这使得计算变得非常复杂。出于这个原因,我们受到人脑的启发,提出了神经网络我们可以将logistic单元表示成神经元的形式,中间的神经元代表假设函数h,左侧是输入,右侧是输出如果我们的输入输出之间经过了多层计算,这样一种结构我们就叫做神经网络...

2018-12-14 17:42:14 2204 6

原创 数字图像处理笔记——Snakes算法、活动轮廓以及水平集(Snakes, active contours, and level sets)

Snakes算法上一讲我们讲的图像分割算法主要是基于像素的,这一讲主要是基于曲线的。我们希望能得到一个能够包围住图像轮廓的平滑的曲线,snakes算法就是一个很有用的算法。首先我们将曲线的坐标x、y同一用参数s表示,s范围从0-1代表从起点绕曲线一周再回到原点我们假定初始化的时候这个曲线已经给定,我们定义这个曲线的能量函数,曲线衍进的过程就是让能量函数降低的的过程,能量函数分为外部能量...

2018-12-11 17:40:06 2901

原创 机器学习笔记——正则化(regularization)

正则化过拟合我们在利用数据来进行曲线拟合的时候会出现三种情况,欠拟合(underfitting),合适(just right),过拟合(overfitting)。欠拟合的情况一般是由于变量太少,而过拟合的原因一般是变量太多下面我们主要考虑过拟合的问题。过拟合的解决方法一种是减少特征的数量,一种就是正则化代价函数正则化采用的方法就是修改代价函数,将其加上我们认为不那么...

2018-12-10 13:56:14 199

原创 机器学习笔记——logistic回归(logistic regression)

logistic回归logistic回归实际上并不是一种回归算法,而是一种分类算法,意思就是输出值是离散值(01或者更多类),而它叫这个名字完全是历史原因。我们可以从下图看出对于分类问题,如果我们采用传统的回归算法并不能获得很好的效果假设称述由于输出的值是0和1,因此我们很自然想到将假设函数的值映射到0-1之间,我们又sigmoid函数恰好能够很好的解决这个问题。也就是说我们将回归...

2018-12-10 13:29:06 194

原创 数字图像处理笔记——图像分割(Image Segmentation)

图像分割区域生长图像第一种算法我们称为区域生长(region growing)其主要思路就是从原始图像中选取几个重要的点,然后从这些点分别往外扩展,如果周围的像素与其的像素差小于某个阈值,那么将其置1(白色),并继续从这个点向外延展,直到不满足条件,其他点置0(黑色)。在matlab中我们可以用grayconnected这个函数来实现这个功能如下图是利用这个算法,在图像中随...

2018-12-08 17:32:31 2023

原创 机器学习笔记——线性回归(linear regression)

相关术语监督学习(supervised learning):数据集存在“正确答案”,算法目的是给出更多“正确答案”无监督学习(unsupervised learning):也叫聚类算法,数据集不存在“正确答案”,算法目的是将现有数据集进行分类并判断新的数据属于哪一类回归(regression):预测值是连续出现的(例如房价)分类(classification):预测值是离散的(0或...

2018-12-07 15:52:06 166

原创 数字图像处理笔记——阈值(Thresholding)

阈值我们将图像分块最简单的方法就是设定一个阈值对图像进行二值化处理,那么这个阈值我们应该如何选择呢对于图像的直方图存在明显边界的图像,我们可以很容易找到这个阈值,但是如果图像直方图分界不明显,那么这个阈值的寻找将变得十分困难。因此我们存在全局阈值与局部阈值两种全局阈值全局阈值就是在整幅图像中我们只有一个阈值来对图像进行二值化,但是其存在其局限性,例如图像中存在高斯噪声的情况...

2018-12-02 10:55:25 7983

原创 数字图像处理笔记——边缘连接和直线检测(Edge linking and line detection)

边缘连接我们得到边缘图以后会出现是一个问题,就是由于有的像素偏暗,会出现边缘不连续的现象,这种情况我们就要采用边缘连接算法。我们对每一个边缘上的点进行遍历,以这个像素为中心看一个矩形窗内的其他像素,如果存在边缘幅度响应M与边缘相角响应α都与中心像素差别不太大的像素,那么把这个像素也纳为边界内 边缘跟踪现在我们就有一个闭合的边缘了,那么我们怎么样对边缘上的点进行排序呢,下图演示了...

2018-11-30 15:05:21 4652 2

原创 数字图像处理笔记——边缘检测(Edge detection)

边缘检测我们之前讲边缘检测的时候讲到了一阶导和二阶导,理想边缘的像素值是跳变的,而斜坡边缘的像素值是渐变的。我们在求一阶导的时候导数值大的地方可以看做边缘;若是对于斜坡边缘,我们不想得到一长条边缘,而只想得到这个渐变的中央点时,我们可以看二阶导,二阶导只在边缘开始与结束的地方会出现,因此我们只需要找到二阶导的过零点就可以找到渐变的中央点了在现实生活中出现的边缘更多时候带有噪声,这种情况...

2018-11-28 17:25:45 2148

原创 数字图像处理笔记——酉变换( Unitary image transforms)

酉变换酉变换可以由如下方式定义,其中输入和输出之间的关系可以写成矩阵相乘的形式,矩阵A称为酉矩阵,A满足A的逆矩阵等于A的共轭对称矩阵DFT变换就是一个酉变换,系数矩阵A满足每一列的模是1并且由于不同频率正弦信号之间的正交性,列之间是相互正交,因此A也是一个酉矩阵对于二维DFT我们可以看做两次一维的DFT,因此我们也可以写成矩阵相乘的形式 基我们表达一个二维图像...

2018-11-26 16:52:44 2435

原创 数字图像处理笔记——频域滤波、采样和频谱混叠( Frequency domain filtering; sampling and aliasing)

频域滤波频域滤波就是将信号先做傅里叶变换再与滤波器频域响应相乘,最后再做傅里叶反变换得到低通滤波器让我们先来看看理想低通滤波器,理想低通滤波器的频率响应是一个中间是1,周围是0的正方形或圆形,而在时域上是sinc函数,,我们看经过低通滤波器后的图像变得模糊了,但是会发现图中多了很多波纹,原因就是理想低通滤波器在时域上的图像并不是理想的,而是有旁瓣。我们知道频域缩窄对于时域展宽,因此...

2018-11-26 11:31:41 5007

原创 数字图像处理笔记——二维离散傅里叶变换(2D Discrete Fourier Transform)

二维傅里叶变换我们先来看看一维情况的傅里叶变换。在信号系统中讲过连续时间的傅里叶变换和离散时间的傅里叶变换,连续时间傅里叶变换在频谱上时非周期的,离散时间傅里叶变换(DTFT)在频谱上是周期的。在DSP中讲了离散傅里叶变换,它的思想是将时域周期化,反映在频域上就是对连续的周期频谱进行抽样有了一维的离散傅里叶变换(DFT),我们可以将其推广到二维的情况我们其实可以将二维离散傅里叶...

2018-11-23 19:39:43 5816 4

原创 数字图像处理笔记——空域滤波器(Spatial filters)

信号处理我们在信号处理课程中学过一维信号的处理,其中有个很重要的概念就是卷积。在时域上来看,x是我们的原信号,h是冲激响应,x*h代表x与h卷积,也就是将h翻转平移,与x对应元素相乘相加以后就能得到输出信号;在频域上来看就是x的频谱与y的频谱相乘可以得到y的频谱,再经过傅里叶反变换就能得到输出信号y在图像处理中,与时域对应的叫做空域,与一维卷积类似的是二维卷积也是翻转、平移、相乘相加这...

2018-11-23 14:37:20 2490

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除