首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于OpenCV实现口罩识别

并且在网上搜索也没有找到相关内容,几乎没有网友使用OpenCV来运行这个模型,基本都是使用深度学习框架来运行。...说搞就搞,由于本人对深度学习涉及并不深入,所以我思路是:使用OpenCVdnn模块来进行人脸检测及定位,然后将检测出的人脸利用OpenCVml模块进行识别是否佩戴口罩。...在训练过程中,我们不是把图像完全展开进行训练,而是通过特征提取,得到每个样本图像HOG特征,再计算每个HOG特征特征描述子,通过特征描述子来训练SVM分类器。...那么到这一步,就实现了检测是否佩戴口罩SVM分类器训练工作,训练得到模型文件如下: 接下来,我们就要加载这个xml文件并且对输入图像进行检测啦。...,那么就用绿色框框出人脸,并且标记 “ Face Mask ” : 从效果上来看,所采用测试图像都不在训练集之内,对单个人脸照片识别成功率还是可以,但是肯定没有开源项目里神经网络模型识别正确率高

80810

你可能没有实现一个正确atoi函数

atoi函数看起来似乎很容易实现,你甚至可以很快写出一个版本,但是是否符合要求呢? 简易版本 最简单考虑,就是遍历字符串,每遇到一个数字就加上原来值乘以10。...,输入数值时也似乎能得到正确结果。...实现atoi函数需要注意什么 你可能已经注意到了,实现atoi需要考虑下面这些场景: 输入正负号 开头有空格 转换后数值超出int表示范围 出错时返回0与正确转换0区别 输入非数字 空字符串 现在来看...INT_MIN:INT_MAX; } str++; } /*根据正负号返回正确结果*/ return negative?...但这些都不是重点,重点是我们在考虑实现atoi函数时候,需要考虑多种异常场景,这在平常实现其他功能接口时候也是一样。 思考 前面的代码有什么不足?你忽略了哪些场景?

2.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

基于支持向量机手写数字识别详解(MATLAB GUI代码,提供手写板)

摘要:本文详细介绍如何利用MATLAB实现手写数字识别,其中特征提取过程采用方向梯度直方图(HOG)特征,分类过程采用性能优异支持向量机(SVM)算法,训练测试数据集为学术及工程上常用MNIST手写数字数据集...博主想说是其实SVM也可以很好地解决这一问题,本文介绍代码就可以实现99%测试准确率,所以想借此为大家提供一个学习Demo共同交流。...所以这里重要一点是正确提取出HOG特征,extractHOGFeatures是MATLAB自带HOG特征提取函数,该函数不仅可以有效提取特征,还可以返回特征可视化结果以方便展示。...8三种尺寸HOG特征,其运行可视化结果如下: 从以上结果可以看出2×2细胞尺寸会编码更多形状信息,这会显著增加HOG特征向量,相反8×8细胞尺寸得到特征量最少。...这其实是一个需要调试参数,一方应该对足够空间信息进行编码,另一方需要减少HOG特征向量,为此可以选择4×4细胞大小。

88850

C++ OpenCV SVM实战Kindle检测(一)----训练数据

