导航:首页 > 源码编译 > hog算法与sift区别

hog算法与sift区别

发布时间:2022-10-08 00:00:18

① 机器视觉算法有哪些

机器视觉算法基本步骤;
1、图像数据解码
2、图像特征提取
3、识别图像中目标。
机器视觉是人工智能正在快速发展的一个分支。
简单说来,机器视觉就是用机器代替人眼来做测量和判断。
机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。

现在做视觉检测的公司比较多,国内国外都有,许多视觉算是很好的。
能提供完整的机器视觉软件解决方案,也可以为客户提供算法级的定制,覆盖所有的工业应用领域,适用范围比较广。机器视觉的应用会越来越多,因为计算的水平越来越高,可以处理更复杂的视觉算法;其实好多的东西,包括现在流行的GPS,最早都是外国的公司在做,程序都是中国人在做外包;
光机电的应用我个人觉得已经很成熟了,不会再有新东西。

② 机器学习一般常用的算法有哪些哪个平台学习机器算法比较好

楼主肯定机器习解才提种问题问题专业程度看起机器习工程师词汇 机器习基础PCA模型理论贝叶斯boost,Adaboost, 模式识别各种特征诸HogHaar,SIFT等 深度习DBNCNNBPRBM等等 非专业身略懂点 没用针需求具体设计或者需要自全新设计合适算现热门算CNN(convolutional neural networks)卷积神经中国络 优点:需要训练获取特征习程自提取图像特征免规量训练本间本足够情况能够非精确识别结般都能95%+确率 缺点:硬件要求高CUDA并行框架算用火般台式机跑Demo花费间资源占用高块算通病

③ 经典目标检测算法介绍

姓名:牛晓银;学号:20181213993;学院:计算机科学与技术

转自:https://zhuanlan.hu.com/p/34142321

【嵌牛导读】:目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割。随着计算机技术的发展和计算机视觉原理的广泛应用,利用计算机图像处理技术对目标进行实时跟踪研究越来越热门,对目标进行动态实时跟踪定位在智能化交通系统、军事目标检测及医学导航手术中手术器械定位等方面具有广泛的应用价值。

【嵌牛鼻子】:目标检测、检测模型、计算机视觉

【嵌牛提问】:你知道或者用过哪些目标检测算法?

【嵌牛正文】:

(一)目标检测经典工作回顾

本文结构

两阶段模型因其对图片的两阶段处理得名,也称为基于区域(Region-based)的方法,我们选取R-CNN系列工作作为这一类型的代表。

R-CNN: R-CNN系列的开山之作

论文链接:  Rich feature hierarchies for accurate object detection and semantic segmentation

本文的两大贡献:1)CNN可用于基于区域的定位和分割物体;2)监督训练样本数紧缺时,在额外的数据上预训练的模型经过fine-tuning可以取得很好的效果。第一个贡献影响了之后几乎所有2-stage方法,而第二个贡献中用分类任务(Imagenet)中训练好的模型作为基网络,在检测问题上fine-tuning的做法也在之后的工作中一直沿用。

传统的计算机视觉方法常用精心设计的手工特征(如SIFT, HOG)描述图像,而深度学习的方法则倡导习得特征,从图像分类任务的经验来看,CNN网络自动习得的特征取得的效果已经超出了手工设计的特征。本篇在局部区域应用卷积网络,以发挥卷积网络学习高质量特征的能力。

R-CNN将检测抽象为两个过程,一是基于图片提出若干可能包含物体的区域(即图片的局部裁剪,被称为Region Proposal),文中使用的是Selective Search算法;二是在提出的这些区域上运行当时表现最好的分类网络(AlexNet),得到每个区域内物体的类别。

另外,文章中的两个做法值得注意。

一是数据的准备。输入CNN前,我们需要根据Ground Truth对提出的Region Proposal进行标记,这里使用的指标是IoU(Intersection over Union,交并比)。IoU计算了两个区域之交的面积跟它们之并的比,描述了两个区域的重合程度。

