Program Links : https://github.com/JJJYmmm/Image-Classification-with-SIFT-and-BOW ReadMe 使用SIFT+BOW+SVM实现的一个图像分类器。SIFT负责提取图片中的尺度不变特征,词袋模型BOW则负责描述一张图片的SIFT特征分布,将结果送入SVM进行学习。项目参考https://github.com/CV-xueba/A01_cvclass_basic_exercise,不过修复了其中的SPM特征提取代码bug,具体修复见Vocabulary.py中的calSPMFeature函数。 项目结构如下: main.py : 程序入口点 DataProcess.py : 读取图像,提取图像的SIFT特征 ImageInfo.py : 图像相关信息的类,包括类别、大小、SIFT特征的位置和描述符等 Vocabulary.py : 词袋模型,将所有SIFT特征进行聚类得到单词,并提取每个图像的SPM特征 ClassifierKernel.py : SVM学习BOW特征的实现 结果见项目output.txt
摘要 本篇主要介绍目标检测的一些基本概念,以及一个人脸检测的实例来加深印象,最后还谈了以下HOG特征的提取。 简单介绍(非常简单) 目标检测就是在负责在一幅图中检测出感兴趣的物体,一般采用滑动窗口来实现。但是实际应用中,检测效果依赖于光照、物体姿态、视角等影响。具体来说,目标检测需要考虑以下几个问题: 如何选择滑动窗口的大小,从而克服检测物体的尺度变化 如何建模图片的特征 如何找到物体对应的特征 如何克服不同摄影角度的问题(最原始的方法是训练多个视角的模型) 人脸检测 本次介绍基于adaboost的人脸检测模型,它广泛用在相机、手机摄影的人脸检测器。 boosting模型 首先介绍boosting模型,它是一种投票式的判别模型,相比于直接训练一个强分类模型,它的思想是训练多个弱分类器,取长补短达到强分类的效果。 训练过程如下,最终目的是训练一个分类器可以分辨红蓝数据点。刚开始所有数据点的权重为1。 接下来训练多个弱分类器,例如线性分类器组。找到一个正确率最高的分类器,将其保留。 这里有个先验假设,我们总能找到一个正确率大于50%的分类器。原因是如果所有分类器的准确率都小于50
摘要 图像分类是一个经典的视觉任务。无论是分类、识别、检测等任务,都容易受到视角变化、光照、尺度、变形、遮挡、背景、类内实体等因素的影响,所以寻找合适的图像特征表示是一个比较重要的任务。本篇主要介绍了词袋模型表示。 图像表示 图像表示有很多方法,例如之前提到的SIFT特征、纹理特征、HOG特征,甚至直接对图像分块、随机选择图像块也可以表示图像。 词袋模型 词袋模型也可以用来表示一张图像。词袋模型简单来说就是选取一些图像基元构成字典。对于一张图片,首先对其进行分割,统计这些图像块在字典中的统计直方图,根据统计直方图特征确定图片属于哪种类别。 以下述三幅图为例,训练时,每幅图首先分别选出三张基元(如何选取见下文),因此得到了9个基元的词袋。 对于一张测试图像,同样提取图像块并和字典中的9个基元比较,统计其出现个数,根据统计特征进行分类。 词袋模型其实也广泛用在自然语言处理中,比如可以用它来做主题推断等等。 最后一部分是图像块(基元)的提取,这里有许多方法可以提取。例如对于一张图片,可以使用SIFT提取几个区域,并用SIFT描述符来描述。这样一张图片就表示成多个SIFT描述符形成的文
摘要 语义分割任务是将一张图像做像素级别的分割,将一些原始数据(例如平面图像)作为输入并将它们转换为具有突出显示的感兴趣区域的掩模。它的难度会比图像分类和物体识别更难。当然我们这里讨论的分割效果还是从像素的一些统计特征出发,并没有引入人的先验认知知识(其实也多少引入了一点,例如格式塔理论,不过基于这个理论的算法难以建模),所以效果是比较差的。 格式塔理论 格式塔理论其实是一种心理学理论,它表明人类视觉是整体的:我们的视觉系统自动对视觉输入构建结构,并在神经系统层面上感知形状、图形和物体,而不是只看到互不相连的边、线和区域。最经典的问题就是比较线段长短。 格式塔理论给我们了一些设计语义分割的思路,它给出了一些像素点分类的指导思想。例如通过地理位置、相似性、平行、对称等关系去分类像素点,实现分割。 这里其实就是自底向上的分割思路。人类看到一张图像做分割,应该是根据已有的知识,自顶向下地去分离物品,比如从人的分离、再到人身上衣服、首饰的分离;而机器做分割,都是从像素出发做分割,单从像素点没办法理解分割操作,这就需要格式塔理论给出的一些人眼视觉的底层模式来指导自底向上的分割了。 实际上
摘要 通过纹理特征,我们可以确定物体表面的方向和形状。同时通过纹理特征,我们可以做语义分割、分类、纹理生成等任务。 纹理特征的获取 纹理就是从重复的局部模式组成,局部模式可以通过不同滤波器进行寻找,然后再通过梯度的直方图对局部模式进行表达。梯度直方图的生成做法是给定一个滑动窗口,每次统计窗口中各个像素的梯度方向信息,从而得到这个窗口的梯度直方图信息,然后将窗口移到下一个区域(HOG特征不同窗口之间有重叠,梯度方向信息则是通过不同的核得到)。例如上面四种动物的梯度方向直方图如下图所示,不同直方图之间存在较为明显的差异。 具体来说,我们可以使用之前用过的两个偏导核(其实就是边缘检测)对一张照片进行卷积,得到两个响应图。 使用红色窗口比对两个图片同一位置中的边缘点个数,列成表格。这个表格也就刻画了一个窗口的两维特征,这两维特征是通过两个偏导核得到的。进一步,我们可以把窗口的二维特征画到二维平面,大概能看到四个类。基本对应平坦区域、竖边、横边、拐点几种纹理。 事实上,我们可以采用多个模板去提取纹理信息,如下图所示,有检测边、条纹、斑点的模板。 不同模板提取出来的信息不同,那么对于图像
Axuanz
Updating as per fate.