SVM简介 SVM较其他传统机器学习算法优点: 1、小样本,SVM算法要求样本数是相对比较少SVM解决问题时候,和样本是无关。 2、结构风险最小。...3、非线性,是指SVM擅长应付样本数据线性不可分情况,主要通过松弛变量(也有人叫惩罚变量)和核函数技术来实现,这一部分是SVM精髓。...OpenCV SVM核函数: 线性核函数:SVM::LINEAR,线性内核,没有高维空间映射,速度快; 多项式核函数:SVM::POLY,gamma>0,coef(),degree; 径向基核函数:...gamma,coef(); 样本训练代码实现 核心函数 hog_deal void hog_deal(cv::Mat& src, std::vector& dst) { //定义Hog,...我们利用hog + svm检测行人,最终检测方法是最基本线性判别函 ,wx + b = 0, 刚才所求3780维向量其实就是w,而加了一维b就形成了opencv默认3781维检测算子, 而检测分为

1.8K40

特征提取方法(一):HOG原理及OpenCV实现

方向梯度直方图(Histogram of Oriented Gradient, HOG)于2005年提出,是一种常用特征提取方法,HOG+SVM在行人检测中有着优异效果。...HOG如何确定特征向量维: 之前提到过,cell中方向范围个数由bins来决定,还是以9为例:所以,一个cell中向量为9个,以上面的例子166*80图像中,描述子就应该为:9*4*49...HOGOpenCV实现: OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测函数detectMultiScale()...,在这里我们不介绍它,只说明如何利用HOG提取出可以输入到SVM特征矩阵。...这也就是为啥初始化要放在循环里面了,因为没有提取特征呢,谁知道描述子维是多少呢?(这样就不用手算了) 最后,我往文件夹里随便放了两张图片,测试了一下代码,图片太大了,导致维度有些高: ?

6.4K50

HOG原理与OpenCV实现

HOGOpenCV实现 注意事项 在HOG原理部分,其实我们已经提到了一些注意事项,那就是块尺寸,块步长,单元尺寸,窗口步长选择问题。...此外,上面这些参数是没有窗口步长,这是因为窗口步长定义在hog.compute()函数中,该函数对滑动窗是有自动补齐功能。...代码实现 OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测函数detectMultiScale(),在这里我们不介绍它,...只说明如何利用HOG提取出可以输入到SVM特征矩阵。...这也就是为啥初始化要放在循环里面了,因为没有提取特征呢,谁知道描述子维是多少呢?(这样就不用手算了)

1.8K50

Dog Face Recognition

2.评价该方法性能 3.计算每个品种正确识别率 4.进行开集测试(见题目要求3) (2)Fisher狗脸识别 采用线性判别准则方法进行实验。...每一种图像特征又结合下面四种算法:(1)PCA; (2)Fisher; (3)SVM; (4)HOSVD 来进行分类,并且采用了开集测试和10折交叉验证方式分析算法正确率。...很明显,不同情况下结果差别很大,例如,对于HOG特征,在线性SVM中得到结果最好,接近90%,但是对于多项式和径向基核函数只能得到10%准确率,这也说明了线性SVM虽然是最简单SVM,但是在特定情况下没准是性能最好...SVM算法还多,但是性能并没有进一步提升,所以并不是该类问题很好解决方案。...)方面感觉没有方向性,不能按照一定思路朝着更好结果进行。

69420

Python实现校园卡目标检测与文字识别系统

引言:本项目主要从两方面出发,一是搭建目标检测系统,利用hog+svm方法,从网络摄像头读取数据,目标检测找出校园卡位置;二是在找到校园卡位置后,保存下单独校园卡图片,然后进行图像处理,找到关键文字位置...这些都是HOGDescriptor成员变量,括号里数值是它们默认值,它们反应了HOG描述子参数。...其中winSize指的是窗口大小 ,blockSize指的是块大小 ,cellSize指的是胞元大小 ,nbins指的是梯度方向,nBins表示在一个胞元(cell)中统计梯度方向数目,例如nBins...图7 执行膨胀操作图片效果 (7)找到轮廓并初始化数字分组位置列表。...图8 识别提取效果图 总结与讨论 此次校园卡目标检测和图像处理信息提取功能设计,使用是传统模式识别方法进行图像识别,其中涉及到知识主要是hog特征+SVM分类,以及图片处理一些常规操作和百度API

1.2K10

Histogram of Oriented Gridients(HOG) 方向梯度直方图

HOG简介 2. 数字图像梯度定义 3. HOG基本步骤 4. OpenCV实现HOG 5. 用KNN与HOG实现一个手写数字输入识别 1....OpenCV实现HOG OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测函数detectMultiScale(),在这里我们不介绍它...OpenCV实现HOG OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测函数detectMultiScale(),在这里我们不介绍它...用KNN与HOG实现一个手写数字输入识别 在上面的部分,我们用数字0举例生成了一张图像HOG特征,特征维为8100,在OpenCV3安装文件路径/opencv/sources/samples/data...testdata,k,0,0,&nearests,0); if (response==i) { truenum++; } } } cout<<"测试总数"<<testnum<<endl; cout<<"正确分类

1.3K50

Histograms of Oriented Gradients for Human Detection

我们以“行人检测”为例,详细研究了各种实现选择对检测器性能影响,“行人检测”是指检测大多数可见或多或少直立姿态的人。为了简单和快速,我们在整个研究中使用线性SVM作为基线分类器。...5、结果概览在给出详细实现和性能分析之前,我们将最后HOG检测器总体性能与其他一些现有方法进行比较。...使用基本条检测器(定向二阶导数- ' R2-HOG ')对R-HOG进行增强,使特征维增加了一倍,但进一步提高了性能(在10 - 4 FPPW时提高了2%)。...6、实现和性能研究现在我们给出了HOG实现细节,并系统地研究了各种选择对检测器性能影响。...C-HOG布局有四个参数:角仓和径向仓;中心bin半径(以像素为单位);以及后续半径膨胀系数。为了获得良好性能,至少需要两个径向箱(一个中心和一个环绕)和四个角向箱(四分之一)。