文章中特别提到,IoU阈值的选择对结果影响显着,这里要谈两个threshold,一个用来识别正样本(如跟ground truth的IoU大于0.5),另一个用来标记负样本(即背景类,如IoU小于0.1),而介于两者之间的则为难例(Hard Negatives),若标为正类,则包含了过多的背景信息,反之又包含了要检测物体的特征,因而这些Proposal便被忽略掉。

另一点是位置坐标的回归(Bounding-Box Regression),这一过程是Region Proposal向Ground Truth调整,实现时加入了log/exp变换来使损失保持在合理的量级上,可以看做一种标准化(Normalization)操作。

小结

R-CNN的想法直接明了,即将检测任务转化为区域上的分类任务,是深度学习方法在检测任务上的试水。模型本身存在的问题也很多,如需要训练三个不同的模型(proposal, classification, regression)、重复计算过多导致的性能问题等。尽管如此,这篇论文的很多做法仍然广泛地影响着检测任务上的深度模型革命,后续的很多工作也都是针对改进这一工作而展开,此篇可以称得上"The First Paper"。

Fast R-CNN: 共享卷积运算

论文链接: Fast R-CNN

文章指出R-CNN耗时的原因是CNN是在每一个Proposal上单独进行的,没有共享计算,便提出将基础网络在图片整体上运行完毕后,再传入R-CNN子网络,共享了大部分计算,故有Fast之名。

上图是Fast R-CNN的架构。图片经过feature extractor得到feature map, 同时在原图上运行Selective Search算法并将RoI(Region of Interset,实为坐标组,可与Region Proposal混用)映射到到feature map上,再对每个RoI进行RoI Pooling操作便得到等长的feature vector,将这些得到的feature vector进行正负样本的整理(保持一定的正负样本比例),分batch传入并行的R-CNN子网络,同时进行分类和回归,并将两者的损失统一起来。

RoI Pooling 是对输入R-CNN子网络的数据进行准备的关键操作。我们得到的区域常常有不同的大小,在映射到feature map上之后,会得到不同大小的特征张量。RoI Pooling先将RoI等分成目标个数的网格,再在每个网格上进行max pooling,就得到等长的RoI feature vector。

文章最后的讨论也有一定的借鉴意义:

multi-loss traing相比单独训练classification确有提升

multi-scale相比single-scale精度略有提升,但带来的时间开销更大。一定程度上说明CNN结构可以内在地学习尺度不变性

在更多的数据(VOC)上训练后,精度是有进一步提升的

Softmax分类器比"one vs rest"型的SVM表现略好,引入了类间的竞争

更多的Proposal并不一定带来精度的提升

小结

Fast R-CNN的这一结构正是检测任务主流2-stage方法所采用的元结构的雏形。文章将Proposal, Feature Extractor, Object Classification&Localization统一在一个整体的结构中,并通过共享卷积计算提高特征利用效率,是最有贡献的地方。

Faster R-CNN: 两阶段模型的深度化

论文链接: Faster R-CNN: Towards Real Time Object Detection with Region Proposal Networks

Faster R-CNN是2-stage方法的奠基性工作,提出的RPN网络取代Selective Search算法使得检测任务可以由神经网络端到端地完成。粗略的讲,Faster R-CNN = RPN + Fast R-CNN,跟RCNN共享卷积计算的特性使得RPN引入的计算量很小,使得Faster R-CNN可以在单个GPU上以5fps的速度运行,而在精度方面达到SOTA(State of the Art,当前最佳)。

本文的主要贡献是提出Regional Proposal Networks,替代之前的SS算法。RPN网络将Proposal这一任务建模为二分类(是否为物体)的问题。

第一步是在一个滑动窗口上生成不同大小和长宽比例的anchor box(如上图右边部分),取定IoU的阈值,按Ground Truth标定这些anchor box的正负。于是,传入RPN网络的样本数据被整理为anchor box(坐标)和每个anchor box是否有物体(二分类标签)。RPN网络将每个样本映射为一个概率值和四个坐标值,概率值反应这个anchor box有物体的概率,四个坐标值用于回归定义物体的位置。最后将二分类和坐标回归的损失统一起来,作为RPN网络的目标训练。

