当前位置 : 首页

跟着老爸练字

  老爸自己在方格纸里写了几张行书钢笔字,国庆在家几天,让我每天照着写一张,写完后给我检查,指出不好的地方,经过老爸的指导,发现很多字自己都不会写,或者比划书序不对,比方说:

July2013年9月第1次面试算法讲座

主讲人:July 曹鹏博士
前几天在微博上看到July要举行面试和算法讲座,就顺便一顶,后来仔细想了想,自己最近学习科研太没有动力了,需要激励一下,就报名参加了,给July捐了10元,钱不多,但是个意思,人家好心组织,又定场地又送书,也不好意思白去。中午到北理工的7号楼,已经有好几个人在报告厅外面等着了,1点左右开门进去,July还没到,进去找个前排位置坐下,工作人员在布置会场。本来以为会设个门禁,结果是想进就进,只是坐好后签了个到。

路遥《平凡的世界》读后感

  暑假在家的时候,老爸闲聊时说过,书是好东西,以后要多读一些书,古典的、现代的,小说、散文,都可以读,开卷有益。还说到爸妈在上中学的时候,学校里也都流行读各种小说,往往一本书轮着看,最后直接就把书读破了,还有手抄本,就是亲自把喜欢的小说全篇抄下来,想想现在条件这么好,读书都不用去买,网上就能看电子书,确实应该珍惜。
  我也早早了解了读书的重要性,喜欢的类型有悬疑推理类的,商战职场类的,IT类的,以及一些经典名著,最爱悬疑推理,但也分阶段,往往某段时间非常喜欢这一类的,过段时间又喜欢另一类的。在南方的两个月时间没读过书,空闲时间就是刷刷微博,看看电影,读读时事新闻,开学之后就感觉很空虚、浮躁,是时候该看看书了。
  读哪类的?悬疑推理小说还有大量存货,从来不缺,虽然是我最喜欢的,但是现在不想读这类的。
  上网搜一搜,“人生必读的100本书”“2013年最值得读的书”,有推荐《诗经》《左转》之类的,自己的文学修养还没高到那种程度。上豆瓣读书,看“豆瓣图书Top250”,看到《平凡的世界》,对,这就是现在最想看的类型,看看那个年代的艰苦生活,就知道珍惜现在了。

2013年上半年总结

  研究生的第二个学期,总共只有两三门课,所以我们也被拉进了课题组。还是改进之前的国土资源监控系统,这次我们提出了一些优化改进的方法,之前用MFC做的,这次改成了用Qt做,开始参加每周一次的组会。大概用了两个月的时间搭好了系统的框架,然后开始研究一些视觉算法,首先就是SIFT,目的是为了图像拼接,前前后后搞了一个多月,然后七月初被派到深圳。

SIFT算法与SURF算法特征检测效率对比

SIFT和SURF算法都是特征检测中较常用的算法,SURF是对SIFT的一种改进,尤其在效率上有明显提升。

SIFT与SURF源码

下面的实验给出了SIFT算法和SURF算法在特征检测效率上的对比,

图像处理中的梯度和导数如何求?(Robert算子,Sobel算子,Prewitt算子,Laplace算子)

梯度的求法是多种多样的,根据不同的处理需要选择合适的算子(模版)。

基于SIFT特征的全景图像拼接


基本步骤

  • 1 读入两张图片并分别提取SIFT特征
  • 2 利用k-d tree和BBF算法进行特征匹配查找
  • 3 利用RANSAC算法筛选匹配点并计算变换矩阵
  • 4 图像融合

SIFT算法以及RANSAC算法都是利用的RobHess的SIFT源码,前三个步骤RobHess的源码中都有自带的示例。

有栖川有栖《马来铁道之谜》读后感

  这篇文章是从日本推理作家协会奖获奖作品中找的,是2003年第56届的两篇获奖作品之一,看之前先查了一下资料,感觉挺有意思的,本身对火车挺感兴趣,而且内容介绍上说向读者挑战超完美密室,引起我很大兴趣。
  故事发生在马来西亚的金马伦高原,看完后也上网查了查,风景确实不错。文中的第一人称叙述者就是作者自己,名字就叫有栖川有栖,身份也是一个推理作家,但案件的侦破不是靠作者,而是和作者一起去旅游的一个犯罪学教授,他们俩的搭档类似福尔摩斯和华生,作者扮演华生的角色,辅助调查并做传记记录。

RobHess的SIFT源码分析:xform.h和xform.c文件

