自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

翻译 图像对齐(ECC,Enhanced Correlation Coefficient)

该方法收录在OpenCV中:cv2.findTransformECC论文名为:《Parametric Image Alignment Using Enhanced Correlation Coefficient Maximization》(2008年)教程在此:https://github.com/spmallick/learnopencv/tree/master/ImageAlignment更多教程在此:https://github.com/spmallick/learnopencv2 问题定义

2023-07-18 17:17:32 816

原创 华为诺亚 VanillaNet

作者说,在卷积网络中加入人为设计的模块,达到了更好的效果,复杂度也增加了。公式写得很复杂,根据代码的理解,简单来说就是设计了一组卷积核,参数是可学习的,对激活后的数据做一次卷积,再加上BN。)来实现这一点,从而产生了一系列精简的网络,这些网络解决了固有的复杂性问题,非常适合资源有限的环境。,这是一种新颖的神经网络架构,强调设计的优雅和简单,同时在计算机视觉任务中保持卓越的性能。这些复杂的操作需要复杂的工程实现,包括重写 CUDA 的代码。这么弄了之后,为了增强网络的非线性的能力,又提出了一种有效的,

2023-06-06 21:01:50 924

原创 共轭梯度法(Conjugate Gradients)(1)

最近在看ATOM,作者在线训练了一个分类器,用的方法是高斯牛顿法和共轭梯度法。看不懂,于是恶补了一波。学习这些东西并不难,只是难找到学习资料。简单地搜索了一下,许多文章都是一堆公式,这谁看得懂啊。后来找到一篇《An Introduction to the Conjugate Gradient Method Without the Agonizing Pain》,解惑了。为什么中文没有这么良心的资料呢?英文看着费劲,于是翻译过来搬到自己的博客,以便回顾。由于原文比较长,一共 666666 页的PDF,所

2022-04-10 16:13:49 14926 16

原创 牛顿法,高斯-牛顿法

牛顿法(Newton’s method)假如已知函数 f(x)f(x)f(x),想要求 f(x)=0f(x)=0f(x)=0 的解(或者叫根)。牛顿法(Newton’s method)大致的思想是:(1)选一个初始位置 x0x_0x0​(这个位置最好是在根的附近);(2)在这个位置上找一个 f(x)f(x)f(x) 的近似函数(通常用泰勒展开);(3)令近似函数为 000 ,求解;(4)以这个解为新的位置 x1x_1x1​;(5)重复上述迭代,到第 nnn 次迭代得到 xnx_nxn​,当 ∣

2022-04-05 13:14:11 8820 3

原创 各种梯度下降

Gradient descent (梯度下降)

2022-03-06 16:40:46 839

原创 一些单目标跟踪数据集

1. GOT-10k《GOT-10k: A Large High-Diversity Benchmark for Generic Object Tracking in the Wild》Generic Object Tracking Benchmark,提供了一个通用目标跟踪基准,发布于2018年。网站:GOT-10k: Generic Object Tracking Benchmark (http://got-10k.aitestunion.com/)完整数据大概有 666666 GB。部分数据

2022-01-20 17:49:38 4500

原创 Transformer 简记

Transformer 来自文章 《Attention Is All You Need》,2017 年发表于 NeurIPS(Neural Information Processing Systems)。文章共有 8 位作者,分别来自 Google Brain 和 Google Research,它们对文章具有同等贡献。论文发表时,其中两名作者现在不在谷歌,但是相关成果是在谷歌实习期间完成的。虽然文章名字叫做 “Attention Is All You Need”,然而实际上你需要的不仅仅是 Atten

2021-12-29 16:24:42 622 1

原创 Focal Loss 笔记

Focal loss

2021-08-31 09:06:43 289

原创 主成分分析(Principal Component Analysis,PCA)

降维(Dimensionality Reduction)问题1. 压缩数据降维可以压缩数据,使数据占用更少的计算机内存和硬盘空间,或者是给算法提速。举一个例子,假如你有一组数据,用 2 个特征来描述它:这 2 个特征都表示长度,存在冗余,完全可以只用其中一个。而且从数据分布来看,似乎都在一条直线上。或者我们再创建一个向量来描述它,这里用向量 z\boldsymbol{z}z:通过某种关系把特征 x1x_1x1​ 和特征 x2x_2x2​ 融合成一个新的特征 zzz,把 zzz 单独拿出来:

2021-08-15 23:18:45 432

原创 K-Means 算法

聚类(Clustering)问题在 无监督学习(Unsupervised Learning) 中,我们的数据没有附带任何标签。假如我们有一系列数据,它是二维的。这一系列数据只有特征 x=[x1,  x2]\boldsymbol{x}=[x_1,\; x_2]x=[x1​,x2​],却没有标签 yyy。如下图所示:我们要把这组数据输入到一个算法中,找到一种结构,把图中的数据分成几簇(cluster)。聚类算法可以帮你做这件事情。K-MeansK-Means 算法是一种最常用的聚类算法。给算

2021-08-13 19:59:19 414

原创 支持向量机(Support Vector Machine,SVM)简单介绍

1. SVM 的优化目标前面讲了逻辑回归,SVM 和逻辑回归是很像的,我们试着从逻辑回归过渡到 SVM。 (图1) 如 (图1) 所示,在逻辑回归中,输入样本特征为 x\boldsymbol{x}x,模型参数为 θ\bm{\theta}θ。当样本标签为 y=1y=1y=1 时,我们希望假设函数输出 hθ(x)≈1h_{\bm{\theta}}(\boldsymbol{x})\approx1hθ​(x)≈1,也就是说希望 θTx\bm{\theta}^T\boldsymbol{x}θTx 远大

2021-08-10 21:30:49 836

原创 正则化(Regularization),权重衰减(Weight decay)

L2 正则化是怎么减轻过拟合的,权重衰减 (weight decay) 是什么意思。

2021-08-01 22:07:31 588 1

原创 线性回归(Linear Regression)和逻辑回归(Logistic Regression)

1 线性回归(Linear Regression)1.1 建立问题举个例子,你有这样一组数据:波特兰市的城市住房价格的数据,不同尺寸的房子对应不同的售价。现在你有个朋友想要卖房子,他的房子是1250平方英尺,大概能卖多少钱?我们可以根据这组数据,建立一个模型,然后用这组数据集去拟合模型。拟合完毕后,输入1250,它就会告诉你朋友能卖多少钱。看起来这组数据似乎分布在一条直线附近:好,只要找到这条直线的方程,你就能根据面积来预测房价了。(在这个例子里,直线方程就是我们要拟合的模型)如何找到直线

2021-07-25 18:01:28 9091 7

原创 用余弦距离表示向量之间的相似度

很多深度学习的应用里用余弦距离来表示特征向量之间的相似度。这怎么弄呢?首先人为制造一个定义:两个向量的夹角越小,则两个向量越相似。夹角可以通过 cosin\text{cosin}cosin 函数来算:cos⁡(θ)=a⃗⋅b⃗∣a⃗∣∣b⃗∣\cos(\theta) =\frac{ \vec{a} \cdot \vec{b} } {|\vec{a}| |\vec{b}|}cos(θ)=∣a∣∣b∣a⋅b​先对 a⃗\vec{a}a 和 b⃗\vec{b}b 归一化之后再算也是一样的。设 a⃗

2021-07-10 18:59:18 650

原创 加权框融合 WBF(Weighted Boxes Fusion: combining boxes for object detection models)

文章PDF地址:https://arxiv.org/abs/1910.13302GitHub地址:https://github.com/ZFTurbo/Weighted-Boxes-Fusion简介作者认为,在目标检测任务中,当实时性要求不强时,集成多个推理模型有助于我们得到更好的结果。于是作者在文中提出了一种方法,可以把多个目标检测模型的预测结果结合起来。这个方法称为 weighted boxes fusion,简称 WBF 。在筛选预测框的过程中,常用的方法是非极大值抑制(non-maxi

2021-06-12 16:49:51 8442 23

原创 古典概型,条件概率,贝叶斯公式

定义,性质定义 设 EEE 是随机试验,SSS 是它的样本空间。   对于 EEE 的每一个事件 AAA 赋予一个实数,记为 P(A)P(A)P(A),称为事件 AAA 的概率。   如果集合函数 P( ⋅ )P(\, \boldsymbol{\cdot} \,)P(⋅) 满足下列条件:   1∘1^{\circ}1∘ 非负性: 对于每一事件 AAA,有 P(A)⩾0P(A) \geqslant 0P(A)⩾0;   2∘2^{\circ}2∘ 规范性: 对于必然事件 SSS,有 P(S)=1P(

2021-05-30 16:29:11 2004 1

原创 高斯混合模型(Gaussian Mixture Model,GMM)和期望最大化(Expectation Maximization,EM)算法

本文是关于 coursera 上 《Robotics: Estimation and Learning》 课程的笔记。前面讲了一维和多维高斯分布的相关知识。但是在某些情况下,使用 单高斯模型(Gaussian single model, GSM) 会有一些局限。在现实世界中我们需要学习的目标可能符合这样的分布 :如上图所示,当你用单高斯模型去拟合它时,得到这样的曲线。显然它不能很好地表征目标。这样的目标有多种模式,或者缺乏对称性。你将看到混合高斯模型的表现力则很好,好到可以建模任意的.

2021-05-23 23:04:02 1190

原创 高斯分布的极大似然估计

一维高斯分布一维高斯分布(Gaussian Distribution)的概率密度函数如下:p(x)=12πσexp⁡{−(x−μ)22σ2}p(x)=\frac{1}{\sqrt{2\pi} \sigma} \exp \left\{ - \frac{(x-\mu)^2}{2\sigma^2} \right\}p(x)=2π​σ1​exp{−2σ2(x−μ)2​}高斯分布非常有用,而且非常重要:∙\bullet∙ 描述高斯分布只需要 2 个参数,均值 μ\muμ 和 方差 σ2\sigma^2σ2,

2021-05-15 12:45:06 8719 1

原创 极大似然估计的意思

极大似然估计(Maximum Likelihood Estimate,MLE)这个名字就很奇怪,又拗口,第一次接触时一直不懂到底什么意思。先不讲它的原理,直接先举个例子看看:假设有个篮子,里面装了2种球:红球和白球。问:随便抽一个球,抽到红球的概率是多少?怎么办?现在假设抽到红球的概率是 ppp,则抽到白球的概率是 1−p1-p1−p。ppp 就是我们要的答案。为了得到 ppp 的值,有一个机灵的小伙子做了一个实验:他抽了10次球,每次抽完都放回去。结果是10次里面有7次是红球,有3次是

2021-05-05 17:46:36 960 2

翻译 卡尔曼滤波器(20) -- 多维卡尔曼滤波器(例9)

This blog is translated from https://www.kalmanfilter.net/default.aspx.It’s an excellent tutorial about Kalman Filter written by Alex Becker.目录卡尔曼滤波器(1) – 背景知识卡尔曼滤波器(2) – α−β−γ滤波器(例1)卡尔曼滤波器(3) – α−β−γ滤波器(例2)卡尔曼滤波器(4) – α−β−γ滤波器(例3&例4&总结)卡.

2021-05-05 14:39:47 1610 5

翻译 卡尔曼滤波器(19) -- 多维卡尔曼滤波器(总结)

This blog is translated from https://www.kalmanfilter.net/default.aspx.It’s an excellent tutorial about Kalman Filter written by Alex Becker.目录卡尔曼滤波器(1) – 背景知识卡尔曼滤波器(2) – α−β−γ滤波器(例1)卡尔曼滤波器(3) – α−β−γ滤波器(例2)卡尔曼滤波器(4) – α−β−γ滤波器(例3&例4&总结)卡.

2021-05-04 22:22:01 1294

翻译 卡尔曼滤波器(15) -- 多维卡尔曼滤波器(状态更新方程)

This blog is translated from https://www.kalmanfilter.net/default.aspx.It’s an excellent tutorial about Kalman Filter written by Alex Becker.目录卡尔曼滤波器(1) – 背景知识卡尔曼滤波器(2) – α−β−γ滤波器(例1)卡尔曼滤波器(3) – α−β−γ滤波器(例2)卡尔曼滤波器(4) – α−β−γ滤波器(例3&例4&总结)卡.

2021-05-03 14:48:49 1453 2

原创 ubuntu16.04通过网络访问windows共享文件夹(samba)

SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通一. 从Ubuntu Desktop访问Windows下samba共享文件夹1. 安装sambawindows的共享文件夹貌似是用的 SMB 协议,所以先给ubuntu装上SMB:apt-get install smbapt-get install smbclient2. 修改配置装好之后,据说ubuntu默认的协议比较旧,连不上,所以改一下配置:sudo gedi.

2021-01-30 15:35:36 7625

原创 链接OpenCV静态库相关错误

./opencv3.4.13/lib/libopencv_core.a(persistence_c.cpp.obj): In function `cvOpenFileStorage_(CvFileStorage*&, char const*, CvMemStorage*, int, char const*)':persistence_c.cpp:(.text._ZL18cvOpenFileStorage_RP13CvFileStoragePKcP12CvMemStorageiS3_+0xa0c):

2021-01-09 16:48:22 3687 1

原创 一种快速的幂运算方法(底数是自然数e,指数是浮点数)

问题  给一个浮点数 yyy,现在需要你求出 eye^yey 的值是多少。  最便捷的方法是用库函数,例如在C++中<math.h>头文件提供了exp()函数,但是速度不够快。  在深度学习(DeepLearning)中经常需要花费大量时间进行幂运算,典型场景是使用激活函数和计算概率分布的时候。例如在 SoftMax 层通常需要进行底数是 eee ,指数是浮点数的幂运算。  提高幂运算的速度能有效提高神经网络的推理速度。方法  参考文章《A Fast, Compact Approx

2020-09-07 13:02:45 3881

原创 几种内存遍历写法的效率比较

众所周知,要访问数组中某个变量,有几种方式:(1)用数组下标;(2)用指针;现在有一个很大的数组,要给它的元素逐个赋值(或者遍历),怎样遍历效率较快?看看下面demo: void test_accessMemory(){ double time[10]; int *memory = new int[7680*4320]; // 一幅8K图像 int *ptr = memory; int index = 0;

2020-09-04 19:27:47 819

原创 目标检测中精确率,召回率,准确率的意思

精确率 召回率 准确率

2020-09-01 10:53:14 6497

原创 用NEON intrinsic实现RGB转YUV420SP(NV12)

如题,现在要把RGB图像的数据转成YUV数据。1. 数据的排列方式  先来看看两种数据在内存里是按什么方式排列的1.1 RGB的排列  如图所示,1组RGB表示1个像素的颜色,每个像素依次排列。图中有8组RGB数据,即8个像素点。1.2 YUV的排列  如图所示,这里是 YUV420SP(NV12) 的排列方式,YUV的比例为Y:U:V=4:1:1。Y代表像素点的明亮度(灰阶),图中有48个Y,即48个像素点。UV代表像素点的色度,1个U和1个V组合到一起能表示一种颜色,在YUV420

2020-08-14 20:17:41 4076 11

翻译 浮点数规范(IEEE754)

  本文主要参考《IEEE Standard for Floating-Point Arithmetic》1. Floating-point formats浮点数格式1.1 Specification levels描述等级  浮点算术是对于实际算术的系统近似,如表1.1所示。浮点算术只能表示连续实数的一个有限子集。因此对于实数的某些属性(例如加法结合律(associativity of addition)),并不总是适用于浮点算术。 表1.1 规范化等级及其格式 L

2020-08-10 15:50:52 1553

翻译 NEON码农指导 Chapter 3 : NEON Instruction Set Architecture

Translated from 《NEON Programmer’s Guide》翻译可能有偏差,描述可能有错误,请以原著为准????  本章介绍了NEON指令集语法1. Introduction to the NEON instruction syntax  NEON指令语法简介  NEON指令(以及VFP指令)均以字母V开头。...

2020-08-08 17:25:50 2216

翻译 NEON码农指导 Chapter 2 : Compiling NEON Instructions

Translated from 《NEON Programmer’s Guide》翻译可能有偏差,描述可能有错误,请以原著为准????  本章介绍了如何使用C或汇编,写针对NEON硬件的代码。以及一些工具和库,用来支持此功能。1. Vectorization  向量化  NEON被设计成一种附加的加载/存储体系结构,以提供对C / C ++等语言的良好向量化编译器支持。这实现了高度的并行性,可以手动编码NEON指令,实现非常高性能的应用程序。它包括低成本升级和降低数据大小,还包括结构化的加载能力

2020-08-07 11:21:13 1509

翻译 NEON码农指导 Chapter 1 : Introduction

1. Data processing technologies1.1 Single Instruction Single Data  每个操作指定要处理的单个数据,处理多个数据需要多条指令。下面的代码用4条指令把8个寄存器相加: add r0, r5 @ r0 = r0 + r5 add r1, r6 add r2, r7 add r3, r8   这种方式很慢,并且很难看到不同寄存器之间是怎么关联的。为了提高效率和性能,媒体处理通常下放到不同的处理器

2020-08-04 20:30:11 1387

翻译 Coding Neon - Part3:Matrix Multiplication

  第1部分讲了如何用Neon来加载和存储数据,第2部分讲了对向量进行操作后,如何处理最后多出来的数据(指数据不够,无法凑成一个完整的向量)。  本文介绍一种有用的数据处理:矩阵乘法。Matrices(矩阵)  我们来看看怎样高效滴做4x4矩阵的乘法,这种操作在3D图像处理中经常用到。假设矩阵是以列优先顺序(column-major order)的形式存储在内存里——OpenGL-ES就是采用这种格式。...

2020-07-31 12:58:59 525

原创 小技巧

1. 求余数要求A除以x余几,若x是2的n次方,则答案是:// c++代码int ans = A & (x-1);按位与的速度很快。举个例子:A = 7,x = 4,答案是3。过程:// c++代码int A = 0b111; // 二进制表示, A为7int x = 0b100; // 二进制表示, x为3int ans = A & (x-1); ...

2020-07-30 20:04:06 125

翻译 Coding Neon - Part2:Dealing With Leftovers

  在本系列的第1部分中,探讨了如何在Neon处理单元和内存之间传输数据。在本文中,我们处理一个经常遇到的问题:输入数据不是要处理的向量长度的倍数。你需要在数组的开头或结尾处,处理剩余的元素——在Neon上处理这个问题的最佳方法是什么?????Leftovers(剩菜剩饭????)  使用Neon通常涉及这样的操作:处理长度为4~16个元素(位)的向量数据。通常你会发现你的数组不是该长度的倍数,然后不得不分别处理那些剩余的元素。  例如,你想要用Neon在每次迭代中加载、处理或存储8个元素,但是你的数

2020-07-29 17:40:07 483

翻译 Coding Neon - Part1:Load and Stores

转自ARM官网 https://developer.arm.com/architectures/instruction-sets/simd-isas/neon  Arm的Neon技术是一种64/128位混合SIMD架构,旨在加速多媒体和信号处理应用程序的性能,包括视频编解码、音频编解码、3D图形、语音和图像处理。  本文是系列文章的第一部分,教大家如何用汇编语言为Neon编写SIMD(Single Instruction Multiple Data单指令集多数据)代码。本系列将涵盖None的入门、高效使

2020-07-29 12:31:54 577

原创 Linux环境变量(笔记)

1. 查看某个环境变量yekai@yekai-ubuntu:~$ echo $PATH/home/yekai/bin:/home/yekai/.local/bin:/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin2. 查看所有环境变量yekai@yekai-u

2020-07-16 11:22:40 310

原创 linux软链接(笔记)

(软链接像是一个符号,它指向其它的文件。或者说,软链接文件是其它文件的别名。)?如上图所示,绿色的是软链接文件,箭头右边是软链接所指向的文件。软链接的建立方法:ln -s file link,其中file是源文件,link是链接文件名相关问题:(1)拷贝软链接如上图所示,将软链接拷贝后,它的大小变了,和被链接的文件大小一样。我猜测经过拷贝后,它的名字还是软链接文件名,但是内容替换成被链接的文件了。因此,只拷贝源文件即可,然后根据需要重新建立软链接,否则将会占用大量硬盘空间。(2)文件夹的

2020-07-10 13:42:30 447

原创 WIN10 & VisualStudio2019编译和配置OpenCV2.4.4

我用的是VisualStudio2019和OpenCV2.4.4,其它版本也可以按照以下步骤设置。下载OpenCV2.4.4源码1. 在github上找到opencv的项目:https://github.com/opencv/opencv2. 点release,找到已发布的代码:3. 往下滑,一直"next",找到自己要的版本,点击下载:4. 解压到某个目录我的是在这里:D:\Programs\opencv-2.4.4\opencv-2.4.4安装CMake1. 下载CMake

2020-05-20 11:46:00 2460 1

MOSSE跟踪器python代码

对应博客https://blog.csdn.net/Yemiekai/article/details/120140227

2021-09-07

空空如也

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

TA关注的人

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