由RPN得到Region Proposal在根据概率值筛选后经过类似的标记过程,被传入R-CNN子网络,进行多分类和坐标回归,同样用多任务损失将二者的损失联合。

小结

Faster R-CNN的成功之处在于用RPN网络完成了检测任务的"深度化"。使用滑动窗口生成anchor box的思想也在后来的工作中越来越多地被采用(YOLO v2等)。这项工作奠定了"RPN+RCNN"的两阶段方法元结构,影响了大部分后续工作。

单阶段(1-stage)检测模型

单阶段模型没有中间的区域检出过程,直接从图片获得预测结果,也被成为Region-free方法。

YOLO

论文链接: You Only Look Once: Unified, Real-Time Object Detection

YOLO是单阶段方法的开山之作。它将检测任务表述成一个统一的、端到端的回归问题,并且以只处理一次图片同时得到位置和分类而得名。

YOLO的主要优点:

快。

全局处理使得背景错误相对少,相比基于局部(区域)的方法, 如Fast RCNN。

泛化性能好,在艺术作品上做检测时,YOLO表现比Fast R-CNN好。

YOLO的工作流程如下:

1.准备数据:将图片缩放,划分为等分的网格,每个网格按跟Ground Truth的IoU分配到所要预测的样本。

2.卷积网络:由GoogLeNet更改而来,每个网格对每个类别预测一个条件概率值,并在网格基础上生成B个box,每个box预测五个回归值,四个表征位置,第五个表征这个box含有物体(注意不是某一类物体)的概率和位置的准确程度(由IoU表示)。测试时,分数如下计算:

等式左边第一项由网格预测,后两项由每个box预测,以条件概率的方式得到每个box含有不同类别物体的分数。 因而,卷积网络共输出的预测值个数为S×S×(B×5+C),其中S为网格数,B为每个网格生成box个数,C为类别数。

3.后处理:使用NMS(Non-Maximum Suppression,非极大抑制)过滤得到最后的预测框

损失函数的设计

损失函数被分为三部分:坐标误差、物体误差、类别误差。为了平衡类别不均衡和大小物体等带来的影响,损失函数中添加了权重并将长宽取根号。

小结

YOLO提出了单阶段的新思路,相比两阶段方法,其速度优势明显,实时的特性令人印象深刻。但YOLO本身也存在一些问题,如划分网格较为粗糙,每个网格生成的box个数等限制了对小尺度物体和相近物体的检测。

SSD: Single Shot Multibox Detector

论文链接: SSD: Single Shot Multibox Detector

SSD相比YOLO有以下突出的特点:

多尺度的feature map:基于VGG的不同卷积段,输出feature map到回归器中。这一点试图提升小物体的检测精度。

更多的anchor box,每个网格点生成不同大小和长宽比例的box,并将类别预测概率基于box预测(YOLO是在网格上),得到的输出值个数为(C+4)×k×m×n,其中C为类别数,k为box个数,m×n为feature map的大小。

小结

SSD是单阶段模型早期的集大成者,达到跟接近两阶段模型精度的同时,拥有比两阶段模型快一个数量级的速度。后续的单阶段模型工作大多基于SSD改进展开。

检测模型基本特点

最后,我们对检测模型的基本特征做一个简单的归纳。

检测模型整体上由基础网络(Backbone Network)和检测头部(Detection Head)构成。前者作为特征提取器,给出图像不同大小、不同抽象层次的表示;后者则依据这些表示和监督信息学习类别和位置关联。检测头部负责的类别预测和位置回归两个任务常常是并行进行的,构成多任务的损失进行联合训练。

相比单阶段,两阶段检测模型通常含有一个串行的头部结构,即完成前背景分类和回归后,把中间结果作为RCNN头部的输入再进行一次多分类和位置回归。这种设计带来了一些优点:

