自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 目标检测经典工作发展(超详细对比):R-CNN vs SPPNet vs Fast R-CNN vs Faster R-CNN

网上关于两阶段目标检测(two-stage object detection)的几个经典工作R-CNN,SPPNet,Fast R-CNN,Faster R-CNN的发展,各自的优缺点缺乏一个比较清楚的描述,大部分文章讲的比较细节,虽然有助于更为详细地了解文章,但是让读者在短时间内对各个文章有一个详细的理解。本文主要对网上的资料进行整合,希望让读者能较快地理解几篇文章的优劣。

2023-06-20 22:11:08 1303

原创 Unity开发——Hololens2+Vuforia实现图像识别详细教程

序在跟着Vuforia官网教程实现的时候感觉很多东西没有讲清楚,在网上自己搜索相关教程的时候发现许多博客采用的Vuforia的版本已经过于老旧,已经不适用了。因此也就催生了这篇博客,希望让读者看完之后都能够从0开始将Vuforia图像识别的功能跑起来。环境Unity版本:2020.3.x(Vuforia的例程只支持这个版本与2021.1.x)Hololens 2Vuforia SDK版本:10.1Vuforia官方例程要配置自己的工程之前建议把Vuforia提供的官方例程先跑通,其中还需要

2021-08-30 14:57:46 15631 24

原创 Unity开发——Hololens2中物体漂移(无法固定在现实世界)的解决方案

问题描述在实现Hololens2开发的官网教程时,我遇到了如下问题:在Unity中放置一个方块以后,理论上应该在Hololens中能够从各个角度观察这个方块(也就是固定在现实世界中)。但是在Hololens中却发现方块一直以同一个角度出现在眼前,具体如下图所示。可以看到虽然我的视角变了,但显示的方块却一直悬停在我的眼前。问题分析在跑这个例程的时候需要配置MRTK,并且将一个叫MixedRealityToolkit的东西添加到场景中,而这个问题实际上是MRTK中camera设置不正确导致的。解决方

2021-08-27 16:05:24 1180

原创 Visio另存为pdf字符间距变化/不均等字母间距的问题

问题描述论文写作中需要用到矢量图,常用的有eps、pdf格式。在Visio中将图片另存pdf的时候经常会出现字符间距变化/不均等字母间距的问题,具体示例见下图。尝试方案方案:不用“另存为pdf”的选项,而使用虚拟打印机打印pdf。问题:我用的图片在Visio中选择的适应绘图的纸张大小,而在打印的时候只能选择固定的纸张大小,不能跟所画的图贴合,因此未采用这种方案解决方法目前只找到了一个比较麻烦的方法,但能解决这个问题。先将Visio另存为svg,然后上网在线将svg转换为eps。之后利用Ad

2021-07-31 10:08:39 2661 1

原创 Unity中按钮(Button)控件Onclick事件函数参数错误 —— C#中的闭包(Closure)

问题本文主要针对的问题是在Unity中对Button类进行Onclick事件绑定的时候出现的函数参数错误进行分析解决,具体例子如下: Button[] button = GetComponentsInChildren<Button>(); int buttonCnt = 3; for (int i = 0; i < buttonCnt; i++) { button[i].SetActive(true); Debug.Log("i: " + i);

2021-05-13 11:22:02 2496 1

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

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

2020-07-09 13:10:13 9740 4

原创 快速理解图神经网络(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 3244 2

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

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

2020-01-14 14:37:40 6475 6

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

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

2019-12-23 14:32:08 2517

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

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

2019-11-22 11:13:48 7169 12

原创 将公式图片转word公式

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

2019-05-09 17:33:04 12641 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 4404 10

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

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

2019-02-24 10:30:21 2759

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

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

2019-02-22 13:34:48 3487

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

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

2019-02-14 22:11:33 1220

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

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

2019-02-14 15:24:00 2243

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

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

2019-02-13 21:24:49 1101

原创 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 1019

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

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

2019-02-09 16:25:37 1451

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

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

2019-02-01 10:46:16 364

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

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

2019-01-31 09:41:23 445

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

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

2019-01-28 09:29:01 935

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

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

2019-01-25 22:08:25 397

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

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

2019-01-24 23:37:33 3146

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

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

2019-01-23 21:28:13 3407

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

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

2019-01-01 17:45:19 786

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

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

2019-01-01 12:09:58 2629

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

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

2019-01-01 10:57:06 1605

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

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

2018-12-18 17:44:26 1616

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

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

2018-12-18 16:51:23 890

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

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

2018-12-18 16:31:37 385

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

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

2018-12-17 10:47:11 587

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

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

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

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

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

2018-12-11 17:40:06 5981

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

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

2018-12-10 13:56:14 309

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

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

2018-12-10 13:29:06 450

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

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

2018-12-08 17:32:31 3410

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

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

2018-12-07 15:52:06 365

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

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

2018-12-02 10:55:25 21767

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

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

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

空空如也

空空如也

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

TA关注的人

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