机器学习笔记——逻辑回归(LogisticRegression)

基本概念

逻辑回归是一种线性分类的方法,通过给定一些样本空间中的样本点,训练出一条直线(超平面),使得样本点能被较好的分隔开。由于它训练的结果也是一条直线,因此被称为回归(属于线性回归),只是线性回归得到的直线用来拟合样本点,而逻辑回归得到的直线用来分隔样本点。 设\(\theta=[\theta_1 \theta_2 \cdots \theta_n]^T\)为分类面参数,\(x=[x_1 x_2 \cdots x_n]^T\),则有:

$$ h_\theta(x)= \begin{cases} 1 ,& \theta^T \cdot x \ge 0 \\ 0 ,& \theta^T \cdot x < 0 \end{cases} $$

通过这样拟合直线的方式就可以得到一组参数,直接将样本分为两类。上式方程相当于引入了阶跃函数:

$$ h_\theta(x)=step_0(\theta^T \cdot x) $$ ...
more ...

记录写论文时用到的一些工具

前一段时间,针对之前做过的关于目标跟踪的工作,我整理了一篇论文。论文中会需要一些实验图和数据曲线等,需要从算法的结果数据中生成,于是做了一些简单的小工具来批量生成数据,这里做个备忘,别以后忘掉了。主要用了一点ffmpeg,python和python的PIL库。

从图像序列生成视频

假设当前目录下有一堆图像,命名分别为00001.pgm,00002.pgm.....,那么可以使用如下语句把他们变成视频。其中-r代表视频的帧率,越大图像越流畅越快,-i表示输入文件的命名格式,只要把文件名按照C语言的格式写就可以,(如我的就是%05d.pgm,如果文件名是pic1.png...pic10.png,那么可以用pic%d.png,以此类推),最后加上文件名和扩展名就可以了。还有更复杂的命令,但是我用不到。

ffmpeg -r 24  -i %05d.pgm  test.mp4

效果如下视频:

跟踪结果与GT对比曲线

这里包括了我的算法,TLD,CT和MIL四种算法,分别与GT进行对比 ...

more ...

关于ArDrone四旋翼 二次开发的一些记录

AR.Drone是法国公司Parrot推出的四旋翼平台,内置飞控导航,摄像头等设备,可以使用各种手机,平板来控制飞行.同时官方提供了SDK,可以自己开发程序来控制该飞机.但是介绍总是美好的,在实际使用中总是会出现这样或那样的问题.这里我把遇到了的能解决并且能说得清楚的问题记录下来

使用的SDK版本为2.0.1,操作系统为64位ubuntu 13.04

编译问题

刚解压出SDK,进入 Example/Linux,执行make命令,在编译Navigation工程时,会出现如下编译错误

 undefined reference to symbol 'floor@@GLIBC_2.2.5'

解决办法是在Example/Linux/Navigation/Build/makefile文件中的引用库的部分加入-lm,变成这样:

GENERIC_LIBS+=-liw -lpc_ardrone -lgthread ...
more ...

选择适合跟踪的特征点

问题

虽然现在已经得到了求解一个点的光流的方法,但是并不是什么点都能求出正确的光流。举一个例子就是,选择了一面白墙上的一个点,由于缺乏纹理信息,算法会失效。求解光流的方程如下:

$$ v=G^{-1}b $$

其中:

\begin{equation} \label{G} G=\sum\sum\left[ \begin{array} {cc} I_xI_x & I_xI_y \\\ I_xI_y & I_yI_y \end{array}\right] \end{equation}
$$ b=\sum\sum \left[ \begin{array} {c} \delta II_x\\\ \delta II_y \end{array}\right] $$

从方程可以看出,当一个点周围的内容都一眼的话,\(I_x\) ...

more ...

使用光流法跟踪图像中的点

在计算机视觉的研究中,经常会出现以下问题:

  1. 给定两幅图像,把他们拼接起来
  2. 给定图像序列,找出其中的运动部分
  3. 跟踪图像中的某个对象

人们针对这一类问题,提出了很多解决办法。其中有一种考虑方法就是,这些问题都需要建立起图像间像素点的匹配关系,当知道了任意像素点在图像间的运动速度时,就可以建立起匹配关系,也就解决了这些问题。而像素点的运动就称为光流.因此,当我们求出了图像中某一点的运动速度,可以说求出了光流;或者当我们求出了两幅图像中对应点的匹配关系时,也可以说求出了光流

光流的求解方法

最简单粗暴的方法

当我看到Eth(苏黎世理工大学)的这个算法时,我都惊呆了——这也可以?他们在An Open Source and Open Hardware Embedded Metric Optical Flow CMOS Camera for Indoor and Outdoor Applications这篇论文中使用了一个名为块匹配的方法。该方法对选定的某一像素点 ...

more ...

更换了博客生成系统

如果不是GoDaddy给我发邮件提醒续费,我都忘了我还有这么一个域名,以及这么一个博客。最早决定写博客是看到好多人都说记录一些事情是个好习惯,无论对于生活还是学习都是。另外当我发现我的写作能力实在差的太厉害,太需要锻炼锻炼。当时看到Octopress那么有趣,我就做了这么一个博客。

但问题是,那个ruby环境实在太难配置了,我的电脑上总会出现这样或者那样的问题,对ruby版本号有要求,对组件版本号有要求,每次配个环境都费死劲了。所以当我换电脑后,配环境未遂,就只好作罢了。

一次上网随便看东西,发现了Pelican这么一个基于Python的博客系统,突然觉得很喜欢,一个是不需要什么环境配置,系统自带的Python就可以,另外它很简单,使用起来没什么特殊的难点,也是管理静态页面的方法。我就又决定要开始记录学习的过程了!!!

搭建过程我主要参考了

more ...

我的2013回顾

转眼又到了新的一年,我的研究生也读了一年半了。从很久以前我就打算经常写写总结,但总是一懒就不动笔了,这算是我第一次对一年做一个流水账式的总结。

总体评价,今年是我上大学以来过的最丰富的一年。所谓丰富,应该是指有很多事情可以做,而且是各种各样的有意思的事情。相比而言,本科的生活只能说是充实,除了在实验室的工作和学习,就是参加学校的冯如杯比赛。虽然每天很忙,做的很多项目中收获也很大,但是现在回想起来,特别有意思的事情却不多,这个皮影戏倒是能算一个。我现在来机器人研究所读研究生,和这个项目也有很大的关系。它让我第一次从软件走到了硬件,通过机电结合的方式实现了这个比赛,也让我对程序和电路,机械有了新的认识。

年初:论文被录用

不说本科了,2013年最早的一个好消息,应该是年初的时候收到了论文被录用的消息。这篇论文的前身是我冯如杯比赛的作品,当时花了很多时间和心血。在研究生第一学期的时候,我把当时的作品资料整理起来,写了这样一篇论文。写论文的过程中,明显能感觉到当时有很多想法还不清晰,一些问题没有想明白。当我一笔一笔的写论文的时候,所有的这些问题都汇总在我的脑子里,和搜集的资料,看的论文一起,慢慢的就都想明白了。这时候我也真正理解到,为什么那么多人都说总结是学习的最好方式。写论文就是对自己工作的一个完整总结,同时为了能够发布,不仅要完整还要清晰明了。我总是以为一个项目是自己做出来的 ...

more ...