2007年3月31日星期六

开题

昨天开题。
上周被老板“骗”了一回,一伙人准备了一两天,到点时不见老板和其他老师,过了几分钟才接到老板电话:"记错时间了,下周开题." 晕倒~~
因此这次真开题时大家谁也不急了,热情只能有一次嘛。
四位老师,十个学生,一个小小的会议室,电脑,投影仪,简单而平淡,倒是比较喜欢的那种氛围。过程也很简单,十分钟PPT介绍,五分钟提问。虽说如此,我在介绍课题时还是有些激动或是兴奋的,大概是习惯吧:)问题也不多,学生问了两个问题,然后就很快地过场了。我还觉得奇怪,特意向对面老板使了个眼神:game over? 老板笑了笑,点点头,"Next" 。就此结束了,唉,不过瘾~~
整个过程延续了两个多小时,听听别人的工作还是比较有趣的,有时也能听到一些比较有趣的介绍,大家一笑了之,挺好.

2007年3月27日星期二

MSRA is coming~~~

还清楚地记得上学期初MSRA来学校验收项目,老板一定要做个Demo演示一下。当时算法还很不成熟,迫于无奈,只能花了两天时间辛苦完成了一个简单而幼稚的Demo,自己都觉得无法向别人演示,老板倒是觉得可以show off一下。开会那天老板不在,时间也比较紧,最后也没人过来看Demo,白忙活一场。
这次情况也类似,上周五就通知要做个Demo,并要做份ppt,周末忙了两天,周一又做了一天的ppt,今天去参加会议时,MSRA也就来了两个人,简单听了报告,便又去忙别的活动了。又是一场折腾~~
下次不能再当真了,尽做无用的活儿!

善心?童趣?

昨晚突如其来的大雨洗刷了盘恒在天地间的浊气,清晨空气异常清新,感觉很好。早早地来到实验楼,在停车处看到一个背着书包的小女孩蹲着在找什么东西,又不时地从地上抓起什么扔到身边的花圃中。走近时才认出是同班的一个女生,平时很少交流,便走近和她聊了几句。
原来她是在抓蚯蚓!夏天雨后一般会有很多蚯蚓从泥土中跑出来,低头看了一下,果然地板上有很多长长短短的蚯蚓。“它们都跑出来了”她简单地回答着,一边用小树枝将地上的蚯蚓挑到花圃中。
我微微笑了,童趣或是善心在她身上显得格外自然,也引人注目。现实中有这份心境的人真是少之又少了。

2007年3月17日星期六

书评:Inside C++ Object Model

这本书一直被传为经典读物,只是刚开始老听人说写得比较深,难以读懂,一直心存敬畏,不敢去碰。上学期期末偶从图书馆发现此书,顺手借了出来,当时看了几篇,觉得写得很是精彩,c++的一些细节通过编译器设计大师Stanley B.Lippman的实际经验一一道来,很有味道,也很有说服力,因为正是他当初设计了第一个c++编译器cfront,也正是他,目前是MS编译器设计者,VS2005便出自于他之手。权威之语,不敢不信,不得不从。
这本书写得最精彩的部分莫过于对c++对象布局和虚函数机制的阐述。山高月小,水落石出。从编译器实现方案来阐述这些底层的结构,无疑是最清楚,最有说服力的了。读过以后,以前一些模棱两可的概念豁然开朗了,更重要的是,清楚对象结构以及函数调用的底层机制后,有助于指导你写出更高效的代码,比如如何避免不必要的临时对象,如何提高函数调用的效率,还有就是如何写出更安全的代码,避免与c的ABI不兼容问题等等。
在此之前,也看过很多其它c++的经典之作,其中比较有影响力的是scott meyer的effective系列,herb sutter的exceptional c++系列,以及mattew wilson的imperfect c++。但这些书只是从语言层面或是c++标准层面来阐述为什么要这么做,为什么这么做比较有效,却不能触及本质。这对于彻底理解c++的一些问题还是不够的。而Lipppman的这本书正是补充了前面的不足。因此结合着看,相得益彰,真相了然于胸也~
当然,此书也有它的不足,因为完成时间比较早,大致是95年左右写出的,参考的也都是一些比较老的资料。从95~07,c++标准已经改变了许多,编译器水平也大有提高,因此书中的有些观点可能已经不适用了,比如书是提到的c++对象布局也很有可能与现在流行的编译器实现方法不一致,不能完全参考。但书中对一系列问题深入地剖析和思考,是很有价值的,启发我们从某些角度来思考为什么需要这么做,这很有意思。
直到今天才把这本书读完,其实所用时间也不多,有些章节回味了几遍,越读越有收获。这本书其实还是比较好读的,不像传说中那么吓人,那么晦涩,原因在于作者深入浅出的解释,以及清晰的代码和图表注释。
最后一点体会:书非借不能读也~(引自袁枚的<随园诗话>)

2007年3月16日星期五

MonoSLAM

开题定的课题是移动机器人视觉定位,还是有点难度的。老板的要求一向比较高,要求实时性、鲁棒性,又不能借助其它传感器,如odometer,并要在机器人实现。想想觉得有点不可思议。
这两天看论文查资料,正好找到一些视觉定位和monocular SLAM的研究进展,其中最突出的是Andrew Davison等人于06年实现的MonoSLAM系统,单摄像头实现30fps的pure vision based SLAM。看了一下效果,还是很好的,挺牛的。更好的是他们研究组提供所有的open source,这对于后来的研究无疑提供了莫大的帮助,论文中一系列的理论真是不容易理解的。
还有一个Real-Time Vision Group的相关工作做得也挺好,Andrew Calway等人也实现了单目摄像头的实时跟踪和定位,并可以从遮挡或是kindnap情境中恢复,差不多和实际人类的视觉有些接近了,比较实用了。
视觉SLAM或是定位还是很有意思的,需要好好研究。

2007年3月15日星期四

徘徊于C和C++之间

最近几天一直在写代码,还是那恼人的SIFT算法,虽说算法过程已经完全清楚,但用C实现起来总是有些麻烦,主要问题在于C缺少很多有用的数据结构,不像C++,用STL、Boost,用起来特别顺手,特别舒服。比如,用C自己实现了一个hashtable和list,为了实现David Lowe所说的hash hough,总觉得效率太低。以前也用C++中的hashmap实现了类似的功能,效果就好得多~~
因此得出一个结论:一如既往地支持C++,支持template, STL, algorithm and Design Patten.