SIFT源码分析系列文章的索引在这里:

这两个文件中实现了RANSAC算法(RANdom SAmple Consensus 随机抽样一致)。
RANSAC算法可用来筛选两个图像间的SIFT特征匹配并计算变换矩阵。

利用RANSAC算法筛选SIFT特征匹配的主要流程是:

  • (1) 从样本集中随机抽选一个RANSAC样本,即4个匹配点对
  • (2) 根据这4个匹配点对计算变换矩阵M
  • (3) 根据样本集,变换矩阵M,和误差度量函数计算满足当前变换矩阵的一致集consensus,并返回一致集中元素个数
  • (4) 根据当前一致集中元素个数判断是否最优(最大)一致集,若是则更新当前最优一致集
  • (5) 更新当前错误概率p,若p仍大于允许的最小错误概率则重复(1)至(4)继续迭代,直到当前错误概率p小于最小错误概率

RobHess的SIFT源码分析:sift.h和sift.c文件

SIFT源码分析系列文章的索引在这里:

这两个文件是RobHess的SIFT库中最重要的两个文件,里面包括用SIFT算法进行特征点检测的函数。
文件中的内容说白了很简单,就是两个特征点检测函数sift_features()_sift_features()
sift_features()是用默认参数进行特征点检测, _sift_features()允许用户输入各种检测参数,其实sift_features()中也是再次调用_sift_features()函数。
所以,你只需提供原图像和存储特征点的数组以及其他一些检测参数,然后调用sift_features()_sift_features()就可完成SIFT特征点检测。
sift.h中有默认的各种特征检测中用到的参数的宏定义,sift.c中是检测函数的实现,是最核心的一个文件,里面的一些未暴露接口的本地函数就有31个之多。

SIFT算法大致分为四个步骤:

  • 步骤一:建立尺度空间,即建立高斯差分(DoG)金字塔dog_pyr
  • 步骤二:在尺度空间中检测极值点,并进行精确定位和筛选
  • 步骤三:特征点方向赋值,完成此步骤后,每个特征点有三个信息:位置、尺度、方向
  • 步骤四:计算特征描述子

RobHess的SIFT源码分析:kdtree.h和kdtree.c文件

SIFT源码分析系列文章的索引在这里:

kdtree.h和kdtree.c这两个文件中实现了k-d树的建立以及用BBF(Best Bin First)算法搜索匹配点的函数。
如果你需要对两个图片中的特征点进行匹配,就要用到这两个文件。
关于k-d树的理解,参考这篇文章,写的挺好:http://blog.csdn.net/ijuliet/article/details/4471311

RobHess的SIFT源码分析:imgfeatures.h和imgfeatures.c文件

SIFT源码分析系列文章的索引在这里:

imgfeatures.h中有SIFT特征点结构struct feature的定义,除此之外还有一些特征点的导入导出以及特征点绘制函数的声明。
对应的imgfeatures.c文件中是特征点的导入导出以及特征点绘制函数的实现。
特征点的类型有两种:

  • 一种是是牛津大学VGG提供的源码中的特征点格式;
  • 另一种是David.Lowe提供的源码中的特征点格式。

RobHess的SIFT源码分析:综述

最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究。

后来想用OpenCV中自带的SIFT特征检测器进行特征检测和拼接,但还是有隔靴搔痒的感觉,接触不到SIFT算法的本质。
看到网上大多数都是使用RobHess的SIFT源码,自己也下载了一份进行了分析,并用RobHess的SIFT源码实现了特征提取和图像拼接。

利用RANSAC算法筛选SIFT特征匹配


利用RANSAC算法筛选SIFT特征匹配的主要流程

关于RANSAC算法的基本思想,可从网上搜索找到,这里只是RANSAC用于SIFT特征匹配筛选时的一些说明。
RANSAC算法在SIFT特征筛选中的主要流程是:

  • (1) 从样本集中随机抽选一个RANSAC样本,即4个匹配点对
  • (2) 根据这4个匹配点对计算变换矩阵M
  • (3) 根据样本集,变换矩阵M,和误差度量函数计算满足当前变换矩阵的一致集consensus,并返回一致集中元素个数
  • (4) 根据当前一致集中元素个数判断是否最优(最大)一致集,若是则更新当前最优一致集
  • (5) 更新当前错误概率p,若p大于允许的最小错误概率则重复(1)至(4)继续迭代,直到当前错误概率p小于最小错误概率

OpenCV2.4.4图像仿射变换

图像仿射变换简介: