INOG

INOG is Not Only Geeks

Blog

28 Apr 2016

人脸检测的VJ方法

对于这种类型的应用来说,通常都会分为几个步骤: 人脸检测(Face Detection)。检测到人脸所在的区域。并进行一系列的矫正。 人脸校准(Face Alignment)。人脸校准指的是在图片中寻找到鼻子、眼睛、嘴巴之类的位置。 如图中,红色的框是在进行检测,白色的点是在进行校准。 信息识别(Info Recognition)。进行性别、年龄等信息的分析和识别。 这三个问题可以说每一个都是一个非常广泛的研究领域,有很多值得做的工作。本文只做一些简单的介绍。 人脸检测 Viola-Jones方法 传统的人脸检测算法是Viola-Jones算法。在OpenCV中的人脸检测功能也是使用的这种算法。它有三个核心步骤:Haar-like特征、Adaboost分类器和Cascade级联分类器。 Haar-like特征 所谓Haar-like特征其实很好理解。Haar-like特征类似于下图: 而所谓的Haar-like的特征值就是图中白色的像素值求和,求和之后与黑色的像素值做差得到的。即 feature=sum(white)-sum(black) 但是在一幅图中这样的特征是非常多的。根据Viola-Jones的论文,一幅24*24的图中这样的Haar-like特征就会达到18万种之多(具体的计算方式我们以后再说)。所以我们可以引入积分图(Integral Image)技术。积分图是一张与原图像大小完全相同的图片,不同之处在于其每一点的像素值是其左上角所有像素值的和。如图 在这样一幅图中,我们记某一点的像素值为ii(x),则当我们想要计算D区域中所有像素和时,使用ii(4)-ii(2)-ii(3)+ii(1)即可。这就可以大大减少计算时间,提升效率。 Adaboost方法...

16 Apr 2016

从图像到数字

前阵子看到有童鞋问识别数字的问题,我们就来聊聊数字的识别。这个内容局限于一个已经切割好图像的单个数字。单就这个问题来说用的比较多的方法是 KNN- K Nearest Neighbor (最近邻居法) 我们都知道总统是怎么选出来的吧?有人去竞选然后选民去投票。理想状态下票数多者为胜(假设不存在选举人团制度)。在理智的状态下,选民投给的是总统候选人的一些特征(Feature)。 在这个过程中,我们可以将总统候选人这个人来去人格化,把它抽取为一系列的特征向量。这个向量就包含了总统候选人的各种特质,向量的每个值都是候选人的一些政治主张、颜值(这应该是US总统选举中最最重要的因素了吧)、身价等等特征。值得注意的是,在我们的情境中,总统候选人的特征是和选民无关的(在现实生活中可能一千个选民眼中有一万个总统,这种情境以后再说)。我们拿到手的就是[X1, X2, X3, X4……, Xn]这样的一个矩阵(向量)。我们称之为特征(Feature)。 向量这个概念,可能需要一些数学上的基础知识。与向量对应的概念是标量,标量只有值没有方向,像1+1=2里的1,2都是标量。而向量如下图 在空间里,我们可以用一组坐标来表示一个向量。例如上图中的二维坐标系,我们用终点的坐标就可以表示出这个向量:假设终点P坐标为X1, X2,原点O坐标为0, 0。那么(X1-0,X2-0)即(X1,X2)就是这个向量了,所以说一个点也可以表示出向量,一个向量也会指向一个点。两个概念是相同的。从二维往高维去,我们可以做到很高维的空间向量。稍后会给大家展示(物理学家搞的什么四维空间都弱爆了,我们上手就是好几千维……)。 在空间里我们还可以引入距离的概念,两点间的距离之类的。如果两个点的距离越大,是否就意味着两个向量之间的差异越大呢?Obviously! 回到美国总统竞选的话题上来,有两种截然相反的理论可以支持我们选总统。一种是选离自己距离最远的,这样的好处在于平衡,可以让自己不那么脑残粉理智地提出建议,捍卫彼此的对话权。另一种是选离自己距离最近的,这样的好处在于可以让自己爽一点,毕竟政见一致。(对于我这种人,谁理他什么对话权,自己爽才是王道!)但是确实有很多种决断,真实的选举中未必接近就会被选中。 所以,当有一个”总统向量(Candidate Vector)“被丢进人民的海洋时,每个选民都会做出自己的决断。我们假设这一决断与其他”总统向量”是无关的。选民会分别作出”他/她是我的真爱”,”这种辣鸡不配当总统“,”我再犹豫犹豫“这些不同的”标签”(Label)。...

04 Jun 2015

Test Page

This is a test blog page where we can explore how to embedd images in the blog. Image example 1...