2.3K40

综述三 | 最全目标检测大综述(附下载链接)

SVM等非线性分类器检测精度较高,但同时也带来较高计算开销。作为一种标准非参数方法,传统核函数法没有固定计算复杂度。当我们有一个非常大训练集时,检测速度会变得非常慢。...研究人员长期以来一直在探索网络正确配置,以便在有限时间成本下获得准确性。...积分HOG映射已被应用于行人检测中,并在不损失任何精度前提下实现了数十倍加速度。 2009年晚些时候,P....例如,使用VQ,可以将HOG直方图分组并量化为一组原型直方图向量。然后在检测阶段,通过查表操作实现特征向量与检测权值之间内积。...由于该过程中没有浮点乘法和除法,因此DPM和例化SVM检测器(exemplar SVM detector)速度可以提高一个数量级。

53720

Android+jacoco实现代码覆盖率最正确实现方式,没有之一!

+,gradle依赖还是4.4左右,所以导致一个问题,也是浪费了我很多时间问题:网上资料已经跟不上时代了,然而没有一篇最新、最正确jacoco+Android集成实践博文,来给有这方面有诉求同学指引方向...,在我费尽千辛万苦终于找到突破口并实现了之后,决定记录这个问题,为日后有需求同学点一盏明灯!...,文末会附上完整版实现代码。...class文件,但是在我使用开发环境基础上,app/build/intermediates/classes根本就没有内容,这个问题阻拦了我很长一段时间,一度让我郁闷,以为是哪里配置出了问题,导致我工程无法正确生成...,当这个Activity执行onDestroy方法时候通知Instrumentation生成ec文件,所以你不想根据这种思路来走完全没有问题,实现一个工具类,在你想要执行生成ec文件时候调用即可,道理一样

2.7K20

SVM算法在项目实践中应用!

然后使用SVM分类器进行目标和非目标的二分类(检测)。 HOG+SVM工作流程如下: ? 首先对输入图片进行预处理,然后计算像素点梯度特性,包括梯度幅值和梯度方向。...然后投票统计形成梯度直方图,然后对blocks进行normalize,最后收集到检测窗口HOG feature(一行多维vector)放入SVM里进行监督学习,实现行人检测。...HOG算法具有以下缺点: 特征描述子获取过程复杂,维较高,导致实时性差; 很难处理遮挡问题,人体姿势动作幅度过大或物体方向改变也不易检测(这个问题后来在DPM中采用可变形部件模型方法得到了改善);...跟SIFT相比,HOG没有选取主方向,也没有旋转梯度方向直方图,因而本身不具有旋转不变性(较大方向变化),其旋转不变性是通过采用不同旋转方向训练样本来实现; 跟SIFT相比,HOG本身不具有尺度不变性...对于多维HOG特征,SVM就可以排上用场了。

1.1K10

DIY自动分类“错题集”:一种基于视觉词汇文本分类法

下面将展示整个训练过程,训练样本来自《2016 B版 5年高考3年模拟:高考理》,并手工标注了14个分类,每个分类下约50个样本,每个样本为一个题目, 图像为手机拍摄。...这样我就可以从我所了解、少得可怜图像工具库里找到一个工具了:直线拟合。即通过拟合直线(线段)长度与图像宽度比例,调整图像大小。...得益于上面的方案,词汇信息也被保留了下来,所以第二个问题也就解决了,同时增加了算法鲁棒性。 下面将介绍具体实现。 2.1....选择特征描述子 选择合适特征描述子通常需要直觉+运气+不停尝试(好吧我承认这里没有什么经验可分享),经过几次尝试,最终选中了HOG(方向梯度直方图)描述子。...下面展示了此过程主要代码: ? 执行结果如下: ? 测试集上正确率81%,召回率 78%。

1.9K50

Color exploitation in HOG-based traffic sign detection

另一方,通用对象模型从训练数据中自动学习,几乎没有人工交互。然而,该模型不使用先验信息,只从训练数据中提取知识。因此,良好训练数据质量和完整性是关键要求。...在特征生成阶段之后,使用支持向量机(SVM)对高维特征进行分类。在最近行人检测评估中,HOG算法给出了具有竞争力性能[5]。...我们使用与Dalal和Triggs相同实现。与Dalal和Triggs建议不同,SVM分类器是在迭代过程中训练。在第一次迭代中,对所有正图像进行处理,随机选取一组背景区域作为负样本。...如前所述,我们通过在hog描述符中包含颜色信息来扩展标准算法。这是通过连接所使用颜色空间每个颜色通道HOG描述符来完成。注意,结果特征和检测计算复杂度随着颜色通道数量线性增加。...在我们实验中,我们为我们HOG检测器使用了以下设置:单元大小为4 × 4像素,9个方向箱和4个块归一化(b = 2)。对于每个颜色通道,特征向量为2,304。

6910

20年目标检测大综述(章节3)

SVM等非线性分类器检测精度较高,但同时也带来较高计算开销。作为一种标准非参数方法,传统核函数法没有固定计算复杂度。当我们有一个非常大训练集时,检测速度会变得非常慢。...研究人员长期以来一直在探索网络正确配置,以便在有限时间成本下获得准确性。...积分HOG映射已被应用于行人检测中,并在不损失任何精度前提下实现了数十倍加速度。 ? 2009年晚些时候,P....例如,使用VQ,可以将HOG直方图分组并量化为一组原型直方图向量。然后在检测阶段,通过查表操作实现特征向量与检测权值之间内积。...由于该过程中没有浮点乘法和除法,因此DPM和例化SVM检测器(exemplar SVM detector)速度可以提高一个数量级。

46410

快乐学AI系列——计算机视觉(5)图像分类和识别

相关要求:学员需要掌握Python编程基础,另外还需要有一定线性代数、概率论基础传统图像分类算法两种方法:SIFT特征+KNN分类器和HOG特征+SVM分类器。...它基本思想是将待分类样本特征向量与训练集中所有特征向量进行比较,找到与待分类样本最相似的K个样本,然后根据这K个样本分类情况来判断待分类样本类别。...HOG特征+SVM分类器HOG(Histogram of Oriented Gradients)特征是一种常用图像特征提取方法,它能够有效地捕获图像中纹理、形状等信息。...在使用HOG特征和SVM分类器进行图像分类时,我们需要先提取出每张图像HOG特征,然后使用这些特征来训练SVM分类器。接着,我们就可以使用训练好SVM分类器来对新图像进行分类了。...其中一种方法是使用特征匹配,即找到两张图片中相似的特征点并将它们匹配起来。

64120

A Discriminatively Trained, Multiscale, Deformable Part Model

HOG金字塔模型中,有大量(指数)位置。我们使用动态规划和距离变换技术计算模型各部分最佳位置作为根位置函数。这需要O(nk)时间,其中n为模型中部件数,k为HOG金字塔中细胞。...3.4、实现细节这里讨论许多想法只是在我们当前系统中大致实现。...根滤波器初始化:根过滤器初始化:对于每个类别,我们通过查看训练数据中包围框统计信息,自动选择根过滤器维度。我们使用一个没有潜在变量SVM训练一个初始根滤波器F0。...根滤波器更新:给定如上所训练初始根过滤器,对于训练集中每个边界框,我们找到与边界框明显重叠过滤器最佳得分位置。我们使用原始,未缩放图像。...数据集为几个目标类指定了ground-truth边界框,当与ground-truth边界框重叠超过50%时,检测就被认为是正确

2.9K40

opencv︱opencv中实现行人检测:HOG+SVM(二)

源码分析(一)和HOG:从理论到OpenCV实践 HOG+SVM是传统计算机视觉中经典组合模型。...新提高检测率科研方式: 2016年张姗姗等人从分析角度对各个工作进行总结和归纳。通过分析错误案例来找到错误来源,并提出相应解决方案以进一步提高检测率。...这里只是用到了HOG识别模块,OpenCV把HOG内容比较多,既有HOG特征提取,也有结合SVM识别,这里识别只有检测部分,OpenCV提供默认模型,如果使用新模型,需要重新训练。...首先可以通过腿部识别,再在腿部对应上区域对肩膀至头部位识别,从而降低误识率。 腿部由于走动原因姿态会有变化,所以很难用比较直观特征去识别,可以用HOG+SVM识别腿部,如图2所示。...由于测试集标注信息没有公开,需要提交给Pitor Dollar。

6.3K30
领券