自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (4)
  • 收藏
  • 关注

原创 Github fork sync upstream

fork repo 同步远程分支的改动

2023-05-11 11:15:54 213

原创 linux链表实现原理

linux链表实现原理标签(空格分隔): linux数据结构定义linux的链表是嵌入到数据结构当中,而不是在数据结构的定义中定义链表struct list_head { struct list_head *next, *prev;};定义一个需要链表的数据结构typedef struct Data{ int n; // other data ...

2019-03-11 22:30:17 470 2

原创 redis 链表实现源码解析

数据结构双向非循环链表// 链表节点typedef struct listNode { struct listNode *prev; // 前驱 struct listNode *next; // 后继 void *value; // 值} listNode;// 链表迭代器typedef struct listIter { listNode *...

2019-03-11 22:24:52 240

原创 正则表达式基础内容

正则表达式基础内容标签(空格分隔): linux1.单个字符匹配.:可以匹配任意单个字符(除\n除外)2.字符集合的匹配[]:表示字符集合的匹配,只要满足集合里面的表达式,那么都会匹配。[a-z]:匹配a到z的任意一个字符[A-Z]:匹配A到Z的任意一个字符[0-9]:匹配0到9的任意一个字符取非匹配,在集合匹配的集合表达式当中,添加^即可[^a-z...

2018-07-26 11:58:21 242

原创 Golang time包使用

time 包使用一个printf的使用方式a := 1fmt.Printf("%02d",a)%cNd,表示对齐N位,不够的用字符c补齐Go Time 的使用1.format形式获取年月日方法 t := time.Now() y := t.Year() // 年 m := int(t.Month()) //月 d := t.Day()// 日 h

2018-01-02 11:54:01 1257

原创 并发模型的生产者消费者模型

并发模型的生产者消费者模型标签(空格分隔): Go基本模型:带有缓冲区的生产者和消费者的并发结构两个缓冲区:一个消费缓冲区,一个结果缓冲区,一个生产者,多个消费者线程多个线程:每个线程从消费缓冲区里拿数据,把结果缓存在结果缓冲区中以下面的例子说明,可控制线程数量的生产者消费者模型const ( concurency = 100)func Concurency(number []i

2017-12-13 23:37:32 376

原创 git的使用方法小结

git的使用方法小结1.git 创建本地分支1.1 在本地创建分支 git branch branch_name //创建本地分支 git checkout branch_name //切换分支可以使用如下命令创建并切换分支 git checkout -b branch-name //创建本地分支,并切换到新分支上1.2 在本地创建分支 关联本地分支和远程分支 git

2017-12-07 13:02:23 175

原创 Go 生产者消费者模型

Go 生产者消费者模型标签(空格分隔): Go1.生产者消费者模型的实现func main() { in := make(chan int) out := make(chan int) go Producer(in) go Consumer(in, out) for x := range out { //读取管道,直到关闭,如果没有值,那么阻塞

2017-11-25 13:08:17 1108

原创 Go 命令行参数及标准输入输出

Go 命令行参数及标准输入输出标签(空格分隔): Go1.Go 命令行参数的使用Go的命令行参数存储在切片 os.Args 当中,可以说和python的命令行参数非常相似fmt.Println(os.Args)//打印切片内容for i := 0; i < len(os.Args); i++ { fmt.Println(os.Args[i])}其中第一个参数为可执行文件的名字,其他

2017-11-14 20:29:22 12060

原创 Go 计算程序运行时间

Go 计算程序运行时间标签(空格分隔): Go作业部落地址:Go计算程序运行时间1.计算代码块的运行时间start := time.Now()//some func or operationcost := time.Since(start)fmt.Printf("cost=[%s]",cost)其中time.Since()函数返回字符串类型,例如1h2m3s等,可能还有us等2.计算函数的

2017-11-13 17:39:21 9917

原创 python 安装vlfeat

vlfeat python计算机视觉处理工具 vlfeat 的python名字是pyvlfeat 使用下面的命令安装apt-get install pyvlfeatyum install pyvlfeat可能会出现,这个问题:cannot find -lboost_python-mt-py26是因为系统里面的那个库没有或者变为-lboost_python-mt-py27-lboost_pyt

2016-11-29 21:37:37 5301

原创 On the burstiness of visual elements

1.论文介绍这篇文章主要解决了,图像检索过程当中的突发(Burstiness)问题。在BoW模型当中,一个视觉元素在同一个图片中多次出现可能会降低匹配的质量。2.图像检索的框架局部特征和特征与视觉中心的对应 作者通过使用Hessian-afine 检测子来计算SIFT特征。作者在数据集Flickr上通过k-means方法学习到20k大小的视觉词典。对于新的特征,使用欧氏距离来获得这个特征属于的视觉

2016-11-23 16:57:26 1282

原创 python 堆和优先队列的使用

1.heapqpython里面的堆是通过在列表中维护堆的性质实现的。这一点与C++中heap一系列的算法类似,底层是通过堆vector的维护获取堆的性质。 python堆的部分API,其他API查阅文档python_heap_API和 heapq的源代码import heapq#向堆中插入元素,heapq会维护列表heap中的元素保持堆的性质heapq.heappush(heap, item

2016-11-21 21:39:00 46203 1

原创 二分查找及其扩展

之前所说的lower_bound和upper_bound其实就是二分查找的一种扩展形式,在SGI STL里面,二分查找算法实际调用的事lower_bound。所以lower_bound和upper_bound还是非常重要的。主要用到的是二分查找的思想。

2016-11-17 19:46:13 505

原创 Bag-of-colors for Improved Image Search

1.论文介绍这篇文章通过使用图像的颜色特征(全局和局部),并结合这SIFT特征,实现BoW,作者认为颜色特征可以作为SIFT特征的补充,达到超出传统方法的效果。2.Bag of ColorColor特征的生成过程 颜色空间:作者基于前面人的工作,借用了CIE-Lab颜色特征。这个颜色空间更接近于欧式空间。颜色字典 颜色字典是通过聚类来实现的,对于每一个图像的颜色特征分量,L,a,b分别进行量化,

2016-11-16 16:24:59 913

原创 caffe 提取图像特征

1.数据准备所有的操作都是在caffe根目录下进行的1.1.建立一个目录存放特征以及一些必要的信息mkdir examples/temp1.2.生成需要提取图片的位置集合的文件find `pwd`/examples/images -type f -exec echo {} \; > examples/temp/temp.txt这里第一个路径就是你的图片所在的目录,总之需要通过这个路径能够找到图片。最

2016-11-15 14:33:20 4504 5

原创 python/c/c++ 二进制文件读写

1.python 二进制文件的读写只讨论二进制文件的读写。 以二进制的形式打开文件with open(filename , 'wb') as fd : #do with fd fd.write(strobject)#二进制strobject写入文件 fd.read(byte_len)#读取byte_len字节数据wb:表示以二进制写的方式打开文件 rb :表示以二

2016-11-14 17:21:46 8681

原创 Combining SIFT and Global Features for Web Image Classification

Combining SIFT and Global Features for Web Image Classification 2.1.SIFT特征的提取介绍1.局部极值的检测和方向的确定 使用高斯差分函数获取高斯差分图像金字塔,然后对于图像中的每一个点,以这个点为中心的就个点,以这个图像的上面,下面一层的金字塔图像的对应的点,判断这个点是不是极值。 高斯查分函数: 其中的高斯函数:

2016-11-08 21:05:35 498

原创 Large-Scale Scene Classification Using Gist Feature

1.论文介绍使用GIST特征对于场景图片进行分类。对于分类器的选择,作者使用了基于L2L_2正则,L2L_2损失的SVC方法,和基于核函数的SVM两种分类器。并在GIST特征的多尺度,多方向,不同划分图像块的三个方面进行了实验,结果表明带有核函数的SVM在提取GIST特征时使用18个方向,5个尺度,并使用4*4的划分卷积图像可以达到最好的分类结果。2.方法介绍2.1二维的Gabor 滤波器对于二维的

2016-11-03 10:11:04 1602

原创 C++ priority_queue 与 lambda的结合使用

1.priority_queue定义template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue;按着这个模板定义来看,需要给出每一个模板参数的类型,来实例化模板。 默认使用的是小于操作的比较运算符,底层使用v

2016-10-26 11:27:37 17165 10

原创 Small Codes and Large Image Databases for Recognition

0.论文介绍:对GIST特征进行哈希,然后通过hashcode进行检索和分类。作者介绍了基于机器学习的几种方法:BoostSSC,和RBM,通过实验,可以看出来,做这提出来的方法在LabelMe和webImages两个数据集上相比于LSH获得了较好的结果。1.BoostSSC把原空间的数据,嵌入到hamming空间中,原始数据之间的距离使用带有权重的hamming距离来替代。 图像可以使用MM维的

2016-10-26 11:11:54 483

原创 Classifying traffic scenes using the GIST image descriptor

1.论文介绍1.使用GIST特征对于在开车的过程当中遇到的图片进行分类。 2.对于这些非常适合GIST特征原始含意的图片,GIST特征会表现的非常好 3.对于分类任务,首先使用PCA对于提取到的GIST特征进行降维,然后使用k-means进行聚类,最后使用SVM对于得到的特征进行分类。 4.实验表明使用GIST特征对于高速公路上遇到的场景进行分类,具有很好的表现。

2016-10-19 23:05:22 570

翻译 Evaluation of GIST descriptors for web-scale image search

论文介绍: 论文主要比较了全局特征GIST和其他的局部特征,分别在图像相似检索和近乎拷贝检索的两个任务上不同效果。同时作者对于BOF优化的一些方法进行了实验,例如HE(Hamming Embedding) BOF 空间划分,并在召回率和准确率进行比较,同时在使用的内存和检索时间进行了比较。最后作者提出来了一种综合传统BOF的方法,并考虑内存使用和查询准确率的建立索引的方法。在实验中,作者提出来的方

2016-10-11 15:40:07 924

翻译 Deep Hashing Network for Efficient Similarity Retrieval

1.论文介绍对于以前的hash算法,是把特征学习和hashcode的学习分开来进行的,有的是先使用手工特征或者学习到的特征,然后在进行hashcode的学习。两个过程分裂开来进行学习的。每次学习只是整个目标的一部分,这样会陷入到局部最优解当中。所以作者针对这里面存在的问题,提出了deep hashing network的算法,主要解决的问题在于一下几个方面: 1).通过CNN来学习特征,而不是使用

2016-09-28 21:37:43 1446

原创 冒泡排序及其改进

1.冒泡排序是一种非常简单的排序算法。冒泡排序的思想是,进行nn轮排序,每一轮当中把最大的元素或者最小的元素放到末尾的位置上,每一轮比较相邻的两个元素,然后,如果是逆序那么进行交换,可以看出来时间复杂度为O(n2)O(n^2) 第一轮冒泡会把最大的元素放到最后的位置上, 第二轮冒泡会把第二大的元素放到倒数第二的位置上, ⋯\cdots⋯\cdots ⋯\cdots⋯\cdots 第n−1n

2016-09-27 17:15:00 308

原创 lower_bound & upper_bound

1.lower_boundlower_bound(T A[],int first,int last,const T &v)输入的元素:A[first,last)A[first,last),不包含最后last所指的元素。 目标:有序数组当中查找一个元素,如果这个元素存在则返回这个元素第一次出现的位置,否则返回这个元素该插入的位置,也就是在这个位置插入之后,数组还是有序的。 如果存在,那么就

2016-09-24 11:40:13 345

原创 C++ string 类的简单实现

class String{ char* ptr; size_t len; public: String():ptr(nullptr),len(1){} String(const char* str){ len = strlen(str); ptr = new char[++len];// las

2016-09-23 10:07:48 665

原创 linux exec 系列函数说明

1. execl(const char *path,argv0,argv1,...,0); /** *其中path表示要启动可执行文件的文件名,包括路径名 *会默认的在系统环境变量PATH中搜寻,如果给定文件路径名,那么直接找这个文件 *argv0,argv1....为可变参数列表,最后一个用(char*)0结束 */2.execlp(const char *

2016-09-23 09:01:22 325

原创 shell 的几个数据处理命令 管道命令

tr:tr -s 'c' 'c1' 把文件中的一个或者多个字符’c’ 替换成字符 ‘c1’ eg:cat a.txt | tr -s ' ' '\n' 把文本a.txt中所有的一个或多个空格替换成换行符,也就是说遇到一个或者多个连续的空格那么就换行。sed 's/exp1/exp2/g'把所有exp1形式的字符或字符串替换为exp2形式。 uniq 对文本进行去重处理 eg:cat a. tx

2016-09-23 08:57:38 1449

原创 快速排序partition的写法

1.本科时候,严老师的那本书上给的写法int partition(int A[],int left,int right){ if(left >= right) return left; int x = A[left]; while(left < right){//left should be less than right. left is

2016-09-23 08:50:55 1441 3

原创 面试遇到的字符串操作

void* memcpy(void* des,const void* src,size_t len){ char* d = (char*)des; const char* s = (const char*)src; while(len--) *d++ = *s++; return dest;}

2016-09-23 08:49:29 234

原创 Efficient Training of Very Deep Neural Networks for Supervised Hashing

1.介绍 这篇文章主要说如果高效的训练深层的神经网络。对于现存的模型,由于一些限制,比如梯度消失的情况,只能限于训练一些比较浅层的网络。而且这种模型的效率并不高。所以作者就提出来一种可以高效训练深层网络的方法。具体的是:训练过程当中引入辅助变量,通过更新辅助变量,来达到某一层的局部最优解。通过实验发现,这种方法可以训练64个隐藏层,每层1024个节点的网络,而训练的时间在3个小时左右。2

2016-09-21 10:04:46 704

原创 最大子数组问题 Maximum Subarray

Maximum Subarray: algorithm这个问题我们先看下问题的描述:问题描述Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [−2,1,−3,4,−

2016-05-02 15:41:44 16331 2

原创 epoll使用

epoll 相关标签(空格分隔): linux c/c++1.epoll_create调用int epoll_create(int size);int epoll_create1(int flags); 第一个函数epoll_create调用是比较常用的调用,第二个调用是改进版本。内核版本在2.9以及之后才能够使用。 调用成功的返回值,是一个文件描述符(非负整数),指向一个epoll

2016-05-01 18:05:10 533

原创 select调用

标签(空格分隔): Linux C/C++select 调用1. 函数调用原型int select(int maxfdp1,fd_set *readset,fd_set *writeset,fd_set *exceptset,const struct timeval *timeout)2.参数说明2.1 timeout参数结构体定义:struct timeval { long tv_sec

2016-05-01 17:27:51 687

原创 gem install redis 不成功问题,无法访问网站

使用淘宝的一个镜像就可以安装redis了gem sources -a https://ruby.taobao.org/sudo gem install redis

2015-11-18 17:14:22 13124 4

原创 shell 的几个数据处理命令 管道命令

tr:tr -s 'c' 'c1' 把文件中的一个或者多个字符'c' 替换成字符 'c1'eg:cat a.txt | tr -s ' ' '\n' 把文本a.txt中所有的一个或多个空格替换成换行符,也就是说遇到一个或者多个连续的空格那么就换行。sed 's/exp1/exp2/g'把所有exp1形式的字符或字符串替换为exp2形式。uniq 对文本进行去重处理e

2015-08-23 16:55:24 1059

原创 linux ffmpeg 的安装以及程序链接过程

1.下载ffmpeg,然后解压到主目录下面,进入这个目录。一直到可以看到有个configure文件为止。2.下面是使用configure 来生成Makefile文件,具体的配置,可以使用./configure --help来查看相关的内容,其中里面会用到--prefix=/installpath:表示安装的路径,一般installpath 会是/usr/local/yoursoftwa

2015-07-03 21:48:36 2329

原创 linux exec 系列函数说明

/**    *execl(const char *path,argv0,argv1,...,0);    *其中path表示要启动可执行文件的文件名,包括路径名    *会默认的在系统环境变量PATH中搜寻,如果给定文件路径名,那么直接找这个文件    *argv0,argv1....为可变参数列表,最后一个用(char*)0结束    */    /**   

2015-06-30 15:32:50 541

原创 ubuntu14.04 虚拟机安装opencv2.4.10,make遇到的问题

ubuntu14.04 虚拟机安装opencv2.4.10,make遇到的问题 error: inconsistent operand constraints in an ‘asm’:这个问题好象和系统的有关系,我参考了一个解决方案https://github.com/Itseez/opencv/commit/ea50be0529c248961e1b66293f8a9e4b807294a6

2015-06-24 12:01:22 663

一个显示日历的类

使用java语言实现一个日历类,这个日历类的主要功能是显示某一年的日历。 测试函数没有写。

2012-07-28

GUI中的动态小球

在一个面板中动态的显示小球,在这个过程中可以通过点击面板上的按钮来增加或者减少小秋的个数

2012-07-27

c语言排序演示

用C做出的可以再命令行中动态显示排序的过程的,主要是冒泡,选择,插入排序

2012-07-27

introduction to java programming

java programming 一本介绍java编程入门的书籍,还有进阶版,不过这里没有啊

2012-07-19

空空如也

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

TA关注的人

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