对检测任务的解构,先进行前背景的分类,再进行物体的分类,这种解构使得监督信息在不同阶段对网络参数的学习进行指导

RPN网络为RCNN网络提供良好的先验,并有机会整理样本的比例,减轻RCNN网络的学习负担

这种设计的缺点也很明显:中间结果常常带来空间开销,而串行的方式也使得推断速度无法跟单阶段相比;级联的位置回归则会导致RCNN部分的重复计算(如两个RoI有重叠)。

另一方面,单阶段模型只有一次类别预测和位置回归,卷积运算的共享程度更高,拥有更快的速度和更小的内存占用。读者将会在接下来的文章中看到,两种类型的模型也在互相吸收彼此的优点,这也使得两者的界限更为模糊。

④ HOG算法什么意思

特征梯度直方图算法,现在非常流行的一种行人检测的算法,一般配合LBP和SVM分类器效果很好。你要想具体了解可以去WIKI 或者 navneet的网站看看专业解释。
不过HOG函数已经集成在了OPENCV库里面,因此其实没有必要非要搞懂这个算法。。。

⑤ 图像的特征提取都有哪些算法

图像的经典特征提取方法:
1 HOG(histogram of Oriented Gradient,方向梯度直方图)
2 SIFT(Scale-invariant features transform,尺度不变特征变换)
3 SURF(Speeded Up Robust Features,加速稳健特征,对sift的改进)
4 DOG(Difference of Gaussian,高斯函数差分)
5 LBP(Local Binary Pattern,局部二值模式)
6 HAAR(haar-like ,haar类特征,注意haar是个人名,haar这个人提出了一个用作滤波器的小波,为这个滤波器命名为haar滤波器,后来有人把这个滤波器用到了图像上,就是图像的haar特征)

图像的一般提取特征方法:
1 灰度直方图,颜色直方图
2 均值,方差
3 信号处理类的方法:灰度共生矩阵,Tamura纹理特征,自回归纹理特征,小波变换。
4 傅里叶形状描述符,小波描述符等,

⑥ viola jones人脸检测原理

Viola-jones人脸检测算法是一种基于滑动窗口的目标检测算法,但它却克服了滑动窗口检测带来的低效问题,可以用于实时人脸检测,主要归功于以下三点:

我参考论文[1]实现了Viola Jones中提到的attention cascade检测框架,此处是 github传送门 。

下面进一步详细介绍整个检测原理。

基于滑窗的目标检测基本原理很简单,首先构建一个classifier(分类器),以人脸检测为例,分类器的工作是判断给定大小的图像的是否为人脸,用该分类器从左至右从上到下扫描整幅图像,扫描获取的部分图像称为子窗(文章中子窗大小为24x24像素),当分类器判断子窗是人脸时,即完成了人脸检测。

这样处理有个问题,如果图像中包含的人脸变大了,此时采用固定大小的子窗就无法进行检测。通常有两种解决方法,1. 采用image-pyramid(图像金字塔),也就是通过resize获得多种不同大小图像并堆叠在一起,用固定大小分类器同时对所有图像进行扫描;2. 采用不同大小的分类器进行扫描。文章中用到的是第二种方法,尽管如此,虽然避免了调整图像大小带来的计算开销,但不同大小的分类器意味着有更多子窗需要进行处理。

如何构建一个足够快的分类器来对每个子窗进行快速判断。

分类器的构建有两种方式,一种是pixel-based(基于像素),另一种是feature-based(基于特征)。当把神经网络作为图像分类器时,输入是图像的像素值,即基于像素的分类器。用图像像素作为输入不包含任何和待分类目标有关的特定信息,往往训练这种分类器需要大量数据,并且分类过程较慢。基于特征的分类器就是先针对图像进行特征提取(HOG特征,SIFT特征等),再利用获取的特征进行分类。这种分类器不需要大量训练数据,且计算量一般会在特征计算部分,相对较小。

文章采用的是基于特征的分类器,选取了一种较为简单的特征即haar-like特征。利用矩形个数对可以将haar-like特征分为三类,分别由两个,三个,和四个 大小相同 的矩形组成。全部列举出来可以分为以下(a)(b)(c)(d)(e)五类(注意是五类不是五个,具体有多少个haar-like特征是由子窗大小决定的)。如下图所示(文章[1]中的图)。

当子窗大小给定后,我们可以用五个参数唯一确定 一个 haar-like特征,即特征种类(a/b/c/d/e),左上角x轴坐标,左上角y轴坐标,矩形的长,矩形的宽。对应的特征值等于位于白色矩形框中像素值总和减去位于黑色矩形框中的像素值总和。文章中用到的子窗大小为24x24像素,可以计算出来总共有162336个特征(把在子窗中所有可能位置和可能大小的特征全部列举出来)。利用haar-like特征进行分类只需两步:

haar-like特征有两个优点,第一是它是scale-invariant(不随图片大小而改变)的,第二是可以通过积分图像快速计算。简单的说下第一点的含义,例如我们用24x24像素的训练样本训练获取一组haar-like特征和对应的门限值,当对图像进行扫描时,子窗大小调整为SxS像素,此时只需将特征中的矩形大小按同样比例进行缩放(门限值同样需要缩放),计算所得的特征值依然是有效的。
积分图像是受卷积的微分性质启发而定义一种数据结构。积分图像定义:

其中 为积分图像, 为原图像。积分图像中 位置处的像素值等于原图中位于 的左侧和上方的所有像素值之和。有了积分图像我们就可以快速计算haar-like特征,以特征(a)为例,如下图所示。

S1到S6是积分图像在这六个顶点上的值。该特征值等于位于A中的像素总和减去位于B中的像素总和,而A中像素总和等于S5+S1-S2-S4,B中像素总和等于S6+S2-S3-S5,并且无论矩形多大,我们总能在固定时间内计算出特征值(6次索引操作和少量的加法乘法计算)。积分图像只需计算一次后续可以一直使用,事实上在算法实现时,我们只需保存样本的积分图像,原图像反而不用保存。

现在找到了一类特征用于构建分类器,和快速计算该类特征的方法。分类器是由一组特征构成的,而不是一个,如何找到一组有效的特征。

文章列举了前人的一些特征选取方法(此处就不列举了),它们虽然取得了一定的效果,但最终选出来的特征数量还是太多。文章将adaBoost算法用于特征选取(创新点),即每次训练的弱分类器的过程看做特征选取的过程,一次从162336个特征中选取一个特征(同时还包括了对应的门限值,极性,加权误差)。

adaboost算法就不详细介绍了,它的基本思想是训练一系列“弱”分类器,组成一个committee(即每个弱分类器都有投票权,但是权重不同,加权误差越小的弱分类器权重越大)。adaboost采用迭代训练方式,给定一个t阶committee,如何寻找第t+1个弱分类器和对应的权重,以最小化在一定分布下的训练样本的加权指数损失。这个优化过程可以转换为对训练样本的分布进行调整(即增大上一轮错误判断的样本的权重,减小正确判断的样本权重),在调整后的样本分布下寻找最小化加权0-1损失的弱分类器并计算对应的加权0-1损失。

可以利用adaboost找到一组特征构成分类器,使得该分类器有极高的准确率和召回率(这种分类器势必会有较大的计算量),这样会导致图像中的每一个子窗都享有同等的计算量,扫描一整幅图会有几十万甚至上百万子窗,总体计算量依然很大。实际上一幅图像中只有极少可能包含人脸的位置是我们感兴趣的,其他不包含人脸的子窗我们希望能够快速筛除,将更精细的计算用于包含人脸的子窗。

文章引入了attention-cascade的机制(注意力级联),即训练多个分类器进行级联,替代单一的分类器。结构如下图所示(文章[3]中的图)。

