Category: Computer Vision

  • Squeezing Memory out of Caffe

    No, I am not talking about thinking of the good old days with a cup of drink. Today we are talking about our recent release of a new feature in our modified version of deep learning toolbox, Caffe. https://github.com/yjxiong/caffe In this release, we have implemented the functionality usually referred to as “memory multiloading”. A Wiki…

  • Face Recognition新进展

    Facebook刚刚公布了他们在CVPR2014的Oral文章 DeepFace: Closing the Gap to Human-Level Performance in Face Verification 文章题目就取得很霸气。Facebook的人用四百万人脸图片训练了一个九层的卷积神经网络(CNN),在著名的公共测试数据集LFW(labeled face in the wild)上达到了97.25%的正确率。这个数字已经基本接近人眼的辨识水平。

  • windows系统下安装运行cuda-convnet

    写了个简介 http://personal.ie.cuhk.edu.hk/~xy012/others/install_cudaconvnet.html

  • Visio/PowerPoint制作学术Poster的小技巧

    要去开会了,需要制作Poster,手头最容易得到的工具就是PowerPoint和Visio了(各位Linux Geek请无视我)。 至于教程什么的,网上太多了,下面只讲讲我遇到的几个问题,以及怎么解决的。 1. 对齐 学术Poster一般会要求打成A0的大小,也就是1米宽(或高)。这个时候在电脑屏幕上看不出来的几个毫米的错位完全会让我们poster看起来犬牙交错。怎么办呢,我们可以善用MS提供的Visual Aid工具集。这一套小工具包含了网格(Grid),胶贴(Glue to)以及辅助线(Guide Line, Visio only)。开启这套工具的方法很简单,在2010版本里,他们都在“视图”(View)这个tab里面。 PowerPoint的 Visio的 可以看到Visio的辅助功能比较强大,我觉得最好用的就是他多出来的Guide Line-辅助线功能。这个玩意用法是:把鼠标移动到边上的标尺上,按住往绘图区拖,就会出来一根虚线,可以设定这根虚线的位置,然后结合Glue To功能,就可以很好的完成对齐的功能。下面图平就是我的Poster上画的Guide Line,可以看到这东西对于版面的划分和对齐都蛮有帮助。 2. 图片 因为Poster要打的比较大,如果要使用像素图的话最好选用分辨率比较高的,当然还有一个办法是使用向量图(Vector Graphics)。向量图在缩放时不会产生锯齿。Visio和PowerPoint都具有矢量图处理功能,在windows下,比较好用的是EMF格式(Enchanced Metafile)。很多作图软件都具有输出EMF文件的功能。 也有一些特殊情况,我遇到的就是我要把用pdfLatex生成的pdf文件里面输出的公式拷到poster里面去。如果直接截图的话,总是会有模糊或者锯齿的问题。而PDF又没有好用的工具直接转成emf文件。这时一个办法是使用专业的矢量制图软件CorelDraw(收费,可以使用免费的inkscape)。方式是直接打开pdf文件,选择输入为曲线,在CorelDraw里面pdf文件就会呈现,并且各个文件组件都变成向量形式,我们只需要选中需要的公式,直接拷贝到Visio或PowerDraw里面就好了(最好使用“右键-特殊粘贴-EMF”)。其实原理是CorelDraw读取了pdf的postscript文件,所以将pdf保存为postscript再用CorelDraw打开也是可以。 需要注意的是Latex使用的AMS Fonts字体是Type-1 Font,windows一般都不会自带,需要下载,下载地址在 AMS Fonts – Version 3 – American Mathematical Society 其实CorelDraw也是做Poster的利器,不过我们对设计要求不高的情况下,他实在是有点太Heavy了。 3. 打印 在HK,打Poster的店还挺多的。下面贴几个,都是从 制作poster+香港打印流程 看到的 PrintShop Output 这个在火炭有一家门店 BannerShop

  • 看看用机器学习来审phd申请材料会怎么样

    这是IAAI( Innovation Application of Artificial Intelligence) 2013的一篇文章。讲到UT Austin的CS系发明了一个新系统,用机器学习的方法来审查PhD的申请材料。方法和结论都挺有意思的。 这个系统流程是这样的:首先把收到的申请材料做feature encoding,然后用一个简单的Sparse Logistic Regression来打分,然后按分数高低顺序给commitee的分发材料。然后commitee的人也会给申请材料打分,然后综合得到录取决定。在2012年的录取工作中,他们只是使用这套系统来预测实际录取的结果,并未参与实际录取,但是与实际结果相比得到了84%的正确率。 同时,在测试这个系统的过程中,他们还得到了一些有趣的发现,主要是关于什么因素会对CS系的PhD录取有较大的影响: 本科GPA,当然是越高越好。有趣的是,在这个模型中,研究生阶段的GPA没有任何影响。 以前上过的学校,“精英”大学的高GPA学生有极高的可能被录取。 GRE quant分数,这个对天朝同学应该没什么指导意义…… GRE Verbal分数…… 研究领域。模型中发现申请Machine Learning/人工智能/机器人学的学生录取概率低。现在大牛都往AI坑里跳,学渣们声泪俱下。 推荐信。文中列出了几个有积极意义的关键词”best”,”award”,”research”,”PhD”等。一些会影响录取的关键词有”good”,”class”,”programming”,’technology”等。此外,statement of purpose似乎没有什么影响。 虽然模型预测的结果不一定有道理,我觉得这些对申请来讲还是会有一些指导作用的。 最后附上文章链接 GRADE: Machine Learning Support for Graduate Admissions (IAAI2013)

  • VL_Feat 一个Matlab的CV工具包

    主页链接 VL_Feat 是一个用C编写的MATLAB工具包。它实现了CV中的一些重要算法,主要是feature extraction和clustering。要用到各种feature但又不想自己实现的时候可以考虑

  • LLE与Sam Roweis

    最近在学习LLE相关的东西,读了那篇引用高达5000+的paper之后。去拜访了作者Sam Roweis的主页,竟然发现主页上写着 The Department of Computer Science regrets to inform you that Professor Sam Roweis passed away on Tuesday, January 12, 2010. Please read the Department’s news release. 原来作者竟然已经在2010年去世了。 随后浏览了一下NYU提供的Sam的生平,又是一个英年早逝的天才的故事。Rowei是在听完Hinton的课之后才走上的AI的道路,他提出的LLE方法在当时乃至现在都绝对是一个天才的想法。”Think globally, fit locally”,多么有趣的思考方式。这篇短短的文章开启了流形学习时代的大幕,可是这样一个天才的生命竟然在38岁戛然而止,怎能不令人扼腕叹息。 下面是LLE的几篇paper,看看paper,顺便缅怀逝去的天才 [1]Nonlinear dimensionality reduction by locally linear embedding. Sam Roweis & Lawrence Saul. Science, v.290 no.5500 , Dec.22, 2000. pp.2323–2326. [2]Lawrence K.…

  • Boosting,黄荆棍下出好人

    作为这个年代成长起来的中国青年,相信不少人都有被父母练习“男子单打,女子单打,男女混合双打”的经历。中国有句老话,“黄荆棍下出好人”。每当我们犯了错事,说了错话,往往会遭遇父母的批评,甚至棍棒,乃至引申出“打是亲,骂是爱”等等奇谈怪论。一顿言语棍棒下来,孩子往往记忆深刻,下次遇事自然会想起以前的批评教育,行为有所改变。 这种做法是否真的能出好人,我们暂且不论。今天要讲的故事与学习有关,因为在机器学习领域,有一个非常著名的算法,与中国父母亲教育孩子有着异曲同工之妙。 在计算视觉以及机器学习领域中,有一个重要的算法,叫做Boosting,或者AdaBoosting(Adaptive Boosting的缩写)。这个词的中文意思有很多,但是我觉得最贴切的应该是“强化”。其实称它为一种算法有些牵强,我觉得更准确的应该是一种思想。 在机器学习领域,最重要的玩意应该算分类器了(Classifier)。这是一个函数,它能根据输入样本的特性决定其属于某个类别。为了解释分类器的定义,以及说明Boosting算法,我们假设有这样一位小朋友,名叫小明,他正在读小学二年级,现在他面临一个问题:是否应该用石块砸碎隔壁家的玻璃。当然小明不是一个小坏蛋,这只是因为隔壁家的同学王二丫昨天值日的时候批评了小明的桌面不整洁。 我们假设小明已经,这时,小明有两个选择:1.砸,2.不砸。这就相当于小明的脑海中设计了一个分类器,根据当下的情况——”王二丫昨天批评了我”,来判断“砸坏王二丫家的玻璃”是否是正确的。 接着,我们假设小明同学有一点是非观念不强的毛病。他觉得王二丫批评他是非常严重的挑衅行为,砸了她家玻璃也没什么大不了的。这也就是说小明同学的分类器分类正确率不高,只具有比丢硬币(Random Guess)更高一些的正确率(比如小明不会把王二丫家的房子一把火烧了)。于是小明就扔出了石头,砸坏了二丫家的玻璃。 当然,这事情被小明的父母知道了。他们非常生气,决定对小明的错误做出惩罚,此处略去二百字……小明痛苦流涕,对自己的错误进行了深刻反省,一场风波就此过去。 但是福无双至,祸不单行,两天后王二丫又一次在带队做早操时批评了小明。放学后,倔强的小明怒火中烧,又一次手持石块来到了二丫家的窗前(玻璃君躺枪)。小明再次面临抉择。但是考虑到上次砸了玻璃之后惨遭痛打,小明退缩了。屁股的痛苦回忆战胜了报复的快乐,小明老老实实的回到了家。 在这个故事里,小明的思想历程展示了Boosting算法的基本思路。它的核心就是通过顺序地训练一些分类器,通过这些分类器的组合,来得到最终的高正确率的分类器。对于分类器的训练,主要的方式是对于错误分类的惩罚进行估计,然后得到惩罚期望最小的分类标准。在第一个分类器时,小明得到了错误的分类结果(砸了玻璃),然后被痛打(错误分类的惩罚)。在训练第二个分类器时,小明调整了对“砸玻璃是正确的”这个分类结果对应的错误分类惩罚的估计值。这样训练得到的分类器终于得出了正确结果。 这就是Boosting算法的简单例子。当然,实际中的Boosting算法比这个例子要复杂得多,但是其基本思想是一样的,那就是:对于上一个分类器分错的了样本,提高其权重,使得对其错误分类的代价估计提高,从而使得下一个分类器倾向于将这些样本进行正确分类。从这个角度来看,一个复杂的算法,和小明父母的“棍棒教育”,颇有些相似之处。 也许看起来的挺无聊的,但是这个算法确实应用广泛。在近几年,正是基于这个算法,Viola等人第一次开发出了可以实时工作的人脸检测系统,基本解决了困扰工业界多年的人脸检测问题,其实用的例子,就是我们在iphone以及其他照相系统中看到的人脸检测技术。如此看来,黄荆棍下虽然不一定出好人,但还是可能出好事的:)