自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 局部性原理

局部性原理:如果在同一个地方、同一个时间犯了错,那么将很可能继续在同一地方犯错。昨天,早上更新数据时忘记去重文件中的不可见字符,原因是我更新数据没有严格按照自己之前的流程来操作,导致xml工具处理数据失败,耽误了同事的进度;同一天,下午,为了赶着8点下班,7点把代码提交给mentor审核,mentor指出了2个问题,然后马上知错就改,并想着早点走,改完后再提交,mentor又在我改的地方找...

2019-10-17 17:48:09 90

转载 (int32/uint32)整数压缩与解压缩算法---VB编码

对网络包进行压缩可以减少网络带宽,提高传输效率, 很多时候一些报文中包含一些无符号整数,比如报文头中的长度信息.正常情况下一个无符号整数占用32位从0x0000 0000 到 0xFFFF FFFF .由于一个无符号整数始终占据着4字节内存,就算是1也会占据着4个字节,其实只要1字节就可以保存了.(要想压缩整数,基本算法思想是压缩在4字节之内也就是1,2,3,4.把无符号整数进行逻辑分...

2019-06-09 22:10:44 540

原创 HNSW算法原理(二)之删除结点

本篇文章继之前的一篇文章 HNSW算法原理(一) ,这次讲讲HNSW算法中一个关键问题:HNSW中如何删除元素。一、HNSW中如何删除元素一个理想的索引结构应该支持增删改查操作,由于 HNSW算法原始论文 只给出了增与查的伪代码,并没有给出删的代码,而一些项目中往往需要对已经插入到HNSW索引中的结点进行删除,比如在某些人脸识别任务中,已经1个月没有出现的人脸特征可以删除掉。下面开始分析如...

2019-02-24 15:17:19 1481

原创 python实现一个tenCrop的函数

虽然torchvision.transforms模块实现了"RandomResizedCrop", "RandomSizedCrop", "FiveCrop", "TenCrop"等函数,本文写下另一个实现,方便自己随便改写Tencrop的实现代码。如下所示:import numpy as npdef flow_stack_oversample(flow_stack, crop_d...

2019-01-22 16:31:41 525

原创 python 统计目录下文件匹配并计数

talk is cheap,show you the code:import fnmatchimport osdef count_files(directory, prefix_list): lst = os.listdir(directory) cnt_list = [len(fnmatch.filter(lst, '*'+x)) for x in prefix_li...

2019-01-22 15:54:05 513

原创 python 中list与array互相转换。

将array转成list比较简单,如下:#array to listimport numpy as np #array模块,但其只支持一维数组,不支持多维数组,也没有各种运算函数。#matrix=[0 for i in range(4)] #这样定义的数组时list object,可以拿list当数组用matrix_array=np.random.randint(0,3,(2,3)...

2019-01-22 15:12:56 24727 4

原创 HNSW算法原理(一)

原文链接:https://blog.csdn.net/CHIERYU/article/details/81989920HNSW算法可类比于skip lists数据结构,对于增和查操作,其与skip lists有很多相同之处,下面讲讲HNSW算法中的2个关键问题,即:如何确定待插入点的层次,如何调参。一、HSNW算法将样本插入到第几层每个样本属于哪个层呢?首先要写一个确定层次的...

2019-01-22 11:23:20 4724 2

原创 SMOTE插值代码阅读

类别不均衡学习的基本策略包括:1)对分类器的预测值缩放,改变阈值;2)对数据集里的反例进行欠采样;3)对正例进行过采样;欠采样由于丢弃了大量反例,减少了训练集大小,训练时间开销相比过采样要大;过采样法不能简单地对初始正例进行重复采样,这会导致过拟合;正确过采样的方法是对正例进行插值。SMOTE的主要步骤根据 机器学习 —— 类不平衡问题与SMOTE过采样算法 的介绍如下所示:SM...

2019-01-20 20:30:57 408

原创 如何判断随机变量是否服从正态分布

(分布检验问题)假设有n个随机数,检验这些随机数是否由高斯分布产生,方法如下:1. 计算n个随机变量的平均值u;2. 对n个随机变量排序,并计算相邻两个数的差dx;3. 对第2个数到第n个数,计算z[i]=(x[i]-u)/dx;4.求出max{z[i]},min{z[i]},将区间[min,max]划分n份,统计属于前i个区间的z[j]元素个数,即满足z[j]<=min+(...

2019-01-19 12:14:58 7910

原创 无监督图像检索 《Unsupervised Part-based Weighting Aggregation of Deep Convolutional Features...》

基于部件的CNN特征加权聚合的无监督图像检索该文提出了一种利用卷积神经网络中的 filters 作为部件检测器,采用无监督方式选择部件检测器的图像特征提取方法,属于特征聚合方法,用于图像检索领域。代码在:点击打开链接特征聚合方法一般用于具有不同个数的局部特征(如SIFT)的图像特征表示。卷积神经网络的全连接层得到的分类特征维数是固定的,无需进行特征聚合,以及其他特征聚合方法如WoF,VLAD,FV...

2018-06-25 21:23:42 1858 1

原创 测试运算所需时钟周期数

看了博客:加减乘除、开根号、log等C代码实现需要多少个时钟周期 。 决定亲自试一把。逻辑是:假定CPU一直在执行加减乘除等操作,那么让cpu循环执行N次,得到总的时间t,再cat /proc/cpuinfo得到CPU的主频大小f,根据公式t*f/N即可得到每次运算所需的时钟周期数。CPU型号为:Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz比如对于开根号:#i...

2018-06-02 16:50:17 2967

原创 目标检测中的example mining

目标检测,一般分为2个部分,定位和分类,example mining是选择出特定样本来计算损失函数;从实际问题出发hard example应该就是指定位较困难或分类较困难或者两者都困难的候选框。SSD的caffe中支持negative mining和hard example mining,当share_location参数为true时,只支持negative mining。对于给定候选框,其位置是...

2018-05-17 18:59:20 1141

原创 目标检测中准确率评价指标

caffe中实现SSD准确率评价方法是TestDetection()函数。mAp指标值是每个类别的Average precision的平均值。本文分析DetectionEvaluateLayer中实现评价的过程及其评价指标。需要指出的是,一般的前向过程是不包含DetectionEvaluateLayer层的定义的,只有在训练的评价(TEST)过程中才会使用到该layer。具体使用该层时,需要在...

2018-05-16 21:07:26 7032 1

原创 目标检测中使用二部图匹配算法

在SSD的原文中有一段话:Matching strategy During training we need to determine which default boxes correspondto a ground truth detection and train the network accordingly. For each groundtruth box we are sel...

2018-05-15 21:18:54 401

原创 如何计算两个矩形框的IoU

由于最近跟别人说我搞过目标检测,然后被问到一个问题,如何计算两个矩形框的IoU?  一开始我回答说可以采用OpenCV的&运算和|运算来计算IoU,但他要我不采用OpenCV 的接口,自己写。当时我回答的比较乱,分4种情况进行讨论2个矩形框之间的位置关系,最后他告诉我说,根本不需要讨论,采用max(),min()就可以实现。囧。大致做法是先求出2个矩形框的交集,交集也是矩形框或空,计算相交...

2018-05-15 20:23:19 2724 3

原创 matlab获取图像的轮廓

输入一个二值图像,输出图像的轮廓。function [bmap] = seg2bmap(seg,width,height)% [bmap] = seg2bmap(seg)%% From a segmentation, compute a binary boundary map with 1 pixel wide% boundaries. The boundary pixels are of

2017-12-18 18:34:31 3388

转载 计算 1 到 N 之间 有多少个 1

问题描述:       给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。       例如:N=2,1,2出现了1个“1”。            N=12,1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。问题求解:解法一:       最直接的方法就是从1开始遍历到N,将其中每一个数中含有“1”的个数加起来,

2017-04-11 00:04:55 1163

原创 索引算法概览

索引的定义索引技术是通过有结构、无结构的数据以一定规则存储在相应介质上,并同时提供一种访问方式的技术。从定义中可以看出,索引技术的核心是关于如何存储与访问信息,当在实际问题中面临选择何种索引技术或工具时,首先需要了解数据量的大小、数据的格式,是即时访问还是批量查询等等,有时还需要结合存储介质,比如是否使用缓存或中间缓存文件。分类本文给出的分类参照文献[1],并补充了自己的理解,分类层次结构如图所示。

2017-03-29 22:29:40 700

转载 七大查找算法

查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。树表查找和哈希查找会在后续的博文中进行详细介绍。  查找定义:根据给定的某个值,在查找表中确定一个其关键字

2017-03-27 19:24:39 479

原创 Johnsen-lindenstrauss定理(J-L定理)

前言J-L定理是我在阅读关于汉明嵌入的文章时遇到最多的一次概念,其主要是说“一个dd维空间中的nn个点可以近似等距地嵌入到一个k≈O(logn)k \approx O(logn)维的空间”,所谓等距意思简单地理解就是保持任何两个点之间的相对远近关系。该定理是1984年发现的,在压缩感知、流行学习和降维上被应用。ps:应该是个很牛逼的定理。J-L定理表述对任意常数 0<ε<10 < ε < 1 和任

2017-03-23 23:03:01 3460

原创 VLAD和MultiVLAD

VLAD原理1.原始的VLAD设有一个特征数据集为,每个特征向量xi{x_i}都是dd维的向量。比如提取许多幅图像的SIFT特征,将这些SIFT特征组成上述集合,这里讲的词袋模型并不关心各幅图像中SIFT特征的个数及顺序。 1.聚类(clustering)。首先采用K-means等聚类算法将n个d维的特征聚类成k类,保存得到的类中心向量集合,和每个特征向量${x_i}所在的类别编号assignme

2017-03-23 16:22:36 3455

翻译 研究生期间如何做研究:一些建议

这篇文章翻译自《How to do Graduate-level Research: Some Advice》。1. 介绍这篇文章是为了给研究生,尤其是博士研究生提供些有用的建议的,你们即将开始在USC的电子工程系统部门的自动网络研究组开始你们研究生涯。希望这篇文章也能给在其他机构相同研究领域的研究生提供有用的帮助。 没有经验的研究生通常对研究的本质存有误区。例如,他们认为搞研究跟上课一样相似或只

2017-01-18 20:42:32 7937 3

原创 printf压栈出栈

printf函数的压栈顺序是从右到左压栈,计算表达式值的顺序也是从右到左,由于输入数据类型的多样性,压栈的时候是将地址入栈例子:#include &amp;lt;iostream&amp;gt;using namespace std;int main(){ int arr[] = { 6, 7, 8, 9, 10 }; int *ptr = arr; *(ptr++) += 123; pri

2016-08-21 11:40:36 2826 4

原创 各种排序算法代码

一、选择排序输入:int a[10] = { 3, 2, 5, 9, 0, 7, 1, 6, 5, 4 };void swap(int *a,int *b){ *a^=*b; *b^=*a; *a^=*b;}核心代码为: for (int i = 0; i < 9; i++){ int min = a[i]; for (int j =

2016-07-02 18:59:27 676

原创 理解赤池信息量(AIC),贝叶斯信息量(BIC)

一、基本概念AIC: Akaike information criterion,赤池信息量。 BIC:Bayesian information criterion,贝叶斯信息度量。在选择模型来预测推理时时默认了一个假设,即给定数据下存在一个最佳的模型,且该模型可以通过已有数据估计出来,根据某个选择标准选择出来的模型,用它所做的推理应该是最合理的。这个选择标准就可以是AIC和BIC。没有模

2016-06-26 21:41:38 48674 6

原创 boost::function

一、介绍boost::function 就是一个函数的包装器(function wrapper),用来定义函数对象。它的概念很像广义上的回调函数。它以对象的形式封装了原始的函数指针或函数对象,能够容纳任意符合函数签名的可调用对象。因此,它可以被用于回调机制,暂时保管函数或函数对象,在之后需要的时机在调用,使回调机制拥有更多弹性。回调函数的一种形式就是:C语言中的typedef 返回类型 (*poi

2016-06-05 19:58:15 838

原创 一个较全的gdb调试文档:gdb cheat sheet

http://darkdust.net/files/GDB%20Cheat%20Sheet.pdf

2016-06-01 17:36:53 1121

转载 图像处理中不适定问题(ill posed problem)或称为反问题(inverse Problem)

一.定义图像处理中不适定问题(ill posed problem)或称为反问题(inverse Problem)的研究从20世纪末成为国际上的热点问题,成为现代数学家、计算机视觉和图像处理学者广为关注的研究领域。数学和物理上的反问题的研究由来已久,法国数学家阿达马早在19世纪就提出了不适定问题的概念:称一个数学物理定解问题的解存在、唯一并且稳定的则称该问题是适定的(Well Posed).如果不满足

2016-05-16 11:04:48 5223

原创 拉低程序员社会地位的十大因素

一、产品中不可避免的bug二、GitHub,CodeForge等开源社区拉低了准入门槛三、不注意衣、食、言、行形象四、程序员市场供大于求,随时可被替代五、专注于事而非人,导致权力或人资关系旁落六、自我认知价值低,自贬为码农,IT民工,而非自居工程师七、财产不足或一夜暴富但素养不高八、媒体曝光不够及社会舆论偏见九、整体年龄偏低十、程序员社交圈狭窄

2016-05-14 11:28:07 1807

转载 glog使用

一.简单 Demo#include <glog/logging.h>int main(int argc,char* argv[]){ LOG(INFO) << "Hello,GLOG!";} 链接时,需要 -lglog ,也可能会需要 -lunwind -lpthread (有一次遇到的,记不起来了,一般不需要)  执行时,可使用 ./glogdemo 将日志输出到 stderr,可使用

2016-05-12 20:39:47 1496

原创 一种根据输入动态执行函数

typedef int (*BrewFunction)();//函数指针类型变量typedef std::map<string, BrewFunction> BrewMap;BrewMap g_brew_map;//全局变量#define RegisterBrewFunction(func) \namespace { \class __Registerer_##func { \ publ

2016-05-12 20:15:51 703

原创 Cartesian k-means论文理解

1.普通k-means给定nn个pp维数据点,D≡{Xj}nj=1D≡\{X_j\}_{j=1}^n,普通Kmeans算法将它们分成kk个类别,每个类别有个类中心。目标函数是: 其中矩阵CC的第i列是cic_i,分成m个类别,那么矩阵就有m列,b∈{0,1}k,且b的模长为1b ∈ \{0, 1\}^k,且b 的模长为1。K-means算法之所以很难,其中一个原因是存在一个a

2016-04-19 16:42:51 10349 5

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-04-16 22:38:20 378

转载 如何实现单例模式

class Singleton {public: static Singleton& getInstance (void) { if (! s_instance) { pthread_mutex_lock (&s_mutex); if (! s_instance) s_instance = ne

2016-04-03 23:53:15 474

原创 CentOS6.5安装NVIDIA的显卡驱动

刚刚安装的CentOS6.5显示特别差,还不能修改分辨率,要安装NVIDIA驱动,就方便修改分辨率了。Linux下安装显卡驱动软件明显不如windows下的方便,安装不好,直接开机不了,甚至最坏要重装系统。假设系统是CentOS6版本,使用的是root权限。1.首先必须要是NVIDIA支持的显卡,才能装NVIDIA的显卡驱动,假如下载run文件,这样没联网也能安装。 2.下载合适的显卡驱动,千万不

2016-03-10 22:33:17 6247

原创 vlfeat dense sift理解

一、Dense SIFT SamplingDSIFT在寻找显著点时不是尝试使用一个分类器判断是否是显著点,而是为了简化,所有显著点是均匀分布(equally dense across )在图像的各个区域的。在采样时有个涉及不同尺度下采样步长(pixel stride)是否应该相同的问题。窗口移动同样的步长,在更大的尺度下,窗口要大些,这会使得相邻窗口的重叠区域面积比率变大,从而使得采样的冗余较小尺度

2016-02-26 21:47:43 3661

转载 Fisher Vextor原理

一、核心Fisher vector本质上是用似然函数的梯度vector来表达一幅图像。二、基础知识的预备1. 高斯分布生活和自然中,很多的事和物的分布都可以近似的看做是高斯分布。比如说:一个班的成绩的优良中差的分布。最优秀的和最差的往往都是少数,一般人是大多数。高斯分布直观的感受是这样的:这是这种分布的概率情况的表示:

2016-02-17 10:46:09 1829

原创 libpng在Linux下的编译

1.下载ZLIB,编译ZLIB。 2.修改了makefile.gcc中ZLIB目录,修改了png.h在其中添加了#define PNG_NO_MMX_CODE。 3.在configure所在目录中执行./configure 4.make 5.makefile -f script/makefile.gcc 6.修改当前目录下的test-pngtest.sh中pngtest.png文件路

2016-01-18 18:40:47 708

原创 boost库的编译和使用

编译: 1.从http://sourceforge.net/projects/boost/files/boost/1.55.0/下载boost源代码 2. 在工具栏启动 “VS2013 开发人员命令提示”,进入boost的解压目录,即D:\boost_1_55_0, 输入bootstrap,便在boost根目录下生成bjam.exe文件。 3. bjam –showlibararies显示

2016-01-16 23:39:31 542

原创 CentOS6.5下编译spark1.6.0源码

1.安装Java安装完java后,使用下面命令显示java版本。[root@localhost Desktop]# java -versionjava version "1.8.0_66"Java(TM) SE Runtime Environment (build 1.8.0_66-b17)Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17,

2016-01-13 20:19:45 1693

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