上图所示的分类器有三级,上一级的输出是下一级的输入,只有预测为正的样本才能传递给下一级,预测为负的样本直接舍弃。大部分非人脸子窗往往在前几级分类器就被舍弃,这样使得扫描每个子窗所需的平均计算量大大减小。

分类器是一级一级训练之后级联起来的,训练分类器时,整个级联分类器的假负率(fpr_overall)有一个训练目标(文章[1]中设置为10e-7),同时每一级有一对训练目标,即假正率和假负率。每级分类器训练的思想是在假负率极低的情况下(文章[1]中设置为0.005)尽量得到一个较低的假正率(文章中[1]中设置为0.5),即我们保证在正样本尽可能多的通过该级分类器的情况下尽量筛除更多的负样本。文章[3]通过一个松弛量来调节假正率和假负率。

下一级用到的训练数据是由所有的正样本和上一级输出的假正样本组成的,这样训练的好处是可以让处于级联后半部分的分类器“看到”更多负样本数据,缺点是训练后期假正样本很难获取,训练时间会比较长。

尽管我们获取了一个级联分类器,但依然不能保证对同一幅图中的一张人脸只会检测到一次(子窗相对人脸有所便宜或者缩放子窗大小都可能导致重复检测),如何消除重复检测,获得更好的检测效果。

文章[3]中说的较为简略,主要是针对检测框构建并查集,并对并查集中的候选框求平均得出最终的检测框。

文章[1]中是采用连通分量算法,计算每种大小检测框的置信度,根据置信度选取最终结果,但前提是检测器在图像中扫描的步进必须是1个像素,处理时间可能会比较长。

只能用于正脸检测,如果人脸朝屏幕内外或者在屏幕平面上旋转均有可能失效
在背景较亮,人脸较暗的情况下可能失效。
在有遮挡的情况下大概率失效。

⑦ 深度学习比sift,spin image,HoG,RIFT,GLOH,Textons等传统特征提取好在哪

深度学习,提取特征需要大的图像库(目前一般都百万级了)。
传统方法,提取特征一幅图像就可以。

⑧ 机器学习算法有哪些,最常用是哪些几种,有什么优点

楼主肯定对机器学习了解不多才会提这种问题。这问题专业程度看起来和“机器学习工程师”这词汇一样。
机器学习,基础的PCA模型理论,贝叶斯,boost,Adaboost,
模式识别中的各种特征,诸如Hog,Haar,SIFT等
深度学习里的DBN,CNN,BP,RBM等等。
非专业出身,只是略懂一点。

没有常用的,只是针对需求有具体的设计,或者需要自己全新设计一个合适的算法,现在最热门的算是CNN(convolutional neural networks)卷积神经网络了。
优点:不需要训练获取特征,在学习过程中自动提取图像中的特征,免去了常规方法中,大量训练样本的时间。在样本足够大的情况下,能够得到非常精确的识别结果。一般都能95%+的正确率。
缺点:硬件要求高,CUDA的并行框架算是用的很火的了。但是一般的台式机跑一个Demo花费的时间长资源占用高。不过这也是这块算法的通病。

阅读全文

与hog算法与sift区别相关的资料

热点内容
win10rar解压缩软件 浏览:164
plc教程pdf 浏览:665
pythonshell清屏命令 浏览:278
检测到加密狗注册服务器失败 浏览:203
解压后手机如何安装 浏览:518
极客学院app为什么下架 浏览:13
图片批量压缩绿色版 浏览:651
东北程序员帅哥 浏览:707
加密封条风噪小 浏览:974
安阳少儿编程市场 浏览:499
云服务器建设原理 浏览:259
javajunit4for 浏览:847
华为服务器如何进阵列卡配置 浏览:435
apache服务器ip地址访问 浏览:720
如何买到安卓手机预装软件 浏览:537
冤罪百度云不要压缩 浏览:88
苏州云存储服务器 浏览:177
解压收纳原声 浏览:387
java注册验证 浏览:377
火花app怎么上推荐 浏览:982